νλ μ΄μ€ν μ΄μ μλλ‘μ΄λ μ±μ λ°°ν¬νκ³ μ΄μν κ²½νμ΄ μμ΅λλ€.
Jetpack Composeμ Coroutineμ ****λ€λ£¨λ κ²μ μ’μνλ©°, νμ μ±μ λμ΄λ μ± μν€ν
μ²μ κ΄μ¬μ΄ λ§μ΅λλ€. νμ¬λ νμ΄λΉμ€μ 근무νλ©° React Native μ±μ κ°λ°νκ³ μμ΅λλ€.
μ°¨νΈ, ν΄λ° λΌμ΄λΈλ¬λ¦¬λ₯Ό κ°λ°νμ¬ μ€νμμ€ μ μ₯μμ λ°°ν¬ν κ²½νμ΄ μμ΅λλ€. κ·Έ μ€ νλμΈ Time Chartλ μ’μμ 70κ°λ₯Ό λ¬μ±νμ΅λλ€.
π» Works
νμ΄λΉμ€
2023.12 ~ νμ¬
- **κ²μμ¬λ§ νλ¬μ€ μ±(React Native, MAU 10λ§, 10κ°κ΅ μ§μ) μ μ§λ³΄μ λ° λ κ±°μ κ°μ **
- API νΈμΆμ λ³λ ¬λ‘ μ²λ¦¬νλλ‘ μμ νμ¬ λλ²κ·Έ λͺ¨λ κΈ°μ€ Cold Start μλ 7.3μ΄μμ 6μ΄λ‘ κ°μ
- Axios, Zodλ₯Ό λμ
νμ¬ HTTP ν΅μ μ½λ μ μ§λ³΄μμ± ν₯μ λ° μμ μ± κ°μ
- Typescript any νμ
μ κ±° λ° Eslint λμ
μΌλ‘ μ± μμ μ± κ°μ
- μ¬μ©μκ° νλ μ΄μ€ν μ΄λ‘ λ³΄κ³ ν βλ³΄μ€ μλ¦Όμ΄ κ°λμ© μΈλ¦¬μ§ μλλ€βλ μ΄μ ν΄κ²°
- λμ¦λͺ¨λλ₯Ό κ°μ νλ ADB λͺ
λ Ήμ΄μ λ°°ν°λ¦¬ μ΅μ ν μ΅μ
μΌλ‘ μ΄μ μ¬ν
AlarmManager
μ μλ μ΅μ
μ SET_ALARM_CLOCK
μΌλ‘ μμ νμ¬ ν΄κ²°
νμ΄λΉμ€ μΈν΄
2023.10.10 ~ 2023.12.01 (8μ£Ό)
- OTP μΈμ¦ κΈ°λ₯ Android μν μ± κ΅¬ν
- Coroutine SharedFlowλ‘ OTP μ½λ κ° 30μ΄λ§λ€ κ°±μ νλ λ‘μ§ κ΅¬ν
- FCM νΈμ μλ¦Όμ μ΄μ©νμ¬ μΈμ¦ μμ²μ΄ μμ λ μ±μ λ€λ₯Έ μ± μμ νμνλ κΈ°λ₯ ꡬν
- κ²μμ¬λ§ νλ¬μ€ μ±μ μ±ν
κΈ°λ₯μ μΆκ°νλ κ³Όμ
- WebSocket μλ², API μλ²μ λ€νΈμν¬ ν΅μ
- μ€νλΌμΈ μ°μ (Offline-first) κΈ°λ₯ ꡬν
π» Projects

곡λΆνλ λλΆ
μκ°: μΊ μ μΌκ³ 곡λΆνλ λͺ¨μ΅μ 곡μ νλ©° λͺ°μ
λλ₯Ό ν₯μνλ νμ ν΅ν μλΉμ€
λ§ν¬: GitHub
- μ‘Έμ
μν 70ν μ€ μ°μμ
- Compose 100% UI κ°λ°
- λμμΈ μμ€ν
λͺ¨λμ λΆλ¦¬νμ¬ μ¬μ¬μ©μ± ν₯μ λ° κ²°ν©λ κ°μ
- μν νΈμ΄μ€ν
μ ν΅ν΄ Stateless μ»΄ν¬μ λΈ ν¨μ μμ£Όλ‘ κ΅¬ννμ¬ μ¬μ¬μ©μ± ν₯μ
- UI State Holder ν¨ν΄μ λμ
νμ¬ νμ ν΅ν UI μ½λ 볡μ‘λ κ°μ
- **λͺ¨λνλ₯Ό λμ
**νμ¬ νλ‘μ νΈ κ²°ν©λ κ°μ λ° λΉλ μλ κ°μ
- νλ‘μ νΈλ₯Ό app, feature, core λͺ¨λλ‘ λΆλ¦¬
- feature λͺ¨λμ ui, domain(optional), data λͺ¨λλ‘ λΆλ¦¬νμ¬ μ¬μ¬μ©μ± ν₯μ
- Kotlinκ³Ό Coroutineμ νμ©νμ¬ νμ ν΅ν μ½λ νμ§ κ°μ
- μ»΄νμΌ νμ μμ μ±μ μν΄ sealed classλ‘ μμΌ μ΄λ²€νΈ κ°μ²΄ ꡬν
- ViewModelμ΄ SocketServiceμ μμΌ μ΄λ²€νΈ Flowλ₯Ό ꡬλ
νλ λ°©μμΌλ‘ λΉμ¦λμ€ λ‘μ§κ³Ό μμΌ ν΅μ μ½λ λΆλ¦¬
- νμ
λμμ΄λμ νμ
νλ©° 1px λ¨μκΉμ§ λ¬Έμ μμ΄ κ΅¬ννκΈ° μν΄ λ
Έλ ₯
Android
Kotlin
Compose
Coroutine
MVI
Hilt
SocketIO
Retrofit2
OkHttp3
JUnit4

POCS λΈλ‘κ·Έ μ±
μκ°: νμ±λνκ΅ POCS μλͺ¨μ λΈλ‘κ·Έ Android μ±
λ§ν¬: GitHub, Play Store
- Retrofitκ³Ό Coroutineμ μ΄μ©νμ¬ λΉλκΈ° HTTP ν΅μ μ½λ ꡬν
- Coroutine async ν¨μλ₯Ό μ΄μ©νμ¬ API μλ΅ μκ° λ¨μΆ
- OkHttpμ Interceptorλ‘ μμΈμ€ ν ν° κ΄λ¦¬
- λͺ¨λ°μΌμμ νΈλ¦¬νκ²Β λ§ν¬λ€μ΄ νμμ κΈ μμ±μ λμμ£Όλ λ§ν¬λ€μ΄ ν΄λ° **λΌμ΄λΈλ¬λ¦¬ κ°λ° λ° maven centralμ λ°°ν¬**
- GitHub Actionsλ‘ CI/CDλ₯Ό ꡬμΆνμ¬ κ°λ°μλ§ μ§μ€ν μ μλ νκ²½ μ 곡
- ν¨κ» μ±μ₯νκΈ° μν΄ μ κ·Ήμ μΌλ‘ μ½λ 리뷰μ νμ΄ νλ‘κ·Έλλ° μ§ν
Android
Kotlin
Coroutine
MVVM
Hilt
Retrofit2
OkHttp3
ViewBinding
JUnit4
Esspresso

νμ±λνκ΅ κ³΅μ§μ¬ν μ±
μκ°: λͺ¨λ°μΌμμ νΈλ¦¬νκ² νμ±λνκ΅ κ³΅μ§μ¬νμ μ΄λνλ μ±
λ§ν¬: GitHub, Play Store
- ν€μλλ₯Ό ν¬ν¨ν 곡μ§κ° μλ‘ κ²μλλ©΄ μλ¦Όμ μ μ‘νλ κΈ°λ₯ ꡬν
- μ€ν¬λν μλ²κ° 10λΆλ§λ€ νκ΅ κ³΅μ§μ¬ν λͺ©λ‘ νμΈ
- μλ‘μ΄ κ³΅μ§μ¬νμ΄ λ±λ‘λ κ²½μ° μ¬μ©μλ€μ ν€μλλ₯Ό λΉκ΅νμ¬ FCM ν ν½κΈ°λ° push μλ¦Ό μ μ‘
- MVVM ν¨ν΄μ λμ
νμ¬ λ·°μ λΉμ¦λμ€ λ‘μ§μ λΆλ¦¬
Android
Kotlin
Coroutine
MVVM
Hilt
Retrofit2
OkHttp3
ViewBinding
JUnit4

λλ¨ΉμκΉ μ±
μκ°: νμ¬ μμΉ κΈ°λ° μ£Όλ³ μλΉ μλμ»΅, λλ€ μΆμ² κΈ°λ₯μ μ 곡νλ μ±
λ§ν¬: Play Store
-
Naver Map SDKλ₯Ό μ΄μ©νμ¬ μλΉ μΆμ² λ°μ μμΉ μ ν κΈ°λ₯ ꡬν
-
Kakao κ²μ APIμμ μλΉ κ²μ κ²°κ³Ό μμ μ΄λ―Έμ§κ° μλ κ²°κ³Όλ€μ΄ λ§μ΄ ν¬ν¨λ¨
β 5,000μ₯μ μμ μ¬μ§μΌλ‘ Tensorflow Lite λͺ¨λΈμ λ§λ€μ΄ μ΄λ―Έμ§λ₯Ό [μμ/μμμλ]μΌλ‘ λΆλ₯
β Dart Isolateλ‘ μ΄λ―Έμ§ λΆλ₯λ₯Ό λ³λ ¬ μννμ¬ μνμλ λ¨μΆ
β βμμ μλβ μ¬μ§μ μ μΈνμ¬ μ¬μ©μ κ²½ν ν₯μ
-
Flutter
Dart
Provider
Tensorflow Lite
Firebase
βοΈ Open Sources