๐ถ PetWithU
์๋
ํ์ธ์, ์ ํฌ๋ 'PetWithU' ํ์
๋๋ค.
- 'PetWithU' ๋ Wecode ์ฝ๋ฉ ๋ถํธ์บ ํ 41๊ธฐ ํ์๋ค๋ก ๊ตฌ์ฑ๋ ์ต์ข
ํ๋ก์ ํธ ํ๋ช
์ด์ ์ ํฌ์ ์๋น์ค ์ด๋ฆ์ผ๋ก,
- ๋ฐ๋ ค๋๋ฌผ์ ํค์ฐ๊ฑฐ๋ ๊ณง ์
์ ์์ ์ธ, ๋๋ ๋ฐ๋ ค๋๋ฌผ์ ๊ด์ฌ์๋ ์ฌ์ฉ์๋ค์๊ฒ ์ปค๋ฎค๋ํฐ ์๋น์ค๋ฅผ ์ ๊ณตํ๊ณ ๋ฐ๋ ค๋๋ฌผ ์ฉํ์ ํ๋งคํ๋ ์ ํ๋ฆฌ์ผ์ด์
์
๋๋ค.
- '์ค๋์์ง' ์ฌ์ดํธ ํด๋ก ์ฝ๋ฉ
- '์ค๋์์ง' ์ ํ๊ตญ์ ์คํํธ์
์ด ๋ฐ์นญํ ์ธํ
๋ฆฌ์ด ํ๋ซํผ ์๋น์ค๋ก ์จ๋ผ์ธ ์ง๋ค์ด ์ฝํ
์ธ ๋ถํฐ ์คํ ์ด, ์ ๋ฌธ๊ฐ ์๊ณต ์๋น์ค ๋ฑ ์ธํ
๋ฆฌ์ด์ ํ์ํ ๋ชจ๋ ์๋น์ค๋ฅผ ์ ๊ณตํฉ๋๋ค.
๐ฅ๏ธ Demo video
๐ฉ ์๋น์ค ์๊ฐ
- ์์
๋ก๊ทธ์ธ ๊ธฐ๋ฅ์ ์ด์ฉํด ๋ฒ๊ฑฐ๋ก์ด ํ์๊ฐ์
์ ์ฐจ๋ฅผ ์๋ตํ์ฌ ์ฌ์ฉ์์ ์ ๊ทผ์ฑ๊ณผ ํธ์์ฑ์ ๋์์ต๋๋ค.
- ํผ๋ ๊ฒ์๊ธ์ ์์ฑํ ๋ ์ฌ์ดํธ์์ ๊ตฌ๋งคํ ์ ํ์ ํ๊ทธํ์ฌ ๋ค๋ฅธ ์ ์ ๊ฐ ์ํ์ ์ ๊ทผํ ์ ์์ต๋๋ค.
- ์ ์ ๋ค์ด ๊ฐ๋ณผ๋งํ ์ฐ์ฑ
๋ก๋ฅผ ์ง์ญ๋ณ๋ก ์กฐํํ ์ ์์ด ์ํ๋ ์ง์ญ์ ์ฐ์ฑ
๋ก ์ ๋ณด๋ฅผ ๋น ๋ฅด๊ฒ ์ฐพ์๋ณผ ์ ์์ต๋๋ค.
- ์ง๋API ๋ฅผ ์ฌ์ฉํ์ฌ ์ฐ์ฑ
๋ก์ ์์น๋ฅผ ์ง๋ ์์ ์ขํ๋ก ํ์ํด ์ค๋๋ค.
- ์ ์ ๊ฐ ์คํฌ๋ฉํ ํผ๋ ๊ฒ์๊ธ๊ณผ ์ฐ์ฑ
๋ก ๊ฒ์๊ธ์ ์คํฌ๋ฉ ํ์ด์ง์ ๋ชจ์์ ๋ณผ ์ ์๋๋ก ํ์ฌ ์ ์ ์ ํ์คํ ๋ฆฌ๋ฅผ ๊ธฐ๋กํ๊ณ ์คํฌ๋ฉํ ๊ฒ์๊ธ์ ํ ๋์ ์กฐํํ ์ ์์ต๋๋ค.
๐ Project๊ธฐ๊ฐ
2023/01/30 ~ 2023/02/10 (์ฝ 2์ฃผ)
๐ฅ ์ธ์ ๋ฐ ๊ตฌ์ฑ
Back-End
๐ ์ต๋ฏผ์ฃผ (Product Manager)
Front-End
๐ ๊ฐ์์ค (Project Manager), ๋ฐฐ๊ฒฝ๋ฏผ, ๊ถ๋ํ
๐ป ๊ธฐ์ ์คํ
Frond-End
Back-End
Common
Communication
๐ผ๏ธ ๊ตฌํ ์์
์ด๋ฏธ์ง ๋ณด๊ธฐ
!2์ ์ค ์ด๋ฏธ์ง ์ผ๊ด ๊ต์ฒด ์์ !
| ํ์ด์ง | ๊ตฌํ ๋ด์ฉ ์บก์ณ | ๊ฐ๋ฐ ๋ด๋น |
| --- | --- | --- |
| DB ์ค๊ณ
Migration |
[Detail LINK](https://github.com/wecode-bootcamp-korea/41-2nd-PetWithU-backend/issues/5) | [BE] ์ต๋ฏผ์ฃผ |
| ๋ฉ์ธ ํ๋ฉด
Nav Bar
Footer | | [FE] ๋ฐฐ๊ฒฝ๋ฏผ
[BE] ์ต๋ฏผ์ฃผ |
| Kakao ๋ก๊ทธ์ธ | | [FE] ๋ฐฐ๊ฒฝ๋ฏผ
[BE] ์ต๋ฏผ์ฃผ |
| ํผ๋ ๋ฉ์ธ | | [FE] ๋ฐฐ๊ฒฝ๋ฏผ
[BE] ์ต๋ฏผ์ฃผ |
| ํผ๋ ๋ํ
์ผ | | [FE] ๊ถ๋ํ
[BE] ์ต๋ฏผ์ฃผ |
| ํผ๋ ์คํฌ๋ฉ
๋ชจ์๋ณด๊ธฐ | | [FE] ๋ฐฐ๊ฒฝ๋ฏผ
[BE] ์ต๋ฏผ์ฃผ |
| ํผ๋ ๊ธ์ฐ๊ธฐ | | [FE] ๊ถ๋ํ
[BE] ์ต๋ฏผ์ฃผ |
| ์ํ ๊ฒ์ | | [FE] ๋ฐฐ๊ฒฝ๋ฏผ
[BE] ์ต๋ฏผ์ฃผ |
| ์ํ ๋ํ
์ผ | | [FE] ๊ถ๋ํ
[BE] ์ต๋ฏผ์ฃผ |
| ์ฐ์ฑ
๋ก ๋ฉ์ธ |
| [FE] ๊ฐ์์ค
[BE] ์ต๋ฏผ์ฃผ |
| ์ฐ์ฑ
๋ก ๋ํ
์ผ | | [FE] ๊ฐ์์ค
[BE] ์ต๋ฏผ์ฃผ |
| ์ฐ์ฑ
๋ก ์คํฌ๋ฉ
๋ชจ์๋ณด๊ธฐ | | [FE] ๊ฐ์์ค
[BE] ์ต๋ฏผ์ฃผ |
| ์ฅ๋ฐ๊ตฌ๋ | FE ์บก์ณ ๋ฏธ์ ๊ณต | [FE] ๊ถ๋ํ
[BE] ์ต๋ฏผ์ฃผ |
๐ API Documentation
Postman Link
๐ ๏ธ ๊ตฌํ ์์ธ
์์ธ๋ณด๊ธฐ
### ๐๏ธ Server & DataBase
- AWS RDS ์ DB๋ฅผ ๊ตฌ์ถํ์ฌ FE ๋ฐ ์ฌ์ฉ์๊ฐ ์ธ์ ๋ ์ง ์ํํ๊ฒ DB๋ฅผ ์ด์ฉํ ์ ์๋๋ก ์ง์.
### ๐จโ๐ฉโ๐งโ๐ฆ Users
#### Login / Sign Up
- Kakao SDK for JavaScript ๋ฅผ ์ด์ฉํ ์นด์นด์คํก ์์
๋ก๊ทธ์ธ ๋ฐ ํ์๊ฐ์
๊ตฌํ
- ๋ก๊ทธ์ธ ์ฑ๊ณต ์ ์๋ฒ์์ secret key ๋ฅผ ์ด์ฉํ์ฌ JWT ์์ฑ
- ๋ก๊ทธ์ธ ํ ์ฌ์ฉ์ ์ธ์ฆ/์ธ๊ฐ์ ํจ์ค์๋ ๋์ JWT ๋ฅผ ์ฌ์ฉํ์ฌ ๋ณด์์ฑ ํฅ์
- Bcrypt๋ฅผ ์ฌ์ฉํ์ฌ ๋น๋ฐ๋ฒํธ๋ฅผ ์ํธํํ์ฌ DB์ ์ ์ฅ
- ์ฌ์ฉ์์ ๊ณ์ ์ ๋ณด๋ฅผ ๋์ฑ ์์ ํ๊ฒ ๊ด๋ฆฌ
#### Follow / Following
- ์ฌ์ฉ์ ๊ฐ ํ๋ก์ฐ / ํ๋ก์ ์ง์
### ๐ฆด Products
#### Main page
- ์ค๋์ ์ ํ : ํ๋งค๋์ ๊ธฐ์ค์ผ๋ก ๊ฐ ์นดํ
๊ณ ๋ฆฌ๋ณ๋ก ๋ด๋ฆผ์ฐจ์ ์ ๋ ฌ ํ ์์ 1๊ฐ ์ ํ๋ง DB์์ ์ถ์ถ
- ๋ชจ๋ ์ ํ : ๋ชจ๋ ์ ํ์ ํ๋งค๋์ ๊ธฐ์ค์ผ๋ก ๋ด๋ฆผ์ฐจ์ ์ ๋ ฌํ์ฌ DB์์ ์ถ์ถ
#### Detail page
- ํน์ ์ ํ์ ์ธ๋ถ ์ ๋ณด ์กฐํ
### ๐ผ๏ธ Feed
๋ชจ๋ API๊ฐ ์ํ๋๊ธฐ ์ ์ ๋ก๊ทธ์ธํ ์ฌ์ฉ์์ JWT ๋ฅผ ๊ฒ์ฆํ์ฌ ์ฌ์ฉ์ ์ธ์ฆ ํ ์ธ๊ฐ.
#### Main Page
- Request query ๋ฅผ ์ด์ฉํ์ฌ FE์์ ์์ฒญํ๋ ํ์ด์ง ์ ๋ณด๋ฅผ ํจ์จ์ ์ผ๋ก ์์ฒญ๋ฐ์
- Pagination ์ง์
- Request query๋ฅผ ์ด์ฉํ์ฌ FE์์ ์์ฒญํ๋ ์นดํ
๊ณ ๋ฆฌ ํ์ด์ง ์ ๋ณด๋ฅผ ํจ์จ์ ์ผ๋ก ์์ฒญ๋ฐ์
- FE ์ Pagination ์ ํจ๊ณผ์ ์ผ๋ก ์ง์ํ๊ธฐ ์ํด DB์์ ๋ฐ์ดํฐ ์ถ์ถ ์ Pagination ๋จ์๋งํผ ๋ฐ์ดํฐ๋ฅผ ์ถ์ถํ์ฌ FE์ ์ ๊ณต
- ํ๋ฒ์ ๋๋ฌด ๋ง์ ๋ฐ์ดํฐ๋ฅผ ์ ๋ฌํ ๊ฒฝ์ฐ ๋ฐ์ํ๋ ํธ๋ํฝ ๊ณผ๋ถํ ๋ฐ ์ํ ์๊ฐ์ ์ค์ด๋ ํจ๊ณผ๋ ์์.
- ๋ก๊ทธ์ธํ ์ฌ์ฉ์๊ฐ ํ๋ก์ฐํ๋ ์ฌ์ฉ์๊ฐ ์์ฑํ ๊ฒ์๊ธ๋ง ์กฐํ
1. ํ๋ก์ฐํ๋ ์ฌ์ฉ์ ID ๋ฅผ ์ป์ด์
2. ํด๋น ID๊ฐ ์์ฑํ ๊ฒ์๊ธ์ ์ต์ ์์ผ๋ก pagination ํฌ๊ธฐ๋งํผ ์ ๋ ฌ
- Flag ๋ฅผ ์ฌ์ฉํ์ฌ Feed Main ์ ํ์ํ ์ ๋ณด๋ง ๋ฆฌํด๋๋๋ก ํ์ฌ ํจ์จ์ฑ ์ฆ๋
- ์ข์์ / ์คํฌ๋ฉ / ๋๊ธ ์กฐํ ์ง์
- ์ข์์ ๋ฐ ์คํฌ๋ฉ ๋ฒํผ ํด๋ฆญ ์ Toggle ํํ๋ก FE ์์ ๊ฐํธํ๊ฒ ์ํ ๋ณ๊ฒฝ ๊ฒฐ๊ณผ๋ฅผ ์ ์ ์๊ฒ ํจ
#### Detail Page
- ์ข์์ / ์คํฌ๋ฉ
- ์ข์์ ๋ฐ ์คํฌ๋ฉ ๋ฒํผ ํด๋ฆญ ์ Toggle ํํ๋ก FE ์์ ๊ฐํธํ๊ฒ ์ํ ๋ณ๊ฒฝ ๊ฒฐ๊ณผ๋ฅผ ์ ์ ์๊ฒ ํจ
- ๋๊ธ ์กฐํ / ๋ฑ๋ก / ์ญ์ ์ง์
- ๋๊ธ ์์ฑ ์ ์ฌ์ฉ์ ์ ๋ณด๋ฅผ FE ์ ๋ฆฌํดํ์ฌ ์์ฑ์ ์ ๋ณด๋ฅผ ์ ์ ์๊ฒ ํจ.
#### Collection(Scraped posts) Page
- ์ฌ์ฉ์๊ฐ ์คํฌ๋ฉํ ๊ฒ์๊ธ์ ํ ํ์ด์ง์์ ์กฐํํ ์ ์๋๋ก ํ์ฌ ์ฌ์ฉ์ ํธ์์ฑ ์ฆ๋
### ๐ Feed (Special Options)
#### ๊ธ์ฐ๊ธฐ
- Bulk INSERT
- Bulk Insert ๋ฅผ ์ด์ฉํ์ฌ ๋ง์ ์์ ๋ฐ์ดํฐ๋ฅผ ํ๋์ INSERT ์ฟผ๋ฆฌ๋ก DB์ ์ ์ฅ
- ์ํ์๊ฐ ์ต์ํ, ํ๋์ ์ฟผ๋ฆฌ๋ง์ ์ฌ์ฉํ๋ฏ๋ก ํจ์จ์ฑ ์ฆ๋
- Multer & AWS S3
- ์ด๋ฏธ์ง ์
๋ก๋๋ฅผ ์ํด Multer ๋ฏธ๋ค์จ์ด ์ฌ์ฉ
1. FE๋ก๋ถํฐ ์ด๋ฏธ์ง ํ์ผ์ ์ ๋ฌ๋ฐ์ S3์ ์ ์ฅ
2. ์ด๋ฏธ์ง S3 url์ DB ์ ์ ์ฅ
#### ์ํ ๊ฒ์
- FE๋ก๋ถํฐ ๊ฒ์ํ ํค์๋๋ฅผ request ์ฟผ๋ฆฌ๋ก ์ ๋ฌ๋ฐ์ DB์์ ๊ฒ์
- ํค์๋๋ฅผ ํฌํจํ๋ ์ํ์ ๋ณด๋ฅผ ํ๋งค๋ ์์ผ๋ก ์ ๋ ฌํ์ฌ ์ต๋ 10๊ฐ ๋ฆฌํด
### ๐๏ธ Promenade
๋ชจ๋ API๊ฐ ์ํ๋๊ธฐ ์ ์ ๋ก๊ทธ์ธํ ์ฌ์ฉ์์ JWT ๋ฅผ ๊ฒ์ฆํ์ฌ ์ฌ์ฉ์ ์ธ์ฆ ํ ์ธ๊ฐ.
์ง๋ API (์นด์นด์ค๋งต) ์ ์ด์ฉํ ์ฐ์ฑ
๋ก ์์น ํ์
#### Main Page
- Request query ๋ฅผ ์ด์ฉํ์ฌ FE์์ ์์ฒญํ๋ ํ์ด์ง ์ ๋ณด๋ฅผ ํจ์จ์ ์ผ๋ก ์์ฒญ๋ฐ์
- ์นดํ
๊ณ ๋ฆฌ(์, ํ์ ๊ตฌ) ๋ณ ์กฐํ ์ Query ์ฌ์ฌ์ฉ์ฑ ์ฆ๋
- ์นดํ
๊ณ ๋ฆฌ๋ณ(์, ํ์ ๊ตฌ) ๊ฒ์๋ฌผ ์กฐํ ์ ๋น์ทํ SQL ์ฟผ๋ฆฌ๊ฐ ๋ฐ๋ณตํ์ฌ ์ฌ์ฉ๋๋ ๊ฒ์ ์ต์ํํ๊ณ ์ ์ค๋ณต๋๋ ์ฟผ๋ฆฌ๋ defaultQuery ๋ฌธ์์ด๋ก ํ ๋ฒ๋ง ์ ์ธํ ๋ค ๊ฐ ํ์ด์ง์์ ํ์ํ ์ถ๊ฐ ์ฟผ๋ฆฌ๋ฅผ ๋ง๋ถ์ฌ ์ฌ์ฉ
- Pagination ์ง์
- Request query๋ฅผ ์ด์ฉํ์ฌ FE์์ ์์ฒญํ๋ ์นดํ
๊ณ ๋ฆฌ ํ์ด์ง ์ ๋ณด๋ฅผ ํจ์จ์ ์ผ๋ก ์์ฒญ๋ฐ์
- FE ์ Pagination ์ ํจ๊ณผ์ ์ผ๋ก ์ง์ํ๊ธฐ ์ํด DB์์ ๋ฐ์ดํฐ ์ถ์ถ ์ Pagination ๋จ์๋งํผ ๋ฐ์ดํฐ๋ฅผ ์ถ์ถํ์ฌ FE์ ์ ๊ณต
- ํ๋ฒ์ ๋๋ฌด ๋ง์ ๋ฐ์ดํฐ๋ฅผ ์ ๋ฌํ ๊ฒฝ์ฐ ๋ฐ์ํ๋ ํธ๋ํฝ ๊ณผ๋ถํ ๋ฐ ์ํ ์๊ฐ์ ์ค์ด๋ ํจ๊ณผ๋ ์์.
- Flag ๋ฅผ ์ฌ์ฉํ์ฌ ์ฐ์ฑ
๋ก Main ์ ํ์ํ ์ ๋ณด๋ง ๋ฆฌํด๋๋๋ก ํ์ฌ ํจ์จ์ฑ ์ฆ๋
- ์ข์์ / ์คํฌ๋ฉ / ๋๊ธ ์กฐํ ์ง์
- ์ข์์ ๋ฐ ์คํฌ๋ฉ ๋ฒํผ ํด๋ฆญ ์ Toggle ํํ๋ก FE ์์ ๊ฐํธํ๊ฒ ์ํ ๋ณ๊ฒฝ ๊ฒฐ๊ณผ๋ฅผ ์ ์ ์๊ฒ ํจ
#### Detail Page
- FE ์์ ์นด์นด์ค๋งต API๋ฅผ ์ฌ์ฉํ๊ธฐ ์ํด ํ์ํ ์ ๋ณด ์ ์ฅ (์ฅ์๋ช
, ์ฅ์ ID, ์๋, ๊ฒฝ๋ ์ ์ฅ)
- ์ข์์ / ์คํฌ๋ฉ
- ์ข์์ ๋ฐ ์คํฌ๋ฉ ๋ฒํผ ํด๋ฆญ ์ Toggle ํํ๋ก FE ์์ ๊ฐํธํ๊ฒ ์ํ ๋ณ๊ฒฝ ๊ฒฐ๊ณผ๋ฅผ ์ ์ ์๊ฒ ํจ
- ๋๊ธ ์กฐํ / ๋ฑ๋ก / ์ญ์ ์ง์
- ๋๊ธ ์์ฑ ์ ์ฌ์ฉ์ ์ ๋ณด๋ฅผ FE ์ ๋ฆฌํดํ์ฌ ์์ฑ์ ์ ๋ณด๋ฅผ ์ ์ ์๊ฒ ํจ.
#### Collection(Scraped posts) Page
- ์ฌ์ฉ์๊ฐ ์คํฌ๋ฉํ ๊ฒ์๊ธ์ ํ ํ์ด์ง์์ ์กฐํํ ์ ์๋๋ก ํ์ฌ ์ฌ์ฉ์ ํธ์์ฑ ์ฆ๋
- ์คํฌ๋ฉํ ๊ฒ์๊ธ์ ์ง๋ ์ ๋ณด(์ฅ์ ์ขํ)๋ฅผ ๋ชจ๋ ๋ฆฌํดํ์ฌ ํ๋์ ์ง๋ ์์ ๋ชจ๋ ์ฅ์ ์ขํ๊ฐ ํ๊ธฐ๋ ์ ์๋๋ก ์ง์. ์ฌ์ฉ์ ํธ์์ฑ ์ฆ๋.
### ๐ Carts
๋ชจ๋ API๊ฐ ์ํ๋๊ธฐ ์ ์ ๋ก๊ทธ์ธํ ์ฌ์ฉ์์ JWT ๋ฅผ ๊ฒ์ฆํ์ฌ ์ฌ์ฉ์ ์ธ์ฆ ํ ์ธ๊ฐ.
#### ์ฅ๋ฐ๊ตฌ๋ ์ถ๊ฐ/์๋ ๋ณ๊ฒฝ
- UPSERT ๊ตฌ๋ฌธ์ ์ฌ์ฉํ์ฌ ํ๋์ API ๋ฐ ํ๋์ ์ฟผ๋ฆฌ ๋ด์์ INSERT์ UPDATE๊ฐ ๋์์ ์ด๋ฃจ์ด์ง๋๋ก ๊ตฌํ
#### ์ฅ๋ฐ๊ตฌ๋ ์กฐํ / ์ญ์
- INNER JOIN ์ฟผ๋ฆฌ๋ฅผ ์กฐํฉํ์ฌ JWT ๋จ ํ๋๋ง์ผ๋ก ์ฌ์ฉ์ ์ฅ๋ฐ๊ตฌ๋์ ๋ชจ๋ ์ ๋ณด๋ฅผ ์กฐํํ ์ ์๋๋ก ๊ตฌํ (์ ๋ณด ๋
ธ์ถ ์ต์ํ ๋ฐ ๋ณด์ ๊ฐํ)
- Bulk Delete ๋ฅผ ์ด์ฉํ์ฌ ์ฌ๋ฌ ๊ฐ์ ์ฅ๋ฐ๊ตฌ๋ ์ญ์ ๋ฅผ ํ๋์ Query ๋ก ์ํ
๐ค ์์ฌ์ ๋ ์ & ๊ฐ์ ๋ฐฉ๋ฒ
๋๋ณด๊ธฐ
### JWT ๋ง์ผ๋ก๋ ๋ณด์์ ์ทจ์ฝํ๋ค
- ๐ก ์ถ๊ฐ์ ์ธ ๋ณด์ ๊ธฐ๋ฅ์ ๋์
ํ๋ค.
- Kakao SDK for JavaScript ๋ฅผ ์ด์ฉํ ์นด์นด์คํก ์์
๋ก๊ทธ์ธ ๋ฐ ํ์๊ฐ์
์ ๋์
ํ์ฌ ๋ณด์์ฑ๊ณผ ์ฌ์ฉ์ ํธ์์ฑ ๋ชจ๋ ํฅ์
### ํ ๋ฉค๋ฒ๋ค์ด ์์ ํ ๋์ผํ DB๋ฅผ ์ฌ์ฉํ ์ ์์ด์ ํ
์คํธ ํ๊ฒฝ์ ์ฐจ์ด๊ฐ ๋๋ค
- ๐ก AWS RDS ๋ฅผ ์ด์ฉํด ๋ชจ๋ ํ์์ด ํ๋์ DB๋ฅผ ์ฌ์ฉ
- ๐ก AWS S3 ๋ฅผ ์ด์ฉํด ์ด๋ฏธ์ง ํ์ผ ์
๋ก๋ ์ ํ๋์ DB๋ฅผ ๊ณต์
### ๋นํจ์จ์ ์ธ FE-BE ์ฐ๊ฒฐ ํ
์คํธ
- ํ ๋ฒ์ ์๋ฒ 1๊ฐ๋ง ์ผค ์ ์์๋ค
- ๐ก ํฌํธ ๋ฒํธ๋ฅผ ๋ฐ๊ฟ์ ์๋ฒ๋ฅผ ์ผ ๋ค.
- ๊ด๋ฆฌ์(๋ฉํ ) ๊ฐ PR์ ํผ๋๋ฐฑ์ ์ฃผ๊ณ Main ๋ธ๋์น์ merge ํ ๋๊น์ง ๊ธฐ๋ค๋ ค์ผ ํ๋ค.
- ๊ธฐ๋ฅ์ด ๊ฐ ๋ธ๋์น์ ๋๋์ด ๊ตฌํ๋์ด ์์ผ๋ฏ๋ก ์๋ก ๋ค๋ฅธ ๊ธฐ๋ฅ์ ํ
์คํธํ๊ธฐ ์ํด์๋ ๋ธ๋์น๋ฅผ ๊ณ์ ์ ํํด์ผ ํ๋ค.
- ๐ก ํ
์คํธ ๋ธ๋์น๋ฅผ ํ ๊ฐ ์์ฑํ์ฌ ๋ชจ๋ ์ฝ๋๋ฅผ ํตํฉํ์ฌ ์ฌ์ฉํ๋ค.
- ํฌํธ ๋ฒํธ๋ฅผ ๋ฐ๊ฟ์ ํ
์คํธ ๋ธ๋์น ์๋ฒ๋ฅผ ์คํํ ๊ฒฝ์ฐ, ๊ฐ๋ฐ ์๋ฒ์์ ๋๋ฒ๊ฑฐ ์คํ ์ ํ
์คํธ ๋ธ๋์น ํ๋ก์ธ์ค์ ๋ถ๋๋ค.
- ํ
์คํธ ๋ธ๋์น๋ฅผ ์ ํํ๋ ์์
์ด ๋ฒ๊ฑฐ๋กญ๊ณ , ์ฝ๋๋ฅผ ํตํฉํ๋ ๋ฐ์๋ ๋ฆฌ์์ค๊ฐ ๋ ๋ค.
- ๐ก AWS EC2 ์ธ์คํด์ค ์์ฑ ํ git ์ ์ด์ฉํด GitHub ๋ฆฌํฌ์งํ ๋ฆฌ๋ก๋ถํฐ ์์ค์ฝ๋๋ฅผ pull ๋ฐ์์์ ํ
์คํธํ๋ค.
- FE ์ BE ๋ชจ๋ ์ธ์ ๋ ์ง ์ค์๊ฐ์ผ๋ก ํ
์คํธ ๊ฐ๋ฅ. ํ
์คํธ ๋ธ๋์น ์ฌ์ฉ ์ด์ ํด๊ฒฐ
### Dao Layer ์์ ํธ๋์ญ์
(Query Runner) ์ด ๊ฐํ์ ์ผ๋ก ๋น์ ์์ ์ผ๋ก ๋์ํ๋ค.
- FE ์ฐ๊ฒฐํ
์คํธ ๋ฐ๋ณต ์ ๊ฐํ์ ์ผ๋ก ์๋ฌ ๋ฐ์
- โ ๏ธ ์์ธ์ ์ ์ ์๊ณ ๋ฌธ์ ๊ฐ ํด๊ฒฐ๋์ง ์์. ์ถํ ํธ๋ฌ๋ธ์ํ
ํ์ ๐
### Multer ํ
์คํธ ์ Postman ์์ Malform Header ์ด์ ๋ฐ์
- ๐ก Postman ์์ฒด ๋ฒ๊ทธ์ด๋ฏ๋ก Insomenia ๋ฅผ ์ด์ฉํ์ฌ ํด๊ฒฐ
### AWS EC2 ์๋ฒ์ VScode SSH Remote ์๋ํ ๊ฒฝ์ฐ ์๋ฒ ์๋ต์ด ํ์ ํ ๋๋ ค์ง๋ ์ด์
- โ ๏ธ ์์ธ์ ์ ์ ์์. ์ถํ ํธ๋ฌ๋ธ์ํ
ํ์
### API ๊ด๋ฆฌ
- ์์ฑํ API ๊ฐ 20๊ฐ๊ฐ ๋์ผ๋ ๋๋ ๋ด๊ฐ ๋ฌด์์ ๊ฐ๋ฐํ๋์ง ๋ชจ๋ฅธ๋ค ๐
- ๐ก ๋ฌธ์ํ ํด์ ์ ๊ทน ํ์ฉํ๋ค
- Postman Team Workspace ๋ฅผ ์์ฑ ํ ๋ชจ๋ ํ์ ์ด๋
- Postman ์์ ๋ชจ๋ API ์ ๋ณด๋ฅผ ์ค์๊ฐ์ผ๋ก ํ์ธํ ์ ์๋๋ก ํจ
- ๐ก Postman ์ด์ธ์ ๋ค๋ฅธ API Documentation ํด์ ์๋ํด ๋ณผ ์ ์๋ค.
- ex) Swagger
### ๊ฐ๋ฐ ์์ฑ๋
- ๊ฐ๋ฐ ํ ํ
์คํธํด๋ณด๋ ๋ฒ๊ทธ๊ฐ ๋๋ฌด ๋ง๋ค ๐
- ๐ก ๊ฐ๋ฐ ๋จ๊ณ์์ Jest ๋ฑ์ ์ด์ฉํ์ฌ ์ฝ๋๋ฅผ ํ
์คํธํ๋ค.
- ๐ก FE ์์ BE ์ ์ด์ ์ ๋ฌ ์ Error status code ์ Error message ๋ฅผ ๋ช
ํํ๊ฒ ์ ๋ฌํ์ฌ ๋น ๋ฅธ ์ด์ ํ์
์ ๋๋๋ค.