AI ํ๋ก ์๋ด์ฌ์ ํจ๊ป ์ธ์ ์ด๋์๋ ๋ฌด๋ฃ๋ก ํ๋ก ์๋ด์ ์ฆ๊ธธ ์ ์์ด์ ๐ซ
์ํ๋ ํ๋ก ์๋ด์ฌ์ ์ค์๊ฐ ํ์ ํ๋ก ์๋ด๋ ๊ฐ๋ฅํ๋ต๋๋ค.
๊ณ ๋ฏผ์ด๋ ๊ถ๊ธ์ฆ, ์ด๋ค ์ฃผ์ ๋ ์์ ๋กญ๊ฒ ์ด์ผ๊ธฐํด๋ณด์ธ์ ๐
์๋์ ์ธ ์ ๋๋ฉ์ด์ ๊ณผ ํจ๊ป, ๋น์ ๋ง์ ํน๋ณํ ํ๋ก ์ฒดํ์ ์ฆ๊ฒจ๋ณด์ธ์ โจ
- ๐ ํต์ฌ๊ธฐ๋ฅ
- ๊ธฐ์ ์ ๋์
- ์ฐ๋นํํ ์ด์ ํด๊ฒฐ๊ธฐ ๐ฆ
- ์์คํ ์ํคํ ์ฒ
- ๊ธฐ์ ์คํ
- ๐ฎ๐ฅ ํ๋ก ๋ฐํฌํฐ ์๊ฐ
์ฌ์ฉ์๊ฐ AI์๊ฒ ์์ ์ ๊ณ ๋ฏผ์ ์์ ๋กญ๊ฒ ์ด์ผ๊ธฐํ๋ฉด, ๊ณ ๋ฏผ ๋ด์ฉ์ ๋ฐํ์ผ๋ก ํ๋ก ์๋ด์ ์งํํฉ๋๋ค.
๊ณ ๋ฏผ ์๋ด ํ ์ฌ์ฉ์๊ฐ ํ๋ก ์นด๋๋ฅผ ๋ฝ์ผ๋ฉด, AI๊ฐ ํด๋น ๊ฒฐ๊ณผ๋ฅผ ์ค๋ช ํฉ๋๋ค.
์ฌ์ฉ์๋ ํ๋ก์ ๊ฒฐ๊ณผ๋ฅผ ๋งํฌ๋ ์นด์นด์คํก์ผ๋ก ๊ณต์ ํ ์ ์์ต๋๋ค.
ํ๋ก ์ ๋ฌธ๊ฐ์ ์ง์ ๋๋ฉด์ผ๋ก ๋ง๋์ง ์๊ณ ์จ๋ผ์ธ ์์์ ํธํ๊ฒ ์๋ด์ ๋ฐ์ ์ ์์ต๋๋ค.
์ ๋ฌธ๊ฐ๋ ์๋ด์ ์ํ ์ฑํ ๋ฐฉ์ ์์ฑํ์ฌ ์ฌ์ฉ์๋ฅผ ์ด๋ํฉ๋๋ค. ์ฌ์ฉ์๋ ํด๋น ์ฑํ ๋ฐฉ์ ์ ์ํ์ฌ ํ๋ก ์๋ด์ ๋ฐ์ ์ ์์ต๋๋ค.
- ๋์ปค ์ปดํฌ์ฆ๋ก ๋ฉํฐ ์ดํ๋ฆฌ์ผ์ด์ ํ๊ฒฝ์ ๊ตฌ์ฑํ์ฌ ์ฌ๋ฌ ๊ฐ์ ์๋น์ค๋ฅผ ํ ๋ฒ์ ์คํํ๊ณ ๊ด๋ฆฌํฉ๋๋ค.
- nginx๋ฅผ ํ์ฉํ์ฌ URL์ ๋ฐ๋ผ ์๋ก ๋ค๋ฅธ ์๋น์ค๋ฅผ ํ๋ก์ํฉ๋๋ค.
- ๋ธ๋ฃจ/๊ทธ๋ฆฐ ๋ฌด์ค๋จ ๋ฐฐํฌ๋ฅผ ํตํด ์ ๊ท ๋ฒ์ ์ ๋ฐฐํฌ ๊ณผ์ ์์ ๋ฐ์ํ๋ ๋ค์ดํ์์ ์ต์ํํฉ๋๋ค.
- ๋์ปค์ ์บ์ฑ ์ต์ ์ ํ์ฉํ์ฌ ๋น๋ ์๊ฐ์ ์ต์ ํํฉ๋๋ค. ์ด์ ๋น๋ ์บ์๋ฅผ ์ฌ์ฌ์ฉํ์ฌ ๋น๋ ์๊ฐ์ ๋จ์ถํฉ๋๋ค.
- graceful shutdown์ผ๋ก ํ์ผ ์ ์ถ๋ ฅ๊ณผ ๋ฐ์ดํฐ๋ฒ ์ด์ค ์ปค๋ฅ์ ์์ ์ ์์ ํ๊ฒ ์ข ๋ฃํฉ๋๋ค.
- health check๋ก ์๋ก์ด ์ดํ๋ฆฌ์ผ์ด์ ์ด ์ ์์ ์ผ๋ก ์คํ๋๊ณ ์ ์์ ์ธ ์๋ต์ ์ ๊ณตํ ์ ์๋์ง ํ์ธํ ํ์ ํธ๋ํฝ์ ์ ํํ์ฌ ์๋น์ค ์ค๋จ์ ๋ฐฉ์งํฉ๋๋ค.
- ๋ฐฐํฌ๋ฅผ ์ํํ๋ ์ ์คํฌ๋ฆฝํธ๋ฅผ ์๋ฌ ํธ๋ค๋งํ์ฌ ์์คํ ์์ ์ฑ์ ํ๋ณดํฉ๋๋ค. ๋ฐฐํฌ ๊ณผ์ ์์ ์ค๋ฅ๊ฐ ๋ฐ์ํ๋ฉด ์ฆ์ ์ค๋จ๋์ด ๊ธฐ์กด ์์คํ ์ ์ํฅ์ ๋ฏธ์น์ง ์์ต๋๋ค.
- ํด๋ก๋ฐ API๋ก๋ถํฐ ์๋ต์ ๋ฐ์์ฌ ๋, ๊ธฐ์กด์ ์์ฒญ-์๋ต ๋ฐฉ์ ๋์ ์คํธ๋ฆผ ํํ๋ก ๋ฐ์์ต๋๋ค. ์ด๋ฅผ ํตํด ์ฌ์ฉ์๊ฐ ์ฒ์ ์๋ต์ ๋ฐ๊ธฐ๊น์ง ๊ฑธ๋ฆฌ๋ ์๊ฐ์ ์ต์ํ ํฉ๋๋ค.
- ์คํธ๋ฆผ์ ํ ํฐ ๋จ์๋ก ํด๋ผ์ด์ธํธ์๊ฒ ์ ๋ฌํ์ฌ AI์ ์ค์๊ฐ์ผ๋ก ์ฑํ ํ๋ ๋ฏํ ์ฌ์ฉ์ ๊ฒฝํ์ ์ ๊ณตํฉ๋๋ค.
- WebRTC API๋ฅผ ํ์ฉํ์ฌ ์๋ฒ์ ๋ถ๋ด์ ์ฃผ์ง ์๊ณ ์ค์๊ฐ P2P ์ปค๋ฎค๋์ผ์ด์ ์ ์ง์ํฉ๋๋ค.
- ๋ฐ์ดํฐ ์ฑ๋์ ํตํด ์ด๋ฏธ์ง, ๋ฉ์ธ์ง ๋ฑ ๋ค์ํ ์ข ๋ฅ์ ํ์ผ์ ์ฃผ๊ณ ๋ฐ์ต๋๋ค.
- ์นด๋๊ฐ ํผ์ณ์ง๊ณ ํ์ ํ๋ ๋ฑ์ ์์ํ ์ ๋๋ฉ์ด์ ์ผ๋ก ์ค์ ๋ก ํ๋ก๋ฅผ ๋ณด๋ ๋ฏํ ํ์ฅ๊ฐ์ ์ ๊ณตํฉ๋๋ค.
ํ๋ก ๋ฐํฌํฐ์ ๊ธฐ์ ์ ๋์ ๊ณผ ์ด์ ํด๊ฒฐ ๊ธฐ๋ก
SWAGํ๊ฒ Swagger ์ฌ์ฉํ๋ ๋ฒ ๐ค (Feat. Swagger ๋ฐ์ฝ๋ ์ดํฐ๋ฅผ ์ํ ํจํค์ง ๋ง๋ค๊ธฐ)
๊ตฌ๋ถ | ๊ธฐ์ ์คํ |
---|---|
common | |
frontend | |
backend | |
DB | |
CI/CD | |
deployment | |
others |
๐ ๊ธฐ์ ์ ํ ์ด์
Category | Tech Stack | Description | ๊ธฐ์ ๋ธ๋ก๊ทธ ๋งํฌ |
---|---|---|---|
์ธํ๋ผ | VPC, Server | ๊ฐ์ ๋คํธ์ํฌ ํ๊ฒฝ์ผ๋ก ๋ณด์์ ์์ ํ ํ๊ฒฝ์์ ์๋ฒ ์ด์ํ๊ธฐ | NCP ์ธํ๋ผ ๊ตฌ์ถํ๊ธฐ |
DB | MySQL, Redis, TypeORM | ๋ฐ์ดํฐ๋ฒ ์ด์ค ์ต์ ํํ๊ธฐ | |
CI/CD | Docker, Nginx, Shell Script, GitHub Actions | ||
ํ ์คํธ | Jest, supertest, Vitest | ๋จ์ ํ ์คํธ์ e2e ํ ์คํธ๋ฅผ ์งํํ์ฌ ์ฝ๋๊ฐ ์์๋๋ก ๋์ํ๋์ง ํ์ธํ๊ธฐ | Jest์ Supertest๋ก ์ฝ๋ ๋์ ํ ์คํธํ๊ธฐ |
๋ก๊น | Winston | ๋ก๊ทธ๋ฅผ ์ฒด๊ณ์ ์ผ๋ก ๊ธฐ๋กํ์ฌ ๊ฐ๋ฐ ๋ฐ ์ ์ง๋ณด์์ฑ ํฅ์ํ๊ธฐ | winston๊ณผ sentry๋ก ์๋ฒ๊ฐ ํฐ์ง๋ ์ด์ ๋ถ์ํ๊ธฐ |
์ํ ๊ด๋ฆฌ | Zustand | ContextAPI์์ Zustand๋ก ๋ณ๊ฒฝํ ์ด์ | |
P2P ํต์ | WebRTC, socket.io | - |
ํ๋ก ๋ฐํฌํฐ๋ FE 3๋ช & BE 1๋ช ์ผ๋ก ๊ตฌ์ฑ๋์ด ์์ด์!!
์ธ์ ๋ถ๊ท ํ์ ํด๊ฒฐํ๊ธฐ ์ํด FE ํ์๋ค์ โจ ํ์คํ ๋์ โจ์ด ๋ด๊ฒจ ์์ด์~
๋๋ถ์ BE ํ์์ ์ฒ์ ํด๋ณด๋ ๋ฐฐํฌ์ ์ธํ๋ผ๋ฅผ ์ฑ๊ณต์ ์ผ๋ก ๋ง์น ์ ์์์ต๋๋ค ๐ฅฐ์์ธํ ๋ด๋น ์ ๋ฌด๋ ์ฌ๊ธฐ๋ฅผ ํ์ธํด์ฃผ์ธ์ ๐
J027 | J028 | J072 | J165 |
---|---|---|---|
๊น์ ์ | ๊น์ ์ง | ์ก๋ฏผํ | ํ์ง์ |
Backend | Frontend | Frontend | Frontend |