- ์๋ก์ด ๊ณต์ง ์ฌํญ์ ์ฑ ํธ์ ์๋ฆผ์ผ๋ก ์ ๋ฌํ๋ ๊ณต์ง ์ฌํญ ์๋ฆฌ๋ฏธ์ ๋ํ ์ํ์ ํ์ํ ์ ๋ณด๋ฅผ ๋น ๋ฅด๊ฒ ์ ๋ฌํ๋ ์บ ํผ์ค ์ํ ์ ํธ๋ฆฌํฐ
- KNUTICE iOS ์ดํ๋ฆฌ์ผ์ด์ ๊ธฐํ, ์ค๊ณ, ๊ฐ๋ฐ, ๋์์ธ
Swift,iOS,UIKit,SwiftUI,MVVM,Clean Architecture,TCA,RxSwift,Combine,Swift Concurrency,Tuist,Alamofire,CoreData,Firebase,Xcode Cloud,XCTest
- Tuist ๋์ ์ ํตํ ๋ชจ๋ํ ๋ฐ ๋น๋ ์ฑ๋ฅ ๊ฐ์
- ์์ ฏ ์ต์คํ ์ ๋ฑ์์ ์ฑ ๋ชจ๋์ ๊ณต์ง ์กฐํ์ ๊ฐ์ ๋ก์ง์ ๊ฐ๊ฐ ๊ตฌํํด์ผ ํ์ผ๋ฉฐ, ๊ธฐ๋ฅ ๋ณ๊ฒฝ ์ ์์ ๋ฒ์๊ฐ ์ฌ๋ฌ ํ๊น์ผ๋ก ํ์ฐ๋๋ ๋ฌธ์ ๋ฐ์
- Swift ๊ธฐ๋ฐ ํ๋ก์ ํธ ์ค์ ์ผ๋ก ๋ฐ๋ณต์ ์ธ ์ธํ ๊ฐ ์ฌ์ฌ์ฉ, ๋ชจ๋ ๋จ์ ์บ์ฑ์ ํตํด ๋น๋ ์๊ฐ์ ๋จ์ถ, git์ xcodeproj ํ์ผ์ ํฌํจํ์ง ์์ Git ์ถฉ๋ ์ด์๋ฅผ ํด์ํ ์ ์๋ ์ฅ์ ์ ํ์ฉํ๊ธฐ ์ํด Tuist๋ฅผ ๋์ ํ์ฌ ํ๋ก์ ํธ๋ฅผ ๊ด์ฌ์ฌ๋ณ๋ก ๋ชจ๋ํํ๊ณ , Swift๋ฅผ ํ์ฉํ ํ๋ก์ ํธ ์ธํ ์ผ๋ก ๋ฐ๋ณต์ ์ธ ์ธํ ๊ฐ์ ์ฌ์ฌ์ฉ ๊ฐ๋ฅํ ๊ตฌ์กฐ๋ก ๊ฐ์
- ์ฝ๋ ์ฌ์ฌ์ฉ์ฑ์ ํ๋ณดํ๊ณ , ํด๋ฆฐ ๋น๋ ์๊ฐ์ 50์ด์์ 15์ด๋ก ๊ฐ์ ํ ์ ์์์
- Feature ๋ชจ๋ ๊ฐ ์ํ ์ฐธ์กฐ ๋ฌธ์ ๋ฅผ ์ธํฐํ์ด์ค ๊ธฐ๋ฐ์ผ๋ก ์์กด์ฑ ๋ถ๋ฆฌ
- Notice ๋ชจ๋์์ ๋ถ๋งํฌ ์ ์ฅ์ ์ํด Bookmark ๋ชจ๋์ ์ฐธ์กฐํด์ผ ํ๊ณ , Bookmark ๋ชจ๋์์๋ ๊ณต์ง ์กฐํ๋ฅผ ์ํด Notice ๋ชจ๋์ ์ฐธ์กฐํ๋ฉด์ ์ํ ์์กด์ฑ์ผ๋ก ๋น๋ ์๋ฌ ๋ฐ์
- Feature ๋ชจ๋์์ ๋ชจ๋ ๊ฐ ์ง์ ์ ์ธ ์์กด์ ํผํ๊ธฐ ์ํด ์ธํฐํ์ด์ค๋ก ์ถ์ํํ๊ณ , ์ค์ ์์กด์ฑ์ App ๋ชจ๋์์ ์ฃผ์ ํ๋๋ก ๋ณ๊ฒฝํ์ฌ ์ํ ์ฐธ์กฐ ์ด์ ํด๊ฒฐ
- ์ฑ ์ฌ๋ฐฉ๋ฌธ ๋น๋์ ์ฝํ ์ธ ์ ๊ทผ ๋น์จ์ด ๋ฎ์ ๋ฌธ์ ๋ฅผ UI ์ฌ๋ฐฐ์น๋ฅผ ํตํ ์ฝํ ์ธ ์๋น์จ ๊ฐ์
- ์ฌ์ฉ์๊ฐ ๊ณต์ง ์ฌํญ์ ํ์ธํ๋ ๋ชฉ์ ์ธ์๋ ์ฌ๋ฐฉ๋ฌธ ๋น๋๊ฐ ๋ฎ์๊ณ , ์ฑ ์ง์ ํ ์ฝํ ์ธ ์กฐํ ๋น์จ ๋ํ ์ฝ 38%์ ๋จธ๋ฌด๋ฅด๋ ๋ฌธ์ ๋ฐ์
- ์ฌ์ฉ์๋ค์ ์ด์ฉ ํจํด์ ๋ถ์ํ๊ณ 'ํ์ ๋ฉ๋ด ์กฐํ'์ '์ด๋์ค ์ข์ ์กฐํโ ๊ธฐ๋ฅ์ ๋ํ ์์๊ฐ ๋ง๋ค๋ ๊ทผ๊ฑฐ๋ฅผ ๋ฐํ์ผ๋ก ํ์ ๋ ๊ธฐ๋ฅ์ ๋ฉ์ธ ํ๋ฉด ์ต์๋จ์ ๋ฐฐ์น ์ ์
- ์ฑ ์ฌ๋ฐฉ๋ฌธ ํ์๋ ์ฝ 280% ์ฆ๊ฐํ์ผ๋ฉฐ, ์ง์ ํ ์ฌ์ฉ์๊ฐ ์์ฐ์ค๋ฝ๊ฒ ๊ณต์ง๊น์ง ํ์ธํ๋ ์ ์ํ ๊ตฌ์กฐ๊ฐ ํ์ฑ๋์ด ์ฝํ ์ธ ์กฐํ ๋น์จ์ด 58%๋ก ์ฆ๊ฐ
- Clean Architecture ๊ธฐ๋ฐ ๊ณ์ธต ๊ตฌ์กฐ ๊ฐํธ
- ๋น์ฆ๋์ค ๋ก์ง์ด ViewModel์ ๊ตฌํ๋์ด ์์ผ๋ฉด ํ ์คํธ ์ UI ๊ณ์ธต๊น์ง ํจ๊ป ํ ์คํธํด์ผ ํ๊ณ , ํต์ฌ ๋น์ฆ๋์ค ๋ก์ง์ ๋ ๋ฆฝ์ ์ผ๋ก ๊ฒ์ฆํ๊ธฐ ์ด๋ ค์ด ๋ฌธ์ ๋ฐ์
- ๊ธฐ๋ณธ์ ์ธ MVVM + Repository ํจํด์ ์ํคํ ์ฒ ๊ตฌ์กฐ์์ Clean Architecture ๊ธฐ๋ฐ์ผ๋ก ๋ฆฌํฉํ ๋งํ์ฌ ๊ณ์ธต ๊ฐ ์ฑ ์์ ๋ช ํํ๊ฒ ๋ถ๋ฆฌํ๊ณ ์์กด์ฑ์ ๋๋ฉ์ธ์ผ๋ก ํฅํ๋๋ก ๊ตฌ์กฐ ๊ฐ์
- ๊ณ์ธต๋ณ ๊ด์ฌ์ฌ๋ฅผ ๋ช ํํ๊ฒ ๋ถ๋ฆฌํ์ฌ ๊ฐ ๊ณ์ธต์ ๋ ๋ฆฝ์ ์ผ๋ก ๊ด๋ฆฌํ์ฌ ํ ์คํธ ์ฉ์ด์ฑ์ด ์ฆ๊ฐํ๊ณ , UIKit์์ SwiftUI๋ก ๋ณ๊ฒฝ ํน์ ๋ฐ์ดํฐ ๊ณ์ธต์ ์ฝ๋ ์์ ์ด ๋๋ฉ์ธ ๊ณ์ธต์ ์์ ์ ์ต์ํํ ์ ์์์
- ๋จ๋ฐฉํฅ ๋ฐ์ดํฐ ํ๋ฆ์ผ๋ก ์์ธก ๊ฐ๋ฅํ ๊ตฌ์กฐ๋ก ๊ฐ์
- ViewModel์์ ๋ฐ์ดํฐ ์กฐํ, ๋ก๋ฉ ์ฒ๋ฆฌ, Alert ํ์ ๋ฑ ์๋ก ๋ค๋ฅธ ์์น์์ ์ํ ๊ฐ์ ์ง์ ์์ ํ๋ ๊ตฌ์กฐ๋ก ๊ตฌํ๋์ด ํน์ ์ํ๊ฐ ์ด๋ค ์ด๋ฒคํธ์ ์ํด ๋ณ๊ฒฝ๋์๋์ง ์ถ์ ํ๊ธฐ ์ด๋ ค์ด ๋ฌธ์ ์คใ ์์์น ๋ชปํ ํ๋ฉด ์ํ๊ฐ ๋ฐ์ํ๋ ๋ฌธ์ ์กด์ฌ
- ๋จ๋ฐฉํฅ ๋ฐ์ดํฐ ํ๋ฆ, State์ Effect์ ๋ ๋ฆฝ์ ์ธ ๊ด๋ฆฌ, ํ ์คํธ์์ ์ก์ -> ์ํ ๋ณํ ํ๋ฆ์ ๋จ๊ณ์ ์ผ๋ก ๊ฒ์ฆํ ์ ์๋ ๊ตฌ์กฐ๋ฅผ ๋์ ํ๊ธฐ ์ํด TCA ์ ํ
- TCA ์ํคํ ์ฒ๋ฅผ ๋์ ํ์ฌ ๋จ๋ฐฉํฅ ๋ฐ์ดํฐ ํ๋ก์ฐ ๊ธฐ๋ฐ์ผ๋ก ๋ชจ๋ ์ํ ๋ณ๊ฒฝ์ Reducer ๋ด๋ถ์์๋ง ๊ฐ๋ฅํ๋๋ก ๊ฐ์ ํ์ฌ ์ํ ์ถ์ ์ ๋ณต์ก๋๋ฅผ ๋ฎ์ถ๊ณ , ๋๋ฒ๊น ์ด ์ฉ์ดํด์ก์ผ๋ฉฐ, ํ ์คํธ ์ฉ์ดํ ๊ตฌ์กฐ๋ก ์ ํ๋์ด ์์ ์ฑ ํฅ์
ํ๋ก์ ํธ ๊ธฐํ๋ถํฐ ๊ฐ๋ฐ, ์ค์ ์ฑ์คํ ์ด ๋ฐฐํฌ์ ์ด๋ฅด๊ธฐ๊น์ง ์๋น์ค ๋ฐ์นญ๊ณผ ์ด์ ์ ๊ณผ์ ์ ์ง์ ์ฃผ๋์ ์ผ๋ก ๊ฒฝํํ ์ ์์์
- UIKit, SwiftUI
- AutoLayout์ ํ์ฉํ์ฌ ๋ค์ํ ํ๋ฉด ํฌ๊ธฐ์ ๋ฐฉํฅ์์ View๋ฅผ ๋ฐฐ์นํ๊ณ , ๋์ ์ผ๋ก ๋ณํ๋ UI ์์์ ์ ์ฐํ๊ฒ ๋์ํ๋ ๋ฐฉ๋ฒ์ ์๊ฒ ๋์์
- SwiftUI์ ๋ฐ์ดํฐ ์ํ์ ๋ฐ๋ฅธ View ๊ฐฑ์ ์๊ณ ๋ฆฌ์ฆ๊ณผ ๋ฐ์ดํฐ ์์กด์ฑ์ ๋ถ๋ฆฌํ์ฌ SwiftUI์ ์ฑ๋ฅ์ ํฅ์ํ๋ ๋ฐฉ๋ฒ์ ์๊ฒ ๋์์
- TCA
- TCA์ ๋จ๋ฐฉํฅ ๋ฐ์ดํฐ ํ๋ฆ์ ํตํด ์ํ ๋ณ๊ฒฝ์ ํ ๊ณณ์์ ๊ด๋ฆฌํ๊ณ , ์์ธก ๊ฐ๋ฅํ ๊ตฌ์กฐ๋ฅผ ๋ฐํ์ผ๋ก ์ ์ธํ UI์ ์ด์ ์ ๊ทน๋ํํ๋ ์ค๊ณ ๋ฐฉ์์ ์๊ฒ ๋์์
- Tuist
- Tuist๋ฅผ ํ์ฉํ ๋ชจ๋ํ ๊ตฌ์กฐ ์ค๊ณ๋ฅผ ํตํด ๊ธฐ๋ฅ ๋จ์๋ก ์์กด์ฑ์ ๋ถ๋ฆฌํ๊ณ , ๋น๋ ์๊ฐ ๋จ์ถ๊ณผ ์ฝ๋ ์ฌ์ฌ์ฉ์ฑ์ ๋์ด๋ ํ๋ก์ ํธ ๊ตฌ์ฑ ๋ฐฉ์์ ์๊ฒ ๋์์
- Combine, RxSwift
- ๋น๋๊ธฐ ๋คํธ์ํฌ ์์ฒญ๊ณผ ์๋ต์ ์ฒ๋ฆฌํ๊ธฐ ์ํด Publisher์ Subscriber ๊ธฐ๋ฐ์ ๋ฐ์ดํฐ ์คํธ๋ฆผ์ ์์ฑํ์ฌ ๋ฐ์ํ ํ๋ก๊ทธ๋๋ฐ์ ๊ตฌํํ๋ ๋ฐฉ๋ฒ์ ๋ํด ์๊ฒ ๋์์
- Combine์์ ์ ๊ณตํ๋ ๋ค์ํ ์ฐ์ฐ์(map, flatMap, merge, debounce ๋ฑ)๋ฅผ ํ์ฉํ์ฌ ๋ฐ์ดํฐ๋ฅผ ๋ณํ, ํตํฉํ๋ ๋ฐฉ๋ฒ์ ๋ํด ์๊ฒ ๋์์
- Swift Concurrency
- GCD ๋๋น Swift Concurrency๊ฐ ๊ฐ์ง๋ ์ฑ๋ฅ์ ์ฅ์ ์ ์ดํดํ๊ณ ์ฌ์ฉํ ์ ์์
- async/await, async-let, Task Tree, Actor ๋ฑ์ ํ์ฉํ์ฌ ๋น๋๊ธฐ ์ฝ๋์์ ๊ตฌ์กฐ์ ํ๋ก๊ทธ๋๋ฐ์ด ๊ฐ๋ฅํ๋๋ก ์ฝ๋๋ฅผ ์์ฑํ๋ ๋ฐฉ๋ฒ์ ์๊ฒ ๋์์
- Core Data
- Persistent Storage์ ๋ฐ์ดํฐ CRUD(์ ์ฅ, ์กฐํ, ๊ฐฑ์ , ์ญ์ ) ๋ฐฉ๋ฒ์ ๋ํด ์๊ฒ ๋์์
- CI/CD
- Xcode Cloud๋ฅผ ์ด์ฉํ CI/CD ํ๊ฒฝ ๊ตฌ์ถ ๋ฐ ๋น๋ ์๋ํ, ํ ์คํธ ์๋ํ, ๋ฐฐํฌ ์๋ํ ํ์ดํ๋ผ์ธ ๊ตฌ์ถํ๋ ๋ฐฉ๋ฒ์ ๋ํด ์๊ฒ ๋์์











