forked from mingulmangul/H6-CaArt
-
Notifications
You must be signed in to change notification settings - Fork 0
0814_retrospecitve
rbgus2002 edited this page Sep 2, 2023
·
1 revision
2023/08/14 - API ๊ฐ๋ฐ
์ค๋ ํ ์ผ
1. ๋ฐฑ์๋ ์ฃผ๊ฐ ์์
- ๋ฌผ๋ฆฌ์ ๋ฐ์ดํฐ๋ฒ ์ด์ค ๊ตฌ์กฐ
2. ๋ฐ์ดํฐ๋ฒ ์ด์ค๋ฅผ ์ํ ec2 ์ธ์คํด์ค ๊ต์ฒด
3. HTTPS ์ค์
4. API ๋ช
์ธ์ ์์ ๋ฐ ๊ฐ๋ฐ
์์ฌ์ด ์
1. ๋ฐ์ดํฐ๋ฒ ์ด์ค ๊ณต๋ถํ๊ธฐ
- ์ค๋ ์ฃผ๊ฐ ์์
์ ์ ๋ง ๋ชจ๋ฅด๋ ๋ด์ฉ ๋ฐ์ ์์ด์ ๋ง์ด ๋ฐ์ฑํ๋ค. DB๋ ์ด์ฌํ ๊ณต๋ถํด์ผ๊ฒ ๋ค.
2. API ๊ฐ๋ฐ ๋นจ๋ฆฌ ๋๋ด๊ธฐ
- ํ๊ณ ์ถ์ ์ผ, ํด์ผํ ์ผ์ ๋ง์๋ฐ ์์ด ๋๋ฆฐ ๊ฑด์ง ์ง๋๊ฐ ์ ๋๊ฐ๋ ๊ฒ ๊ฐ๋ค. ์ค๋์ ๊ทธ๋๋ ์ด์ฌํ ํ๋๋ฐ ์ ์ ๋ชฉํํ API ๊ฐ๋ฐ์ ๊ฑฐ์ ๋ชปํด์ ์ฌํ๋ค. ๋ง์ ์กฐ๊ธํ๊ฒ ๋จน์ง ๋ง๊ณ ์ฐจ๋ถํ๊ฒ ํด์ผ๊ฒ ๋ค..
ํ๋ง๋
ํ๋ฃจ ์ถ๊ทผ ํ ๋ค์ ํด์ผ๐ฅณ๐๐๐
* TODAY
- Hilt ๊ณต๋ถ ๋ฐ ์ ์ฉ
- ์ฝ๋ฃจํด ์ ์ฉ
- ์๋ฒํต์ ํ
์คํธ
- ์ง๋ฌธํ๋ฉด ui
- ์ต์
ํ๋ฉด ์๋ฒํต์
*LECTURE : App Distribution
- Build variant
- debug
- release
- Gradle build output format
- APK
-AAB ~ apk๋ฅผ split! -> gradle์์ ์ค์ ๊ฐ๋ฅ
+) install(์์ถ ํ๋ฆฌ๊ณ ๋๋ฐ์ด์ค์ ์ค์น๋ ๋), download(์ฑ์คํ ์ด์์ ๋ค์ด๋ฐ์๋)
- App signing
- Upload key : ๊ฐ๋ฐ์๊ฐ ๊ด๋ฆฌ (.jks -java key store)
- App signing key : ๊ตฌ๊ธ์ด ๊ด๋ฆฌ
+) key path์ ํ๊ธ์ด ์๊ฒ ์ฃผ์!
- Firebase App Distribution
+) ๋ฒ์ ๋ณ ๋ณ๊ฒฝ์ฌํญ์ ์ ๊ธฐ๋กํด๋๋ฉด ์ข์๊ฒ๊ฐ๋ค!
์ค๋ ํ ํ๋
1. hilt ์ค์
2. retrofit api ์
ํ
3. retrofit typeadapter ์๋ฌ ํด๊ฒฐ
4. trim api ์ฐ๋
ํ์ตํ ๋ด์ฉ
1. hilt ์ฌ์ฉ๋ฒ (module class, Annotation)
2. App Distribution
๊ณ ๋ฏผํด์ผํ ์
1. ์คํ๋ผ์ธ ๊ธฐ๋ฅ
2. api ํธ์ถ ์์
3. ํด๋์ค ๋ถ๋ฆฌ
๋ ํ์ตํด์ผ ํ ์
1. ํ๋๊ทธ๋จผํธ ์๋ช
์ฃผ๊ธฐ
์ค๋์ ๋ฐฑ์๋ API๊ฐ ์ผ๋ถ ๋์์ ์ฐ๋์ ์์ํ๋ค. ํ์คํ ๊ธฐ์กด UI๊ตฌ์ฑํ ๋๋ ๋๋ฏธ ๋ฐ์ดํฐ์ ์ฌ์ง๋ ์ฐจ๋ ์ด๋ฏธ์ง๊ฐ ์๋๋ผ ์๋ฌด ์ด๋ฏธ์ง๋ ๋ฃ์ด์ ํ๋ฉด์ ๋ณด๋ ์ฌ๋ฏธ๊ฐ ์์๋๋ฐ ์ค๋์ ์ฌ์ง์ด ๋ค์ด๊ฐ๋ ํ์คํ ์ฌ๋ฏธ์์๋ค. ๊ทธ๋ฆฌ๊ณ ๋์์ธ์๋ ๊ทน๋จ์ ์ธ ๊ฒฝ์ฐ์ ๋ํ ๋์์ธ์ด ์์ด์ ์ง์ ๋ฐ์ดํฐ๋ฅผ ๊ฐ์ ธ์จ ์ํฉ์์ ์กฐ๊ธ์ฉ ์์ ํ๋ฉด์ ํ๋ฉด์ ๋ง๊ฒ ๋ง์ถ๊ณ ์๋ค. ๋ด์ผ์ ํน ์ฌ๊ณ ์ถํ API๊ฐ ๋ ๋์ค๋ฉด ์ฐ๋ํ๋ฉด์ ๋ฆฌํฉํ ๋ง๋ ํด์ผ๊ฒ ๋ค.
๋ฒ์จ 3์ฃผ์ฐจ๋ค. ๋ญ์ง?
์๊ฐ์ด ์ฐธ ๋น ๋ฅด๋ค...
UI๋ ๊ตฌํ์ ๋์ถฉ ์๋ฃํ๋๋ฐ, ๋๋์ด API ์ฐ๋์ด ๊ฐ๋ฅํด์ ธ์ ์ค๋๋ถํฐ API์ฐ๋์ ์์ํ๋ค.
ํจ์นญ ํด์์ ์ฌ์ฉํ๋๋ฐ, ํ์
์ด ์ ๋์จ์ผ๋ก ๋ค์ด๊ฐ์ ํ์
๋จ์ธ์ด ํ์ํ๋๋ฐ, ์ด๋ป๊ฒ ํด๊ฒฐํ๋์ง ๊ฒฐ๊ตญ ์์ง ๋ชปํ๋ค.
๊ทธ๋์ ํจ์๋ฅผ 3๊ฐ๋ก ๋ถ๊ธฐํ๋๋ฐ, ๋ถ๋ช
๋ฐฉ๋ฒ์ด ์์ ๊ฒ ๊ฐ์๋ฐ !!! ์ผ๋จ ๊ธฐ๋ฅ ์์ฑ ๋ค ํ๊ณ ๋ฆฌํฉํ ๋งํ ๋ ์ด๋ป๊ฒ๋ ์์ ํด๋ด์ผ๊ฒ ๋ค ใ
๋ ํญ์ ๊ณ ๋ฏผ์ด์๋ ํธ๋ฆผํ์ด์ง ๋ชจ๋ฌ์ ์ผ์ชฝ์ผ๋ก ๋์ฐ๋ ๊ฒ์ผ๋ก ์ผ๋จ ์์ ํ๋ค. ์๋ฌด๋ฆฌ๋ด๋ ์๋ก ๋์ฐ๋๊ฑด UX์ ์ผ๋ก ๋ณ๋ก๋ผ๊ณ ์๊ฐํด์ ... -> ์ฌ์ค ๊ธฐ์ ์ ์ผ๋ก ๊ตฌํ์ด ํ๋ค ๊ฒ ๊ฐ์๋ค. ์ด๊ฑฐ ํ๋ ค๋ฉด ๊ตฌ์กฐ๋ฅผ ์์ ๋ค์์ด์ผ ํ๋๋ฐ, ์ง๊ธ ์์ด๋ฒ๋ฆฌ๋ฉด ๊ทธ๋ฅ ๋ฉํ๋ ์์ด์ง ๊ฒ ๊ฐ์์ ...ใ
ใ
์์ง ์์์ ํ API๊ฐ ์๋์์ ์ฐ๋์ ๋ชปํ์ง๋ง(์ด ๋ถ๋ถ์ด ์ ์ผ ๋ง๋ค๊ณ ์ถ์๋๋ฐ!) ๊ทธ ๋์ ๋ด์ผ์..์ฌ๊ณ ๊ทธ ๋ค์๋ ์ ๊ณตํต ์ปดํฌ๋ํธ๋ก ๋นผ๊ณ ์ถ์๋ ๋ถ๋ถ๋ค ๋นผ์ ์ ์ฒด์ ์ธ ์ฝ๋ ๋ฆฌํฉํ ๋ง์ ์ข ์ผ์ฐ ์งํํ ์๊ฐ์ด๋ค.
์๊ณ !
### <์์์ ํ๋ฆ>
- ๋ด์ผ ๊ณตํด์ผ์ด๋ผ ๊ธฐ๋ถ์ด ์ข๋คโฆ์ต๊ณ .. ์คํํ์ด๋จธ ๋ณผ ์๊ฐ์ ์ค๋
- ์ ์ 7์๊ฐ ์ค์ ๋๊ฐ ์ ์ผ ํ์ต ํจ์จ์ด ์๋์ค๋ ๊ฑฐ ๊ฐ๋ค. ์ค๋ ์ ์ 7์๊ฐ ์ค๊ธฐ ๋๋ฌธ์ ์ก์ฒด์ ์ผ๋ก๋, ์ ์ ์ ์ผ๋ก๋ ๊ณต๋ถํ๊ธฐ ์ข์ ์ปจ๋์
์ด์๋ค.
- RESTfulํ API๊ฐ ๋ฌด์์ธ์ง ๊ณ ๋ฏผํ๋๋ผ ์๊ฐ์ ์์์ ๋ชฉํํ๋ API ๊ฐ๋ฐ์ด ์๋๋ค. ์ ๋
๋น ๋ฅด๊ฒ ๋จน๊ณ ๋ง์ ๊ฐ๋ฐํด์ผ๊ฒ ๋ค.
- ๊ฐ๋ฐํ๋ ๊ฒ๋ณด๋ค ๊ธฐํ ๋ณด๋ฉด์ ๋ค์ด๋ฐํ๋ ๊ฒ ๋ ๊ณ ๋ฏผ๋๊ณ ์ด๋ ค์ด ๊ฑฐ ๊ฐ๋คโฆ.
### <ํธ๋
์ค๋ ๊ฐ์ - ๋ฌผ๋ฆฌ์ ๋ฐ์ดํฐ๋ฒ ์ด์ค ๊ตฌ์กฐ>
- ํ๋๋์คํฌ โ CHS ๊ตฌ์กฐ
- Cylinder, Head, Sector
- ์ โ Track ์ ํ
- ๋ถ๋น ํ์ ์ RPM 7200
- Sector ๋ณ ์์ญ์ ํฌ๊ธฐ๊ฐ ๋ค๋ฅด์ง๋ง ์ฉ๋์ ๊ฐ์ (๋ค๋ฅด๋ฉด Sector ๋ณ๋ก ํ์ ์๊ฐ ๋ฌ๋ผ์ผํด์ ๋ณต์กํด์ง)
- Locality ๋๋ถ์ random ์ ๊ทผ์ ๋นํด ์์ฐจ ์ ๊ทผ์ด ๋ ๋นจ๋ฆ
- ์์ฆ์ HDD ์
- `CREATE DATABASE` ํ๋ฉด ํ๋ ๋์คํฌ์ db์ด๋ฆ์ผ๋ก directory๊ฐ ์๊น
- `CREATE TABLE` ํ๋ฉด DATABASE ์์ table์ด๋ฆ์ผ๋ก file์ด ์๊น
- InnoDB๊ฐ ์ง์ํ๋ MVCC๋?
- ??????
- *Row Store*
- ๊ธฐ๋ณธ์ ์ผ๋ก RDB๋ ๋ ์ฝ๋(row) ๋จ์๋ก ์ ์ฅ
- *Column Store*
- ๋น
๋ฐ์ดํฐ์ ๊ฒฝ์ฐ Column Store๋ก ์ฌ์ฉํ๊ธฐ๋ ํจ
- Clustered Index
- ์ธ๋ฑ์ค๊ฐ ์๋ ์๋ฃ๊ตฌ์กฐ์ โ Root PAGE ~ Leaf๋ฅผ ์ง๋ Data PAGE๊น์ง ๋ชจ๋ ํต์นญํจ
- Data Pages๋ ๋ชจ๋ ์ ๋ ฌํด์ ์ ์ฅํจใด
- TABLE ์์ฑํ๋ฉด ๊ธฐ๋ณธ์ ์ผ๋ก PK์ ๋ํด์ ์ธ๋ฑ์ค๊ฐ ๋ง๋ค์ด์ง
- B+Tree
- **IO์ ๊ธฐ๋ณธ ๋จ์์ธ PAGE ์ฌ์ด์ฆ๋ก ๋
ธ๋ ํ๋์ ํฌ๊ธฐ๊ฐ ์ ํด์ ธ์์ (16KB) โ โHDDโ๋ฅผ ๊ณ ๋ คํ ์ต์ ํ**
- ํ๋์ ํ์ด์ง ์์์ ๋ฐ์ดํฐ๋ฅผ ์ด๋ป๊ฒ ์ฐพ์๊ฐ๊น?
- slot์ ๋์
ํ๊ณ b+tree์๋ leaf ๋
ธ๋์ RID ์ ์ฅ (RID โ page ๋ฒํธ + slot ๋ฒํธ)
- slot ๋ฒํธ๋ฅผ page ํฌ๊ธฐ์ ํ์ผ ์์ ๋๋ฉด ํฌ๊ธฐ์ ํ๊ณ๋ฅผ ๊ฐ์
- (heap์ด๋ stack์ด ๊ฐ๋ณ์ ์ผ๋ก ํฌ๊ธฐ๊ฐ ์ฆ๊ฐํ๋ค๊ฐ ๋ง๋๋ ๊ฑฐ์ฒ๋ผ) slot์ ๋งจ ๋์๋ค ๋๊ธฐ
- slot ๊ณต๊ฐ์ free slot ๊ฐ์๋ ๋จ์ size ๋ฑ meta data๊ฐ ์กด์ฌ
- ์ฌ์ค ์ญ์ ํ ๋ ํ์ด์ง ์ง์ฐ๋ ๊ฒ ์๋๋ผ delete ํ๋๊ทธ๋ก๋ง ์ฒ๋ฆฌํจ
- ๊ทธ๋์ ๊ณต๊ฐ์ ์ฐจ์งํด์ ํด๋น ์๋ฆฌ์ insert ๋ชปํจ *โํ์ง๋ง ํธํ์ฃ ?โ*
- ์ถํ์ ๋๋ฆฐ ์์
์ธ compaction์ ์ฌ์ฉํด์ ํด๋น ๊ณต๊ฐ ์ธ ์ ์๊ฒ ํด์ค
- ๋นํด๋ฌ์คํฐ ์ธ๋ฑ์ค์ RID๊ฐ ์๋ PK๊ฐ์ด ์๋ ์ด์ ๋?
- ํน๋ณํ ์ด๋ก ์ ์ธ ๋ฐฐ๊ฒฝ์ด ์๋ ๊ฒ ์๋๋ผ ๊ฒฝํ์ ์ผ๋ก ๊ตฌํํ๋๋ ์ด๊ฒ ์ข๋๋ผ
- (100๋ง ๊ฐ์ ๋ฐ์ดํฐ ์์ผ๋ฉด ๋์ถฉ B+tree์์ depth๊ฐ 3๊ฐ์ ๋์ (3๊ฐ๋ ๊ฑฐ์ ์๋ค))
- ์ค์ DB๊ฐ ์ด๋ป๊ฒ ๋์ํ๋์ง ์๊ธฐ ์ํด์๋? โ PostgreSQL ๋ฏ์ด๋ณด๊ธฐ (MySQL์ ์ฝ๋ ๋๋ฌ์)
๐ป [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
- [๊น์ ๋น] ์ปค์คํ ๋ค์ด์ผ๋ก๊ทธ ๊ตฌํ