๐ ํ ํฌ ๋ธ๋ก๊ทธ, ๊ธฐ์ ๊ณต์ ๋ฐ ํ๊ณ ํ๋ซํผ ๐
'ํ ํฌ ๋ธ๋ก๊ทธ'๋ ์ฃผ๋ง์์ง์ ๋ง๋๋ ํ ์ค๋๋ฆฌ์ ์ฑ์ฅ ๊ณผ์ ์ ๊ธฐ๋กํ๋ ์ ์ฅ์์ด์, ์ฌ์ฉ์์๊ฒ ๊ทธ ๊ณผ์ ์ ๋ณด์ฌ์ฃผ๊ธฐ ์ํด ์์๋ ์๋น์ค์ ๋๋ค.
๋ณธ ํ๋ก์ ํธ๋ฅผ ํตํด ๋ค์๊ณผ ๊ฐ์ ๊ฒฝํ๊ณผ ์ง์์ ์๊ณ ์์ต๋๋ค.
- Vue ํ๋ ์์ํฌ๋ฅผ ํตํ CSR ๊ฐ๋ฐ
- ์ฃผ๋ง์์ง ๋ณธ ์๋น์ค์์ API ํผํฉ ์ฌ์ฉ
- Typescript ์ธ์ด๋ฅผ ํตํ ์ปดํ์ผ ์์ ์์ ์ฑ ํ๋
- ์ปดํฌ๋ํธ, ๋ชจ๋ํ๋ก ์ฝ๋ ํ์ง ๊ด๋ฆฌ
- ๋ถํธ์คํธ๋ฉ์ ํตํ ๋ฐ์ํ CSS ์ ์ฉ
- ์๋น์ค ๊ธฐ๋ฅ ๋ฐ ํ๋ก์ธ์ค ์ ์
- Github Actions, AWS S3, CodeDeploy๋ฅผ ํตํ ์๋ํ ๋ฐฐํฌ ํ์ดํ๋ผ์ธ ๊ตฌ์ถ
์ดํ๋ฆฌ์ผ์ด์
- Typescript
- Vue3
- Vuex
- Vue-Router
- Bootstrap
- Axios
Build
- npm
๋ก๊ทธ์ธ/๋ก๊ทธ์์
- ์ฃผ๋ง์์ง ๊ด๋ฆฌ์ ๊ณ์ ์ผ๋ก ๋ก๊ทธ์ธ/๋ก๊ทธ์์
์ฃผ๋ง์์ง ์๋น์ค์ ๋์ผํ๊ฒ RefreshToken์ Cookie์์ ๊ด๋ฆฌํ๋ ๋ฐฉ์์ผ๋ก reissue ์ฒ๋ฆฌ๋ฅผ ์งํํฉ๋๋ค. ์ฃผ๋ง์์ง ์๋น์ค๋ฅผ ํตํด ๋ก๊ทธ์ธ ํ, ํ ํฌ ๋ธ๋ก๊ทธ ์ ์ ์ ๋ก๊ทธ์ธ ์ํ๊ฐ ์ ์ง๋ฉ๋๋ค.
๋ฆฌ๋ทฐ ์น์ธ๋ ๊ฒ์๊ธ ์ ์ฒด ์กฐํ
- ํ ํฌ ๋ธ๋ก๊ทธ์ ๋ ธ์ถ๋๋ ๊ฒ์๊ธ์ ๋ชจ๋ ๋ด๋ถ ๊ด๋ฆฌ์๋ค์ ์ํด ๋ฆฌ๋ทฐ๊ฐ ๊ฑฐ์ณ์ง ๊ฒ์๊ธ์ ๋๋ค. ํด๋น ๊ฒ์๊ธ์ ๋ก๊ทธ์ธ ํ์ง ์์ ์ํ์์๋ ์กฐํ๊ฐ ๊ฐ๋ฅํฉ๋๋ค.
๋จ, ๊ฒ์๊ธ์ ๋ํ ๊ด๋ฆฌ์์ ๋ฆฌ๋ทฐ๋ ๊ด๋ฆฌ์๋ง ์ด๋ํ ์ ์์ต๋๋ค.
ํํธ๋ณ ๊ฒ์๊ธ ํํฐ๋ง
- ๋ฉ์ธํ์ด์ง ์ฌ์ด๋๋ฐ๋ฅผ ํตํด ํํฐ๋ง
๋ฉ์ธํ์ด์ง ์ฌ์ด๋๋ฐ์๋ WEB/SERVER/INFRA 3๊ฐ์ง ํํฐ๋ฅผ ์ ๊ณตํฉ๋๋ค. ํํฐ๋ง์ด ์ ์ฉ๋๋ฉด, ์ข์ธก ๊ฒ์๊ธ ๋ฆฌ์คํธ ํ๋ฉด์ด ๋์ ์ผ๋ก ๋ณ๊ฒฝ๋ฉ๋๋ค.
๊ธ์ฃผ์ ํซ ๊ฒ์๊ธ TOP3 ์กฐํ
- ๋ฉ์ธํ์ด์ง ์ฌ์ด๋๋ฐ ํ๋จ์ ๊ธ์ฃผ์ ํซ ๊ฒ์๊ธ TOP3 ์ ๋ชฉ ๋ ธ์ถ
ํ ํฌ ๋ธ๋ก๊ทธ์์ ๊ฐ์ฅ ์กฐํ๊ฐ ๋ง์ด ๋ ๊ฒ์๊ธ ์์ 3๊ฐ์ ์ ๋ชฉ์ ๋ ธ์ถํฉ๋๋ค. ํด๋น ๊ฒ์๊ธ ์ ๋ชฉ์ ํด๋ฆญํ๋ฉด, ์์ธ ํ์ด์ง๋ก ์ด๋ํฉ๋๋ค.
๋ก๊ทธ์ธ ์, ๊ธ์ฐ๊ธฐ ๋ฒํผ ๋ ธ์ถ ๋ฐ ๊ฒ์๊ธ ์์ฑ
- ๋ก๊ทธ์ธ๋ ์ ์ ์ ํํด, ๊ธ์ฐ๊ธฐ ๋ฒํผ์ ๋ ธ์ถ
- ๊ฒ์๊ธ ์์ฑ ์, Toast-ui ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ์ด์ฉํด ๋งํฌ๋ค์ด ํ์์ผ๋ก ๊ฒ์๊ธ ์์ฑ
๊นํ๋ธ ์ํค ํ์ด์ง์์ ๋งํฌ๋ค์ด ํ์์ผ๋ก ๊ฒ์๊ธ์ ์์ฑํ ์ํ์ด๋ฏ๋ก ๋ง์ด๊ทธ๋ ์ด์ ์ ์ฉ์ดํ๊ฒ ํ๊ธฐ ์ํด ๋ณธ ์๋น์ค์์๋ ๋งํฌ๋ค์ด ํ์๋ง์ ์ง์ํฉ๋๋ค.
๋ณธ์ธ์ด ์์ฑํ ๊ฒ์๊ธ์ ๋ํด์๋ง ์์ /์ญ์ ๋ฒํผ ๋ ธ์ถ
- ๋ก๊ทธ์ธ๋ ์ ์ ์ด๋ฉด์ ๋ณธ์ธ์ธ ๊ฒฝ์ฐ, ๊ฒ์๊ธ ์์ /์ญ์ ๋ฒํผ ๋ ธ์ถ
๊ด๋ฆฌ์ ๋ชจ๋ ๋๋ฑํ ๊ถํ์ ๊ฐ๊ณ ์๊ธฐ ๋๋ฌธ์, ์์ ์ ๊ฒ์๊ธ์ ์์ ๋ง์ด ์์ /์ญ์ ํ ์ ์์ต๋๋ค.
๋ง์ดํ์ด์ง์์ 4๊ฐ์ง ํํฐ๋ง ์ ๊ณต
- ๋ด๊ฐ ์์ฑํ ๊ฒ์๊ธ ์ ์ฒด ์กฐํ ( ๋ฆฌ๋ทฐ์ด๋ก๋ถํฐ ์น์ธ/๋ฐ๋ ค ์ฒ๋ฆฌ๋ ๊ฒ์๊ธ์ ์ถ๊ฐ ํํฐ๋ง ํฉ๋๋ค. )
- ๋ด๊ฐ ๋ฆฌ๋ทฐ ์ ์ฒญํ ๊ฒ์๊ธ ์ ์ฒด ์กฐํ
- ๋ด๊ฐ ๋ฆฌ๋ทฐํ ๊ฒ์๊ธ ์ ์ฒด ์กฐํ ( ๋ด๊ฐ ์น์ธ/๋ฐ๋ คํ ๊ฒ์๊ธ์ ์ถ๊ฐ ํํฐ๋ง ํฉ๋๋ค. )
- ๋ด๋ผ ๋ฆฌ๋ทฐํด์ผ ํ๋ ๊ฒ์๊ธ ์ ์ฒด ์กฐํ
์์ 4๊ฐ์ง ํํฐ๋ง์ ๊ฑฐ์น ๊ฒ์๊ธ์ ๋ํด ๋ฆฌ๋ทฐ ํด์ผ ํ๋ ๊ฒ์๊ธ ์์ธ๋ณด๊ธฐ ํด๋ฆญ ์, ํ๋จ์ ๋ฆฌ๋ทฐ ์ ๋ ฅ ํผ์ด ๋ ธ์ถ๋ฉ๋๋ค.
๋ฆฌ๋ทฐ ํ์ธํ๊ธฐ ๋ฒํผ์ ํตํด ๋ฆฌ๋ทฐ๊ฐ ๋ฑ๋ก๋ ๊ฒ์๊ธ์ ์์ธ ์กฐํ ํ์ด์ง๋ก ๋ผ์ฐํ ๋ฉ๋๋ค.
๋ฆฌ๋ทฐ
- ํ์ธ์ ๊ฒ์๊ธ ๋ฆฌ๋ทฐ
๋ฆฌ๋ทฐ ์น์ธ/๋ฐ๋ ค์ ๋ํด ์ฝ๋ฉํธ๋ฅผ ์์ฑํด์ผ๋ง ํฉ๋๋ค.
์ฌ๋ฐ๋ฅด์ง ์์ URL๋ก ์ ๊ทผํ ๊ฒฝ์ฐ, 404 ํ์ด์ง ๋ ธ์ถ
- 404 ํ์ด์ง ํ๋ฉด ๊ตฌํ ๋ฐ ๋ผ์ฐํฐ ๊ฐ๋ ์ ์ฉ
์๋น - ํ ํฌ๋ธ๋ก๊ทธ ๊ธฐํ
์๋น - ํ๋ก์ ํธ ์ด๊ธฐ ์ธํ
์๋น - CD ํ์ดํ๋ผ์ธ ๊ตฌ์ถ
์๋น - ์ด์(Reissue)