์ฌ์ง์ ํฌํ ์นด๋๋ก ๋ง๋ค์ด ๊ธฐ๋ก, ํธ์งํ๊ณ ํ์ํ ์ ์๋ ์ฌ์ง ์์นด์ด๋น ์ฑ
![]() |
![]() |
![]() |
![]() |
|---|
| ๊ตฌ๋ถ | ๋ด์ฉ |
|---|---|
| ํ ์ธ์ | 1๋ช / ๊ธฐํ, ๋์์ธ, ๊ฐ๋ฐ |
| ๊ธฐํ ๋ฐ ๊ฐ๋ฐ ๊ธฐ๊ฐ | 2025.09 - 2025.10 (3์ฃผ, ํต์ฌ ๊ฐ๋ฐ ๊ธฐ๊ฐ 1์ฃผ) |
| ์ต์์ง์๋ฒ์ | iOS 16.0+ |
- ์ฌ์ง ์ดฌ์ ๋ฐ ํฌํ ์นด๋ ํธ์ง - ์คํฐ์ปค, ํํฐ, ํ, ๋ฉ๋ชจ, ์ฌ์ง ๋ถ๋ฅ
- ๋ ์ง/์ง์ญ/ํ ๋ง/ํด๋๋ณ ์ฌ์ง ๋ถ๋ฅ
- ๋น๋ฐ ์นด๋ ์ ๊ธ ์ค์
- ์นด๋ ๊ฒ์ ๋ฐ ์ ๋ ฌ ํต๊ณ ํ์ธ
- ์๋น์ค ์์ ์๋ฆผ ์์
- 4๊ฐ ๊ตญ์ด ์ง์(ํ๊ตญ์ด, ์์ด, ์ค๊ตญ์ด, ์ผ๋ณธ์ด)
| ๋ถ๋ฅ | ๊ธฐ์ ์คํ |
|---|---|
| UI Framework | |
| Asynchronous Programming | |
| Architecture | |
| Networking | |
| Database | |
| Libraries | |
| Apple Frameworks | |
| Tools | |
| Testing | |
| Firebase |
MVVM + Reactive Programming + Input/Output
- Protocol ๊ธฐ๋ฐ DI๋ฅผ ์ ์ฉํด ๋ฐ์ดํฐ ๋ ์ด์ด ์์กด์ฑ ๋ถ๋ฆฌ, ํ ์คํธ ์ฉ์ด์ฑ ํ๋ณด
- ์ธ๋ถ ์์กด์ฑ์ธ ๋ฐ์ดํฐ๋ฒ ์ด์ค, ๋คํธ์ํฌ๋ง DI๋ก ๋ถ๋ฆฌํ์ฌ ํต์ฌ ๋น์ฆ๋์ค ๋ก์ง ํ ์คํธ
- ๋๋ฉ์ธ ์๊ตฌ์ฌํญ์ ์ฆ์ ๋ณํ๋ก ์ธํด ๊ณผ๋ํ ์ถ์ํ ๋ฐฐ์ , MVVM์ผ๋ก ๊ด์ฌ์ฌ ๋ถ๋ฆฌ
๋ฐ์ดํฐ๋ฒ ์ด์ค ์ค๊ณ
- Card-Sticker 1:N ์ ๊ทํ ๊ด๊ณ ์ค๊ณ
- ๋ ์ง ๊ธฐ๋ฐ ์ธ๋ฑ์ค ํ์ฉํ์ฌ ์ฟผ๋ฆฌ ์ต์ ํ
- ๋ฐ์ดํฐ๋ฒ ์ด์ค ๋ณ๊ฒฝ์ฌํญ ๋ฐ์์ Observable ์คํธ๋ฆผ์ผ๋ก UI ์ค์๊ฐ ๋๊ธฐํ
DTO ํจํด
- Realm ๊ฐ์ฒด์ ์ค๋ ๋ ์ ์ฝ์ DTO ๋ณํ์ผ๋ก ํด๊ฒฐํ์ฌ ์์ ํ๊ฒ ๋ฐ์ดํฐ ์ ๋ฌ
- View๋ DTO๋ง ์ฐธ์กฐํ์ฌ write ํธ๋์ญ์ ์ถฉ๋ ๋ฐฉ์ง
์ด๋ฏธ์ง ์บ์ฑ ์ ๋ต (Kingfisher)
- ๋ฉ๋ชจ๋ฆฌ ์บ์๋ 100MB ๋๋ 100๊ฐ ์ด๊ณผ ์, ๋์คํฌ ์บ์ ๋ 500MB ์ด๊ณผ ์ LRU ๋ฐฉ์ ์ญ์ ๋ก ์ฉ๋ ์ ํ
- ๋ฉ๋ชจ๋ฆฌ ์บ์๋ 10๋ถ ํ ์๋ ์ญ์ , ์บ์๋ ๋์คํฌ 7์ผ ํ ์๋ ์ญ์ ๋ก ์๊ฐ ์ ํ
- Downsampling์ ํ์ฉํ์ฌ ์ธ๋ค์ผ 200x200, ์ค์ฌ์ฉ์ ๋ทฐ ํฌ๊ธฐ ์ด๋ฏธ์ง ์ฌ์ฉ
![]() |
![]() |
![]() |
![]() |
|---|
- ์๋ณ ์บ๋ฆฐ๋ ๋ทฐ(Custom Calendar)
- ๊ฐ ๋ ์ง์ ์ต๋ 4๊ฐ ํ์ (๋ ์ด์์ 3๊ฐ)
- ๋์ ๋ฏธ๋/์ต๋ ๋ ์ด์์ (1๊ฐ/2๊ฐ/3๊ฐ ์ง๋ ๋ฐฐ์น)
- ์ ์ด๋, ์ค๋ ๋ ์ง ํ์ด๋ผ์ดํธ
- MapKit ๊ธฐ๋ฐ ์ง๋
- ์ค ๋ ๋ฒจ์ ๋ฐ๋ผ ํ ํด๋ฌ์คํฐ๋ง
- ๋ํ ์ด๋ฏธ์ง ํ์ (์ ์ ์ฌ๋์ ๋ฐ๋ผ ์ฐ์ ์์ ํด๋ฌ์คํฐ ์ ๋ ฌ)
- ํด๋ฌ์คํฐ ๊ฐ์ ํ์
- Vision Framework ์ง๋ฅ ๋ถ๋ฅ (์ฌ๋/์์/์๋ฌผ/๋๋ฌผ/์ค๊ตญ์ด ๊ฐ์ฒด)
- ์ปค์คํ ํด๋ ์์ฑ/์์/์ผ์
- ํด๋๋ณ ์นด๋ ํํฐ๋ง
![]() |
![]() |
![]() |
|---|---|---|
![]() |
![]() |
![]() |
- RESTful API + offset ๊ธฐ๋ฐ ํ์ด์ง๋ค์ด์
- ๋๋๊ทธ/ํ์น/ํ์ ์ ์ค์ฒ ์ง์
- ์ ๊ท ์คํฐ์ปค ์ถ๊ฐ (์ฌ์ง ๋ผ์ด๋ธ๋ฌ๋ฆฌ ์ ๊ทผ)
- ๋ค์ค ์คํฐ์ปค ๋ฐฐ์น ์ง์
- ์ ๊ท ์คํฐ์ปค ์ถ๊ฐ ์ ํ ํ๋ฆฟ์์ ์ ํ ๊ฐ๋ฅํ๋๋ก ํ ์ ๊ณต
- ์์ ๊ทธ๋ฆฌ๊ธฐ
- ์คํ ์ทจ์/์ฌ์คํ ๊ธฐ๋ฅ
- 10๊ฐ์ง ํํฐ ์ ๊ณต
- ์ค์๊ฐ ํ๋ฆฌ๋ทฐ
- ๋ ์ง ์ ๋ ฅ (OCR ์๋ ์ถ์ถ, ๋ํดํธ ์ค๋)
- ๋ฉ๋ชจ ์ ๋ ฅ (OCR ํ ์คํธ Vision Framework ์ถ์ถ)
- ์์น ๊ฒ์ (MapKit ์ฅ์ ๊ฒ์, ํ์ฌ ์์น)
- ํด๋ ์ ํ
- ์์ฒด ์ธ์ฆ (Face ID/Touch ID, ์คํจ ์ ๊ธฐ๊ธฐ ๋น๋ฐ๋ฒํธ ์ฌ์ฉ)
![]() |
![]() |
![]() |
|---|---|---|
![]() |
![]() |
- ์์คํ ์นด๋ฉ๋ผ/์จ๋ฒ
- Photo Picker (์ ์ฒด ๋ผ์ด๋ธ๋ฌ๋ฆฌ ์ ๊ทผ)
- ๊ถํ ๊ธฐ๋ฐ ์์น ๊ทธ๋ฆฌ๋ (GPS/๋ด์ฌ ๋ฉํ๋ฐ์ดํฐ ํฌํจ)
- Limited/Authorized ๊ถํ๋ณ ๊ทธ๋ฆฌ๋ ๋ฐ์ดํฐ ํ ํ๋ฆฟ
- ๊ทธ๋ฆฌ๋ ํ์ ํ ๋ด/์ธ๋ถ์์ ์ ํ ๊ฐ๋ฅํ๋๋ก ๊ธฐ๋ฅ ์ ๊ณต
- ๋ ์ง ์ ํ
- ๋ฉ๋ชจ ์ ๋ ฅ (OCR ํ ์คํธ Vision Framework ์ถ์ถ)
- ์์น ๊ฒ์ (MapKit ์ฅ์ ๊ฒ์, ํ์ฌ ์์น)
- ํด๋ ์ ํ
- ์์ฒด ์ธ์ฆ (Face ID/Touch ID ์์ฒด ์ธ์ฆ, ์คํจ ์ ๊ธฐ๊ธฐ ๋น๋ฐ๋ฒํธ ์ฌ์ฉ)
![]() |
![]() |
![]() |
![]() |
|---|
- ๋ฉ๋ชจ (์๋ธํ ์คํธ ๊ฒ์) ์ ๋ ฅ, OCR ํ ์คํธ (Vision Framework ์ถ์ถ) ๊ฒ์
- Masonry Layout ๊ทธ๋ฆฌ๋
- ์ด ์นด๋ ์ / ์ด๋ฒ ๋ฌ ์นด๋ ์ / ์ฐ์ ์์ฑ ์ผ์ (Streak) ํต๊ณ
- ๋ง๋ ์ฐจํธ
์ผ๋ฐ
- ์ธ์ด ์ ํ (ํ๊ตญ์ด/์์ด/์ผ๋ณธ์ด/์ค๊ตญ์ด ๊ฐ์ฒด)
์๋ฆผ
- ์๋น์ค ์์ ํ ํฝ ๊ตฌ๋ ๋ฐฉ์ FCM Topic ๊ตฌ๋ ๊ด๋ฆฌ
์ง์
- ์ฑ ๋ฉ์ผ์ ํ์ฉํ ๊ฐ๋ฐ์ ๋ฌธ์
- ๊ธฐ๊ธฐ ์ ๋ณด ์๋ ์์ง
- ๋ฒ์ ๋ณ ๋ณ๊ฒฝ์ฌํญ ๋ฆด๋ฆฌ์ฆ ๋ ธํธ






















