forked from mingulmangul/H6-CaArt
-
Notifications
You must be signed in to change notification settings - Fork 0
0808_retrospecitve
rbgus2002 edited this page Aug 10, 2023
·
1 revision
2023/08/08
์ค๋ ํ ์ผ
1. github actions ์์ ..
- ๋๋ ์ค ์์๋๋ฐ ํ
์คํธ๊ฐ ๊ณ์ ์คํจํด์ ์๊พธ๋ง ์์ ํ ๊ฒ ์๊ธด๋ค..^^
2. ๋ฐฐํฌ ์์
- ํ์ํ ์ธํ๋ผ ๋ง๋ จํ๊ณ ๋๋ฉ์ธ ์ฌ์ ์ฐ๊ฒฐํ๋ค. ๋น ๋ฅด๊ฒ ์๋ฃํ๊ณ API ๊ฐ๋ฐํ๊ณ ํ๋ก ํธ๋ ์ฐ๋ํด์ ๋ฐ๋ชจ ์์ ์ฐ์ด์ผ์ง
์์ฌ์ด ์
1. ์ฝ๋ ๋ฆฌ๋ทฐ ๋ ๊ผผ๊ผผํ๊ฒ
- ์ฐ๋ฆฌ ํ ์๋๋ก์ด๋ ๋ถ๋ค ์ฝ๋๋ฆฌ๋ทฐ์์ ์ฝ๋ฉํธ๊ฐ 10~20๊ฐ์ฉ ๋ฌ๋ฆฌ๋ ๊ฑธ ๋ณด๋ ๋ฐ์ฑํ๊ฒ ๋๋ค.. ๋ฐฑ์๋๋ ๋ ๊ผผ๊ผผํ๊ฒ ์ฝ๋ ๋ฆฌ๋ทฐํ๊ธฐ๋ก ํด์ผ์ง.
2. ๊น์ด ์ด๋ ต๋ค
- ์ฃผ๋ณ์ ๊น ์ถฉ๋ ๋๋ฌธ์ ๊ณ ์ํ๋ ํ๋ค์ ๋ดค๋๋ฐ ์ค๋ ์ฐ๋ฆฌ ํ๋ ๊ฒฐ๊ตญ ํ๋ก ํธ๋ ์๋๋ก์ด๋ ํ์ผ์ด ์์๋ค. ํ์ผ๋ช
์์ ํ์ ๊ฑธ ๋ด๊ฐ ๋ค์ ๋ฐ๊ฟ๋ฒ๋ ค์ ์ฃ์กํ๋ค..๐ฅฒ ๋ธ๋์น๋ฅผ ๋ ์กฐ์ฌํ ๊ด๋ฆฌํด์ผ๊ฒ ๋ค.
ํ๋ง๋
์ค๋๋ฐ๋ผ ์ ๋
์กธ๋ฆฌ๊ณ ์ง์ค์ด ์๋๋ค.. ๋ง์์ ๊ธํ๋ฐ ์ฒด๋ ฅ์ด ์ ๋ฐ๋ผ์ค์ ์ฌํ๋ค. CS ๊ณต๋ถ๋ ํด์ผ ํ๋๋ฐ ์ธ์ ํ์ง
* TODAY
- ์ต์
์์ธ ๋ค์ด์ผ๋ก๊ทธ ๋ง๋ค๊ธฐ
- ๋๊ทธ๋ผ๋ฏธ ์ธ๋์ผ์ดํฐ๋ทฐ ์ ์
- ํ
์คํธ ์ธ๋์ผ์ดํฐ ๋ง๋ค๊ธฐ
- ๋ผ์ด๋ฉ
- ๋ทฐํ์ด์ ๊ตฌํ
*LECTURE : ์ํคํ
์ฒ , ์์กด์ฑ ์ฃผ์
- SoC(Seperation of Concern) : ๊ด์ฌ์ฌ ๋ถ๋ฆฌ
: ๊ด์ฌ์ฌ์ ๋ฐ๋ผ ๊ณ์ธต ๋ถ๋ฆฌ
: ex ) data, ui layer
- ๋ฐ์ดํฐ ๋ชจ๋ธ : ๋ผ์ดํ ์ฌ์ดํด ์ํฅ ์๋ฐ์
- persistent model
: ์ฑ ์ข
๋ฃ์ ์ ๋ณด ์์ค ์๊ณ ๋คํธ์ํฌ ์ฐ๊ฒฐ ์ํด๋ ๋์๊ฐ๋ฅ
: DB๋ก ๊ตฌํ๊ฐ๋ฅ
: ์คํ๋ผ์ธ ๋ชจ๋
- ๊ณ์ธต ๋ถ๋ฆฌ
: UI / Domain(optional) / Data
-Data Layer
: Repository
~ ์ฑ์ ๋ฐ์ดํฐ ๊ด๋ จ ์ฌํญ ๋ด๋น
~ ๋ฐ์ดํฐ ์์ค ์ถ์ํ
~ ๋ค์ด๋ฐ์ '๋ฐ์ดํฐ์ ํ+Repository'
: DataSource
~ ์ข
๋ฅ remote,local
~ ๋ค์ด๋ฐ์ '๋ฐ์ดํฐ์ ํ + ์์ค ์ข
๋ฅ + DataSource'
- main-safe
: ๋ฉ์ธ์ค๋ ๋์์ ํธ์ถํด๋ ์์ ํ๊ฒ ์์ฒญ ์์
์ํ
: ์ฝ๋ฃจํด ์ฌ์ฉ์ Room, Retrofit๋ ์ง์
: ์ง์ ๊ตฌํ์ ์ ๊ฒฝ์จ์ผํจ
- ์์กด์ฑ ์ฃผ์
: ํ์๊ฐ์ฒด๋ฅผ ์ธ๋ถ์์ ์ฃผ์
* ์ฅ์
1. ์ฝ๋ ์ฌ์ฌ์ฉ๊ฐ๋ฅ
2. ๋ฆฌํฉํ ๋ง ํธ์์ฑ
3. ํ
์คํธ ํธ์์ฑ
* ์ธ์คํด์ค ์์ฑ์ ์์กด์ฑ ์ฃผ์
์ด ์๋๋ผ ์์กด์ฑ ์๋๊ฑฐ
* ํ๋ผ๋ฏธํฐ๋ก ์ ๊ณต -> ์์กด์ฑ ์ฃผ์
- ์์ฑ์ ์ฃผ์
: ํ๋๊ทธ๋จผํธ, ์กํฐ๋นํฐ๋ ๋ถ๊ฐ๋ฅ, ์์ฑ์์ ๋ค๋ฅธ ๊ฐ์ฒด๋ ๋ถ๊ฐ๋ฅ
-field(setteer)์ฃผ์
+) Q. ์๋น์ค ๋ก์ผ์ด์
ํจํด์ผ๋ก ์์กด์ฑ ์ฃผ์
-> ์ง์ํ๋๊ฒ ์ข๋ค๋ ์๊ฒฌ์ด ๋ง๋ค.
* KEYWORD
- typeface
- ์ฝ๋ฃจํด
- ์์กด์ฑ ์ฃผ์
์ค๋ ๋ฐฐ์ด ๋ด์ฉ
1. Domain Layer
2. Data Layer
3. Dependency Injection
4. Data Source
5. ์์ฑ์ ์ฃผ์
, ํ๋ ์ฃผ์
์ค๋ ํ์ผ
1. ์์ ์ ํ ํ์ด์ง ์ฝ๋ ๋ฆฌ๋ทฐ ๋ฐ ๋ฆฌ๋ทฐ ๋ด์ฉ ๋ฐ์
2. ํธ๋ฆผ ์ ํ ํ์ด์ง ๋ ์ด์์ ๊ตฌ์ฑ
ํด์ผํ ์ผ
1. ViewModelFactory ์ฝ๋ ๊ฐ์
2. ํธ๋ฆผ ์ ํ ํ์ด์ง ๋๋จธ์ง ๊ตฌํ
3. Domain Layer ์์ ์ฐพ์๋ณด๊ธฐ
์ค๋๋ ์ค์ ์๋ ์์
์์ ๋ฆฌ์กํธ ๋ผ์ฐํฐ์ ๋ํด์ ๋ฐฐ์ ๋๋ฐ ํ์คํ ์ด๋ฒ ํ๋ก์ ํธ์์ ์ด๋ป๊ฒ ์ฐ๋ฉด ์ข์์ง ๊ณ ๋ฏผํ๊ฒ ๋๋ ์ข์ ์๊ฐ์ด์๋ค.
์คํ์๋ ์ด์ ์ ์ด์ด์ ๊ณ์ํด์ ์ฝ๋๋ฅผ ์์ฑํ๋ค. ์ต์
์ ํ ํ๋ฉด์ ๊ตฌํํ๊ณ ์๋๋ฐ ํ๋ก์ ํธ์์ ๊ฐ์ฅ ๋ฒ์๊ฐ ํฐ ํ์ด์ง๋ผ ๊ฝค๋ ํ๋ค๋ค. ์ด์ ๋ง๋ค์ด๋ ์ปดํฌ๋ํธ๋ค์ ์กฐํฉํ๋ฉด์ ํ์ด์ง๋ฅผ ๋ง๋ค๊ณ ์๋๋ฐ ์๊ฐ๋ณด๋ค ์ปดํฌ๋ํธ ์ฌํ์ฉ์ด ํ๋ค๋ค. ๋ํ ๋์์ธ์ ๋ชจ๋ ๊ฒ์ด ๋ช
์๋์ด ์์ง ์์์ ํ์์ด๋ ๋ค๋ฅธ ํ์ฌ๋๋ค๊ณผ ์๋
ผํ๊ณ ์ข์๋ณด์ด๋ ๋ฐฉํฅ์ผ๋ก ๊ตฌํํ๋ ค๊ณ ํ๋ค.
๊ทธ๋ฆฌ๊ณ ์ค๊ฐ์ ํฌ๋กฑ๊ณผ ์ด์ผ๊ธฐํ๋ฉด์ ์ํ๋ฅผ props๋ก ์๋๋ก ๋ด๋ ค์ฃผ๋ ๊ฒ์ ๋๋ฌด ๊ฑฑ์ ํ์ง ๋ง๋ผ๊ณ ํด์ ์์์ด ๋์๋ค. ์ฝ๋์ ๋ณต์ก์ฑ์ด ์กฐ๊ธ ์ฌ๋ผ๊ฐ๊ธด ํด๋ ์ด๋์ ๋๋ ํํ์ด ํ์ํ ๊ฒ ๊ฐ๋ค.
๋ด์ผ์ ์ต์
์ ํ ํ์ด์ง๋ฅผ ์ด๋์ ๋ ๋๋ผ ์ ์์ผ๋ฉด ์ข๊ฒ ๋ค.
๋๋ฒ์งธ ๋ ์ด๋ค !
์ด์ ๋ฐค์ ํธ๋ฆผ ํ์ด์ง ๋ง๋ฌด๋ฆฌํ๋ ค๊ณ ๋
ธ๋ ฅํ๋๋ฐ ์คํจํด์ ์ค๋์ ๊ผญ ! ๋ฐ๋์ ! ๋ง๋ฌด๋ฆฌ ํด์ผ ๊ฒ ๋ค๊ณ ์๊ฐํ๋๋ฐ ์ผ๋จ ๋์ถฉ์ ๋ง๋ฌด๋ฆฌ๋ฅผ ๋๋๋ค.
์ค๋๋ ๋ชจ๋ฌ์ ์ด๋ป๊ฒ ์ฒ๋ฆฌํด์ผํ๋ ... ๊ณ ๋ฏผ์ ์ ๋ง ๋ง์ดํ๋๋ฐ ์ผ๋จ ์์๋ฐฉํธ์ผ๋ก ์คํฌ๋กค์ํ๋ฉด ๋ชจ๋ฌ์ ์ง์ฐ๋ ํ์์ผ๋ก ๊ตฌํํ๋ค. ์ฌ์ฉํด๋ณด๋ ์ผ๋จ ๋ญ ๊ด์ฐฎ์ ๊ฒ ๊ฐ์ผ๋ฉด์๋, ๊ธฐ๋ณธ ์ต์
์ ๋๋ ์ ๋ ๋จ๋ ๋ชจ๋ฌ์ ์ด๋ป๊ฒ ๋์์ผ ํ ์ง(์คํฌ๋กค์ ์๋ก ์ฌ๋ ค์ ์ต์
์ ๋๋ฅด๋ฉด ๋ชจ๋ฌ์ด ๊ฐ๋ฆผ) ๋ ๊ณ ๋ฏผ์ ํด๋ด์ผ๊ฒ ๋ค.
๊ทธ ์ดํ ์์์ ํ ํ์ด์ง ์ด์๋ฅผ ํ๊ณ ํ
์คํฌ๋ฅผ ์ธ๋ถํํ๋ค. ์ํ๋์ด ๊ฐ๋ฐํ๊ณ ์๋ ์ต์
ํ์ด์ง๊ฐ ์ ๋ง ๊น๋ค๋ก์์, ๋ด๊ฐ ์์ํ์ด์ง๊น์ง ์๋ฃํด์ผ ์๊ฐ์ด ๋ง์ ๊ฒ ๊ฐ๋ค. ์์ ํ์ด์ง ์ด๋ ค์๋ณด์ด๋๋ฐ ใ
ใ
์ค๋ ์คํ์ API์ฐ๋์ ๊ฐ๋จํ๊ฒ๋๋ง ํด๋ณผ ์ ์์๊น? ํ๋๋ฐ, ๋ฐฑ ์๋ฒ์ชฝ์์ ์ค๋ฅ๊ฐ ๋์ API๋ฅผ ์ฌ์ฉํด๋ณด์ง ๋ชปํ๋ค. ์กฐ๊ธ ์์ฝ๋ค!
์ค๋ ํฌ๋กฑ ์์
์์ ํ์คํ ๋ฆฌ์ ๋ํด ๋ฐฐ์ ๋๋ฐ, SPA์์๋ ํ์คํ ๋ฆฌ ๊ด๋ฆฌ๊ฐ ๋๋ค๋ ๊ฒ์ด ์ ๊ธฐํ๋ค. ๊ทธ๋ฆฌ๊ณ ์นด์นด์ค๊ฐ์ ๋๊ธฐ์
์ด ๊ทธ๊ฑธ ์ฒ๋ฆฌ ์ํ๋ค๋ -!
ํ์๋์ด ํ๋ฉด ์ ๋๋ฉ์ด์
์ ์ ๋ง ์์๊ฒ ์ฃผ์
์, ๋๋ ํธ๋ฆผ ํ์ด์ง์ ์ ๋๋ฉ์ด์
์ ์ค๋ณด๋ ค๊ณ ํ๋ค !! ์ค๋ ์กฐ๊ธ ํด๋ดค๋๋ฐ, ์๊ทผ ์ฝ์ง ์๋ค? ใ
ใ
๋ด์ผ์ ์ ๋๋ฉ์ด์
+ ์ปฌ๋ฌ์ ํ ํ์ด์ง ์กฐ๊ธ ํด๋ณด๊ธฐ๋ก ๋ชฉํ๋ฅผ ์ก์์ผ๊ฒ ๋ค.
๋นจ๋ฆฌ๋นจ๋ฆฌ ์ด์ฌํ ํ์ !!!
- ์ค๋์ ์์
์์ด ์ค๋ก์ง ๊ฐ๋ฐ์๋ง ์ง์คํ ์ ์๋ ์๊ฐ์ด ๋ง์๋ค. ๊ตณ๊ตณ
- ํธ๋ฆผ ์ ๋ณด ์กฐํ API
- ์ต์
์ธ๋ถ ์ ๋ณด ์กฐํ API
- ๋ ์ด์ด ๋
๋ฆฝ์ ์ผ๋ก test code๋ฅผ ์ง์ผ ํ๋ค๊ณ ๋ ํ์ง๋ง Contoroller๋ test code๋ฅผ ์ง์ผ ํ๋์ง ์๋ฌธ์ด๋ค. ๋ณดํต ๋์ ๊ฒฝ์ฐ์๋ Controller์์ service๋ฅผ ํธ์ถํ๊ณ ๊ทธ ๊ฐ์ ๊ทธ๋๋ก client์๊ฒ response ํด์ฃผ๋๋ฐ, service layer์์ ์ง test code๋ก ์ถฉ๋ถํ ๊ฑฐ ๊ฐ๋ค๋ ์๊ฐ์ด ๋ ๋ค. ์ค๋ ๋ฐค๊น์ง ๊ณ ๋ฏผํด๋ณด๊ณ ํ์คํ๊ฒ ์ ํด์ผ๊ฒ ๋ค..!
- ์๊ฐ๋ณด๋ค ๊น์ ์ ๋ชจ๋ฅด๋ ๊ฑฐ ๊ฐ๋ค.. ์ฃผ๋ง์ ํ์ฉํด์ git ๊ณต๋ถํด์ผ๊ฒ ๋ค
๐ป [H6-CaArt] โDone is better than perfectโ ๐ป
- [์ต๊ทํ] Sentry ๋์ ๊ธฐ (feat. ๋ก๊ทธ ๊ด๋ฆฌ)
- [์ต๊ทํ] GPT3.5 ๋ชจ๋ธ์ ํ์ฉํด์ ์ถ์ฒ ๋ฌธ๊ตฌ ์์ฝํ๊ธฐ
- [์ต๊ทํ] ์คํ๋ง์์ OpenAI API ์ฑ๋ฅ ๊ฐ์ ๊ธฐ
- [๊ถ๋ฏผ์] CaArt CI/CD ๊ตฌ์ถ ๊ณผ์
- [๊ถ๋ฏผ์] ์ฑํ๋ฅ ๊ณ์ฐ ๋ก์ง ๊ฐ์ - Index tuning๊ณผ Batch processing
- [์ด์นํ] useReducer, useContext๋ฅผ ์ฌ์ฉํ ์ ์ญ ์ํ ๊ด๋ฆฌ with React, TS
- [์ด์นํ] ํ๋กํ ํ์ ํจํด์ด๋?
- [์ด์นํ] UX ๊ฐ์ ์ ์ํ ์ด๋ฏธ์ง ํ๋ฆฌ๋ก๋ฉ With Promise
- [์์ํ] ํ์ ์คํฌ๋ฆฝํธ ์ ๋ค๋ฆญ์ด๋?
- [๋ฐ์ธ์] Android์ Data Binding: DataBindingUtil vs Binding.inflate
- [๋ฐ์ธ์] DI, Hilt ๋ฝ๊ฐ๊ธฐ
- [๋ฐ์ธ์] Retrofit ๋์ ๊ธฐ
- [๋ฐ์ธ์] 360๋ Spin Image Touble Shooting
- [๊น์ ๋น] ์ปค์คํ ๋ค์ด์ผ๋ก๊ทธ ๊ตฌํ