๐ flip-it (ํ๋ฆฌ๋น): flipit.co.kr
๐ฉโ๐ฉโ๐งโ๐ฆ R&R
๋ถ์ผ | ์ด๋ฆ | ํฌ์ง์ |
---|---|---|
๊ธฐํ | ๋ฐ๊ฐ์ | PM, ์๋น์ค ๊ธฐํ, ์์ด์ดํ๋ ์ ์ค๊ณ, ์ธ๋ถ ๊ธฐ๋ฅ ๊ธฐํ, ์ ์ ๋ฆฌ์์น |
๊ธฐํ | ๋ฐฐ์น์ฐ | ์๋น์ค ๊ธฐํ, ์ธ๋ถ ๊ธฐ๋ฅ ๊ธฐํ, ๋น์ฆ๋์ค ๋ชจ๋ธ ์ค๊ณ, ์ ์ฑ ์์ฑ |
๊ธฐํ | ์ ์์ธ | ์๋น์ค ๊ธฐํ, ์ธ๋ถ ๊ธฐ๋ฅ ๊ธฐํ, ๋ฐ์คํฌ ๋ฆฌ์์น, ๋ณด๊ณ ์ ์์ฑ |
๋์์ธ | ๊ถ์์ธ | ๋์์ธ ๋ฆฌ๋, ๋์์ธ ์์คํ ๊ตฌ์ถ, GUI |
๋์์ธ | ๊น์น์ | ๋ก๊ณ ์ ์, GUI |
ํ๋ก ํธ์๋ | ํฉ์ฃผํฌ | ํ๋ก ํธ์๋ ๋ฆฌ๋, GUI ๊ตฌํ, API ์ฐ๋ |
ํ๋ก ํธ์๋ | ๋ฐ์คํ | GUI ๊ตฌํ, API ์ฐ๋ |
๋ฐฑ์๋ | ๊น์์ฐฌ | ๋ฐฑ์๋ ๋ฆฌ๋, ERD ์์ฑ, ํด๋ผ์ฐ๋ ํ๊ฒฝ ๊ตฌ์ถ, ์๋ฒ ๊ฐ๋ฐ |
๋ฐฑ์๋ | ์ฅ์งํจ | ERD ์์ฑ, ํด๋ผ์ฐ๋ ํ๊ฒฝ ๊ตฌ์ถ, ์๋ฒ ๊ฐ๋ฐ |
ํ๋ฆฌ๋น์ ์ฌ์ฉ์๋ค์ด ์ง๋ฌธ๊ณผ ๋ต๋ณ์ ํตํด ์๋ก์ ์ทจํฅ๊ณผ ๊ด์ฌ์ฌ๋ฅผ ๊ณต์ ํ๋ฉฐ ๊น์ด ์๋ ์ํต์ ๊ฐ๋ฅํ๊ฒ ํ๋ Q&A ํ๋ซํผ์ด๋ค. ์ด ์๋น์ค๋ ์ง๋ฌธํ๊ธฐ, ๋ต๋ณํ๊ธฐ, ์์ด๋ดํฐํฐ ์นดํ ๊ณ ๋ผ์ด์ง, ๊ทธ๋ฆฌ๊ณ ํน๋ณํ ํผ๋๋ฐฑ ๊ธฐ๋ฅ์ธ 'ํตํ๋น'์ ํตํด ์ฌ์ฉ์ ๊ฐ์ ์ํธ์์ฉ์ ์ด์งํ๊ณ , ๊ฐ์ธ์ ์์ด๋ดํฐํฐ๋ฅผ ํํํ๋ ๋ฐ ์ค์ ์ ๋๊ณ ์๋ค.
[์ง๋ฌธํ๊ธฐ] ์ฌ์ฉ์๋ ๋ค๋ฅธ ์ฌ๋์ ์ทจํฅ์ด๋ ๊ด์ฌ์ฌ์ ๋ํด ๊ถ๊ธํ ์ ์ ์ง๋ฌธํ ์ ์๋ค. ์ด๋ฅผ ํตํด ๋จ์ํ๋ ์ํต ์๋์ ํฅ๋ฏธ๋ก์ด ์ํต ์ฃผ์ ๋ฅผ ๋ฐ๊ฒฌํ๋ค.
[๋ต๋ณํ๊ธฐ] ์ฌ์ฉ์๋ ์ฌ์ง, ํ ์คํธ ์ค๋ช , ์์ ๋ฏธ๋ฆฌ๋ฃ๊ธฐ, ๋งํฌ ๋ฑ์ ์ฒจ๋ถํ์ฌ ์์ ์ ๋ต๋ณ์ ๊ฒ์ํ ์ ์๋ค. ์ด๋ฅผ ํตํด ์์ ์ ์์ด๋ดํฐํฐ๋ฅผ ํจ๊ณผ์ ์ผ๋ก ๋๋ฌ๋ผ ์ ์๋ค.
[์์ด๋ดํฐํฐ ์นดํ ๊ณ ๋ผ์ด์ง] ์ฌ์ฉ์๋ ์์ ์ ์์ด๋ดํฐํฐ์ ๊ด์ฌ์ฌ๋ฅผ ์ง์ ๋ถ๋ฅํ์ฌ ๊ทธ๋ฃน์ ์์ฑํ ์ ์๋ค. ์ด๋ ์ ๋ณด๋ฅผ ๊ฐ์์ ์ผ๋ก ์ ๊ณตํ๊ณ , ์ง๋ฌธ์ ๋ํ ๋ต๋ณ์ ์ ๋ฆฌํ๋ ํผ๋๋ฅผ ๊ด๋ฆฌํ๋ ๋ฐ ๋์์ ์ค๋ค.
[ํผ๋๋ฐฑ ๊ธฐ๋ฅ ('ํตํ๋น')] ์ผ๋ฐ์ ์ธ ์ข์์ ๊ธฐ๋ฅ์ ๋ํด, 'ํตํ๋น' ๊ธฐ๋ฅ์ ๊ณ์ ์ฃผ์ ๋ฐฉ๋ฌธ์๊ฐ ์๋ก์ ๋ํ ๊ธ์ ์ ์ธ ๋ฐ์์ ์ง์ ์ ์ผ๋ก ํํํ ์ ๋๋๋ค. ์ด๋ฅผ ํตํด ์๋ฐฉํฅ ์ํต์ ๋ง์กฑ๋๋ฅผ ๋์ธ๋ค.
๐ก ์๋น์ค ์ฐจ๋ณ์ฑ
ํ๋ฆฌ๋น(Flipit)์ Q&A๋ฅผ ํตํด ๋ฅ๋์ ์ด๊ณ ๋ ์ํธ์ ์ธ ์ํต์ ๋๋๋ค. ๋์์ ์ต๋ช ์ฑ ๋ณด์ฅ, ๋งํฌ ๊ธฐ๋ฐ ์ ์, ์ง๋ฌธ์ ์ ๋ํ๋ UX ๋ผ์ดํ ์ ์ฅ์น๋ก ํ์ฌ ์ํต ์๋์ ์์ด ๋ถ๋ด๊ฐ์ด ์ ๊ณ , ์ํตํ ๋ฌผ๊ผฌ๋ฅผ ํ์ด์ฃผ๋ ํจ์ฉ์ ๊ฐ์น๋ฅผ ์ ๊ณตํ๋ค.
-
๊ฒฝ์ ์๋น์ค์ธ ์ธ์คํ๊ทธ๋จ ์คํ ๋ฆฌ, ๋ต์ฅ, ์ข์์์ ๋นํ์ฌ ์ํธ ์ํต ๋ฐฉ์์ ์ฑํ
-
๋จ์ Q&A๊ฐ ์๋, ์๋ก์ ์ทจํฅ์ ๋ํด ์์๊ฐ๋ณด์๋ ์ทจ์ง๋ก ์ข์ ์ง๋ฌธ ๋ฒ์ ์ค์
-
์๋๋ฐฉ์ ์นดํ ๊ณ ๋ผ์ด์ง๋ ์ ๋ณด๋ฅผ ๋ณผ ์ ์๊ฒ ํ์ฌ ์ํต์ ์ฉ์ด์ฑ ์ฆ๋: ์๋ก์ ์ทจํฅ๊ณผ ๊ด๋ จ๋ ์ฃผ์ ์ ๋์ฑ ์ง์คํ ์ ์๊ฒ ํ์ฌ, ์๋ก ์ํตํ ์ ์๋ ๋ด์ฉ์ ์ฝ๊ฒ ์ฐพ๊ณ ๊ต๋ฅํ ์ ์๋ ๊ฒฝํ ์ ๊ณต
-
๋ค์ํ ํ์ฉ ๋ฒ์
๐ง ๋ชฉํ ์ฌ์ฉ์
์ธ์คํ๊ทธ๋จ์ ์ฌ์ฉํ๋ ์ฌ๋ ์ค์์ ๋ฌธ์ ์ ๋์ฆ์ ๋ฐ๋ผ ๋ชฉํ ์ฌ์ฉ์๋ฅผ ๋๊ฐ์ง๋ก ๋ถ๋ฅํ๋ค.
- ์๋๋ฐฉ์ ์์๊ฐ๊ณ ์ ํ๋ ์ฌ๋ ๋ฌธ์ &๋์ฆ
- ์ธ์คํ๊ทธ๋จ ์คํ ๋ฆฌ์ ์ํต ๊ธฐ๋ฅ์ ํ๊ณ๋ก ์์ฌ ํ์์ ์ด๋ ค์์ ๊ฒฝํํจ.
- ์ํต์๋์ ๋ถ๋ด๊ฐ์ ๋๋
- ๋ถํน์ ํ์ธ์ ํผ๋ ์ ์์ ํตํ ๊ฐ์ธ ์ ๋ณด ๋ ธ์ถ์ ๋ํด ์ฐ๋ ค๋ฅผ ํํจ.
- ์๊ธฐ ํํ์ ์ํ๋ ์ฌ๋ ๋ฌธ์ &๋์ฆ
- ์๊ธฐ ์ทจํฅ์ ๋ ์์ ๋ก์ด ํํ์ ์ํจ.
- ํผ๋ ๊ณต๊ฐ๋ฒ์๋ฅผ ์ ํ์ ์ผ๋ก ์ค์ ํ๊ณ ์ ํจ.
- ์๋ฐฉํฅ์ ์ํต์ ์ํจ
ํ๋ฆฌ๋น์ ์๋๋ฐฉ์ ๋ ์ ์์๊ฐ๊ณ ์ ํ๋ ์ฌ๋๋ค์๊ฒ๋ ์ฝ๊ณ ํธํ ์ํต์ ์ฐฝ๊ตฌ๋ฅผ, ์๊ธฐ ํํ์ ์ํ๋ ์ฌ๋๋ค์๊ฒ๋ ์์ ์ ์์ด๋ดํฐํฐ์ ์ทจํฅ์ ์์ ๋กญ๊ฒ ํํํ๊ณ ๊ณต์ ํ ์ ์๋ ๊ณต๊ฐ์ ์ ๊ณต.
- ๋น ๋ฅธ ์
๋ฐ์ดํธ, ๋น ๋ฅธ ๋ ๋๋ง
- Virtual DOM์ ํตํด ๋น ๋ฅธ ์ ๋ฐ์ดํธ, ๋ ๋๋ง์ ์ ๊ณตํ์ฌ ์ฑ๋ฅ ์ต์ ํ
- ์ฝ๋ ์ฌ์ฌ์ฉ์ฑ, ์ ์ง๋ณด์์ฑ โ
- ์ปดํฌ๋ํธ ๊ธฐ๋ฐ ์ํคํ ์ฒ๋ก ์ด๋ฃจ์ด์ ธ ์์ด ์ฌ์ฌ์ฉ, ์ ์ง๋ณด์์ ์ฉ์ด
- ๋ค์ํ ๋ผ์ด๋ธ๋ฌ๋ฆฌ์ ํ๋ฐํ ์ปค๋ฎค๋ํฐ
- ์ฌ์ฉ๋์ด ๋ง์ ๋งํผ, ๋ค์ํ ๋ฌธ์ ์ ๋ํ ๋ง์ ์๋ฃจ์ ์ด ์กด์ฌ
- ํฌ๋ก์ค ํ๋ซํผ(react-native) ์ฑ์ผ๋ก์ ํ์ฅ ๊ฐ๋ฅ์ฑ
- ๋น ๋ฅธ ๋ก์ปฌ ์๋ฒ ๊ตฌ๋
- esbuild๋กย ๋ฏธ๋ฆฌ ๋ฒ๋ค๋งํ ๋ชจ๋์ ํ์ํ ๋ ๊ฐ์ ธ์ ์ฆ๊ฐ์ ์ผ๋ก ์๋ฒ ๊ตฌ๋
- HMR์ ์ง์ํ์ฌ ์์ ๋ ๋ชจ๋๋ง์ ๊ต์ฒด
- ๋น ๋ฅธ ํ๋ก๋์
๋น๋
- ํ๋์ ํ์ผ์ ๋ชจ๋ ์ข ์ ๋ชจ๋์ ์ ์ญ ๋ฒ์๋ก ์ ์ธํ์ฌ ๊ฒฐํฉ. ์ค๋ณต์ ์ ๊ฑฐํ๊ธฐ ๋๋ฌธ์ ๊ฐ๋ณ๊ณ ๋น ๋ฅด๊ฒ ๋น๋ ๊ฐ๋ฅ
- ๋์ ์์ฐ์ฑ
- ์์ ๊ณผ ๋์์ ๋๋ฒ๊น ์ด ๊ฐ๋ฅํด ์๋ฌ ์ฌ์ ๋ฐฉ์ง
- ๊ฐ์ฒด ์์ ํ๋๊ฐ์ ๋ค ๊ธฐ์ตํ ํ์์์ด IDE๊ฐ ์๋์ผ๋ก ๋ฆฌ์คํธ์
ํด์ฃผ์ด ํธ๋ฆฌ
- ์ํ๊ด๋ฆฌ์ ํธ๋ฆฌํจ
- atom์ ์ํ๋ฅผ ๊ตฌ๋
, ์
๋ฐ์ดํธํ๋ ๋ฐฉ๋ฒ์ ์ฌ์ฉํ์ฌ ๊ฐ๋จํ ์ฝ๋๋ง์ผ๋ก ์ ์ญ ์ํ ๊ด๋ฆฌ ๊ฐ๋ฅ
- atom์ ์ํ๋ฅผ ๊ตฌ๋
, ์
๋ฐ์ดํธํ๋ ๋ฐฉ๋ฒ์ ์ฌ์ฉํ์ฌ ๊ฐ๋จํ ์ฝ๋๋ง์ผ๋ก ์ ์ญ ์ํ ๊ด๋ฆฌ ๊ฐ๋ฅ
- ์ปดํฌ๋ํธ ๊ธฐ๋ฐ CSS ์์ฑ์ ํธ๋ฆฌํจ
- jsx ๋ด์ css๋ฅผ ์ ์ฉํ ๋ ์นด๋ฉ์ผ์ด์ค๋ก ์์ฑํด์ผํ๋ ๋ฒ๊ฑฐ๋ก์ ์์ด css ๋ฌธ๋ฒ ๊ทธ๋๋ก ์ฌ์ฉ ๊ฐ๋ฅ
- ์ง๊ด์ ์ธ CSS
- props๋ ์ ์ญ ์์ฑ์ ๊ธฐ๋ฐ์ผ๋ก ์ปดํฌ๋ํธ์ ์คํ์ผ ์์ฑ์ ๋ถ์ฌํ๊ธฐ ๋๋ฌธ์ ๊ฐ๋จํ๊ณ ์ง๊ด์
- ํ๊ทธ์ ์๋ฏธ๋ฅผ ๋ถ์ฌํ์ฌ ์ง๊ด์ ์ผ๋ก, ์ด๋ค ์ฉ๋๋ก ์ฌ์ฉํ๋์ง ํ์ ๊ฐ๋ฅ
- ์ฝ๊ฒ ๊ตฌํํ๋ ์ ๋๋ฉ์ด์
, ์ ์ค์ณ
- animate props๋ฅผ ํตํด CSS transitions๋ฅผ ์๋ ์์ฑํด์ฃผ์ด ์์ฃผ ์ฌ์ฉ๋๋ ์ ๋๋ฉ์ด์ ์ ์ฝ๊ฒ ๊ตฌํ ๊ฐ๋ฅ
- ๋ค์ดํฐ๋ธ ์ฑ ์์ค์ ๋ชจ๋ฐ์ผ ์นํ์ ์น ๊ฐ๋ฐ ๊ฐ๋ฅ
โข Java ๊ธฐ๋ฐ์ ์ ํ๋ฆฌ์ผ์ด์
์ ๋น ๋ฅด๊ฒ ๊ตฌ์ถํ ์ ์๊ฒ ๋์์ฃผ๋ ํ๋ ์์ํฌ
โข ์๋ ์ค์ , ์คํํฐ ํจํค์ง, ๋ด์ฅ ์๋ฒ ๋ฑ์ ํตํด ๊ฐ๋ฐ์๊ฐ ์ธํ๋ผ์ ์ ๊ฒฝ ์ฐ์ง ์๊ณ ๋น์ฆ๋์ค ๋ก์ง์ ์ง์ค๊ฐ๋ฅ
โข ํ์ ๊ธฐ์ ์คํ์ ๋ง๋ Java ๊ธฐ๋ฐ์ ์๋ฒ๋ฅผ ๊ตฌ์ถํ๊ธฐ์ํด ์ฌ์ฉ
โข ์ธ์ฆ๊ณผ ๊ถํ ๋ถ์ฌ๋ฅผ ์ํ ํฌ๊ด์ ์ธ ๋ณด์ ํ๋ ์์ํฌ
โข JWT ๊ธฐ๋ฐ์ ์ธ์ฆ ๋ฐ ์ธ๊ฐ๋ฅผ ๊ตฌํํ๊ธฐ์ํด ์ฌ์ฉ
โข ์ถํ, ์ธ์ฆ ๋ฐ ์ธ๊ฐ์ ํ์ฅ์ ๊ฐ๋ฅ์ฑ์ด ์๊ธฐ ๋๋ฌธ์, interceptor ๋์ Spring Security ์ฌ์ฉ
โข Java ORM ๊ธฐ์ ๋ก, MYSQL์ ์๋ฐ์์ ๊ด๋ฆฌํ๊ธฐ ์ํด ์ฌ์ฉ
โข ๋น๋ ๋ฐ ์์กด์ฑ ๊ด๋ฆฌ ๋๊ตฌ๋ก, Maven๊ณผ ๋น๊ตํ์ฌ ๋ ์ ์ฐํ๊ณ ๊ฐ๋ ฅํ ๊ธฐ๋ฅ์ ์ ๊ณต
โข API ๋ฌธ์๋ฅผ ์๋์ผ๋ก ์์ฑํ๊ณ , API ์๋ํฌ์ธํธ๋ฅผ ํ ์คํธํ ์ ์๋ ์ธํฐํ์ด์ค
โข ์ฌ์ฉ์ ์ธ์ฆ์ ์ฌ์ฉ๋๋ ํ ํฐ ๊ธฐ๋ฐ ๊ธฐ์ ๋ก, ์๋ฒ์ ํด๋ผ์ด์ธํธ ๊ฐ์ ์์ ํ ์ ๋ณด ๊ตํ์ ๊ฐ๋ฅ
โข ์๋ฒ Scale-out์์, Session ๋ฐฉ์์ ๋นํด ํ์ฅ์ฑ์ด ์ข์ JWT ๋ฐฉ์์ผ๋ก ์ธ์ฆ ๋ฐ ์ธ๊ฐ ๊ตฌํ
โข ์ธ๋ถ ์ ๊ณต์๋ฅผ ํตํ ์ธ์ฆ์ ๊ตฌํํ๋ ๋ฐ ์ฌ์ฉ๋๋ ํ๋ ์์ํฌ
โข ์ฌ์ฉ์ ๋ก๊ทธ์ธ ํธ์์ฑ ๋ฐ ๋์ ์ ๊ทผ์ฑ์ ์ํด Kakao๋ฅผ ์ฌ์ฉ
โข ๋ค์ด๋ฒ ํด๋ผ์ฐ๋์์ ์ ๊ณตํ๋ ํด๋ผ์ฐ๋ ์ปดํจํ
์๋น์ค
โข ์๋ฒ๋ฅผ ๋ฐฐํฌํ๊ธฐ ์ํด ์ฌ์ฉ
โข Private Subnet์ ์ค์๋ฒ ๊ตฌ์ถ ๋ฐ Public Subnet์ Test Server ๊ตฌ์ถ
โข Test Server๋ฅผ ํตํด ํ
์คํธ ํ๊ฒฝ ๊ตฌ์ถ ๋ฐ Bastion Host ๊ธฐ๋ฅ ์ํ
โข HTTP ํธ๋ํฝ์ ์ ์ดํ๊ธฐ ์ํด Network 7๊ณ์ธต์ Application Load Balancer ์ฌ์ฉ
โข AutoScaling ์ฐ๊ฒฐ๋ก ์ธํ ํ์ฅ์ฑ ์ฆ๊ฐ
โข ํธ๋ํฝ์ ๋ถ์ฐ ์ํค๋ฏ๋ก, ์์คํ
๊ฐ์ฉ์ฑ ์ฆ๊ฐ
โข SSL ์ธ์ฆ์ ๋ฐ๊ธ ๋ฐ๊ธฐ ์ํด ์ฌ์ฉ
โข Load Balancer์ ์ฐ๋ํ์ฌ HTTPS ํ๋กํ ์ฝ ์ ์ฉ
โข Load Balancer ๋ฐ Front ๋ฐฐํฌ ์๋ฒ์ Domain ์ด๋ฆ์ ์ ์ฉ์ํค๊ธฐ ์ํด ์ฌ์ฉ
โข DNSSEC์ ์ ์ฉํ์ฌ ๋ณด์๊ฐํํ๊ธฐ ์ํด ์ฌ์ฉ
โข ํธ๋ํฝ์ ๋ณํ์ ์๋ฒ๋ฅผ ํ๋ ฅ์ ์ผ๋ก ๊ด๋ฆฌ ๊ฐ๋ฅ
โข ์๋ฒ scale-out ๋ฐ scale-in ์๋ํ
โข Launch Configuration์ ์๋ฒ ํ๊ฒฝ์ค์ ๊ฐ์ํ
โข Load Balancer ์ฐ๋์ ํตํ ํจ๊ณผ์ ์ธ ํธ๋ํฝ ๋ถ์ฐ
โข ํด๋ผ์ฐ๋ ํ๊ฒฝ์์ ์ฌ์ค ๋คํธ์ํฌ๋ง์ ๊ตฌ์ถํด ์์ ์ฑ ํ๋ณด
โข ACG ๋ฐ Network ACL ์ด์ค ๋ฐฉํ๋ฒฝ์ ํตํ ๋ณด์ ๊ฐํ
โข ๊ณต์ธ IP ๋ฐ๊ธ์ ์ค์ฌ, ๋น์ฉ ๊ฐ์
โข ๋ด๋ถ์ Subnet์ ๋๋ ํจ์จ์ ์ธ ์ธํ๋ผ ๊ณต๊ฐ ๋ถ๋ฆฌ
โข Public Subnet์ Load Balancer, Private Subnet์ ์๋ฒ ๋ฐ DB๋ฅผ ๊ตฌ์ถํจ์ผ๋ก์จ, ์ธ๋ถ ์นจ์
๋ฐฉ์ด
โข VPC ๋ด๋ถ Private Subnet์ ์๋ฒ๊ฐ ํ๋์ ๊ณต์ธ IP๋ฅผ ํ์ฉํ์ฌ ์ธ๋ถ ์ธํฐ๋ท๊ณผ ํต์ ํ ์ ์๋๋ก ํ๋ Gateway
โข ์คํ๋ง ์๋ฒ๋ด์์ ๋ฐ์ํ๋ API ํธ์ถํ ๋ ํ์
โข ์ธ๋ถ์์ ํธ๋ํฝ์ด ๋ค์ด์ฌ ์ ์์ด ๋ณด์ ๊ฐํ
โข ์ฌ์ฉ์ ํผ๋์ ์ฌ์ง ๋ฐ ํ์ผ์ด ์ ์ฅ๋๋ ์ ์ฅ์
โข AWS S3์ ์ฐ๋๋์ด ๋์ ํธํ์ฑ
โข ๊ณ ๊ฐ์ฉ์ฑ์ผ๋ก ์ธํ ์์คํ
์์ ์ฑ ํ๋ณด
โข ์ฌ์ฉ์์๊ฒ ์ค์๊ฐ ์๋ฆผ์ ๋ณด๋ด๊ธฐ ์ํ ๊ธฐ์
โข FCM์ ํตํด ์ฌ์ฉ์์๊ฒ ํธ์ ๋ฉ์ธ์ง ์ ์ก๊ฐ๋ฅ
โข ์๋ฒ์ ์ฐ๊ฒฐ๋๋ ๋ฉ์ธ DB
โข Github์ ์ฐ๋ํด CI-CD ํ์ดํ๋ผ์ธ ๊ตฌ์ถ
โข main -> ์ค์๋ฒ ๋ฐฐํฌ CI-CD
โข develop -> ํ
์คํธ์๋ฒ ๋ฐฐํฌ CI-CD
โข ๊ทธ ์ธ -> Commit & PR์, ์๋ ๋น๋ ๋ฐ ํ
์คํธ ์งํ
โข CI ์งํ ํ, Jar ํ์ผ์ ์์ถ์์ผ Object Storage์ ์ ์ฅ
โข ํ์ผ์ ๋ฒ์ ๋ณ๋ก ๋๋ ์ ์์ด, ์ฝ๊ฒ Rollback ๊ฐ๋ฅ
โข AWS S3 CLI์ ์ฐ๋๋์ด, ๊ฐํธํ๊ฒ ํ์ผ ์ ์ฅ ๊ฐ๋ฅ
โข Object Storage์ ํ์ผ์ ๊ธฐ๋ฐ์ผ๋ก AutoScaling CD ์งํ
โข ๋ฐฐํฌ ์คํฌ๋ฆฝํธ๋ฅผ ํตํด Spring ์๋ฒ ์คํ
โข Auto Scaling Group๋ณ๋ก ๋ธ๋ฃจ/๊ทธ๋ฆฐ ๋ฌด์ค๋จ ๋ฐฐํฌ
โข GitHub Action์์ naver signiture v2 ๋ฐฉ์์ผ๋ก API ํธ์ถ๊ฐ๋ฅ
โข Source Deploy๋ฅผ ์ ์ฉํ๊ธฐ ์ํด ๊ผญ ํ์ํ ํ๋ก๊ทธ๋จ
โข Server์ ์๋ ์คํฌ๋ฆฝํธ๋ฅผ ์ ์ฉํ์ฌ ์๋ ์ค์น
- Folder:
kebab-case
- File:
PascalCase
- Component:
PascalCase
- Constant:
SNAKE_CASE
- Variable:
camelCase
- State(atom, recoil):
camelCaseState
- Interface
- props:
PascalCaseProps
- api response:
PascalCaseProps
- props:
- Package :
lowercase
- Class :
PascalCase
- Constant :
UPPERCASE
- Method :
camelCase
- Variables :
camelCase
"[์ปค๋ฐ์ ํ] ์์ ๋ด์ฉโ
EX) [feat] ์นด์นด์ค ๋ก๊ทธ์ธ ๊ธฐ๋ฅ ์ถ๊ฐ
Tag | ๋ป |
---|---|
feat | ์๋ก์ด ๊ธฐ๋ฅ ์ถ๊ฐ |
fix | ๋ฒ๊ทธ ์์ |
docs | ๋ฌธ์ ์์ |
style | ์ฝ๋ formatting, ์ธ๋ฏธ์ฝ๋ก ๋๋ฝ, ์ฝ๋ ์์ฒด์ ๋ณ๊ฒฝ์ด ์๋ ๊ฒฝ์ฐ |
refactor | ์ฝ๋ ๋ฆฌํฉํ ๋ง |
test | ํ ์คํธ ์ฝ๋, ๋ฆฌํฉํ ๋ง ํ ์คํธ ์ฝ๋ ์ถ๊ฐ |
chore | ํจํค์ง ๋งค๋์ ์์ , ๊ทธ ์ธ ๊ธฐํ ์์ ex) .gitignore |
design | CSS ๋ฑ ์ฌ์ฉ์ UI ๋์์ธ ๋ณ๊ฒฝ |
comment | ํ์ํ ์ฃผ์ ์ถ๊ฐ ๋ฐ ๋ณ๊ฒฝ |
rename | ํ์ผ ๋๋ ํด๋ ๋ช ์ ์์ ํ๊ฑฐ๋ ์ฎ๊ธฐ๋ ์์ ๋ง์ธ ๊ฒฝ์ฐ |
remove | ํ์ผ์ ์ญ์ ํ๋ ์์ ๋ง ์ํํ ๊ฒฝ์ฐ |
!HOTFIX | ๊ธํ๊ฒ ์น๋ช ์ ์ธ ๋ฒ๊ทธ๋ฅผ ๊ณ ์ณ์ผ ํ๋ ๊ฒฝ์ฐ |
init | ํ๋ก์ ํธ ์์ฑ ํ ์ฒซ ์ปค๋ฐ |
์ปค๋ฐ์ ํ:์ปค๋ฐ ๋ฉ์ธ์ง #(์ด์๋ฒํธ)
EX) Feat: ์นด์นด์คํ์ด ๊ฒฐ์ ๊ธฐ๋ฅ ๊ฐ๋ฐ (#13)
Tag | ๋ป |
---|---|
Feat | ์๋ก์ด ๊ธฐ๋ฅ ์ถ๊ฐ |
Fix | ๋ฒ๊ทธ ์์ ๋ฐ ๊ธฐ๋ฅ ์์ |
Docs | ๋ฌธ์ ์ถ๊ฐ ๋ฐ ์์ |
Test | ํ ์คํธ ์ฝ๋ ์ถ๊ฐ ๋ฐ ์์ |
Refactor | ์ฝ๋ ๋ฆฌํฉํ ๋ง |
Rename | ํ์ผ ๋ฐ ํด๋๋ช ์์ |
Remove | ํ์ผ ์ญ์ |
Chore | ๊ทธ ์ธ ์์ํ ์์ |
![gitflow](https://private-user-images.githubusercontent.com/113423517/326930629-69f432a8-3764-4cbe-9f62-81372ebe13d0.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3Mzk3MTcxMDgsIm5iZiI6MTczOTcxNjgwOCwicGF0aCI6Ii8xMTM0MjM1MTcvMzI2OTMwNjI5LTY5ZjQzMmE4LTM3NjQtNGNiZS05ZjYyLTgxMzcyZWJlMTNkMC5wbmc_WC1BbXotQWxnb3JpdGhtPUFXUzQtSE1BQy1TSEEyNTYmWC1BbXotQ3JlZGVudGlhbD1BS0lBVkNPRFlMU0E1M1BRSzRaQSUyRjIwMjUwMjE2JTJGdXMtZWFzdC0xJTJGczMlMkZhd3M0X3JlcXVlc3QmWC1BbXotRGF0ZT0yMDI1MDIxNlQxNDQwMDhaJlgtQW16LUV4cGlyZXM9MzAwJlgtQW16LVNpZ25hdHVyZT04OGI3YTNjYmRkYWM2ZmQxYmVlOGM1ZDQyYTY4ZmNkZTNmMTMxNjM3NWM0MTg3M2YwYzJkMWVkN2EwN2M5NTA0JlgtQW16LVNpZ25lZEhlYWRlcnM9aG9zdCJ9.6Jbz4ev893Xn66w36g2qLSKLCknajxfayAINDf4pp24)
main
ย : ์ถ์ ๊ฐ๋ฅํ ํ๋ก๋์ ์ฝ๋์ ๋ธ๋์นdevelop
ย : ๋ค์ ๋ฒ์ ์ ๊ฐ๋ฐํ๋ ๋ธ๋์นfeat
ย : ์ด์ ๋จ์๋ก ๊ธฐ๋ฅ์ ๊ฐ๋ฐํ๋ ๋ธ๋์น- ๋ธ๋์น ๋ค์ด๋ฐ :ย
feat/#์ด์๋ฒํธ
- ๋ธ๋์น ๋ค์ด๋ฐ :ย
fix
: ์ด์ ๋จ์๋ก ๋ฒ๊ทธ๋ฅผ ์์ ํ๋ ๋ธ๋์น- ๋ธ๋์น ๋ค์ด๋ฐ:
fix/#์ด์๋ฒํธ
- ๋ธ๋์น ๋ค์ด๋ฐ:
๋ฐฑ์๋์ ๊ฒฝ์ฐ CI-CD๋ฅผ ํตํด ๊ฐ๋ฐ ๋ถํฐ ๋ฐฐํฌ๊น์ง ์๋ํ๋ฅผ ์งํํ์์ผ๋ฉฐ, ์ํฌํ๋ก์ฐ๋ ๋ค์๊ณผ ๊ฐ์ต๋๋ค.
Github Action์ผ๋ก ๊ตฌํ์ ํ์์ผ๋ฉฐ, ๊นํ๋ธ ์์ ์ฝ๋๊ฐ push๋๊ฑฐ๋, merge๋์์ ๋, ๋น๋ ๋ฐ ํ ์คํธ๊ฐ ์งํ์ด ๋ฉ๋๋ค. ์ด ๊ณผ์ ์ด ์ฑ๊ณต์ ์ผ๋ก ์ข ๋ฃ๋๋ฉด ๋น๋ํ์ผ์ Object Storage์ ์ ์ฅ์ ํฉ๋๋ค. ์ดํ, Naver Signiture V2 ๋ฐฉ์์ ํตํด api ์์ฒญ์ผ๋ก Source Deploy์ ํธ๋ฆฌ๊ฑฐ๋ฅผ ๊ฑธ์ด ์๋์ผ๋ก Autoscaling ๋ธ๋ฃจ/๊ทธ๋ฆฐ ๋ฌด์ค๋จ ๋ฐฐํฌ๋ฅผ ์งํํฉ๋๋ค.
๊ธฐ๋ฅ๊ฐ๋ฐ์ํ๋ feature ๋ธ๋์น๋, ์ค๋ฅ ํด๊ฒฐํ๋ fix ๋ธ๋์น์ ๊ฒฝ์ฐ, ๋ฐฐํฌ๊ฐ ํ์ํ์ง์์ต๋๋ค. ๋ฐ๋ผ์, ๊นํ๋ธ ์์ ์ฝ๋๊ฐ push๋ ๊ฒฝ์ฐ, ์๋ ๋น๋ ๋ฐ ํ ์คํธ๊ฐ ์งํ์ด ๋๋ฉฐ, ์ด ๊ณผ์ ์ ์ฑ๊ณต์ ๋ฌด๋ฅผ ํตํด ์ฝ๋๊ฐ ์ ์์ ์ธ์ง ํ๋จํฉ๋๋ค.