์ฌ์ฉ์๊ฐ ์์ฑํ ์นด๋๋ค์ ํ ๋์ ์๊ฐ์ ์ผ๋ก ๋ณผ ์ ์๋ ๋์๋ณด๋์ ๋๋ค.
์ฌ์ฉ์๋ ์นด๋๋ฅผ ์์ฑํ์ฌ ๋ฉ๋ชจ, ์ฌ์ง, ํด์ผํ ์ผ๋ค์ ์ ๋ ฅํ ์ ์์ต๋๋ค. ์์ฑ๋ ์นด๋๋ ์์ ํ๊ณ ์ญ์ ํ ์ ์์ผ๋ฉฐ ์นด๋๋ค์ ์ํ๋ ๊ณณ์ ๋ฐฐ์นํ ์ ์์ต๋๋ค.
๋ฐฐํฌ๋งํฌ: https://www.slh-dashboard.online
Server repository : https://github.com/Team-Deep-Diver/dashboard-server
1. ย ๐ ๊ฐ๋ฐ ๊ธฐ๊ฐ
3. ย ๐ป ์คํ ๋ฐฉ๋ฒ
4. ย ๐ฅ ๋์ ๊ณผ์
5. ย ๐ฃ ์ฃผ์ ๊ธฐ๋ฅ
6. ย ๐ ์๊ฐ
๊ธฐ๊ฐ : 2022.10.10 ~ 2022.10.28 (์ด 19์ผ)
- Week1
- ์์ด๋์ด ์์ง ๋ฐ ํ์
- ๊ธฐ์ ์คํ ๊ฒ์ฆ
- DB ๋ชจ๋ธ๋ง, ์คํค๋ง ๊ฒํ
- API ๋ฌธ์ ์์ฑ
- User Flow ์๋๋ฆฌ์ค ์์ฑ
- Figma๋ฅผ ์ฌ์ฉํ Mockup ์ ์
- ์นธ๋ฐ ํฐ์ผ ์์ฑ
- Week 2 ~ Week 3
- ๊ฐ๋ฐ
- ํ ์คํธ ์ฝ๋ ์์ฑ
- ๋ฒ๊ทธ ์์
- Week 4
- ์ ์ง ๋ณด์ ๋ฐ ๋ฆฌํฉํ ๋ง
- React
- React-router-dom
- react-redux
- styled-components
- framer-motion
- Node.js
- Express
- MongoDB
- Mongoose
- socket.io
ํด๋ผ์ด์ธํธ ๋ ํฌ์งํ ๋ฆฌ๋ฅผ ํด๋ก ๋ฐ์ต๋๋ค.
git clone https://github.com/Team-Deep-Diver/dashboard-client.git
ํ๋ก์ ํธ ํด๋ root ์์น์ .env ํ์ผ์ ๋ง๋ค๊ณ ๋ค์๊ณผ ๊ฐ์ด ํ๊ฒฝ๋ณ์๋ฅผ ์ค์ ํฉ๋๋ค.
REACT_APP_SERVER_REQUEST_HOST
REACT_APP_SOCKET_SERVER_HOST
client ํ๋ก์ ํธ ํด๋ ํฐ๋ฏธ๋์์ ์๋ ๋ช ๋ น์ด๋ฅผ ์คํํฉ๋๋ค.
npm install
npm start
์๋ฒ ๋ ํฌ์งํ ๋ฆฌ๋ฅผ ํด๋ก ๋ฐ์ต๋๋ค.
git clone https://github.com/Team-Deep-Diver/dashboard-server.git
ํ๋ก์ ํธ ํด๋ root ์์น์ .env ํ์ผ์ ๋ง๋ค๊ณ ๋ค์๊ณผ ๊ฐ์ด ํ๊ฒฝ๋ณ์๋ฅผ ์ค์ ํฉ๋๋ค.
PORT
SOCKET_CLIENT_HOST
MONGOOSE_URL
JWT_SECRET
SESSION_SECRET
server ํ๋ก์ ํธ ํด๋ ํฐ๋ฏธ๋์์ ์๋ ๋ช ๋ น์ด๋ฅผ ์คํํฉ๋๋ค.
npm install
npm run dev
์นด๋์ ํ์คํ ๋ฆฌ๋ฅผ ๊ด๋ฆฌํ๊ธฐ ์ํ Snapshot ๋ฐ์ดํฐ๋ฅผ ์์ฑํ๋ฉฐ, Snapshot์ ์ด๋ป๊ฒ ์์ฑํ๊ณ ๊ด๋ฆฌํ ๊ฒ์ธ๊ฐ์ ๋ํ ๋ฌธ์ ์ ์ง๋ฉดํ๊ฒ ๋์์ต๋๋ค. ์ฒ์ ์ค๊ณํ๋ ๋ฐฉ์์ ์นด๋๊ฐ ์์ฑ๋ ๋ ํด๋น ์นด๋์ ์ค์ ๋ ๊ธฐ๊ฐ๋งํผ Snapshot ๋ฐ์ดํฐ๋ฅผ ์์ฑํ๋ ๊ฒ์ด์์ต๋๋ค. ์ด๋ ๋ก์ง์์ผ๋ก๋ ๊ฐ๋จํ์ง๋ง ๋ถํ์ํ ๋ฐ์ดํฐ๊ฐ ์์ฑ๋ ์ ์๋ค๋ ๋จ์ ์ด ์์ด, ์ฌ์ฉ์๊ฐ ์น์ ๋ฐฉ๋ฌธํ ๋ ์ง๋ฅผ ๊ธฐ์ค์ผ๋ก Snapshot์ ์์ฑํ๋ ๋ฐฉ์์ ๊ณ ์ํ๊ฒ ๋์์ต๋๋ค.
์๋ฅผ ๋ค์ด, ์ฌ์ฉ์๊ฐ ํ ๋ฌ(30์ผ)์ด๋ผ๋ ๊ธฐ๊ฐ์ด ์ค์ ๋ ์นด๋๋ฅผ ์์ฑํ ํ, 28์ผ์ด ์ง๋ ์์ ์ ๋ค์ ์น์ ๋ฐฉ๋ฌธํ๋ค๊ณ ๊ฐ์ ํ๋ค๋ฉด, ์ ๋ ๋ก์ง์ ์๋์ ๊ฐ์ ์ฐจ์ด๊ฐ ๋ํ๋ฉ๋๋ค.
| Snapshot ๋ชจ๋ ์์ฑ ( ๊ธฐ์กด ๋ก์ง ) | Snapshot ๋ณ๋ ์์ฑ ( ์์ ๋ก์ง ) | |
|---|---|---|
| ์์ฑ๋ Snapshot ๊ฐ์ | 30๊ฐ | 2๊ฐ |
| Snapshot ์์ฑ ์์ | Card ๋ฐ์ดํฐ ์์ฑ ๋น์, ์นด๋์ ์ค์ ๋ ๊ธฐ๊ฐ(30์ผ) ๋งํผ Snapshot ๋ฐ์ดํฐ ๋ชจ๋ ์์ฑ | Card ๋ฐ์ดํฐ๊ฐ ์์ฑ๋ ๋์๋ ํด๋น ๋ ์ง์ Snapshot๋ง ์์ฑ. ์ดํ ์ฌ์ฉ์์ ์ฌ๋ฐฉ๋ฌธ์ ๊ฐ์ฅ ์ต๊ทผ์ Snapshot ๋ฐ์ดํฐ(1์ผ์)๋ฅผ ๋ฐํ์ผ๋ก ํด๋น ๋ ์ง(28์ผ์)์ Snapshot ์์ฑ |
| ์นด๋์ ์์ ์ฌํญ ๋ฐ์ | 28์ผ์ Snapshot์ ์์ ๋ฐ์. (1~27์ผ์ Snapshot์ ์ค๋ณต๋ ๋ด์ฉ์ ๋ฐ์ดํฐ๋ฅผ ๊ฐ์ง) | 28์ผ์ Snapshot์ ์์ ๋ฐ์. (๋ฌ๋ ฅ ๋ด ๋ ์ง ์ด๋์, 2~27์ผ์ ๋ฐ์ดํฐ๋ ๋ชจ๋ 1์ผ์ Snapshot์ ๋ฐํ์ผ๋ก ์ ๊ณต๋จ) |
์ ๊ณผ์ ์ ๊ด๊ณํ ๋ฐ์ดํฐ ๋ชจ๋ธ๋ง์ ๋ค๋ค๋ณด๋ ๊ธฐํ๊ฐ ๋์์ต๋๋ค. mongoose query์ ๋ค์ํ ๋ฉ์๋๋ฅผ ์ ์ฉํด๋ณด๋ฉฐ, ์ต์ํ์ ๋ฐ์ดํฐ๋ก ํจ์จ์ ์ธ DB ๊ด๋ฆฌ๋ฅผ ์ด๋ฃจ๋ ๊ฒ ๋ฟ๋ง ์๋๋ผ ๊ผผ๊ผผํ๊ฒ DB ๊ฐ์ ๊ด๊ณ๋ฅผ ๋ค๋ฃจ๋ ์์ธ ์ญ์ ์ค์ํ๋ค๋ ์ ์ ๋ฐฐ์ธ ์ ์์์ต๋๋ค.
Grid๋ฅผ ํ์ฉํ DND๋ฅผ ๊ตฌํํ์ต๋๋ค. ์นด๋์ ์์ ๋ก์ด ์ด๋์ ๊ตฌํํ ์๋ ์์์ง๋ง, ๋ ์ด์์์ ์ง์๋ฅผ ์ ๊ณตํ๋ ๊ฒ์ด ์๊ฐ์ ์ผ๋ก๋ ์ปจํ ์ธ ๋ฅผ ๋ ์ ํ์ ํ๋๋ฐ ๋์์ด ๋ ๊ฒ์ด๋ผ ํ๋จํ์ฌ grid๋ฅผ ํ์ฉํ๊ฒ ๋์์ต๋๋ค.
DND๋ฅผ ๊ตฌํํ๋ฉฐ ์ ํฌ๊ฐ ์ง์คํ๋ ํต์ฌ 3๊ฐ์ง๋ ๋ค์๊ณผ ๊ฐ์ต๋๋ค.
- drag and drop ์ด๋ฒคํธ : onDragStart์ onDrag, ๊ทธ๋ฆฌ๊ณ onDragEnd ์ด๋ฒคํธ๋ฅผ ๊ธฐ์ค์ผ๋ก ์นด๋์ ์์ง์์ ์บ์นํ์ผ๋ฉฐ, ์ต์ข ์ขํ๋ฅผ DB์ ์ ๋ฐ์ดํธํจ์ผ๋ก์จ ํ์ด์ง๋ฅผ refresh ํ์ฌ๋ ์นด๋์ ์์น๊ฐ ์ ์ง๋ ์ ์๋๋ก ํ์ต๋๋ค.
- grid์ ๋ง๊ฒ ์ขํ๊ฐ ์ฌ์ค์ : grid ํ ์นธ ์ฌ์ด์ฆ์ธ 70px์ ๊ธฐ์ค์ผ๋ก, dashboard ๋ด ์ขํ๊ฐ์ ์ค์ ํ์์ต๋๋ค. ์๋ฅผ ๋ค์ด, ์ผ์ชฝ ์๋จ ๋ชจ์๋ฆฌ๋ก๋ถํฐ ๊ฐ๋ก 210px, ์ธ๋ก 140px ๊ฑฐ๋ฆฌ์ ์์นํ ์นด๋๋ (3, 2)์ ์ขํ๊ฐ์ ๊ฐ๊ฒ ๋ฉ๋๋ค. ์ด๋ฅผ ๋ฐํ์ผ๋ก, ์ฌ์ฉ์์ DND ์ด๋ฒคํธ๊ฐ ๋ฉ์ถ ์ง์ ์ผ๋ก๋ถํฐ ๊ฐ์ฅ ๊ฐ๊น์ด ์ขํ๊ฐ์ ์ฐพ์ ์นด๋์ ์์น๊ฐ์ ์ฌ์ค์ ํ ํ ๋ชจ์ ์ ๋ฐ์ํ์ต๋๋ค.
- ์นด๋์ ๋ถ๋๋ฌ์ด ์์ง์ : Framer motion์ drag ์ ์ค์ฒ๋ฅผ ์ด์ฉํ์ต๋๋ค. ๋ชจ๋ฌ ๋ฐ ์ฌ์ด๋๋ฐ ๋ชจ์ ์ ์ ์ฉํ ๊ฒ๊ณผ ๋์ผํ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ์ฌ์ฉํจ์ผ๋ก์จ ์ฌ์ฉ์ ์ธํฐ๋ ์ ์ ํต์ผ๊ฐ์ ์ฃผ๊ณ ์ ํ์ต๋๋ค.
๋ค๋ง ํ์ฌ ๋ก์ง์ ํ๋ฉด์ ๋ณด์ด๋ ๊ฐ์๋งํผ grid๋ฅผ ๋ชจ๋ ์์ฑํด์ผ ํ๋ค๋ ์ ์์ ํ๊ณ๋ฅผ ๊ฐ์ต๋๋ค. ๋ฌดํ ์คํฌ๋กค๊ณผ ๊ฐ์ ๊ธฐ๋ฅ์ ์ถ๊ฐํ๋ค๊ณ ๊ฐ์ ํ์์ ๋, ์คํฌ๋กคํ๋ ๋งํผ grid๋ฅผ ๋ฌดํํ ์์ฑํ๊ณ ๋ ๋ฐฉ๋ํ ์์ ๋ฐ์ดํฐ์ ์ ๋ชจ๋ ๊ทธ๋ฆฌ๋ ๊ฒ์ ์ฑ๋ฅ์ ๋ถ์ ์ ์ธ ์ํฅ์ ๋ฏธ์น ์ ์์ต๋๋ค. ๋ฐ๋ผ์ ๋ ๋๋ง ์ต์ ํ ์์ ์ด ํฅํ ์ด๋ฃจ์ด์ ธ์ผ ํ๋ฉฐ, ์ด๋ Virtuoso์ ๊ฐ์ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ํตํด ๋ ๋๋ง ์ ํ ์กฐ๊ฑด์ ๋ถ์ฌํจ์ผ๋ก์จ ๊ฐ์ ํ ์ ์์ ๊ฒ์ด๋ผ ์๊ฐํฉ๋๋ค.
๋ณธ ํ๋ก์ ํธ์์ GUEST, MEMBER, ADMIN 3๊ฐ์ ๊ถํ์ผ๋ก ๋๋์ด CRUD๋ฅผ ์งํํ์ต๋๋ค.
๊ธฐํ ์ด๊ธฐ ๋จ๊ณ์์๋ MEMBER ๊ถํ๋ง ์กด์ฌํ์ต๋๋ค.
MEMBER ๊ถํ์ ์ฌ์ฉ์๊ฐ ํ์ ๊ฐ์
ํ์ ๋ถ์ฌ๋๋ ๊ถํ์
๋๋ค. ๋ฐ๋ผ์ ์ฌ์ฉ์๋ ํ์ ๊ฐ์
์ ํ์ง ์๋๋ค๋ฉด ์๋น์ค๋ฅผ ์ด์ฉํ ์ ์์์ต๋๋ค. ์ด๋ฐ ํ๋ค์ ๋ฎ์ถ๊ณ ์ ํ์๊ฐ์
& ๋ก๊ทธ์ธ ํ์ง ์๊ณ ๋ ์๋น์ค๋ฅผ ์ด์ฉํ ์ ์๋ GUEST ๊ถํ์ ์ถ๊ฐํ์์ต๋๋ค.
๋ํ, ์ ์ ๋ค์ด ๋ชจ์ธ ๊ทธ๋ฃน์ด ์๊ณ ๊ทธ๋ฃน์ ๊ด๋ฆฌํ ์ ์๋ ๊ธฐ๋ฅ์ ์ถ๊ฐํ๊ณ ์ถ๋ค๋ ํ ๋ด ๋
ผ์๊ฐ ์์์ต๋๋ค. ์ฌ๋ฌ ๋์๋ณด๋ ์๋น์ค์์ ๊ด๋ฆฌ์ ๊ถํ์ผ๋ก ๋ฉค๋ฒ๋ฅผ ์น์ธํ๊ณ ํํด์ํค๋ ๋ฑ์ ๊ธฐ๋ฅ์ ์ ๊ณตํ๊ธฐ ๋๋ฌธ์ ์ ํฌ๋ ์ค์ ์๋น์ค์์ ์ ์ฌ์ฑ์ ๊ณ ๋ คํ์ฌ ADMIN ๊ถํ์ ์ถ๊ฐํ์์ต๋๋ค.
๊ถํ์ด ๋์ด๋จ์ ๋ฐ๋ผ ๊ฐ ๊ถํ์ ๋ฐ๋ผ ์ ๊ทผํ ์ ์๋ ํ๋ฉด์ ์์ดํ๊ฒ ์ค์ ํ ํ์๋ฅผ ๋๊ผ๊ณ ๊ทธ์ ๋ฐ๋ผ ๊ธฐ๋ฅ๋ค๋ ์ธ๋ถํํ์ฌ ์์ ํ์ต๋๋ค. ์๋๋ ๊ฐ ๊ถํ์ ์ญํ ๊ณผ ๊ธฐ๋ฅ์ ๋๋ค.
| ๊ถํ | ์ญํ | ๊ธฐ๋ฅ |
|---|---|---|
| GUEST | ๋ก๊ทธ์ธํ์ง ์์๋ ์๋น์ค์ ์ ๊ทผ ๊ฐ๋ฅํ ์๋ ๊ถํ | ์นด๋ ์์ฑ, ์นด๋ ์์ ๋ฐ ์ญ์ , ํ์ด์ง ์ดํ ์ ์์ฑํ ์นด๋ ์ ๋ณด ์ญ์ , ํ์๊ฐ์ ํ์ด์ง๋ก ์ด๋ |
| MEMBER | ์ํ๋ ๊ทธ๋ฃน์ ์ ์ฒญํ ์ ์๋ ๊ฐ์ธ | ๊ทธ๋ฃน ๊ฒ์, ๊ทธ๋ฃน ์ฐธ๊ฐ ์ ์ฒญ, ์นด๋ ์์ฑ, ์นด๋ ์์ ๋ฐ ์ญ์ , ๋ด ๊ทธ๋ฃน ํํฉ ๋ณด๊ธฐ, ๊ทธ๋ฃน ํํด, ๊ณต์ง ์ฝ๊ธฐ |
| ADMIN | ๊ทธ๋ฃน์ ๊ด๋ฆฌ์, ๊ฐ์ธ ์ ์ ๋ก๋ ํ๋ ๊ฐ๋ฅ | ๊ณต์ง ์์ฑ ๋ฐ ์ฝ๊ธฐ, ๊ทธ๋ฃน์ ์ ์ฒญํ ์ฐธ๊ฐ์ ์๋ฝ ๋ฐ ๊ฑฐ์ , ์นด๋ ์์ฑ, ์นด๋ ์์ ๋ฐ ์ญ์ |
๊ทธ๋ฃน๊ณผ ADMIN ๊ถํ์ด ์๊ธฐ๋ฉด์ User ๋ชจ๋ธ๊ณผ Group ๋ชจ๋ธ ๊ฐ ์๋ฐฉํฅ ๊ด๋ฆฌ๊ฐ ํ์ํ์ต๋๋ค. ์๋๋ ๊ฐ ๋ชจ๋ธ์ ์ค๋ช
์
๋๋ค.
User ๋ชจ๋ธ: ์ ์ ์ ์ ๋ณด๋ฅผ ๊ฐ์ง๊ณ ์์ต๋๋ค. ๊ถํ์ ๋ฐ๋ผ userType์๋ MEMBER ๋๋ ADMIN ์ด ์ ์ฅ๋ฉ๋๋ค. ์ ์ ๊ถํ์ด MEMBER ์ผ ๊ฒฝ์ฐ, ๊ทธ๋ฃน ์ง์ ํํฉ์ ๋ฐ๋ผ PARTICIPATING / PENDING / REJECTED์ ์ํ๊ฐ ์ ์ฅ๋ฉ๋๋ค.
Group ๋ชจ๋ธ: ๊ทธ๋ฃน์ ์ ๋ณด๋ฅผ ๊ฐ์ง๊ณ ์์ต๋๋ค. userType์ด ADMIN ****์ธ _id ๊ฐ์ด Group ๋ชจ๋ธ์ admin ์์ฑ์ ์ ์ฅ๋๋ฉฐ, ๊ทธ๋ฃน ์ง์ ํํฉ์ ๋ฐ๋ผ members/applicants ํ๋์ ๊ฐ์ด ์ถ๊ฐ๋ฉ๋๋ค.
User, Group ๋ชจ๋ธ ์คํค๋ง ๊ด๊ณ๋
์ฌ๋ฌ๊ฐ์ ๊ถํ์ ์ ์ํ๊ณ ์ค์ ๊ตฌํ์ ํ๋ฉด์ ๊ฐ ๊ถํ์ ์ญํ ๊ณผ ๊ถํ์ ๊ด๊ณ(MEMBER - ADMIN)์ ๋ฐ๋ผ ์ด๋ป๊ฒ ๊ธฐ๋ฅ๋ค์ ์ ์ํด์ผํ ์ง์ ๋ํด ๊น๊ฒ ์๊ฐํด๋ณผ ์ ์์์ต๋๋ค. ๋ํ ๋์ผํ API ์์ฒญ์ด๋ผ๋ ๊ถํ์ ๋ฐ๋ผ ๊ธฐ๋ฅ์ ๋ฌ๋ฆฌํด์ผํ๋ ๊ฒฝ์ฐ๋ฅผ ๊ฒช์ผ๋ฉด์ ๊ถํ ํ๋ ๋์ด๋๋ค๋ ๊ฒ์ ๋จ์ํ ๊ธฐ๋ฅ์ด ๋์ด๋๋ ๊ฒ๋ฟ๋ง ์๋๋ผ ๊ธฐ๋ฅ๋ค์ด ๊ถํ์ ๋ฐ๋ผ ๋ณต์กํด์ง ์ ์๋ ๊ฒ์ ๋ฐฐ์ ์ต๋๋ค.
์ฒ์์ผ๋ก ํ์๋ค๊ณผ ํจ๊ป ํ๋ก์ ํธ๋ฅผ ์งํํ๋ฉฐ, ์ํต๋ ๊ฐ๋ฐ์ ์ผ๋ถ๋ถ์ด๋ผ๋ ์ ์ ๋ฐฐ์ ์ต๋๋ค. ๊ฐ๊ฐ์ธ์ ์ค๋ ฅ์ ๋์ด, ์๋ก ๊ฐ ์ ๊ทน์ ์ผ๋ก ์ํตํ๋ฉฐ ๊ณต์ ํ๋ ๊ฒ์ด ํ๋ก์ ํธ์ ์งํ ๋ฐ ์์ฑ๋์ ํฐ ์ํฅ์ ๋ฏธ์น๋ค๋ ์ ์ ๊นจ๋ฌ์์ต๋๋ค.
DND(Drag and Drop) ๊ตฌํ ๋น์, ์ํต๊ณผ ํ์ ์ ํ์ ๋ชธ์ ๋๋ ์ ์์์ต๋๋ค. DND๋ ์ ํฌ๊ฐ ์๊ฐํ๋ ํต์ฌ ์ธํฐ๋์ ๊ธฐ๋ฅ์ด์ ๋ฉ์ธ ์ฑ๋ฆฐ์ง ์ค ํ๋๋ก, ๊ฐ์ ๋งก์ ๊ฐ๋ฐํ๋ ๋ค๋ฅธ ๋ถ๋ถ๊ณผ๋ ๋ฌ๋ฆฌ ํจ๊ป ์งํํ๋ ๋ฐฉ์์ ํํ์ต๋๋ค. ์ด๋ค ๋ฐฉ์์ผ๋ก dashboard ๋ด grid๋ฅผ ๊ทธ๋ฆฌ๊ณ ์นด๋์ ์ขํฏ๊ฐ์ ์ฌ์ค์ ํ ๊ฒ์ธ์ง์ ๋ํ ๊ณ ๋ฏผ์ด ๋ง์๋๋ฐ, ์๋ก๊ฐ ์ฐพ์ ์๋ฃ๋ฅผ ๊ณต์ ํ๊ณ , ์งํ ๋์ค ๋งํ ๋ถ๋ถ์ ํจ๊ป ๊ทธ ์์ธ๊ณผ ์๋ฃจ์ ์ ์ฐพ์์ผ๋ก์จ ์กฐ๊ธ์ฉ ํด๊ฒฐํด ๋๊ฐ ์ ์์์ต๋๋ค. ์ผ๋ฐฉํฅ ์ํต์ด ์๋๋ผ, ํํ์ผ๋ก ์ฃผ๊ณ ๋ฐ์ผ๋ฉฐ ๋์๊ฐ๋ ์ด ์๊ฐ์ด ์ ์๊ฒ๋ ์ ์ฒด ํ๋ก์ ํธ ์ค ๊ฐ์ฅ ์ฌ๋ฐ๊ณ ๋ ๊ธฐ์ต์ ๋จ์ ๊ฒฝํ์ด ๋์์ต๋๋ค.
๊ณตํตํ๋ ๋ฌธ์๋ฅผ ์ฒด๊ณํํ๋ ๊ฒ ๋ํ ์ค์ํ๋ค๋ ์ ์ ๋ฐฐ์ธ ์ ์์์ต๋๋ค. API ๋ช ์ธ์๋ฅผ ๋ช ํํ ์์ฑํ ์๋ก Frontend์ Backend ๊ฐ์ ์์ ์ด ์ํํ๊ฒ ์ด๋ฃจ์ด์ก๊ณ , ์ด์ค ์์ ์ ๋ฐฉ์งํ๊ธฐ ์ํด์๋ ๊ณตํต๋ ๋ฌธ์์ ์ฑํฌ๋ฅผ ์ ๋ง์ถ ํ์๋ ์์์ต๋๋ค. ๊ธฐ๋ณธ์ ์ด์ง๋ง ์ค์ํ ํ์ํฌ์ ์์ธ๋ฅผ ๋ฐฐ์ฐ๋ฉฐ, ์ด๋ฒ ๊ฒฝํ์ ํ ๋๋ก ํ์๋ค์ ํฉ์์ ํ์ ์ ์ด๋์ด๋ด๋ ์์ธ๋ก ํ๋ก์ ํธ์ ์ํ ์ ์๋๋ก ๋ ธ๋ ฅํด ๋๊ฐ๊ฒ ์ต๋๋ค.
์ผ๋๊ณผ ๋ฉํ ๋๋ค์ด ํญ์ ๊ฐ์กฐํ์๋ ํ ์ค ํ ์ค์ ์๋ฏธ, ์ ์ฐ์ด๋๊ฐ์ ๋ํด ํ๊ณ ๋ค์ด์ผ ํ๋ ์ด์ ์ ์ค์์ฑ์ ๊นจ๋ซ๊ฒ ๋ ์๊ฐ์ด์์ต๋๋ค. ์๊ฒฌ์ ๋ด์ผ ํ ๋๋ ๊ตฌํํ ๋ด์ฉ์ ๋ํ ์ค๋ช ํ ๋ ๋ ผ๋ฆฌ์ ์ผ๋ก ์ค๋ช ํ์ง ๋ชปํ์์ต๋๋ค. ๊ทธ ์ด์ ๊ฐ ๋๋ฃจ๋ญ์ ํ๊ฒ ์ดํดํ๊ณ ๋์ด๊ฐ์ ์๊ธด ๋ฌธ์ ์ ์ด๋ผ๊ณ ์๊ฐํด ํ ์ค ํ ์ค์ ์๋ฏธ๋ฅผ ํ์ ํ๊ณ ์ ๋ ธ๋ ฅํ์ต๋๋ค. ๊ทธ ๊ฒฐ๊ณผ ์ ์ ์ฝ๋์ ๋ํด ๋ ผ๋ฆฌ์ ์ผ๋ก ์ค๋ช ํ ์ ์๊ฒ ๋์๊ณ , ์ด๊ฒ์ด ๊ฒฐ๊ณผ์ ์ผ๋ก ํ์๋ถ๋ค๊ณผ ์กฐ๊ธ ๋ ์์ํ๊ฒ ์ํตํ ์ ์๋ ๋ฐํ์ด ๋์์ต๋๋ค.
์ด๊ธฐ ๊ธฐํ ๋จ๊ณ์์, ๋๋ ๊ฐ๋ฐ ์ค๊ฐ์ค๊ฐ์ ๋น์ฐํ๋ค๊ณ ์๊ฐํ๊ณ ๋์ด๊ฐ๋ ๋ถ๋ถ๋ค์ด ๊ฐ๋ฐ์ ์งํํ๋ฉด์ ๋น์ฐํ์ง ์์๋ค๋ ๊ฒ์ ์์์ต๋๋ค. ๊ธฐํ ๋จ๊ณ์์ ๋ง์ ๋ ผ์๋ฅผ ํ์ง๋ง ์ ๋ค๋ฉด ์ ์ 3๋ช ์ ํ์๋ฟ์์๋ ์ฌ์ํ ์ฌ์์ ๋ํ ์๊ฐ์ด ๋งค๋ฒ ๋ฌ๋ผ ๋ค ๊ฐ์ด ๋๋๋ ์ ๋ ์์ต๋๋ค. ๊ทธ๋ ๊ธฐ์ ๋์์์ด ์ํตํด ๊ทธ๋ฐ ์ฌํญ๋ค์ ๋ฐ๋ก์ก์์ต๋๋ค. ์ด๋ฌํ ์ํต์ ํ์ง ์๊ณ ๊ฐ๋ฐ์ด ์งํ๋์๋ค๋ฉด ๊ฐ์์ ์์ ๋ถ๋์ ํตํฉํ๋ ์์ ์ ์ด๊ธ๋ ์์ ์ง์ ๋ค์ ๋ฐ๋ก์ก๋๋ฐ ๋ง์ ์๊ฐ์ ์๊ฒ ๋์ ๊ฒ์ ๋๋ค. ์ด๋ฌํ ๊ฒฝํ์ ํตํด ์์ฌ์ํต์ ์ค์์ฑ๊ณผ ํ์์ฑ์ ๊นจ๋ฌ์์ต๋๋ค.
ํ ํ๋ก์ ํธ๋ฅผ ์งํํ๋ฉฐ ํ์๋ค์ ์ฅ์ ์ ์ง์ ๋๋ผ๊ณ , ๋ฐฐ์ฐ๋ฉฐ, ์ ์ฉํด ๋ณผ ์ ์์ด์ ์ข์๊ณ , ๋ ๊ทธ์ ๋๋น๋ ์ ์ ์ฅ์ ๊ณผ ๋จ์ ์ ๋ํด์๋ ๊ณ ๋ฏผํด ๋ณผ ์ ์๊ฒ ๋ ์ ๋ง ์ ์ตํ ์๊ฐ์ด์์ต๋๋ค.
์ ๋ ์ด๋ฒ ํ๋ก์ ํธ๋ฅผ ์งํํ๋ฉด์ ์ํต์ ์ค์์ฑ, ์ํต์ ํ์ ๋ง์ด ๊นจ๋ฌ์์ต๋๋ค.
์ ๊ฐ ํ๋ก ํธ์๋ ์์ ์ ํ๋ ๋์ค์ ๋ฐฑ์๋๋ก ๋ถํฐ ๋ฐ์ ์๋ต ๋ฐ์ดํฐ ์์ ์ด ํ์ํ ์ํฉ์ด ์๊ฒผ์ต๋๋ค. ์ด๋ฏธ ๋ฐฑ์๋ ์์ ์ด ์๋ฃ๋ ์ํ์๋๋ฐ ์ด ์ํฉ์ ์ค๋ช ํด ๋๋ฆฌ๋ ๊ฒ ์ฒ์์๋ ์ด๋ ค์ ์ต๋๋ค. ๊ทธ๋ผ์๋ ๋ฐฑ์๋ ์์ ์ ๋งก์ผ์ ๋ถํํ ์๋ต ๋ฐ์ดํฐ ์์ ์์ฒญ์ด ํ์ํ ์ํฉ์ ์ค๋ช ํด ๋๋ ธ์ต๋๋ค. ์ด๋ฌํ ๊ณผ์ ์ด ์ฌ๋ฌ ๋ฒ ์์๋๋ฐ ์ด๋ฌํ ์ผ๋ จ์ ๊ณผ์ ์ ๊ฑฐ์น๋ฉด์ ๋ฐฑ์๋, ํ๋ก ํธ์๋ ๊ฐ๊ฐ์ ์ฒ์ง์์ ์๊ฐํด๋ณด๊ณ ์ํตํ๋ ์ฐ์ต์ ํ๊ฒ ๋์ด์ ๋งค์ฐ ์ข์์ต๋๋ค.
๋ํ ํ๋ก์ ํธ๋ฅผ ์งํ ๋์ค ๋ฌธ์ ๋ฅผ ํ๋ํ๋ ๋ง๋ฅ๋จ๋ฆด ๋๋ง๋ค ๊ฑฑ์ ์ด ๋ง์์ง๊ณ ๊ฐ์ ์ ์ผ๋ก ๋ถ์ํด์ก์ต๋๋ค. ๊ทธ๋ฌ๋ ํ์๋ค๊ณผ ๊ฐ์ด ์ํตํ๋ฉด์ ๊ทธ๋ฐ ๊ฑฑ์ ์์ ๋ด๋ ค์์ ์ค์ ๋ก ์ฐ๋ฆฌ๊ฐ ํด๊ฒฐํด์ผ ํ๋ ๋ฌธ์ ๊ฐ ์ ํํ ๋ฌด์์ธ์ง ๊ทธ ๋ฌธ์ ๊ฐ ๋ฐ์ํ๋ ์์ธ์ด ๋ฌด์์ด๊ณ ์ด๋ค ๋ถ๋ถ์ ํด๊ฒฐํด์ผ ํ๋์ง ๊ฐ๊ด์ ์ผ๋ก ํ์ค์ ๋ฐ์๋ค์ด๋ ์ฐ์ต์ด ๋์์ต๋๋ค. ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ๋ ค๋ฉด ๊ฝ๊ฝ ์ธ๋งค์ ๊ฑฑ์ ํ์ง ๋ง๊ณ ํ์๋ค๊ณผ ์ ๊ทน ์ํตํด์ผ ํจ์ ๋ฐฐ์ ์ต๋๋ค.












