- ํ์ค ์๊ฐ : ์ฝ์ ์ฅ์๋ฅผ ์ ํ๋ฉด ํด๋น ์์น์ ๋ฐ๋ฅธ ์ฃผ๋ณ ์ฅ์๋ค์
์นด๋ ํํ
๋ก์ถ์ฒ
ํด์ฃผ๊ณ์ค๊ณ
ํ๊ณ๊ณต์
ํ ์ ์๋ํ๋ ์๋น์ค
- ์๋น์ค ๋ช :ย ZZAZO
- ์ฝ์ ์ฝ์ค ๋๋ ๋ฐ์ดํธ ์ฝ์ค๋ฅผ ๊ฒฐ์ ํ๊ธฐ ํ๋ ์ฌ๋๋ค
- ์ฝ์ ์ฝ์ค๋ฅผ ์์๋ณผ ์๊ฐ์ด ๋ถ์กฑํ ์ฌ๋๋ค
- ์ฝ์ ์ง์ญ์ ์กด์ฌํ๋ ์์ค์ ๋ํ ์ ๋ณด๊ฐ ๋ถ์กฑํ ์ฌ๋๋ค
2022.08.22 ~ 2022.10.05
๋ ๋๊ธฐ๋ง ํด! ์ผ์ ์ ๋ด๊ฐ ์ง์ฃ ! ์ฝ์, ์ฌํ ๋ค ์ง์กฐ!
- ๋ชจ์์ด๋ ๋ฐ์ดํธ, ์ฌํ ๋ฑ์์ ๋ง๋๊ฒ ๋๋ ์ฝ์ ์ฅ์ (์๋ฅผ ๋ค์ด ๋ํ๋ก XX๊ทน์ฅ์์ ์ฐ๊ทน ๋ณด๊ธฐ)๋ ์ ํ์์ผ๋ ์์ฌ, ์นดํ, ์ค๋ฝ ๋ฑ ๊ทธ ์ดํ์ ๋์ ๋ค๊ณผ ํ๋๋ค์ด ์ ํด์ง์ง ์์ ๊ฒฝํ์ด ์์.
- ์ธ๋ถ์ ์ธ ์ฝ์๋ค์ ์ก๋๋ฐ ์ด๋ ค์์ ๊ฒช์.
- ์ด๋ฌํ ์ผ์ ๊ณผ ๋์ ์ ๊ณํํ๋๋ฐ ์ด๋ ค์์ ๊ฒช๊ณ ํ๋ค์ดํ๋ฉฐ ์ค๊ฒ ๋๋ ์คํธ๋ ์ค๋ฅผ ๊ฒช๊ฒ ๋๋ ์ํฉ๋ค์ ๋ํ ๊ณต๊ฐ๋๋ฅผ ํตํด์ ํด๋น ๋ฌธ์ ์ ๋ํ ํด๊ฒฐ๋ฒ์ ์๊ฐํด๋ณด๊ณ ์ ํจ.
- ์ฒ์์ผ๋ก ๋ง๋๊ฒ ๋ ์ฝ์ ์ฅ์๋ฅผ ์ ํ๋ฉด, ํด๋น ์ฅ์์ ๋ฐ๋ฅธ ์ถ์ฒ ์ฅ์๋ค์ ์ ํด์ฃผ๊ณ , ์นดํ ๊ณ ๋ฆฌ ๋ณ๋ก ์ฅ์๋ค์ ๋ถ๋ฅํด์ ์ ํ ์ ์์ผ๋ฉฐ ์นด๋ ํํ๋ก ์ฃผ์ด์ง ์ฅ์๋ค์ ํตํ ์ฝ์ ์ผ์ ์ ๋ง๋ค๊ณ , ์นด์นด์คํก ๋ฑ์ ํตํด ์ง์ธ๋ค์๊ฒ ๊ณต์ ํ ์ ์๋ ์๋น์ค๋ฅผ ๊ธฐํํ๊ฒ ๋จ.
- ์ฒ์์ผ๋ก ๋ฐฉ๋ฌธํ๋ ์ฝ์ ์ฅ์์ ๋ํ ์ผ์ ์ ๊ณํํ๋ ๋ฐ ํธ์์ฑ ์ ๊ณต
- ์ฝ์ ์ผ์ ์ ๊ณํํ ์๊ฐ์ด ๋ถ์กฑํ ์ด๋ค๋ก ํ์ฌ๊ธ ์ผ์ ๊ณํ ์๊ฐ ๋จ์ถ
- ์ฝ์ ์ฅ์๋ฅผ ๊ฒฐ์ ํ๊ธฐ ์ด๋ ค์ด ์ด๋ค์๊ฒ ์ถ์ฒ ์๋น์ค ์๊ณ ๋ฆฌ์ฆ์ ํตํ ์ฝ์ ์ฅ์ ์ ๊ณต
ZZAZO ์ ์ฒด ์๋น์ค ํ๋ฉด์ย ๐์ฌ๊ธฐ๐์์ ๋ ์์ธํ ๋ณด์ค ์ ์์ต๋๋ค.
- ์ฝ์์นด๋์ ์ฅ์ ์ถ๊ฐ
- ์๋ก๊ณ ์นจ (์๋ก ์ถ์ฒ๋ฐ๊ธฐ)
- ์ฅ์ ๋ฆฌ๋ทฐ ํ์ธ
- ์ฅ์ ์์ ์ ๋ ฌ ๊ธฐ๋ฅ
- ์ฝ์์นด๋ ์ ์ฅ
- ์๋น์ค ์ค๋ช : ์ฝ์ ์ฅ์ ์ถ์ฒ ์๋น์ค
- ์ฃผ์ ๊ธฐ๋ฅ :
- ์ฝ์ ์ฅ์ ์ ํ ๊ธฐ๋ฅ
- ์ง๋์์ ์ํ๋ ์์น ์ง์ ์ ํ ๊ฐ๋ฅ
- ์ฅ์ ๊ฒ์์ ํตํ ์ ํ ๊ธฐ๋ฅ
- ์ฌ์ฉ์ ์์น ์ ํ ๊ธฐ๋ฅ
- ์ธ๋ถ ์ฅ์ ์ถ์ฒ ๋ฒ์ ์ค์
- ๋ฐ๊ฒฝ 100m ~ ๋ฐ๊ฒฝ 1km ๋ฑ ๋ฒ์ ๋ค์ํ๊ฒ ์ค์ ๊ฐ๋ฅ
- ์ธ๋ถ ์ฅ์ ์นดํ
๊ณ ๋ฆฌ ์ค์
- ์ค์ ํ ๊ฒฝ์ฐ ์ค์ ํ ์นดํ ๊ณ ๋ฆฌ์ ํด๋นํ๋ ์ฅ์๋ค๋ง ์ถ์ฒ(์์ฌ, ์นดํ, ์ฃผ๋ฅ, ๋๊ฑฐ๋ฆฌ, ์ทจ๋ฏธ, ๊ด๋, ๊ฑท๊ธฐ ๋ฑ)
- ์ค์ ํ์ง ์์ ๊ฒฝ์ฐ ์์ฒด์ ์ถ์ฒ ์๊ณ ๋ฆฌ์ฆ์ผ๋ก ํ๋จํ์ฌ ์ฌ์ฉ์๊ฐ ์ ํธํ๋ ์ฅ์ ์ถ์ฒ (์ฌ์ฉ์์ ์ ์ฌ๋๊ฐ ๋์ ๋ค๋ฅธ ์ฌ์ฉ์๋ค์ด ๋ง์ด ์ด์ฉํ ์ฅ์ ๋ฐ์ดํฐ ๊ธฐ๋ฐํ ์ถ์ฒ)
- ์ธ๋ถ ์ฅ์ ์ถ์ฒ
- ์ ํฌ ๋ฆฌ์คํธ ๋ฐ ๋ฆฌ๋ทฐ ํฌ๋กค๋ง
- ๋ฆฌ๋ทฐ์ ํ์ ๊ธฐ๋ฐ ์ฅ์ ์ถ์ฒ
- KNN (ํ์ ํํฐ๋ง) ์๊ณ ๋ฆฌ์ฆ์ ์ด์ฉํ์ฌ ์ฅ์ ์ถ์ฒ
- ์ฝ์ ์ฅ์ ์ ํ ๊ธฐ๋ฅ
๐ฑFrontend
HTML5 | CSS3 |
React | Redux |
AXIOS | Styled-Component |
- VSCode (1.70.3)
- React (17.0.2)
- NodeJS (16.16.0)
- Libraries
- axios (0.27.2)
- npm (8.15.0)
- react-beautiful-dnd (13.1.1)
- react-calendar (3.9.0)
- react-kakao-maps-sdk (1.1.3)
- react-redux (8.0.2)
- react-router-dom (6.3.0)
- redux (4.2.0)
- redux-persist (6.0.0)
- redux-thunk (2.4.1)
- styled-components (5.3.5)
๐ฑBackend
Django | MariaDB | MongoDB |
Postman |
- Django (4.1)
- djangorestframework (3.13.1)
- MariaDB (10.3.23)
- MongoDB (5.0.13)
- Django ๋ผ์ด๋ธ๋ฌ๋ฆฌ
- selenuim (4.4.3)
- PyJWT (2.4.0)
- djongo (1.3.6)
๐ฑBigData
- Python (3.9.13)
- Numpy (1.22.2)
- Pandas (1.4.4)
- Scipy (1.9.1)
- scikit-learn (1.1.2)
- Matplotlib (3.1.2)
- Seaborn (0.9.0)
๐ฑDevOps
docker | Jenkins | gunicon | Nginx | EC2 |
- ubuntu (20.04 LTS)
- docker (20.10.18)
- jenkins 2.361.1
- Nginx 1.18.0
- certbot 0.40.0
โจKakao API๐
์ง๋ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋? Kakao ์ง๋ Javascript API ๋ ์ง๋์ ํจ๊ป ์ฌ์ฉํ ์ ์๋ ๋ผ์ด๋ธ๋ฌ๋ฆฌ ๋ฅผ ์ง์ํ๊ณ ์์ต๋๋ค. ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ javascript API์ ๊ด๋ จ๋์ด ์์ง๋ง ์กฐ๊ธ ํนํ๋ ๊ธฐ๋ฅ์ ๋ฌถ์ด๋ ๊ฒ์ ๋งํฉ๋๋ค. ์ด ๊ธฐ๋ฅ์ ์ถ๊ฐ๋ก ๋ถ๋ฌ์์ ์ฌ์ฉํ ์ ์๋๋ก ๋์ด์์ต๋๋ค. ํ์ฌ ์ฌ์ฉํ ์ ์๋ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ ๋ค์๊ณผ ๊ฐ์ต๋๋ค.
clusterer: ๋ง์ปค๋ฅผ ํด๋ฌ์คํฐ๋ง ํ ์ ์๋ ํด๋ฌ์คํฐ๋ฌ ๋ผ์ด๋ธ๋ฌ๋ฆฌ ์ ๋๋ค.
services: ์ฅ์ ๊ฒ์ ๊ณผ ์ฃผ์-์ขํ ๋ณํ ์ ํ ์ ์๋ services ๋ผ์ด๋ธ๋ฌ๋ฆฌ ์ ๋๋ค.
drawing: ์ง๋ ์์ ๋ง์ปค์ ๊ทธ๋ํฝ์ค ๊ฐ์ฒด๋ฅผ ์ฝ๊ฒ ๊ทธ๋ฆด ์ ์๊ฒ ๊ทธ๋ฆฌ๊ธฐ ๋ชจ๋๋ฅผ ์ง์ํ๋ drawing ๋ผ์ด๋ธ๋ฌ๋ฆฌ ์ ๋๋ค.
services
๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ํตํ์ฌ ์ง๋ ๊ฒ์ ๊ธฐ๋ฅ์ ๋ํ ์ ๋ฐ์ ์ธ ๊ธฐ๋ฅ๋ค์ ๊ตฌํํ์์ผ๋ฉฐ, drawing
๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ํตํด์ ๋ง์ปค๊ฐ์ ๋์ ์ ๊ตฌํํ๋๋ฐ ์ฌ์ฉํ์์ต๋๋ค.
๋ฉ์์ง API๋ ์ฌ์ฉ์๊ฐ ์์ ๋๋ ์น๊ตฌ์๊ฒ ์นด์นด์คํก ๋ฉ์์ง๋ฅผ ๋ณด๋ด๋ ๊ธฐ๋ฅ์ ์ ๊ณตํฉ๋๋ค. ์๋น์ค ์ ๋ณด๋ฅผ ๊ฐํธํ๊ฒ ๋ฉ์์ง๋ก ๊ณต์ ํ๋ ๋ฐ ์ฌ์ฉํ๋ ์นด์นด์คํก ๊ณต์ API, ์๋น์ค์์ ์ฌ์ฉ์๊ฐ ๋ฉ์์ง๋ฅผ ๋ณด๋ผ ์ ์๊ฒ ํด ์ฃผ๋ ์นด์นด์คํก ๋ฉ์์ง API์ ๋ ์ข ๋ฅ ๋ฉ์์ง API๊ฐ ์์ต๋๋ค. ๋ฉ์์ง ํ ํ๋ฆฟ์ ์ํ๋ ํํ์ ๋ฉ์์ง์ ์ฝํ ์ธ ๋ฅผ ํธ๋ฆฌํ๊ฒ ๊ตฌ์ฑํ ์ ์๋๋ก ์ง์ํฉ๋๋ค.
์นด์นด์คํก์ด ์ง์๋๋ ํ๊ฒฝ์ด๋ผ๋ฉด ๋ชจ๋ฐ์ผ, ๋ฐ์คํฌํฑ, ํ๋ธ๋ฆฟ๊น์ง ๋ค์ํ ํ๋ซํผ์์ ๋ฉ์์ง๋ฅผ ํ์ฉํ ์ ์์ต๋๋ค. ๋ฉ์์ง API๋ก ์๋น์ค ์ฝํ ์ธ ๋ฅผ ๋๋ฆฌ ํผ๋จ๋ฆฌ๊ณ , ์ฌ์ฉ์์ ์ฌ๋ฐฉ๋ฌธ์ ์ ๋ํด ๋ณด์ธ์.
๋ํ ์นด์นด์ค ๋ฉ์์ง api
๋ฅผ ํตํ์ฌ ๊ณต์ ํ๊ธฐ ๊ธฐ๋ฅ์ ๊ตฌํํ๋๋ฐ ์ฌ์ฉํ์์ต๋๋ค.
๐ก BeautifulSoup : ํ ์คํธํํ์ ๋ฐ์ดํฐ์์ ์ํ๋ html ํ๊ทธ๋ฅผ ๊ฐ์ ธ์ฌ ์ ์๋ ๋ผ์ด๋ธ๋ฌ๋ฆฌSelenuim ์ด๋ ? python์์ ์น ์ฌ์ดํธ ํฌ๋กค๋ง์ ํ๊ธฐ ์ํด ์ฌ์ฉ ๋๋ ๋ผ์ด๋ธ๋ฌ๋ฆฌ์ ๋๋ค. html์์ ๊ฐ์ ธ์จ ๋ฐ์ดํฐ๋ ํ ์คํธ ํํ์ html ์ ๋๋ค. ํ ์คํธ ํํ์ ๋ฐ์ดํฐ์์ ์ํ๋ html tag๋ฅผ ์ถ์ถ ํ ์ ์๋ ๋ฐฉ๋ฒ์ โBeautifulSoupโ ๋ฅผ ์ด์ฉํ์ฌ ์ฝ๊ฒ ๊ฐ์ ธ์ฌ ์ ์์ต๋๋ค.
ํ์ ํํฐ๋ง ์ด๋? ์ฌ์ฉ์์ ๊ตฌ๋งค ํจํด์ด๋ ํ์ ์ ๊ฐ์ง๊ณ ๋ค๋ฅธ ์ฌ๋๋ค์ ๊ตฌ๋งค ํจํด, ํ์ ์ ํตํด์ ์ถ์ฒ์ ํ๋ ๋ฐฉ๋ฒ์ ๋๋ค. ์ถ๊ฐ์ ์ธ ์ฌ์ฉ์์ ๊ฐ์ธ์ ๋ณด๋ ์์ดํ ์ ์ ๋ณด๊ฐ ์์ด๋ ์ถ์ฒํ ์ ์๋๊ฒ ํฐ ์ฅ์ ์ ๋๋ค.
Neighborhood based Collaborative Filtering์ ๋ฉ๋ชจ๋ฆฌ ๊ธฐ๋ฐ ์๊ณ ๋ฆฌ์ฆ์ผ๋ก ํ์ ํํฐ๋ง์ ์ํด ๊ฐ๋ฐ๋ ์ด๊ธฐ ์๊ณ ๋ฆฌ์ฆ์ ๋๋ค.
- ๋ฉ๋ชจ๋ฆฌ ๊ธฐ๋ฐ ์๊ณ ๋ฆฌ์ฆ(Neighborhood model ๊ธฐ์ค)์ ์ ์ ์ ์์ดํ ์ ๋ํ matrix๋ฅผ ๋ง๋ ๋ค, ์ ์ ย ๊ธฐ๋ฐย ํน์ ์์ดํ ย ๊ธฐ๋ฐ์ผ๋ก ์ ์ฌํ ๊ฐ์ฒด๋ฅผ ์ฐพ์ ๋ค ๋น๊ณต๊ฐ์ ์ถ๋ก ํ๋ย ์๊ณ ๋ฆฌ์ฆ์ ๋๋ค.
K Nearest Neighbors๋ ๊ฐ์ฅ ์ ์ฌํ K ๋ช ์ Neighbors๋ฅผ ํตํด์ ์์ธกํ๋ ๋ฐฉ๋ฒ์ ๋๋ค.
- ์ฌ์ฉ์ ๊ธฐ๋ฐ: ๋์ ๋น์ทํ ์ฑํฅ์ ์ฌ๋์ด ์ฌ๋ฐ๊ฒ ๋ณธ ์ํ ๋ฑ์ ์ถ์ฒํ๋ ๋ฐฉ์์ด๋ค.
- ์์ดํ ๊ธฐ๋ฐ: ์์ดํ ์ ๋ํ ํ๊ฐ๊ฐ ์ ์ฌํ ์์ดํ ์ ์ถ์ฒํ๋ ๋ฐฉ์์ผ๋ก ์ผ๋ฐ์ ์ผ๋ก ์ฑ๋ฅ์ด ๋ ๋ฐ์ด๋๋ค.
ํ์ ํํฐ๋ง KNN ์๊ณ ๋ฆฌ์ฆ ์ค ์์ดํ ๊ธฐ๋ฐ ์ถ์ฒ์ผ๋ก ๊ตฌํํ์์ต๋๋ค.
- ์ด๊ธฐ ์ฌ์ฉ์๋ ์ถ์ฒ์ ๋ฐ์ง ๋ชปํ๋ค.
- ๊ธฐ์กด ๋ฐ์ดํฐ๊ฐ ๋ง์์ผ ์ถ์ฒ์ ๋ฐ์ ์ ์๋ค.
- ์๊ณ ๋ฆฌ์ฆ ์คํ ์๊ฐ์ด ๊ธธ๋ค.
- ์ด๊ธฐ ์ฌ์ฉ์๋ ์ถ์ฒ์ ๋ฐ์ง ๋ชปํ๋ค.
- ์ด๊ธฐ ์ฌ์ฉ์๋ ๋ฐ์ดํฐ๊ฐ ์์ด์ ์ ์ฌํ ์ฌ์ฉ์๋ฅผ ์ฐพ์ ์ ์์ต๋๋ค.
- ๋ฐ๋ผ์ ๋ค๋ฅธ ์ถ์ฒ์ ํตํด ๋จผ์ ๋ฐ์ดํฐ๋ฅผ ์๊ณ ๋ฆฌ๋ทฐ๊ฐ 10๊ฐ ์ด์์ธ ์ฌ์ฉ์๋ง ํ์ ํํฐ๋ง์ ์ ์ฉํ์ต๋๋ค.
- ๋ค๋ฅธ ์ถ์ฒ์ ์นดํ ๊ณ ๋ฆฌ ์ผ์นํ๋ ์ฅ์, ๋ค๋ฅธ ์ฌ์ฉ์๋ค์ด ๋ง์ด ๋ฐฉ๋ฌธํ ๊ณณ, ๋ณ์ ์์ผ๋ก ์ฅ์ ์ถ์ฒ์ ํด์ฃผ์์ต๋๋ค.
- ๊ธฐ์กด ๋ฐ์ดํฐ๊ฐ ๋ง์์ผ ์ถ์ฒ์ ๋ฐ์ ์ ์๋ค.
- ๊ธฐ์กด ๋ฐ์ดํฐ๊ฐ ์์ด์ ์นด์นด์ค๋งต ๋ฆฌ๋ทฐ๋ฅผ ํฌ๋กค๋งํ์ฌ ๋ฒ ์ด์ค ๋ฐ์ดํฐ๋ฅผ ๋ง๋ค์์ต๋๋ค.
- ์๊ณ ๋ฆฌ์ฆ ์คํ ์๊ฐ์ด ๊ธธ๋ค.
- ์๊ณ ๋ฆฌ์ฆ ์คํ ์๊ฐ์ด 6๋ถ ~ 15๋ถ ์ ๋ ์์๋์์ต๋๋ค.
- ๋ฐ๋ผ์ ์ ์ ๋ค์ด ์ ์ฌ์ฉํ์ง ์๋ ์๋ฒฝ 3์์ ์๊ณ ๋ฆฌ์ฆ์ ํ ๋ฒ ๋๋ฆฌ๊ณ DB์ ์ ์ฅํด์ ์๊ณ ๋ฆฌ์ฆ ๊ฒฐ๊ณผ๋ฅผ DB์์ ๊บผ๋ด ์ธ ์ ์๋๋ก ๋ง๋ค์์ต๋๋ค.
- ์๊ณ ๋ฆฌ์ฆ์ ํตํ ์์ ๋ณ์
- ์ค์ ์ ์ ๊ฐ ์ค ๋ณ์
- ์ฝ
80%
์ ๋ ์ผ์นํ๋ ๊ฒ์ผ๋ก ๊ฒฐ๊ณผ๊ฐ ๋์์ต๋๋ค. - MSE ์ฑ๋ฅ ํ๊ฐ ์ ์๋ ์ฝ
6.1164
์ด ๋์์ต๋๋ค. - MSE ์ฑ๋ฅํ๊ฐ:
์ค์ ๊ฐ
๊ณผ์์ธก๊ฐ์ ์ฐจ์ด
๋ฅผ ์ ๊ณฑํด ํ๊ท ํ ๊ฒ
์์ธํ ์ฌํญ์ ๋ค์์ ์ฐธ๊ณ ํด์ฃผ์ธ์.
PORT | ์ด๋ฆ |
---|---|
443 | HTTPS |
80 | HTTP, nginx |
8080 | Jenkins |
8000 | Django, gunicor |
- Git
- Jira
- Notion
- Mattermost
- Webex
- Figma
- ERD cloud
์ ํฌ ํ๋ก์ ํธ๋ย Agile
๋ฐฉ์์ผ๋ก ๊ฐ๋ฐ์ ์งํํ์๊ณ , ๋งค์ฃผ ์์์ผ Jira๋ฅผ ์ฌ์ฉํด ์คํ๋ฆฐํธ ์ผ์ ๊ด๋ฆฌ๋ฅผ ํ์๊ณ ๋งค์ผ ์ค์ ๊ณผ ์คํ์ ์คํฌ๋ผ ํ์๋ฅผ ์งํํ์ฌ ์ค์ ์๋ ๋น์ผ ์งํํ ๋ถ๋ถ์ ์ด์ผ๊ธฐํ๊ณ ํ ๋ก ์ ์งํํ๊ณ ์คํ์๋ ๊ฐ ์ ๋น์ผ ์งํํ ๋ถ๋ถ์ ํ ๋ก ํ๊ณ ์๊ฒฌ์ ์๋ฅผ ํ๋ ์์ผ๋ก ์งํํ์์ต๋๋ค. Webex๋ฅผ ์ด์ฉํ์ฌ ๊ฐ Front, Back ์ธ์
์ ๋ง๋ค์ด ๊ฐ ๋ถ์ผ๋ผ๋ฆฌ ์ํตํ๋ฉด์ ๊ฐ๋ฐ์ ์งํํ์๊ณ Troble Shooting
์ด ๋ฐ์ํ์์ ๊ฒฝ์ฐ ๋ชจ์ฌ์ ํด๊ฒฐํ๋ ๋ฐฉ์์ผ๋ก ์งํํ์์ต๋๋ค.
์์ธํ ์ฌํญ์ ๋ค์์ ์ฐธ๊ณ ํด ์ฃผ์ธ์.
- Git Flow ์ ๋ต ์ฌ์ฉ
- master ๋ธ๋์น
- ๋ฐฐํฌ๋๋ ๋ธ๋์น
- develop ๋ธ๋์น
- ๊ฐ๋ฐ์ด ์ฃผ๋ก ์ด๋ฃจ์ด ์ง๋ ๋ธ๋์น
- feature ๋ธ๋์น
- develop ์์ ๋ถ๊ธฐ๋๋ ๋ธ๋์น
- feat/BE or FE/<๊ธฐ๋ฅ>
- hotfix ๋ธ๋์น
- develop์์ ๋ถ๊ธฐ๋๋ ๋ธ๋์น
- ์์ ์ด ํ์ํ ๊ฒฝ์ฐ ์ฌ์ฉ
- fix/BE or FE/<๊ธฐ๋ฅ>
ํ์ ๋ฐ ์ผ์ , ์ ๋ฌด ๊ด๋ฆฌ๋ฅผ ์ํด Jira๋ฅผ ์ด์ฉํ์์ต๋๋ค. ๋งค์ฃผ ์์์ผ ์ค์ ์คํฌ๋ผ ํ์์์ ํ ์ฃผ๋์ ์งํ๋์ด์ผ ํ 1์ฃผ ๋จ์ ๊ณํ์ ์ง๊ณ , ์งํํ ์ด์๋ค์ ์คํ๋ฆฐํธ๋ฅผ ๋ง๋ค์ด ๋ฑ๋กํ์ต๋๋ค. ์คํ ๋ฆฌ ํฌ์ธํธ 1์ ๋น 1์๊ฐ ๋จ์์ ์์ ๋์ผ๋ก์ ์ ์ ํ์๊ณ , ์คํ๋ฆฐํธ๋ ์ผ์ฃผ์ผ ๋จ์๋ก ์งํํ์์ต๋๋ค.
์ด ์ธ์, ํ์ ๋ฉ์ ์ (Mattermost)์ ์๋์ ๋ฑ๋กํ์ฌ ์์ ์ํฉ์ ์ค์๊ฐ์ผ๋ก ํ์ธํ ์ ์๋๋ก ํ์ต๋๋ค.
๋ชจ๋๊ฐ ๋ด์ผํ ๊ณต์ง, ํจ๊ป ์ ์ ํด์ผํ๋ ์ฃผ์ ๋ฐ ์ด๊ธฐ ERD, API ์ค๊ณ, ๊ณต๋ถํด์ผ ํ ๋งํฌ, ๊ฐ๋ฐ ์ค ์ฐธ๊ณ ๋งํฌ, ํธ๋ฌ๋ธ ์ํ , ๊ฐํธ ์ฐจํธ ๋ฑ์ ๋ชจ์์ ๊ด๋ฆฌํ์ต๋๋ค. ์ปจ๋ฒค์ ๊ท์น ๋ฑ๋ ๋ ธ์ ์ ๊ธฐ๋กํ์ฌ ๋ชจ๋๊ฐ ํญ์ ํ์ธํ ์ ์๋๋ก ๊ด๋ฆฌํ์ต๋๋ค.
- ํ ํ์ด์ง
- ์ํฉ : ์ ์ฌ์๊ฐ์ฒ๋ผ ์ฌ๋์ด ๋ชฐ๋ฆฌ๋ ์๊ฐ์ ๊ฐ์ ํ์ฌ ๋ถํํ ์คํธ ์คํ
- ๋ง๋ช ์ด ์ ์ํ์ ๋ ์๋ต์๊ฐ ์ฝ 9์ด
- ์ถ์ฒ ํ์ด์ง
- ์ํฉ : ์ ์ฌ์๊ฐ์ฒ๋ผ ์ฌ๋์ด ๋ชฐ๋ฆฌ๋ ์๊ฐ์ ๊ฐ์ ํ์ฌ ๋ถํํ ์คํธ ์คํ
- ๋์ ๊ด์ญ์ ์ค๊ตฌ ๋ฌธํ1๋ ๊ทผ๋ฐฉ์ ์ถ์ฒ๋ฐ์
- 690 ๋ช ์์ ์๋ฒ์ด๊ณผ
- ํ ํ์ด์ง
- ์ํฉ : ์๋ฒ ์์ , ๋ฐฐํฌ ํ, ์ฌ์ฉ์๊ฐ ๋ชฐ๋ฆฌ๋ ๊ฒ์ ๊ฐ์ ํ์ฌ ๋ถํํ ์คํธ ์คํ
- ์ด๋น 2์ฒ๋ช ์ฉ ์ถ๊ฐ
- ์ฌ์ฉ์ ๋ง๋ช ์์ ์๋ต์๊ฐ ์ฝ 9์ด
- ์ฌ์ฉ์๊ฐ 690๋ช ์ด์์ธ ๊ฒฝ์ฐ, ์ํํ ์ถ์ฒ์์คํ ์ ํ์ฑํ์ํค๊ธฐ ์ํด์
- ์คํ ์ค์ผ์ผ๋ง์ ๊ตฌ์ฑ
- ์ ์ํ ์ ์ ์๊ฐ 600๋ช ์ด์์ด ๋๋ ๊ฒฝ์ฐ,
- ์ธ์คํด์ค๋ฅผ ์ถ๊ฐ ํ์ฑํ ์ํค๋ ๋ฐฉ์ ๋ชจ์
๊น์ฑ์ (Front-end & ํ์ฅ) |
๊น์ ํ (Front-end) |
์กฐ๋ฏผ๊ท (Front-end) |
๊นํ์ฃผ (Back-end & Core) |
๋ฐ์ฑ๋ฐฐ (Back-end) |
์ด์งํ (Back-end & Infra) |
์ด๋ฆ | ์ญํ | ๊ฐ๋ฐ ๋ด์ฉ |
---|---|---|
๊น์ฑ์ | (Front-end & ํ์ฅ) | - ์์ด์ด ํ๋ ์ ๋์์ธ - Styled-Component๋ฅผ ์ด์ฉํ CSS-in-JS ๋ฐฉ์์ผ๋ก ์คํ์ผ๋ง ์์ - ๋ฐ์ํ ์น ๋์์ธ - ๋ฉ์ธ ํ์ด์ง ๋์์ธ - ์ฅ์ ์์ธ ๋ณด๊ธฐ, ๊ณต์ ์ผ์ ์ฅ์ ์์ธ ๋ณด๊ธฐ ๋ชจ๋ฌ ๊ตฌํ - ๋ฉ์ธํ์ด์ง ์ถ์ฒ ๊ธฐ๋ฅ ๊ตฌํ - ๊ณต์ ์ผ์ ๋ฆฌ์คํธ Carousel ๊ตฌํ - ๋ฆฌ๋ทฐ ์์ฑ ๋ฐ ์์ ๊ตฌํ |
๊น์ ํ | (Front-end) | - ์์ด์ดํ๋ ์ MyPage, Plan, PlanShare, NotFound - Styled-Component๋ฅผ ์ด์ฉํ CSS-in-JS ๋ฐฉ์์ผ๋ก ์คํ์ผ๋ง ์์ - ๋ฐ์ํ ์น ๋์์ธ - MyPage, UpdateProfile, UpdatePassword, DeleteProfile ํ์ด์ง ๋์์ธ ๋ฐ ๊ธฐ๋ฅ ๊ตฌํ - ProfileImageListContent ๋ชจ๋ฌ ์ปดํฌ๋ํธ ๊ตฌํ - ProfileTitle, TabItem ์ปดํฌ๋ํธ ๊ตฌํ - Plan ํ์ด์ง, Landing ์ปดํฌ๋ํธ ๋์์ธ ๋ฐ ๊ธฐ๋ฅ๊ตฌํ - Landing - GPS ๊ธฐ์ค ์ขํ์ค์ - Landing - ์ง๋ ํด๋ฆญ ์ ๋ง์ปค ์์ฑ - Landing - ํค์๋ ๊ฒ์ - Landing - ์ฃผ์-์ขํ ๋ณํ - Landing - ๊ธฐ์กด ๋ฐ๋๋ผํ์ ์๋ฐ์คํฌ๋ฆฝํธ api ์ฝ๋ ๋ฆฌ์กํธ ํ์์ผ๋ก ์ฌ์ฉ. - PlanShare ํ์ด์ง ๋์์ธ ๋ฐ ๊ธฐ๋ฅ๊ตฌํ - PlanShare - Redux๋ฅผ ํ์ฉํ ์์น ์ ๋ณด ์ํ ๊ด๋ฆฌ, ์์น ์ ๋ณด ์ ์ฅ ๊ธฐ๋ฅ ๊ตฌํ - NotFound ํ์ด์ง ๋์์ธ ๋ฐ ๊ธฐ๋ฅ๊ตฌํ |
์กฐ๋ฏผ๊ท | (Front-end) | - ์์ด์ดํ๋ ์ ๋์์ธ - ์ด๊ธฐ ์ค์ผ๋ ํค ๊ตฌ์กฐ ์ค๊ณ ๋ฐ ์์ฑ - Styled-Component๋ฅผ ์ด์ฉํ CSS-in-JS ๋ฐฉ์์ผ๋ก ์คํ์ผ๋ง ์์ฑ - ๋ฐ์ํ ์น ๋์์ธ - ํ์๊ฐ์ ํ์ด์ง ๊ฐ๋ฐ - ์์ด๋ / ๋น๋ฐ๋ฒํธ ์ฐพ๊ธฐ ํ์ด์ง ๊ฐ๋ฐ - ๋ก๊ทธ์ธ ํ์ด์ง ๊ฐ๋ฐ - ์ฝ์์นด๋ ์์ฑ ํ์ด์ง ๊ฐ๋ฐ - ๊ณต์ ์ผ์ ๋ฆฌ์คํธ ํ์ด์ง ๊ฐ๋ฐ - ๋ก๊ทธ์ธ - Redux๋ฅผ ํ์ฉํ ํ์ ์ ๋ณด ์ํ ๊ด๋ฆฌ, ์์ด๋ ์ ์ฅ ๊ธฐ๋ฅ ๊ตฌํ - ๋ก๊ทธ์ธ - Axios Interceptor๋ฅผ ํ์ฉํ API ์์ฒญ ์ ํ access token, refresh token ํ์ธ - ์ฝ์์นด๋ ์์ฑ - ๋ฐ๊ฒฝ ์ค์ SeekBar ๊ตฌํ - ์ฝ์์นด๋ ์์ฑ - ์ฅ์์นด๋ Drag&Drop ๊ธฐ๋ฅ ๊ตฌํ - ์ฝ์์นด๋ ์์ฑ - ํด์งํต ๊ธฐ๋ฅ ๊ตฌํ - ์ฝ์์นด๋ ์์ฑ - ์นด์นด์ค๋งต์ ํ์ฉํ ์ฝ์์นด๋ ๋ง์ปค ์์ฑ ๋ฐ ๋์ ํ์ - ๋ก๋ฉ์คํผ๋ ๊ตฌํ |
๊นํ์ฃผ | (Back-end & Core) | - API ๋ฌธ์ ์์ฑ - Place API ๊ตฌํ ๋ฐ ๋ณด์ - ๋ฐ๊ฒฝ ๋ด Place ์กฐํ API ๊ตฌํ - ์ง์กฐ ํํ์ด์ง API ๊ตฌํ - place recommend API ๊ตฌํ - Review API ๊ตฌํ ๋ฐ ๋ณด์ - ๋ฆฌ๋ทฐ ์์ฑ ํผ API ๊ตฌํ - ๋ฆฌ๋ทฐ ์์ฑ, ์์ , ์ญ์ API ๊ตฌํ - Plan API ๊ตฌํ ๋ฐ ๋ณด์ - ๋ชฝ๊ณ DB, MariaDB์ฐ๊ฒฐ ๋ฐ ๋ณด์ - ํ์ ํํฐ๋ง์ผ๋ก Recommend Algorithm ๊ตฌํ - ์ถ์ฒ ์๊ณ ๋ฆฌ์ฆ ๊ฒฐ๊ณผ๋ฌผ ๋ชฝ๊ณ DB์ ์ ์ฅ - ์ ์ ๊ด์ฌ ์นดํ ๊ณ ๋ฆฌ ์ค์ฌ Recommend Algorithm ๊ตฌํ - ์ฅ์ ๋ณ์ ์ค์ฌ Recommend Algorithm ๊ตฌํ - ๋ง์ด ๋ฐฉ๋ฌธํ ์ฅ์ ์ค์ฌ Recommend Algorithm ๊ตฌํ - LOCUST ๋ฅผ ํ์ฉํด ๋ถํํ ์คํธ ์คํ |
๋ฐ์ฑ๋ฐฐ | (Back-end) | - Python selenuim์ ์ด์ฉํด ์นด์นด์ค๋งต, ๊ตฌ๊ธ ํฌ๋กค๋ง 1. KAKAO (์ฅ์,์นดํ ๊ณ ๋ฆฌ,๋ณ์ ,๋ฆฌ๋ทฐ,๋ฆฌ๋ทฐ ๋ด์ฉ,์ฃผ์,์นด์นด์ค API ๋ฅผ ์ด์ฉํ์ฌ ์๋, ๊ฒฝ๋ ๊ฐ) 2. GOOGLE (MongoDB์ ์ ์ฅ๋ ์ฃผ์๋ฅผ ๋ฐํ์ผ๋ก ์ด๋ฏธ์ง ํฌ๋กค๋ง) - Place API ๊ตฌํ ๋ฐ ๋ณด์ - ์ฅ์์ ์์ฃผ ์ฌ์ฉํ๋ ์ฐ๋ น, ์ฑ๋ณ API ๊ตฌํ - Review API ๊ตฌํ ๋ฐ ๋ณด์ - ๋ณ์ ์์ API ๊ตฌํ - Plan API ๊ตฌํ ๋ฐ ๋ณด์ - ์ฅ์์ ์์ฃผ ์ฌ์ฉํ๋ ์ฐ๋ น, ์ฑ๋ณ API ๊ตฌํ - ์ฝ์ ์์ฑ, ์์ , ์ญ์ API ๊ตฌํ - MongoDB, MariaDB ์ฐ๊ฒฐ - django DB router ์ค์ - LOCUST ๋ฅผ ํ์ฉํด ๋ถํํ ์คํธ ์คํ |
์ด์งํ | (Back-end & Infra) | - DRF ๊ตฌํ - django swagger ๊ตฌํ - Accounts API ๊ตฌํ ๋ฐ ๋ณด์ - ๋ก๊ทธ์ธ/๋ก๊ทธ์์ API ๊ตฌํ - JWT Token, Refresh Token, Access Token - ํ์ ๊ฐ์ / ํ์ ํํด API ๊ตฌํ - ํ์ ์ ๋ณด ์์ API ๊ตฌํ - ์ด๋ฉ์ผ, ๋๋ค์ ์ ํจ์ฑ๊ฒ์ฌ API ๊ตฌํ - ์ด๋ฉ์ผ ์ธ์ฆ API ๊ตฌํ - ์์ด๋ / ๋น๋ฐ๋ฒํธ ์ฐพ๊ธฐ API ๊ตฌํ - ๋น๋ฐ๋ฒํธ ์ฐพ์ผ๋ฉด ๋น๋ฐ๋ฒํธ ๋์๋ก ๋ณ๊ฒฝ API ๊ตฌํ - LOCUST ๋ฅผ ํ์ฉํด ๋ถํํ ์คํธ ์คํ - Infra - ์์คํ ์ํคํ ์ณ ๊ตฌ์ฑ - Jenkins pipeline ์ค์ - Docker ์ค์ - HTTPS ์ ์ฉ - CI-CD ๊ตฌํ |