๐ ํ๋ก ํธ์๋ ๋ ํฌ์งํ ๋ฆฌ ๋งํฌ
- Eํ์ ๊ฒฝ๋ถ๋์ ๋ค๋๋ ๋ค์ํ ๋ฐฐ๊ฒฝ์ ํ์ฐ๋ค์ ์ํ ์๋น์ค
๐ Youtube ๋งํฌ
๊ฒฝ๋ถ๋ ํ์๋ค์ ์ํ ์์ทจ๋ฐฉ ์ด์ด์ด๊ธฐ ๋งค์นญ ํ๋ซํผ์ด๋ค. ์ฌ์ฉ์๋ ์ฝ๊ฒ ๊ธฐ์กด ๊ฑฐ์ฃผ์์ ๋ฐฉ์ ์ด์ด๋ฐ์ ์์ทจํ ๋ ๊ฒช๋ ์ฃผ๊ฑฐ์ง ๊ตฌํ๊ธฐ์ ์ด๋ ค์์ ํด๊ฒฐํ๊ณ , ๊ฒฝ์ ์ ๋ถ๋ด์ ์ค์ผ ์ ์๋ค. ๋ํ ํ๋ซํผ์ ํตํด ๋งค๋ฌผ์ ๋ํ ์์ธ ์ ๋ณด๋ฅผ ํ์ธํ๊ณ , ๊ฐํธํ๊ฒ ์ ์ฃผ ์กฐ๊ฑด์ ๋ง์ถ ์ ์๋ค.
- ํ์์ ๊ฑฐ์ ์ ์ผํ ์ด์ด์ด๊ธฐ ๊ฑฐ๋ ํ๋ซํผ
- ๊ตฌ์ฒด์ ์ธ ๊ฒ์ ์กฐ๊ฑด ํํฐ๋ง ๊ธฐ๋ฅ ์ ๊ณต
- ์ฆ๊ฐ์ ์ธ ์ฑํ ๊ธฐ๋ฅ
- ์ด์ด์ด๊ธฐ ๋งค๋ฌผ ๋ฑ๋ก
- ๋งค๋ฌผ์ ์์น, ๊ฐ๊ฒฉ, ์ ์ฃผ ๊ฐ๋ฅ ๋ ์ง ๋ฑ ์ฃผ์ ์ ๋ณด๋ฅผ ํ๊ทธํํ์ฌ, ๊ธ ์์ฑ์์๋ ์ ์ฃผ ํฌ๋ง์๊ฐ ํ์๋ก ํ๋ ์ ๋ณด๋ค์ ์์ง ์๊ณ ๊ธฐ์ ํ ์ ์๋ค.
- ๋งค๋ฌผ ํํฐ๋ง ๋ฐ ์กฐํ
- ์์ธํ ์กฐ๊ฑด ํํฐ๋ฅผ ํตํด ์ํ๋ ์กฐ๊ฑด์ ๋งค๋ฌผ์ ๊ฐํธํ๊ฒ ์กฐํํ ์ ์๋ค.
- ํ๋งค์ - ๊ตฌ๋งค์ ๊ฐ ์ค์๊ฐ ์ฑํ ๊ธฐ๋ฅ
- ํ๋ซํผ ๋ด์์ ๊ฐํธํ๊ฒ ์ค์๊ฐ์ผ๋ก ๋งค๋ฌผ๋ณ ์ฑํ ์ ํ ์ ์๋ค.
-
- ๋งค๋ฌผ, ์ฌ์ฉ์ ์ ๋ณด, ์ฑํ ๋ก๊ทธ ๋ฑ์ ์ ์ฅ ๋ฐ ๊ด๋ฆฌํ๋ค.
-
๋งค๋ฌผ ๊ฒ์: Spring Data JPA Specification
- ๋์ ์ฟผ๋ฆฌ๋ฅผ ์์ฑํด ๋ฐ์ดํฐ๋ฒ ์ด์ค์์ ์ํ๋ ๋ฐ์ดํฐ๋ฅผ ํจ์จ์ ์ผ๋ก ์กฐํํ๋ค.
-
์ด๋ฏธ์ง ํ์ผ ์ ์ฅ: AWS S3
- ์ ๋ก๋๋ ์ด๋ฏธ์ง๋ค์ S3 ๋ฒํท์ ํตํด ์ ์ฅ ๋ฐ ํธ์คํ ๋๋ค.
-
์ฌ์ฉ ๊ธฐ์ : JWT, Spring Security
- JWT ํ ํฐ์ ์ด์ฉํด ์ ์ ์ธ์ฆ ๋ฐ ์ธ๊ฐ ๊ณผ์ ์ ์์ ํ๊ฒ ๊ตฌํํ๊ณ , ํน์ ๋ฆฌ์์ค์ ๋ํ ์ ๊ทผ ๊ถํ์ ๊ด๋ฆฌํ๋ค.
- ์ฌ์ฉ ๊ธฐ์ : WebSocket, STOMP, SockJS
- WebSocket์ ์ฌ์ฉํ์ฌ ์ค์๊ฐ ์ฑํ ๊ธฐ๋ฅ์ ๊ตฌํํ๋ค.
- ์ด ๋ STOMP ํ๋กํ ์ฝ์ ์ฌ์ฉํ์ฌ ํด๋ผ์ด์ธํธ ๊ฐ ๋ฉ์์ง ์ก์์ ์ฒ๋ฆฌ๋ฅผ ํ๋ค.
- API ๋ฌธ์ํ: Swagger
- ์๋ฒ: AWS EC2
- CI/CD: GitHub Actions
- ์ฝ๋ ํธ์๋ PR ๋จธ์ง ๋ฑ์ ์ด๋ฒคํธ์ ๋ฐ๋ผ GitHub Actions๊ฐ ํธ๋ฆฌ๊ฑฐ๋์ด ์๋์ผ๋ก ๋น๋ ๋ฐ ๋ฐฐํฌ๊ฐ ์ด๋ฃจ์ด์ง๋ค. ์ด๋ก ์ธํด ๊ฐ๋ฐ ์ํฌํ๋ก์ฐ๊ฐ ์๋ํ๋์ด, ์ฝ๋ ๋ณ๊ฒฝ์ด ์์ ๋๋ง๋ค ๋น ๋ฅด๊ฒ ๋ฐฐํฌํ ์ ์๋ค.
- ์ง์์ ํตํฉ/๋ฐฐํฌ ์๋ํ๋ฅผ ๊ตฌํํ๋ค.
-
๊ฑฐ์ฃผ ํ๊ฒฝ ํ๊ฐ ์์คํ ๋์
์ฌ์ฉ์๊ฐ ๊ฑฐ์ฃผํ๋ ์ฃผ๊ฑฐ์ง์ ๋ํ ํ๊ฐ ์์คํ ์ ๋์ ํ์ฌ, ๋งค๋ฌผ์ ์ํ๋ฅผ ๋ ์ ํํ๊ฒ ํ์ ํ ์ ์๋๋ก ๋๋๋ค. ์ฒญ๊ฒฐ๋, ์์ ๋ฑ ๊ตฌ์ฒด์ ์ธ ์ ๋ณด๋ฅผ ํ๊ฐํ์ฌ ๋ณด๋ค ์ ๋ขฐ์ฑ ๋์ ๋งค๋ฌผ ์ ๋ณด๋ฅผ ์ ๊ณตํ๊ณ ์ฌ์ฉ์ ๋ง์กฑ๋๋ฅผ ๋์ผ ์ ์๋ค. -
์ง๋ API ํตํฉ
์ง๋ API๋ฅผ ๋์ ํด ์ฌ์ฉ์๋ค์ด ๋งค๋ฌผ์ ์์น๋ฅผ ์ง๊ด์ ์ผ๋ก ํ์ ํ ์ ์๋๋ก ๊ฐ์ ํ๋ค. ์ด๋ก์จ ํ๊ต์์ ๊ฑฐ๋ฆฌ, ๋์ค๊ตํต ์ ๊ทผ์ฑ, ์ฃผ๋ณ ํธ์์์ค ๋ฑ์ ์ฝ๊ฒ ํ์ธํ ์ ์๋ค. -
์ธ๊ตญ์ธ ํ์ ์ง์ ์๋น์ค ํ์ฅ
๊ฒฝ๋ถ๋์ ์ฌํ์ค์ธ ์ธ๊ตญ์ธ ํ์๋ค์ ์ํด ๋ค๊ตญ์ด ์ง์์ ์ถ๊ฐํ๊ณ , ์ฃผ๊ฑฐ ๊ด๋ จ ์ ์ฐจ์ ๋ํ ๊ฐ์ด๋๋ฅผ ์ ๊ณตํ์ฌ ๋ ๋ค์ํ ๋ฐฐ๊ฒฝ์ ์ฌ์ฉ์๋ฅผ ์ ์นํ ์ ์๋ค. -
๊ธฐ์ ์ฐ๊ณ
์ด์ฌ ์๋น์ค ๋ฐ ๊ฐ๊ตฌ ๋์ฌ ์๋น์ค์์ ์ ๋ต์ ์ ํด๋ฅผ ํตํด ์์ทจ์๋ค์ด ํ์ํ ๋ชจ๋ ์ฃผ๊ฑฐ ๊ด๋ จ ์๋น์ค๋ฅผ ํ ๊ณณ์์ ์ ๊ณตํ๋ ํตํฉ ํ๋ซํผ์ผ๋ก ๋ฐ์ ํ ์ ์๋ค. ๋ํ, ์์ทจ ์ํํ ๊ตฌ๋ ์๋น์ค๋ฅผ ํตํด ์ถ๊ฐ์ ์ธ ์์ต ๋ชจ๋ธ์ ์ฐฝ์ถํ ์ ์์ต๋๋ค. -
์ง์ญ ํ์ฅ ๋ฐ ์ปค๋ฎค๋ํฐ ๊ธฐ๋ฐ ํ๋ซํผ
ํ์ฌ๋ ๊ฒฝ๋ถ๋ ํ์๋ค์ ์ฃผ ํ๊ฒ์ผ๋ก ํ์ง๋ง, ํฅํ ์ ๊ตญ์ ์์ทจ์๋ค์ ๋์์ผ๋ก ์๋น์ค๋ฅผ ํ์ฅํ ์ ์๋ค. ๋ ๋์๊ฐ ์์ทจ์๋ค์ด ์ฃผ๊ฑฐ ํ์ด๋ ์ํ ์ ๋ณด๋ฅผ ๊ณต์ ํ ์ ์๋ ์์ทจ ์ปค๋ฎค๋ํฐ ํ๋ซํผ์ผ๋ก ๋ฐ์ ํ ์ ์์ต๋๋ค.
์ด๋ฌํ ๋ฐฉ์๋ค์ ํตํด ๊ฒฝ๋ถ๋ ํ์ฆ๋ ๋จ์ํ ์ด์ด์ด๊ธฐ ๋งค์นญ ์๋น์ค๋ฅผ ๋์ด, ์์ทจ์ ํ์ํ ๋ค์ํ ์์๋ฅผ ์ข ํฉ์ ์ผ๋ก ์ ๊ณตํ๋ ํ ํธ ์์ทจ ํ๋ซํผ์ผ๋ก ๋ฐ์ ํ ์ ์๋ค.