- ๐ฃ๏ธ ํ๋ก์ ํธ ์ค๋ช
- ๐ฆพ ๊ธฐ์ ์คํ
- ๐ค ์ค์น ๋ฐ ์คํ ๋ฐฉ๋ฒ
- ๐๏ธ ๊ธฐ๋ฅ ์ค๋ช
- ๐น ์คํฌ๋ฆฐ์ท
- ๐ ์ํคํ ์ฒ
- ๐๏ธ Team
Transcendence
๋ ํด๋์ Pong game์ ์ฌํด์ํ ์น์ฌ์ดํธ ํ๋ก์ ํธ์
๋๋ค. ๋ฐ๋๋ผ JavaScript๋ฅผ ์ฌ์ฉํ ํ๋ก ํธ์๋์ Django ๋ฐฑ์๋๋ฅผ ํ์ฉํ์ฌ ์ฌ์ฉ์ ์ธํฐํ์ด์ค์ ์ค์๊ฐ ๋ฉํฐ ํ๋ ์ด์ด ์จ๋ผ์ธ ๊ฒ์์ ์ ๊ณตํฉ๋๋ค.
local
์์ ๋ค์ด ๋ฐ๊ณ ์คํํ๋ ๋ฐฉ๋ฒ์
๋๋ค.
ํ๋ก์ ํธ๋ฅผ ๋ค์ด ๋ฐ๊ณ ์คํํ๊ธฐ ์ ์ ์๋ ํ๋ก๊ทธ๋จ์ด ์ค์น๊ฐ ๋์ด์๋์ง ํ์ธํ์ธ์:
- Docker
- Docker Compose
-
ํด๋ก ๋ ํฌ์งํ ๋ฆฌ
https://github.com/42Nuts/Transcendence.git
-
ํ์ผ ์์ผ๋ก ๋ค์ด๊ฐ๊ธฐ
cd Transcendence
-
env ํ์ผ ์ค์
-
์๋ฒ IP์ ํฌํธ ํ์ธ
SERVER_IP=127.0.0.1 # localhost SERVER_PORT=5500 # ์ด๋ฆฐ ํฌํธ ์ค์ # NGINX NGINX_HOST=nginx NGINX_PORT=5500 # nginx ํฌํธ๋ ๊ฐ์ ํฌํธ๋ก ์ค์
-
42 client id ๋ฐ 42 client secret ํค ํ์ธ
-
42 intra์์ API ํค ๋ฐ๊ธ ๋ฐ redirect URI ์ค์
https://127.0.0.1:5500/42oauth/
(์ง์ ํ ์๋ฒ IP์ ํฌํธ๋ก ์ค์ ) -
42 client id ๋ฐ 42 client secret ํค ๋ณ๊ฒฝ
FOURTYTWO_CLIENT_ID=${๋ฐ๊ธ๋ฐ์ UID} FOURTYTWO_CLIENT_SECRET=${๋ฐ๊ธ๋ฐ์ SECRET}
-
-
-
์ปจํ ์ด๋ ์คํ
-
Docker ์คํ
-
์ปจํ ์ด๋ ๋น๋
make
-
-
๋ก์ปฌํธ์คํธ ์ ์
๋ฌธ์ ๊ฐ ์๊ธด๋ค๋ฉด ์ค์ค๋ก ๋๋ฒ๊น ํ์ธ์.
- ์ฌ์ฉ์ ๊ด๋ฆฌ
- ์๊ฒฉ ์ธ์ฆ ๊ตฌํ.
- ๊ฒ์ํ๋ ์ด ๋ฐ ์ฌ์ฉ์ ๊ฒฝํ
- ์๊ฒฉ ํ๋ ์ด์ด์์ ์ค์๊ฐ ๋ฉํฐํ๋ ์ด์ด.
- ๋ฉํฐํ๋ ์ด์ด ๋ชจ๋ (2์ธ ๋ฐ 4์ธ ๊ฒ์).
- ๋คํฌ ๋ชจ๋, ํ ๋ง ๋ณ๊ฒฝ, ์ ์ ํ๋กํ ๊ด๋ฆฌ.
- DevOps
- ๋ก๊ทธ ๊ด๋ฆฌ ๋ฐ ์์คํ ๋ชจ๋ํฐ๋ง์ ์ํ ์ธํ๋ผ ์ค์ .
- Framework/Library: ํ๋ก ํธ์๋๋ ๋ฐ๋๋ผ JavaScript๋ฅผ ์ฌ์ฉํ์ฌ ๊ตฌ์ถ๋์์ต๋๋ค. ๋ชจ๋ํ๋ ์ปดํฌ๋ํธ๋ฅผ ํตํด ์ฝ๋ ์ฌ์ฌ์ฉ์ฑ์ ๊ณ ๋ คํ์๊ณ ์ ์ง๋ณด์์ฑ๊ณผ ํ์ฅ์ฑ์ ๋์์ต๋๋ค.
- Single Page Application (SPA): ํ์ด์ง ์๋ก๊ณ ์นจ์ด ์๋ ์ํํ ์ฌ์ฉ์ ๊ฒฝํ์ ์ํด ์ปค์คํ ๋ผ์ฐํฐ๋ฅผ ๊ตฌํํ SPA ์ํคํ ์ฒ๋ฅผ ์ ์ฉํ์ต๋๋ค.
- State Management: Redux ๋๋ Vuex์ ์ ์ฌํ Store ํจํด์ ์ฌ์ฉํ์ฌ ์ปค์คํ
์ํ ๊ด๋ฆฌ ์์คํ
์ ๊ตฌํํ์์ผ๋ฉฐ, ํด๋น ์ฝ๋๋
frontend/src/store/index.js
์ ์์นํด ์์ต๋๋ค. - Styling: ๋์์ธ ๋จ๊ณ๋ถํฐ Figma๋ฅผ ํ์ฉํด ์ปดํฌ๋ํธํ๋ ๊ตฌ์กฐ๋ฅผ ๊ธฐํํ์ผ๋ฉฐ, Tailwind CSS๋ฅผ ์ฌ์ฉํด ์ผ๊ด๋ ์คํ์ผ์ ์ ์ฉํ์ต๋๋ค.
- Framework: Python ๊ธฐ๋ฐ Django ์น ํ๋ ์์ํฌ ์ฌ์ฉ
- Gunicorn: ๋๊ธฐ์ HTTP ์์ฒญ์ ์ฒ๋ฆฌํ๋ WSGI ์๋ฒ
- Daphne: ๋น๋๊ธฐ WebSocket ์์ฒญ์ ์ฒ๋ฆฌํ๋ ASGI ์๋ฒ
- Database: PostgreSQL ์ฌ์ฉ
- Authentication: 42๋ฅผ ์ฌ์ฉํ OAuth 2.0 ์ธ์ฆ
- Nginx
- SSL/TLS: HTTPS ํต์ ์ ์ฒ๋ฆฌํ์ฌ ๋ณด์ ๊ฐํ๋ฅผ ๊ตฌํ
- Reverse Proxy: ํด๋ผ์ด์ธํธ ์์ฒญ์ Django ๋ฐฑ์๋๋ก ํ๋ก์ํ์ฌ ์ ๋ฌ
- ์ ์ ํ์ผ ์ ๊ณต: ํ๋ก ํธ์๋์์ ์์ฑ๋ ์ต์ ์ ์ ํ์ผ(JS, CSS ๋ฑ)์ ์ ๊ณต
- Docker
- ์ปจํ ์ด๋ ๊ด๋ฆฌ: ๊ฐ ์๋น์ค๋ Docker์ Docker Compose๋ฅผ ํตํด ๊ด๋ฆฌ๋ฉ๋๋ค. Nginx, Django, PostgreSQL, Redis, Prometheus, Grafana ๋ฑ ๊ฐ ์๋น์ค์ ๋ ๋ฆฝ์ ๊ด๋ฆฌ๋ฅผ ์ํ
- ์ ์ ํ์ผ ๊ณต์ : Docker ๋ณผ๋ฅจ์ ์ฌ์ฉํ์ฌ Nginx ์ปจํ ์ด๋์ ์ ์ ํ์ผ์ ๊ณต์ ํด, ์ปจํ ์ด๋๋ฅผ ์ฌ๊ตฌ์ฑํ์ง ์๊ณ ๋ ์ต์ ํ์ผ ์ ๊ณต ๊ฐ๋ฅ
- ๋ฐ์ธ๋ ๋ง์ดํธ: ๊ฐ๋ฐ ์ค ํธ์คํธ ๋๋ ํฐ๋ฆฌ๋ฅผ ์ปจํ ์ด๋์ ์ฐ๊ฒฐํด ์ค์๊ฐ์ผ๋ก ๋ณ๊ฒฝ ์ฌํญ์ด ๋ฐ์๋๋๋ก ํ์ฌ ๋น ๋ฅธ ๊ฐ๋ฐ ๊ฐ๋ฅ
- Monitoring & Logging
- ELK: Elasticsearch, Logstash, Kibana๋ก ๊ตฌ์ฑ๋ ๋ก๊ทธ ๊ด๋ฆฌ๋ฅผ ์ํ ์ธํ๋ผ ์ค์
- Prometheus/Grafana: ์์คํ ๋ชจ๋ํฐ๋ง์ ์ํด Prometheus์ Grafana๋ฅผ ์ฌ์ฉ
- ์น์์ผ: ์ค์๊ฐ ๊ฒ์ ํ๋ ์ด๋ฅผ ์ํ ์น์์ผ ๊ธฐ๋ฐ ํต์ ๊ตฌํ.
๐ leechan02 | ๐ GCgang | ๐ gitubanana | ๐ฑ Labin97 |
---|---|---|---|
Frontend && Design | Backend && Devops | Backend && Devops | Game |
- TREAMREADME : ํ์ ๊ท์น