- Slack web ๋ฒ์ ์ ์ํฌ์คํ์ด์ค, ์ค์๊ฐ ์ฑํ ๋ฑ์ ์ฃผ์ ๊ธฐ๋ฅ ๊ตฌํ์ ๋ชฉํ๋ก ํฉ๋๋ค.
Frontend | Backend | etc |
---|---|---|
- ์ฌ์ฉ์์ ์ฑํ ๋ฉ์์ง ์กฐํ์ ์ฑํ ์ ๋ ฅ์ ๋น ๋ฅด๊ฒ ๋์ํ๊ธฐ ์ํด MongoDB๋ฅผ ์ฌ์ฉํ์์ต๋๋ค.
- ODM์ผ๋ก๋ Mongoose๋ฅผ ์ฌ์ฉํด ๋ชจ๋ธ ๊ด๋ฆฌ์ CRUD ๊ทธ๋ฆฌ๊ณ ๊ฐ๋ฐ์ ํธ์๋ฅผ ๋๋ชจํ์ต๋๋ค.
- references ํ์ ์ ๋ฐ์ดํฐ๋ฅผ ํ์ฉํ์ฌ ์ค๋ณต๋ ๋ฐ์ดํฐ๋ฅผ ์ ๋ฐ์ดํธ ํ๋ ๊ณผ์ ์ ์ต์ํํ์์ต๋๋ค.
- ์ฑํ , ๋ฆฌ์ก์ , ๋๊ธ ๋ฑ ์ค์๊ฐ์ผ๋ก ์ฌ์ฉ์์๊ฒ ๋ฐ์๋์ด์ผ ํ๋ ๊ธฐ๋ฅ๋ค์ socket์ ํตํด ๊ตฌํํ์ต๋๋ค.
- React์ hook๊ณผ ์ ์ฌํ ๋ฐฉ์์ผ๋ก ๋์ํ์ฌ ๋ฎ์ ๋ฌ๋์ปค๋ธ๋ฅผ ๊ฐ๊ธฐ ๋๋ฌธ์ ๋น ๋ฅด๊ฒ ํ์ตํ๊ณ ์๋น์ค์ ์ ์ฉํ ์ ์์์ต๋๋ค.
- Recoil atom์ ์ฌ์ฉํด ์ํฌ์คํ์ด์ค, ์ฑ๋, ์ฑํ ๋ฉ์์ง ๋ฑ์ data๋ค์ global state๋ก ๊ด๋ฆฌํฉ๋๋ค.
- Custom hook์ ์ฌ์ฉํด Recoil state๋ฅผ ๋น๋๊ธฐ์ ์ผ๋ก ์ ๋ฐ์ดํธ ํ ์ ์์ต๋๋ค.
- ์ฌ์ฉ๋๋ API๋ค์ ๋ช ์ธ๋ฅผ ์์ฑํ์ฌ Swagger ๋ช ์ธ๋ง ์ฝ์ด๋ ํ์ , ์ ์ง ๋ณด์๊ฐ ๊ฐ๋ฅํฉ๋๋ค.
- ๋ณ๋์ ๋ฌธ์ ๊ณต์ ์์ด API์๋ฒ์ Swagger๋ฅผ ๋ฐฐํฌํ์ฌ ์ธ์ ๋ ๋ช ์ธ๋ฅผ ํ์ธ ํ ์ ์์ต๋๋ค.
- Docker๋ฅผ ์ฌ์ฉํ์ฌ ๋ฐฐํฌ ํ๊ฒฝ ์ค์ ์ด ์์๊ฐ์ ๊ฐ๋ฅํฉ๋๋ค.
- NGINX๋ ํ๋ก ํธ์๋ฒ, ๋ฐฑ์๋ ์๋ฒ ๊ฐ๊ฐ ์ค์ ํ์ผ ํ๋์ ssl ์ ์ฉ์ผ๋ก ์น์๋ฒ ๊ตฌ์ถ์ด ๊ฐ๋ฅํฉ๋๋ค.
- ์ด๊ธฐ์๋ ๋ฉ์์ง๋ฅผ ์ผ๋ถ๋ถ๋ง ๊ฐ์ ธ์ค๋ฉฐ ์คํฌ๋กค์ด ํน์ ์์น์ ๋๋ฌํ๋ฉด ๋ค๋ฅธ ๋ฉ์์ง๋ฅผ ๊ฐ์ ธ์ต๋๋ค.
- ์คํฌ๋กค์ ์์น๊ฐ ํน์ ์์น์ ๋๋ฌํ์ ๋ reflow๋ฅผ ๋ฐฉ์งํ๋ฉฐ ๊ด์ฐฐํ๊ธฐ ์ํด intersection observer๋ฅผ ์ด์ฉํด infinite scroll์ ๊ตฌํํ์์ต๋๋ค.
- ๊ฐ๋ฐ๋ฒ์ ์ผ๋ก ์คํ์ํฌ์ backend ๋๋ ํ ๋ฆฌ์๋
.env.dev
๊ฐ ๋ฐฐํฌ ๋ฒ์ ์ ๊ฒฝ์ฐ.env.prod
๊ฐ ํ์ํฉ๋๋ค.
git pull https://github.com/boostcamp-2020/Project12-C-Slack-Web.git
cd Project12-C-Slack-Web/backend
sudo docker build -t backend .
sudo docker run -d -p 4000:4000 -p 5000:5000 backend
cd ../front && npm install
npm start
PORT=
CHAT_PORT=
MONGOURI=
GITHUB_CLIENT_ID=
GITHUB_CLIENT_SECRET=
GITHUB_CALLBACK_URL=
JWT_SECRET=
FRONTEND_HOST=
COOKIE_SECRET=
NODE_ENV=
ENCRYPTION_KEY=
S3_ENDPOINT=
S3_REGION=
S3_ACCESSKEY=
S3_SECRETKEY=
S3_BUCKETNAME=