๋ณธ ํ๋ก์ ํธ๋ 2022๋ 11์ ์นด์นด์ค, ๊ตฌ๋ฆ์์ ์ฃผ์ตํ์ฌ ์งํํ ์ 3ํ 9oorumthon ์ถํ์์ ๋๋ค.
ํ๊ฒฝ๋ถ๊ฐ 2022๋
์ ์ง์ ํ ์ ์ฃผ๋์ ๋ฉธ์ข
์๊ธฐ ์ผ์๋๋ฌผ์ ๋ฌด๋ ค
๐ฆ โ ๊ธ ๋ฉธ์ข ์๊ธฐ ๋๋ฌผ ์ ๊ตญ 49์ข ์ค 16์ข
๐ฆ โ ก๊ธ ๋ฉธ์ข ์๊ธฐ ๋๋ฌผ ์ ๊ตญ 127์ข ์ค 72์ข ์ ๋ฌํด์.
์์์ง๋ฅผ ์๊ณ ์์ํ ์ง๊ตฌ๋ฅผ ๋ ๋๊ณ ์๋ ์ด ๋๋ฌผ๋ค์, ์ฌ๋๋ค์๊ฒ๋ ๊ด์ฌ์ ๋ฐ์ง ๋ชปํ๊ณ ์ํ์ง๊ณ ์๋ต๋๋ค.
๐ ์ํ์ง๋ ๋๋ฌผ๋ค๊ณผ ๊ทธ ๋๋ฌผ๋ค์ ์ํ๊ฒ ํ๋ ์ฌ๋ฌ ํ๊ฒฝ ๋ฌธ์ ๋ฅผ ์ฝ๊ณ ์ฌ๋ฏธ์๊ฒ ์๋ ค์ค์ผ๋ก์จ
์ ์ฃผ๋์ ๋ฉธ์ข ์๊ธฐ์ข , ๋ ๋์๊ฐ ํ๊ฒฝ ๋ณดํธ์ ์์ฐ์ค๋ฝ๊ฒ ๊ด์ฌ์ ๊ฐ์ง ์ ์๋ค๋ฉด ์ด๋จ๊น์?
๊ทธ๋์ ํ์๋ ์ ํฌ์ ์๋น์ค! ๋ฐ๋ก ๋๋ฐ๊ธฐ๋๊ฐ์ด์์.
๐ถ โ๋๋ฐ๊ธฐโ๋ โ์ธ์ ๋ ํ๊ฒฐ๊ฐ์ด ๊ผญ ๊ทธ๋ ๊ฒโ๋ผ๋ ๋ป์ ๊ฐ์ง ์ ์ฃผ๋ ๋ฐฉ์ธ์ผ๋ก,
์ ์ฃผ๋์ ๋ฉธ์ข ์๊ธฐ ๋๋ฌผ๋ค์ด ๋๊ฐ์ผ๋ก ๋จ์ ์ธ์ ๋ ํ๊ฒฐ๊ฐ์ด ๊ผญ ๊ทธ๋ ๊ฒ ์ฐ๋ฆฌ์ ๊ณ์ ํจ๊ปํ ๊ฒ์ด๋ผ๋ ๋ป์ ๋ด์์ด์.
๐ โ๋๋ฐ๊ธฐ๋๊ฐโ์ ์ ์ฃผ๋ ๋ฉธ์ข ์๊ธฐ ๋๋ฌผ์ ์ํ ๋๊ฐ์ผ๋ก, ๋๋ฌผ๋ค์ ์ค์ ์์์ง์ ์ง์ ๋ฐฉ๋ฌธํด ํ๊ฒฝ ๋ฌธ์ ๊ด๋ จ ๋ฏธ์ ์ ์ํํ๋ฉด ๋๋ฌผ ์นด๋๋ฅผ ์์งํ ์ ์๋ ์ฐธ์ฌํ ๊ฒ์ด๋ฏธํผ์ผ์ด์ ์๋น์ค์์.
๋๋ฐ๊ธฐ๋๊ฐ์ ์ฃผ์ ๊ธฐ๋ฅ์ ํฌ๊ฒ ๋๊ฐ์ง์์.
- ๐ ๋๊ฐ
- ๐บ๏ธ ์์์ง๋
์ ์ฃผ๋ ์ง๋์์ ์์์ง๋ฅผ ํด๋ฆญํด ๋๋ฌผ์ ์ค๋ฃจ์ฃ์ผ๋ก ํฅ๋ฏธ๋ก์ด ํํธ๋ฅผ ์ป๊ณ ํด๋น ์ง์ญ์ ์ง์ ๋ฐฉ๋ฌธํด ๋ณด์์.
์์์ง์ ๋์ฐฉํ๋ฉด ๋๋ฌผ์ ์ฐพ์ ์ ์์ด์! ํ๊ฒฝ์ค์ผ์ผ๋ก ์ธํด ์ํํ๋ ๋๋ฌผ์๊ฒ ๋์์ ์ฃผ์ด ์นด๋๋ฅผ ์์งํด ๋ณด์์.
์์งํ ๋๋ฌผ๋ค์ ๋๊ฐ์์ ๋ค์ ๋ง๋ ๋ณด์์. ์ธ์ ๋ ํ๊ฒฐ๊ฐ์ด ๊ผญ ๊ทธ๋ ๊ฒ ์ ํฌ ๊ณ์ ๋จธ๋ฌด๋ฅผ ๊ฑฐ๋๋๋ค.
โ ์์ ํ๊ณ ์์ ์ ์ธ ๋ฐฐํฌ๋ฅผ ์ํ ์ํคํ ์ณ ๊ตฌ์ฑ
- ์ง์ ๊ตฌ์ ํ Domain(ttobagi.site) ์ฐ๊ฒฐ๊ณผ SSL์ธ์ฆ์ ์ ์ฉ(ํ๋ก ํธ: www.ttobagi.site, ๋ฐฑ์๋: api.ttobagi.site)ํ์ฌ ์์ ํ ์น์๋ฒ๋ฅผ ๊ตฌ์ถํ์ด์.
- ํ๋ก ํธ๋ Cloud Front์ S3๋ฅผ ์ด์ฉํด ์ ์ ์น ํธ์คํ ์ผ๋ก ๋ฐฐํฌํ์๊ณ , ๋ฐฑ์๋๋ ELB์ EC2๋ฅผ ์ฐ๊ฒฐํด ๋ฐฐํฌํ์ด์.
- ํนํ ํ๋ก ํธ๋ Github Action์ ์ด์ฉํด ์๋ ๋ฐฐํฌ ํ๊ฒฝ์ ๊ตฌ์ฑํ์ด์.
๐ฅ ์ฝ๊ณ ๋น ๋ฅธ ์ฌ์ฉ์ ๊ฒฝํ์ ์ ๊ณตํ๋ Single Page Application
์๋ ๊ธฐ์ ์ ์ฌ์ฉํด React ํ๋ก์ ํธ๋ฅผ ๊ตฌํํ์ด์.
- React: JSX ๋ฌธ๋ฒ๊ณผ Virtual DOM์ ์ฌ์ฉํ๋ JavaScript SPA ๋ผ์ด๋ธ๋ฌ๋ฆฌ
- Styled-Components: ์ปดํฌ๋ํธ ๋จ์ ์คํ์ผ๋ง์ ์ง์ํ๋ CSS-in-JS ๋ผ์ด๋ธ๋ฌ๋ฆฌ
๐บ๏ธ Kakao Map API์ ์ฌ๋ฌ ๊ธฐ๋ฅ์ ์ถ๊ฐํ ์ง๋ ๊ตฌํ
- ์นด์นด์ค๋งต API๋ฅผ ์ฌ์ฉํด ์ง๋ ๊ธฐ๋ฅ์ ๊ตฌํํ์ด์.
- Geolocation์ ํ์ฉํด ์ฌ์ฉ์์ ํ์ฌ ์์น๋ฅผ ํ์ํ์ด์.
- ๋ค์ํ ๋ธ๋ผ์ฐ์ ๋ฅผ ์ง์ํ๊ธฐ ์ํด SSL ์ธ์ฆ์๋ฅผ ์์ฑํ์ฌ https ํ๊ฒฝ์ผ๋ก ๋ณ๊ฒฝํ์ด์.
- ๋ค์์ ๋ง์ปค๋ฅผ ์์ฑํ๊ณ , ๋ง์ปค ์์ ๋ง์ฐ์ค๋ฅผ ์ฌ๋ ค๋์ผ๋ฉด ์ด๋ฆ๊ณผ ์ฃผ์๊ฐ ๋ณด์ด๋๋ก ๋ง๋ค์์ด์.
๐ค Kakao Login Api๋ฅผ ํ์ฉํ ๋ก๊ทธ์ธ ๊ตฌํ
- ์นด์นด์ค๋ก๋ถํฐ ์ธ๊ฐ์ฝ๋๋ฅผ ๋ฐ๊ณ ๋ฐฑ์๋์ ๋๊ฒจ์ฃผ์์ด์.
- ๋ฐฑ์๋์์ ์จ ํ ํฐ์ ํ์ธํ๊ณ ํํ๋ฉด์ผ๋ก ๋ฆฌ๋ค์ด๋ ํธ ํด์ฃผ์์ด์.
๐ก Axios ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ํ์ฉํ HTTP ๋น๋๊ธฐ ํต์
- ์์ฒญ ๊ฐ์ฒด์ url์ด ์กด์ฌํ๊ณ ์๋์ผ๋ก JSON ๋ฐ์ดํฐ ํ์์ผ๋ก ์ ํํด์ฃผ์ด ์ฌ์ฉํ์ด์.
- react hook ๊ธฐ๋ฐ์์๋ useEffect๋ฅผ ์ฌ์ฉํด lifeCycle์ ๊ด๋ฆฌํ์ด์.
- ์ฌ์ฉ์๊ฐ ์์งํ ๋๋ฌผ ๋๊ฐ์ ์ ์ฒด ๋๊ฐ๊ณผ ๋น๊ตํด ์์งํ์ง ์์ ๊ฒ์ ์๊น์ด ์๋ ์ด๋ฏธ์ง๋ก ๊ฐ์ ธ์์ด์.
๐ฅ ์ฝ๊ณ ๋น ๋ฅด๊ฒ ์กฐํ ยท ์ถ๊ฐ ํ ์ ์๋ ๋๋ฌผ ๋๊ฐ API ๊ตฌ์ถ
- ์๋ ๊ธฐ์ ์ ์ฌ์ฉํด REST API ์๋ฒ๋ฅผ ์ค๊ณ ๋ฐ ๋ฐฐํฌํ์ด์.
- Django Rest Framework (DRF): Python ๊ธฐ๋ฐ์ Django REST API ํ๋ ์์ํฌ
- NGINX: ๋น ๋ฅธ ์ ์ ํ์ผ(์ด๋ฏธ์ง ๋ฑ) ์๋น ๋ด๋น
- ๋๋ฌผ ๋๊ฐ์ ์ฝ๊ฒ ์กฐํ ๋ฐ ์ถ๊ฐํ ์ ์๋๋ก ๋ชจ๋ธ API๋ฅผ ์ค๊ณํ์ด์.
๐ Kakao Social Login๊ณผ JWT๋ฅผ ํ์ฉํ ์์ ํ ๋ก๊ทธ์ธ
- JSON Web Token (JWT)์ ์ด์ฉํด ์์ ํ ๋ก๊ทธ์ธ API๋ฅผ ๊ตฌํํ์ด์.
- ๋ฐฑ์๋์์ ์นด์นด์ค ๋ก๊ทธ์ธ API๋ฅผ JWT์ ์ฐ๊ฒฐํ์ฌ ๋์ฑ ์์ ํ ๋ก๊ทธ์ธ API๋ฅผ ์ค๊ณํ์ด์.
ํ๋ก ํธ์๋
๐ ์์ผ๋ก ํ๋ก ํธ์๋์์๋ ์ด๋ฐ ๊ฑธ ๊ตฌํํด ๋ณผ ์์ ์ด์์.
- JavaScript์์ TypeScript๋ก ๋ฆฌํฉํ ๋ง์ ์งํํ ์์ ์ด์์.
- ๋ณด๋ค ๋์ ์ฌ์ฉ์ ๊ฒฝํ์ ์ํด React Native๋ฅผ ํ์ฉํ์ฌ ๋ชจ๋ฐ์ผ ์ฑ์ ๊ฐ๋ฐํ ์์ ์ด์์.
๋ฐฑ์๋
๐ ์์ผ๋ก ๋ฐฑ์๋์์๋ ์ด๋ฐ ๊ฑธ ๊ตฌํํด ๋ณผ ์์ ์ด์์.
- ๊ณต๊ณต ๋ฐ์ดํฐ ํฌํธ์ ์คํ API๋ฅผ ํ์ฉํ์ฌ ์ ์ฃผ๋ ๋ฉธ์ข
์๊ธฐ ๋๋ฌผ์ ์กฐํํด ๋๊ฐ์ ์ถ๊ฐํด ๊ฐ ์์ ์ด์์.
- ์ฃผ๋ณ ์๊ถ ๋ฐ์ดํฐ๋ฅผ ์กฐํํ์ฌ ๋๊ฐ ์ง๋์ ์ฐ๊ฒฐํด๋ณผ ์์ ์ด์์.
- ๋ชจ์ ๋๊ฐ์ด๋ ๋๋ฌผ ์นด๋๋ฅผ SNS์ ๊ณต์ ํ ์ ์๋๋ก API๋ฅผ ์ค๊ณํ ์์ ์ด์์.
- ๋์ฑ ๊ฐํธํ๊ณ ์์ ์ ์ธ ๋ฐฐํฌ๋ฅผ ์ํด Kubernetes๋ฅผ ๋์
ํด๋ณผ ์์ ์ด์์.
๋๋ฐ๊ธฐ, ํฌ๊ธฐํ์ง ์๋๋ค! ๐
E๊ฐ 1๋ช , I๊ฐ 4๋ช โฆ (๊ทธ๋์ ์๋ ํ ์ด๋ฆ์ด E1I4์์ง๋ง ์ฝ๊ธฐ๊ฐ ์ด๋ ค์ ๊ฐ๋ช ํ์ด์๐)
์ผ์ชฝ๋ถํฐ ์์๋๋ก ๋๋ฐ๊ธฐ ํ์๋ค์ ์๊ฐํด ๋๋ ค์.
๋์์ด๋:์ค๊ฐ๋น |
ํ๋ก ํธ์๋:๊น์ํ |
ํ๋ก ํธ์๋:์ฅ์ง์ (ํ์ฅ) |
๋ฐฑ์๋:์กฐ์์ฐฌ |
๊ธฐํ:์ ํ์ |