-
Notifications
You must be signed in to change notification settings - Fork 0
Home
Youngin Kim edited this page Dec 14, 2023
·
10 revisions
์ฌํ ์ผ์ ์ ํ์๋ผ์ธ์ผ๋ก ๊ธฐ๋กํ๊ณ ๊ณต์ ํ๋ ์ฌํ SNS ์๋น์ค์ ๋๋ค.
๋๋ง์ ์ฌํ์ ๊ณต์ ํ๊ณ ๋ค์ํ ์ฌํ๋ค์ ๋ง๋๋ณด์์ :)
๋๋ ๋น์ทํ ์ทจํฅ๊ณผ ํ๊ฒฝ์ ๊ฐ์ง ๋ค์ํ ์ฌํ๋ค์ ๋ง๋๊ณ ๋๋ง์ ์ฌํ ๊ณํ์ ์ง๋ณด์์ !
- ์ง์ญ, ๊ธฐ๊ฐ, ํ ๋ง ๋ฑ ์ด 8 ๊ฐ์ง์ ํํฐ๋ฅผ ํตํด ๋ด๊ฐ ์ํ๋ ์ฌํ์ ์ฐพ์ ์ ์์ด์.
- ํค์๋ ๊ฒ์์ ํตํด ์ํ๋ ์ฌํ์ ๋ฐ๋ก ํ์ํ ์ ์์ด์.
- ๋งค ๋ ์ง๋ง๋ค ์๊ฐ ์์ผ๋ก ๊ธฐ๋ก๋ ์ฌํ๋ค์ ํตํด ๋ณด๋ค ์ฝ๊ฒ ์ผ์ ์ ํ์ธํ ์ ์์ด์.
- ์ง๋๋ก ๋ณด๊ธฐ ๊ธฐ๋ฅ์ ํตํด ์ด๋ค ์ฅ์์ ๋จธ๋ฌผ๋ ๋์ง ์ง๋๋ก ํ๋์ ๋ณผ ์ ์์ด์.
S009 ๊น์์ธ | S013 ๊นํํ | S041 ํ๊ธฐ์ | J048 ๋ฐ๊ฒฝ๋ฏธ | J170 ํฉ์ ๋ฏผ |
---|---|---|---|---|
@0inn | @kth1210 | @otoolz | @kmi0817 | @yaongmeow |
iOS | iOS | iOS | BE | BE |
iOS | |
---|---|
BE |
- ํ์ฌ ์๋น์ค ๊ธฐํ ๊ฐ ๋ณต์กํ ์ํคํ ์ฒ์ ํ์์ฑ์ ๋๋ผ์ง ๋ชปํ๊ณ , ์์ ๊ฐ ๋ก์ง ๋ถ๋ฆฌ์ ์ฉ์ดํจ์ ์ํด ์ ํํ์ต๋๋ค.
- ๋ํ ์ฌ๋ฌ ๋ช ์ด ๋์์ ๊ฐ๋ฐํด์ผํ๊ธฐ ๋๋ฌธ์ CleanArchitecture๋ฅผ ํ์ฉํด ์ญํ ๋ถ๋ฆฌ๋ฅผ ํ์คํ ํด๋์ด ์ฝ๋์ ํต์ผ์ฑ์ ์ ์งํ์ต๋๋ค.
- Repository ํจํด์ ํตํด Data Source๋ฅผ ์บก์ํํ ์ ์์๊ณ , RepositoryMock์ ์ด์ฉํด ์๋ฒ ๊ฐ๋ฐ ์ํฉ์ ๊ด๊ณ์์ด ๊ฐ๋ฐ์ ์งํํ ์ ์์์ต๋๋ค.
- Third-party์ธ RxSwift์ ๋นํด ์๊ฐ, ๊ณต๊ฐ์ ์ฑ๋ฅ์ด ์ฐ์ํ๊ธฐ ๋๋ฌธ์ First-party์ธ Combine์ ์ ํํ์ต๋๋ค.
- ๋ฐ์ดํฐ ์คํธ๋ฆฌ๋ฐ์ ์กฐ์ํ๊ณ ๊ตฌ๋ ํ๋ ๊ฒ์ ์ต์ ํ๋ Combine์ UI Binding์ ํ์ฉํ์ต๋๋ค.
- Concurrency๋ฅผ ํ์ฉํด ๋จ๋ฐ์ฑ ๋น๋๊ธฐ ์๋ต์ธ ๋คํธ์ํฌ ๋ก์ง์ ๋ณด๋ค ์ง๊ด์ ์ผ๋ก ์ฒ๋ฆฌํด์ฃผ๊ธฐ ์ํด ์ ํํ์ต๋๋ค.
- Repository - Network์ ํ๋ฆ์ ๊ฐ๊ฒฐํ๊ฒ ์์ฑํ ์ ์์์ต๋๋ค.
- ์ง๋ ์์ ๋ง์ปค๋ฅผ ํ์ํ๊ณ ์ ๋ณด๋ฅผ ๋ณด์ฌ์ฃผ๊ธฐ ์ํด ์ฌ์ฉํ์ต๋๋ค.
- ์์น ์ขํ ์ ๋ณด๋ง ์๋ฒ์์ ๋ฐ์์ค๋ฉด ๋๊ธฐ ๋๋ฌธ์ ๋ค๋ฅธ Third-party ์ง๋๋ฅผ ์ฌ์ฉํ ํ์๊ฐ ์๋ค๊ณ ์๊ฐํด ์ ํ ํ๋ ์์ํฌ์ธ MapKit์ ์ ํํ์ต๋๋ค.
- ๋ก๊ทธ์ธ ์ดํ ํ ํฐ ๋ฑ ๋ฏผ๊ฐํ ์ฌ์ฉ์ ์ ๋ณด๋ฅผ ์์ ํ๊ฒ ์ ์ฅํ๊ณ ๊ด๋ฆฌํ๊ธฐ ์ํด ์ฌ์ฉํ์ต๋๋ค.
- ์ํํ ํ์ ๊ณผ ์ฝ๋ ๋ฆฌ๋ทฐ๋ฅผ ์ํด ์์จ์ฑ์ด ๋์ Express๋ ์ ์ ํ์ง ์๋ค๊ณ ์๊ฐํ์ต๋๋ค. ๋ฐ๋ผ์ ์ํคํ ์ฒ๊ฐ ๊ฐ์ถฐ์ง๊ณ , TypeScript๊ฐ ๊ธฐ๋ฐ์ธ NestJS๋ฅผ ์ ํํ์ต๋๋ค.
- ์ผ์ธ์ TypeORM๊ณผ ์์ฆ ํซํ Prisma. TypeORM ์ฌ์ฉ์์๊ฒ Prisma๊ฐ ์ธ๊ธฐ ์๋ ์ด์ ๋ฅผ ์ดํดํ๋ ค๋ฉด TypeORM์ ์์์ผ ํฉ๋๋ค. ๋ฐ๋ผ์ ์ ํฌ๋ ๋จผ์ TypeORM์ ๊ฒฝํํ๊ณ ์ ํ์ต๋๋ค.
- traveline ์ฑ์ ํ๋์ ๊ฒ์๊ธ์ ์ฌ๋ฌ ํ์๋ผ์ธ ๊ธ์ด ์ฐ๊ฒฐ๋ฉ๋๋ค. ๋ํ ๊ฐ ๊ฒ์๊ธ์๋ ์ข์์์ ์ ๊ณ ์ ๋ณด๊ฐ ์กด์ฌํฉ๋๋ค.
- ํ ์ด๋ธ ๊ฐ join ์ฐ์ฐ์ด ๋ง์ด ๋ฐ์ํ ๊ฒ์ด๋ฏ๋ก NoSQL๋ณด๋จ RDB๊ฐ ์ ์ ํ๋ค๊ณ ํ๋จํ์ต๋๋ค.
- ์๋ ์๋ ๋ฐฐํฌ๋ฅผ ์๋ํ์ง๋ง, node ๋ฒ์ ์ด์์ systemd service ๋ฑ๋ก ๊ณผ์ ์ ์ด๋ ค์์ ๊ฒช์์ต๋๋ค. ๋ฐ๋ผ์ ๋ก์ปฌ ์์ ํ๊ฒฝ์ ๊ทธ๋๋ก ์ปจํ ์ด๋๋ฅผ ๊ตฌ์ฑํ ์ ์๊ณ , ์ด์์ฑ์ด ๋ฐ์ด๋๋ฉฐ ์ง์์ ์ธ ๋ฐฐํฌ์๋ ์ ์ฉํ Docker๋ฅผ ์ฌ์ฉํ์ต๋๋ค.
- Swagger API๋ฅผ ์๋๋ฌ iOS ์ธก์ ๊ณต์ ํ๊ธฐ ์ํด ๋ฌ๋ ์ปค๋ธ๊ฐ ๋ฎ๊ณ , ์ ์ํ ์ธํ ์ด ๊ฐ๋ฅํ GitHub Actions๋ก ๋ฐฐํฌ๋ฅผ ์งํํ์ต๋๋ค.
- ์ ํ ์ ์ฑ ์ ipa๋ https์์๋ง ๋ฐฐํฌํ ์ ์์ต๋๋ค. ์ด์, 90์ผ๋ง๋ค SSL ์ธ์ฆ์๋ฅผ ๊ฐฑ์ ํด์ผ ํ์ง๋ง ๋ฌด๋ฃ๋ก ๋ฐ๊ธ๋ฐ์ ์ ์๋ Letโs Encrypt๋ฅผ ์ฌ์ฉํ์ต๋๋ค.
- Nest ์๋ฒ์์ ์ง์ SSL ์ธ์ฆ์๋ฅผ ๊ด๋ฆฌํ๋ ค๋ฉด ์ฝ๋ ์์ ์ด ๋ถ๊ฐํผํฉ๋๋ค. ๋ฐ๋ฉด ์น ์๋ฒ๋ฅผ Reverse Proxy๋ก ์ฌ์ฉํ๋ฉด ๊ฐ๋จํ๊ฒ SSL ๊ตฌ์ฑ์ ์๋ฃํ ์ ์์ต๋๋ค. ๋ํ ์ ํ๋ฆฌ์ผ์ด์ ์ฝ๋์ SSL ๊ด๋ จ ํก๋จ ๊ด์ฌ์ฌ ์ฝ๋๊ฐ ์กด์ฌํ์ง ์์, ๋์ฑ ํต์ฌ์ ์ง์คํ ์ ์์ต๋๋ค.
- traveline์ ์๋ก์ด IP๋ก ๋ก๊ทธ์ธ ์ ๋ณธ์ธ ํ์ธ ๋ฉ์ผ์ ์ ์กํ๋ ์๋น์ค๋ฅผ ์ ๊ณตํฉ๋๋ค.
- Nest ๋ด์ฅ ๋ชจ๋์ธ nodemailer๋ ๋ณด์์ ์ทจ์ฝ์ ์ด ๋ฐ๊ฒฌ๋์ด ์ค์๋น์ค์์๋ ์ฌ์ฉ๋์ง ์์ต๋๋ค. NCP์ Cloud Outbound Mailer๋ ์ด๋ทฐ์ง ๋ฌธ์ ๋ก ์ธํด ํ์ฌ (2023.12) ์๋น์ค ์ ์ฒญ์ด ๋งํ ์์ต๋๋ค. ์ด์, AWS SES๋ฅผ ์ฌ์ฉํ์ต๋๋ค.
๐ ๋ฌธ์ | Wiki | ํ ๋ ธ์ | ๊ทธ๋ผ์ด๋ ๋ฃฐ | ์ปจ๋ฒค์ | ํ์๋ก | ๊ธฐํ/๋์์ธ |
---|
- ๋จ๋ฐฉํฅ ํ๋ก์ฐ ViewModel ๊ตฌํ๊ธฐ
- Concurrency์ Combine์ ๊ณต์กด
- traveline์ ์ด๋ฏธ์ง ๊ด๋ฆฌํ๊ธฐ
- traveline ๋์์ธ ์์คํ ๊ตฌ์ถ๊ธฐ
- KeychainWrapper๋ก ์ฌ์ฉ์ ์ ๋ณด ๊ด๋ฆฌํ๊ธฐ
- ๊ถํ ์ค์ ์์ด ์ฌ์ง์ ์๊ฐ ๋ฉํ๋ฐ์ดํฐ ๊ฐ์ ธ์ค๊ธฐ
- ์ฌ์ด๋ ๋ฐ ์ฌ์ฉ์ฑ ๊ฐ์ ๊ธฐ
- MapKit์ผ๋ก ํ์๋ผ์ธ ๋ณด์ฌ์ฃผ๊ธฐ
- ์์ ์ ์๋ก ๋ฐ๊ฟ์ ํด๋ณด์!
- ์์ ์ฒซ CI/CD ๋์ ๊ธฐ
- @nestjs/swagger๋ก ์ด๋ฏธ์ง ์ ๋ก๋ form์ ์ด๋ป๊ฒ ๋ง๋ค์ง?
- ํด๋ผ์ด์ธํธ์์๋ง ๋ฐ์ํ๋ 413 Content Too Large ์๋ฌ?
- ํธ๋์ญ์ ์ ์ฟผ๋ฆฌ๋ฌธ๋ง ๋ค๋ฃจ์ง, ์คํ ๋ฆฌ์ง๋ ์ ๊ฒฝ ์ฐ์ง ์์์
- ์ ํ ๋ก๊ทธ์ธ ๊ตฌํ ๊ณผ์
- ์ด๋ฉ์ผ ์๋น์ค ์ ์ฉ ๊ณผ์
- ๋ก๊ทธ์ธ ๋ก๊ทธ์์ ์ฒ๋ฆฌ