- ๊ธฐํ๋ฐฐ๊ฒฝ
- ํ๋ก์ ํธ ๊ธฐ๊ฐ
- ํ์ ์๊ฐ
- ๊ธฐ๋ฅ ์๊ฐ
- ๋ชจ๋ธ ์ค๊ณ์
- API ์ค๊ณ์
- ERD
- ์์คํ ์ํคํ ์ฒ
- ๋ฐ์ดํฐ ๋ช ์ธ์
- ๊ธฐ์ ์คํ
- ๊ฒฐ๊ณผ๋ฌผ
- ์ธ๋๋ถ๋ฌธ ์ฌํ ์์ ์ฆ๊ฐ
- ์ฌํ์ง ์ ์ ์ ์ด๋ ค์์ ๊ฒช๋ ์ฌ์ฉ์๋ค์ ์ํ ์ถ์ฒ
- ์ฌํ ๊ณํ ์๋ฆฝ์ ์ด๋ ค์์ ๊ฒช๋ ์ธ์์ด ๋ง์
- ํ์ธ์ ์ฌํ ์ค์ผ์ค์ ๊ณต์ ๋ฐ๊ณ ์์ ์ ์ฌํ ๊ธฐ๋ก์ ๊ด๋ฆฌ
- ์ฌํ ๊ธฐ๊ฐ, ์ธ์, ์ทจํฅ๋ณ ์ฌํ์ง ์ถ์ฒ๊ณผ ์ฌํ์ฝ์ค๋ฑ์ ํ๋ฒ์ ๋๋ฆด All-In-One ์๋น์ค๋ฅผ ์ํ๋ ์ธ์์ด ๋ง์
24๋ 2์ 19์ผ ~ 24๋ 3์ 22์ผ
| ์ด๋ฆ | ์ญํ |
|---|---|
| ๊ตฌ์ฃผ์(ํ์ฅ) | ๋ฐ์ดํฐ ์์ง๋์ด(ํด๋ผ์ฐ๋ ๊ธฐ๋ฐ ์๋ฒ ๊ตฌ์ถ, ๋ฐฑ์๋ ๊ธฐ๋ฅ ๊ตฌํ, ๋ฐ์ดํฐ ์์ง) |
| ์ด์ฌํฌ | ๋ฐ์ดํฐ ์์ง๋์ด (ํด๋ผ์ฐ๋ ๊ธฐ๋ฐ ์๋ฒ ๊ตฌ์ถ, ๋ฐฑ์๋ ๊ธฐ๋ฅ ๊ตฌํ) |
| ์ต์์ค | ๋ฐ์ดํฐ ์ฌ์ด์ธํฐ์คํธ(๋ฐ์ดํฐ ์์ง, ์ฑ๋ด ๋ชจ๋ธ ๊ฐ๋ฐ, ์ด๋ฏธ์ง ์ถ์ฒ์์คํ , ๊ด๊ด์ง ์ถ์ฒ์์คํ ) |
| ๊นํํ | ๋ฐ์ดํฐ ์ฌ์ด์ธํฐ์คํธ(์ด๋ฏธ์ง ์ถ์ฒ์์คํ ๊ฐ๋ฐ) |
| ์ด์ ์ | ๋ฐ์ดํฐ ์ฌ์ด์ธํฐ์คํธ(์ฑ๋ด ๋ชจ๋ธ ๊ฐ๋ฐ) |
| ๊น๊ฒจ๋ | ๋ฐฑ์๋ & ํ๋ก ํธ์๋(์น ์ค๊ณ ๋ฐ ๊ธฐ๋ฅ ๊ตฌํ) |
| ๊ธฐ๋ฅ | ์์ธ ์ค๋ช |
|---|---|
| ํ์ ๊ด๋ฆฌ | ๋ก๊ทธ์ธ / ๋ก๊ทธ์์ |
| ๋ฉ์ธํ์ด์ง | ์๋น์ค ์๊ฐ ๋ฐ ํ์ ์๊ฐ |
| ์ฌํ์ง ์กฐํ ๋ฐ ์์ธ ํ์ด์ง | ์ฌํ์ง ์ฃผ์, ์๊ฐ ๋ฑ ๊ธฐ๋ณธ์ ๋ณด ์กฐํ. ํด๋น ์ฌํ์ง ์นด์นด์ค๋งต ๋ง์ปค ๋ฐ ์ง๋ ํ์. ํด๋น ์ฌํ์ง์ ๋น์ทํ ์ฌํ์ง ์ถ์ฒ |
| ์ฌํ์ง ๊ธธ์ฐพ๊ธฐ ํ์ด์ง | ์ฌํ์ง ์ถ๋ฐ์ง, ๋์ฐฉ์ง ํค์๋์ ์ฌ๋ฌ๊ฐ์ง ๊ตํต ์ต์ ์ผ๋ก ์ต์ ์ ๊ธธ์ฐพ๊ธฐ๋ฅผ ์ ๊ณต |
| ๋ง์ดํ์ด์ง | ์ฌ์ฉ์ ๊ธฐ๋ณธ์ ๋ณด ๋ฐ ์์ |
| ์ฌํ์ง ์ถ์ฒ | ์ธ๊ธฐ ์ฌํ์ง ์ถ์ฒ |
| ์ฑ๋ด | ex) ์กํฐ๋นํฐ ์ฌํ์ง ์ถ์ฒ, ๋ฐ๋ ค๋๋ฌผ๊ณผ ๊ฐ ์ ์๋ ์์ ์ถ์ฒ, ํ๋ผ์ง ์์์ ์ถ์ฒ ๋ฑ |
์๋น์ค ์ด์ ์ ์ด๋ผ Cold start issue๊ฐ ์๋ ์ํฉ. ์ ์ ์ ๋ณด๋ ์ ํ ์ ๋ณด๊ฐ ์์ด์ Collaborative Filtering์ ์ ์ฉํ๊ธฐ ํ๋ค๋ค. Content-Based Filtering์ ์ฑํ.
Ai Hub์์ ์ฌํ ๋ฐฉ๋ฌธ์ง, ๊ฒฝ๋ก ๋ฐ์ดํฐ๋ฅผ ๋ฐ๊ฒฌํ์ฌ Collaborative Filtering์ด๋ Hybrid ๊ธฐ๋ฒ ์ ์ฉ์ ๊ณ ๋ คํ๋ค. ๋ค๋ง ํ์ ํ ๋ฐ์ดํฐ ์ถ์ฒ์ธ ์ ์ฃผ๊ด๊ด๊ณต์ฌ ํํ์ด์ง์ธ visitjeju์ ๋ฐ์ดํฐ์ idx๊ฐ ๋ฌ๋ผ์ ํ ์ด๋ธ join ์ ์ฒ๋ฆฌ์ ์ด๋ ค์์ด ์์์. ์ฌ๋ฌ ๋ฐ์ดํฐ ์ถ์ฒ๋ฅผ ์ ํํ๊ธฐ๋ณด๋จ visitjeju ํํ์ด์ง์์ ํฌ๋กค๋งํด์ฌ ์ ์๋ ๋ฐ์ดํฐ๋ฅผ ์ต๋ํ ํ์ฉํ๊ธฐ๋ก ํ๋ค.
์ข์์, ๋ณ์ , ๋ฆฌ๋ทฐ ๋ฐ์ดํฐ์ ํด๋น ์ ์ ์ ๋ฉํ ๋ฐ์ดํฐ๊ฐ ์๋ ์ํฉ์์ ๊ด๊ด์ง ๊ฐ ์ ์ฌ๋๋ฅผ ์ป์ ์ ์๋ ๋ฐฉ๋ฒ์ ๊ณ ๋ฏผํ๋ค. -> Contents์ ๋ํ ํน์ง์ ๋ด๊ณ ์๋ ๋ฐ์ดํฐ๋ฅผ ๋ฐฑํฐํํ์ฌ ๋ฐฑํฐ ๊ฐ ์ฝ์ฌ์ธ ๊ฐ์ ๊ณ์ฐํ๋ฉด ์ฐ๋ฆฌ ์ถ์ฒ์์คํ ์ ๊ถ๊ทน์ ์ธ ํ๊ฒ ํผ์ณ์ธ ๊ด๊ด์ง ๊ฐ ์ ์ฌ์ฑ์ ๋์ถํ ์ ์๋ค๊ณ ์๊ฐํ๋ค.
insight ๋๋ฐฑ๊ณผ ์๊ตญ, ๋๋ฐฑ๊ณผ ์จ์ฒ ์ค ์ ์๊ฐ ๋ ์ ์ฌํ๋ค. ์ด๊ฒ์ ์๋ ๋ฐฉ๋ฒ์ ๋๋ฐฑ๊ณผ ์๊ตญ ํ๊ทธ๋ฅผ ๋์์ ๊ฐ์ง๊ณ ์๋ ๊ด๊ด์ง๊ฐ ํ์๋ณด๋ค ๋ง๋ค๋ ์ ๋ง์ผ๋ก ํ๊ทธ ๊ฐ ์ ์ฌ์ฑ์ ์์ฌํ ์ ์๋ค.. ํ๊ทธ๋ค์ด ํน์ ๊ด๊ด์ง๋ผ๋ ํ๋์ ์ค๋ธ์ ํธ๋ก ๋ฌถ์์ผ๋ก์ ๋ผ๋ฒจ์ด ์๊ธฐ๋ ๋๋. -> ํ๊ทธ ํด๋ฌ์คํฐ๋ง, ํ๊ทธ ์ ์ฌ๋ ๊ธฐ๋ฐ ์ถ์ฒ์์คํ -> ์ ์ฃผ๊ด๊ด๊ณต์ฌ ํํ์ด์ง visitjeju์์ ์ ๊ณตํ๋ ๊ด๊ด์ง๋ณ ํ๊ทธ ๋ฐ์ดํฐ ํฌ๋กค๋ง
์ ์ฌ๋ ํ๋ ฌ์ ์ฌ์ฉํ๋ฉด ์ ์ ๊ฐ ํ ๊ด๊ด์ง๋ฅผ ๊ณจ๋์ ๋ ๊ทธ์ ๋น์ทํ ๊ด๊ด์ง๋ฅผ ์ถ์ฒํด์ค ์ ์๋ค.
์ต์ข
์ ์ผ๋ก ํ๊ทธ ์ ์ฌ๋ ์ถ์ฒ์์คํ
์ ์ฑ๋ด์ ์ฌ์ฉํ ์์ธ์ค๋ช
์ ์๋ฒ ๋ฉํ ๊ฐ๊ณผ ํจ๊ป
์นํ์ด์ง ์ค ๊ด๊ด์ง ์์ธ์ ๋ณด ํ์ด์ง์์ ํด๋น ๊ด๊ด์ง์ ์ ์ฌํ 3๊ณณ์ ์ถ์ฒํด์ฃผ๋ ์๋น์ค๋ก์ ์ ์ฉ๋์๋ค.
ํ๊ทธ ์ ์ฌ๋ ๋ชจ๋ธ๋ง์์ ์ฌ์ฉํ ๋ฐ์ดํฐ๋ ์ ์ฃผ๊ด๊ด๊ณต์ฌ์์ ๋๋ฉ์ธ ์ง์์ ๋ฐ๋ผ labelingํ ์ ์ ๋ ํ๊ทธ ๋ฐ์ดํฐ์ด๋ค. ๊ด๊ด์ง์ ๋ํ ์ ์ฑ์ ์ธ ์ ๋ณด๋ค์ ๋ ์ ๋ด๊ณ ์๋ ์์ ๋ ๋์ low-level ๋ฐ์ดํฐ๋ก๋ถํฐ ์ ์ฌ๋๋ฅผ ๋์ถํ๊ณ ์ถ์๋ค. -> ๋ค์ด๋ฒ ๋ฆฌ๋ทฐ, ๋ธ๋ก๊ทธ ๋ฆฌ๋ทฐ๋ก๋ถํฐ ๋ช ์ฌ๋ฅผ ์ถ์ถํ๊ณ ์ดํ์ง์ ๋ง๋ค์ด์ ์ ์์ด๋ฅผ ์ฒ๋ฆฌํ๋ ๋ชจ๋ธ๋ง์ ๊ตฌ์ํ๋ค.
๊ทธ๋ฌ๋ ๋ฐ์ดํฐ merge ์ ๋์ ๋๋ฌธ์ ํ์ฉํ๊ธฐ ์ด๋ ค์ ๋ค. ๊ทธ๋์ ํ ์คํธ ์ ์ฌ๋ ๋ชจ๋ธ๋ง์ ๋ฐ์ดํฐ๋ก visitjeju์ ๊ด๊ด์ง๋ณ ์์ธ์ค๋ช ๊ธ์ ์ฑํํ๋ค. ํ ์คํธ ์ ์ฌ๋ ๋ชจ๋ธ๋ง์ ์ฑ๋ด ์๋น์ค๋ก ์ ์ฉํ์๋ค.
<์ค๋์ ์ง> ์ด๋ฏธ์ง ์ ์ฌ๋ ๋ชจ๋ธ
๋ธ๋๋ <์ค๋์ ์ง>์์ ์ฃผ์ด์ง ์ธํ
๋ฆฌ์ด ์ด๋ฏธ์ง์ ๋น์ทํ ๊ณต๊ฐ, ๋น์ทํ ์ํ์ ์ถ์ฒํด์ฃผ๋ ์๋น์ค์ ์๊ณ ๋ฆฌ์ฆ์ ์ฐธ๊ณ ํ๋ค. <์ค๋์ ์ง>์์๋ ๋น์ทํ ๊ณต๊ฐ์ ์ถ์ฒํด์ค ๋ ์ด๋ฏธ์ง ๋ถ๋ฅ ๋ชจ๋ธ๋ก ์๋ ค์ง VGGNet์ ์ฌ์ฉํ์ฌ classifier ์ layer์์ ์ด๋ฏธ์ง ๋ฐฑํฐ๋ฅผ ์ป์ด๋๋ค. ์ดํ ๋ฐฑํฐ๋ค ๊ฐ ์ฝ์ฌ์ธ ์ ์ฌ๋๋ฅผ ๊ณ์ฐํ์๋ค. ์ด ๋ชจ๋ธ๋ง์ด ์ ์ฑ์ ์ผ๋ก ๋น์ทํ ์ธํ
๋ฆฌ์ด ์คํ์ผ์ ์ด๋ฏธ์ง๋ฅผ ์ถ์ฒํด์ฃผ๊ธฐ ์ํด ์ค๊ณ๋์๋ค๋ ์ ์์ ์ฐ๋ฆฌ๊ฐ ํ์ฉํ๊ธฐ ์ ํฉํ๋ค๊ณ ๋ณด์๋ค.
๋ค๋ง, ์ด๋ฏธ์ง ์ ์ฌ๋์ ์ ์ง๋ํ์ต์ ์จ์ผ ๋๋์ง?, ๋ถ๋ฅ๋ชจ๋ธ์ ๋ชจ๋ธ๋ง์ ํฌํจํ๋ฉด ์ ์ฌ๋ ์ถ์ถ์ ๊ธ์ ์ ์ธ ์ํฅ์ ์ฃผ๋์ง?๋ ์๋ฌธ์ด ๋์๋ค. -> ํด๋น ๋ ํผ๋ฐ์ค์์๋ ๋ชจ๋, ํ์ฅ, ๋ค์ถ๋ด ๋ฑ ์ธํ
๋ฆฌ์ด ์นดํ
๊ณ ๋ฆฌ๋ฅผ ์ด๋ฏธ์ง ์ถ์ฒ์ ํ์ฉํ๋ ค ํ์ง๋ง ์ฐ๋ฆฌ์ ๋ชจ๋ธ๋ง์์๋ ํ์์๋ ๊ณผ์ ์ด๋ผ ์๊ฐํ๊ณ VGGNet์ ๊ฐ๋ณ ์ด๋ฏธ์ง์ feature extractionํ๋ ๊ณผ์ ์ผ๋ก๋ง ํ์ฉํ๋ค.
๋ฐ์ดํฐ์
์ visitjeju์ ๊ด๊ด์ง๋ณ ๋ํ์ด๋ฏธ์ง ํ ์ฅ์ฉ์ ํฌ๋กค๋งํด์ ํ์ฉํ๋ค. ์ด 1473๊ฐ์ ๊ด๊ด์ง๋ณ ์ด๋ฏธ์ง์ VGG16์ ์ ์ฉํด ์ด๋ฏธ์ง vector๋ฅผ ๋์ถํ๊ณ ๋ฐฑํฐ๋ฅผ ๋ฐ์ดํฐํ๋ ์์ ์๋ก์ด ์ปฌ๋ผ์ผ๋ก ๋ง๋ค์๋ค. ์ด ๋ฐ์ดํฐํ๋ ์์ db์ ์ ์ฅํด๋๋๋ค. ์๋น์ค ์์๋ ์ ์ ๊ฐ ๊ด๊ด์ง ์ด๋ฏธ์ง 10-20๊ฐ ์ค์์ ์๊ธฐ ์ทจํฅ์ธ ๊ด๊ด์ง ์ด๋ฏธ์ง 4๊ฐ๋ฅผ ๊ณ ๋ฅธ๋ค. ์ด 4๊ฐ์ ๋ชฉ๋ก์ ๋ฐ์์ ์ ํํ ๊ด๊ด์ง์ ๋ฐฑํฐ์ 1473๊ฐ์ ๊ด๊ด์ง์ ๋ฐฑํฐ ๊ฐ ์ ์ฌ๋๋ฅผ ๊ณ์ฐํ ๋ค sortingํ์ฌ ์ ์ฌํ ๊ด๊ด์ง๋ฅผ ๋์ถํ๋ ๋ฐฉ์์ ๋ง๋ค์๋ค.

์ด๋ฏธ์ง ๋ฐฑํฐ๋ฅผ ๊ณ์ฐํ๋ ํจ์๋ฅผ ์ ์ํ๊ณ ๋ชจ๋ image_names์ ๋ํ ๋ฐฑํฐ ๊ณ์ฐ์ ์ํํ๊ฒ ํ์๋ค. ๊ณ์ฐ ์๊ฐ์ 40๋ถ~1์๊ฐ์ด ๊ฑธ๋ ธ๋๋ฐ ๊ฐ๋ฐํ๊ฒฝ์ ์ฝ๋ฉ ํ๋ก๋ก ๋ฐ๊พธ์ด๋ ๊ณ์ฐ ์๊ฐ์ด ๊ฐ์ ๋์ง๋ ์์๋ค. ๋ชจ๋ธ ํ์ต์ด ์๋๋ผ ๊ฒฐ๊ตญ ์ถ๋ก ์ํฉ์ด์ด์ GPU ๋ฆฌ์์ค์ ์ํฅ๋ ฅ์ด ์ ์ฉ๋์ง๋ ์๋ ๊ฒ ๊ฐ์๋ค.
๊ณ์ฐํ ๋ฐฑํฐ๋ฅผ ํฌํจํ ๋ฐ์ดํฐํ๋ ์์ ๋ง๋ค๊ณ ์ด๋ฅผ db์ ์ ์ฅํด๋์ ๊ฒ์ด๋ค.
๊ณ์ฐ๋ ๋ฐฑํฐ๋ 25088์ฐจ์์ด์๋ค.
์๋น์ค ๊ฐ๋ฐ ์ฝ๋๋ฅผ ํตํด ์ด 4x1473 ๊ฐ์ ๊ณ์ฐ๋ ์ ์ฌ๋๋ฅผ ์ป์ ์ ์๋ค. ์ด๋ฅผ sortingํ ๋ค [4:9]๋ก ์ฌ๋ผ์ด์ฑํ๋ฉด ์ ์ ๊ฐ ์ ํํ ๊ด๊ด์ง 4๊ฐ์ ์ ์ฌํ ๊ด๊ด์ง 5๊ฐ๋ฅผ ๋์ถํ ์ ์๋ค.

1473๊ฐ ์ด๋ฏธ์ง์ ๋ฐฑํฐ๋ฅผ ๊ตฌํ ๋ค db์ ์ ์ฅํด๋๋ ์ ์ ํ ๋ฐฉ์์ ๊ณ ๋ฏผํ๋ค. ๊ธฐ์กด์ ๊ตฌ์ถํด๋์ ๊ด๊ณํdb์ธ mariadb์ ํ
์ด๋ธ ํ์์ผ๋ก ์ ์ฅํ ์๋ ์๊ฒ ๋ค. ๋ค๋ง ์ฉ๋์ด ๋น๊ต์ ํฌ๋ฉฐ ๋ฉ๋ชจ๋ฆฌ๋ฅผ ๋ง์ด ์ก์๋จน์ ๊ฒ์ด๊ณ ๊ทธ๋์ ์กฐํ์ ์๊ฐ์ด ๋ ๊ฑธ๋ฆฐ๋ค๋ ๋งน์ ์ด ์กด์ฌํ๋ค. ๋ฐ๋ผ์ ๋น์ ํ NoSQL ์ค ๋ชฝ๊ณ db์ ๋ฐฑํฐ๋ฅผ ์ ์ฅํ ๊ฒ์ ๊ตฌ์ํ๋ค. ํ
์ด๋ธ ํํ๊ฐ ์๋๋ผ ๋ฐฑํฐ ๊ฐ์ ๋น๊ด๊ณํ ๋ฐ์ดํฐ ๋ฒ ์ด์ค๋ฅผ ์ง์ํ๊ธฐ ๋๋ฌธ. ๋ฌผ๋ก ๊ฒฐ๊ณผ์ ์ผ๋ก ๋ชฝ๊ณ db์ ์ ์ฅ ๊ณต๊ฐ ๋ถ์กฑ์ผ๋ก ์ด๋ฏธ์ง ๋ฐฑํฐ๋ csv ํ์ผ๋ก ์ ์ฅํด์ ํ์ํ ๋ ์ฌ์ฉํ๋ค.
์ด ๊ณผ์ ์์ csvํ์ผ๋ก ์ ์ฅํ ๋ csvํ์ผ์ด ๋ฐฑํฐ๋ฅผ ๋ฆฌ์คํธ๋ก ์ ์ฅํ์ง ์๊ณ ๋ฆฌ์คํธ์ โโ๋ฅผ ์์ชฝ์ ๋ถ์ธ ๋ฌธ์์ด๋ก ์ ์ฅํ๋ ์ด์๊ฐ ์์ด ๋ฌธ์์ด์ ๋ฐฐ์ด๋ก ๋ณํํ๋ ๋ก์ง์ ์ถ๊ฐํด์ผ ํ๋ค.

์ถ์ฒ ๋ชจ๋ธ ์๋น ํ๋ก์ฐ. ์ ์ฌ๋ ํ๋ ฌ์ด ์๋๋ผ ๋ฐฑํฐ๋ฅผ db์ ์ ์ฅํด๋๊ธฐ๋ก ํ๊ธฐ ๋๋ฌธ์ ํน์ ์๋น์ค ์ฝ๋ ์คํ ์ ์ ์ฌ๋ ๊ณ์ฐ ๋ฐ sorting์ ์๊ฐ์ด ๋ง์ด ๊ฑธ๋ฆฌ๋์ง ๊ด์ฐฐํด์ผํ๋ค. ๋คํํ ์๊ฐ์ด ์ค๋ ๊ฑธ๋ฆฌ๋ ์ด์๋ ์์๋ค.
์ด๋ 4x1473๊ฐ์ ๊ณ์ฐ๋ ์ ์ฌ๋๋ฅผ sortingํ ๊ฒ์ด๋ค. row3์ ๋ํด์๋ง ์ฆ, ๊ฒฐ๊ตญ ํ ๊ด๊ด์ง์ ๋ํ ์ถ์ฒ๋ง ํ๊ฒ ๋๋ ๋ฌธ์ ๊ฐ ์์๋ค. ๋ฐ๋ผ๋, ํํฉ, ๋ฝ ์ ๊ณจ๋๋๋ฐ ๊ฒฐ๊ตญ ๋ฐ๋ผ๋์ ์ ์ฌํ ๊ฒ๋ค๋ง ์ถ์ฒํ๊ฒ ๋๋ ์ํฉ์ด์๋ค. ํธํฅ ๋ฌธ์ ๊ฐ์ ์ ์ํด ๊ฐ๊ฐ ์ถ์ฒํด์ฃผ๋ ๋ฐฉ์์ผ๋ก ๋ฐ๊ฟจ๋ค.
-์ ์ ์ ์ ํ ๋ฐ์ดํฐ๊ฐ ์์๋ค๋ฉด ํ์
ํํฐ๋ง์ด๋ ํ์ด๋ธ๋ฆฌ๋ ๊ธฐ๋ฒ์ ์ ์ฉํด๋ณผ ์ ์์์ํ
๋ฐ ์ค์ ๊ธฐ์
๋น์ฆ๋์ค ๊ณผ์ ์ด ์๋์ด์ ์ด๋ฅผ ์คํํ์ง ๋ชป ํ ๊ฒ์ด ์์ฝ๋ค. ๊ธฐํ๊ฐ ๋๋ค๋ฉด ํ์
ํํฐ๋ง์ด๋ ํ์ด๋ธ๋ฆฌ๋ ๊ธฐ๋ฒ์ ๊ตฌํํด๋ณด๊ณ ์ถ๋ค. A/B test ๊ฐ์ ์ฑ๋ฅ ํ๊ฐ๋ ํด๋ณด๊ณ ์ถ๋ค.
-ํ๊ทธ ์ ์ฌ๋, ํ
์คํธ ์ ์ฌ๋๋ฅผ ๋์์ ๊ณ ๋ คํ ์ถ์ฒ์์คํ
์ ๊ตฌ์ฑํด๋ณด๊ณ ๊ฒฐ๊ณผ๋ฅผ ํ์ธํด๋ณด๊ณ ์ถ์์ผ๋ ์ด๋ฏธ์ง ์ ์ฌ๋์ ์น์คํ๋๋ผ ๋ฌ์ฑํ์ง ๋ชปํ๋ค.
-์ต์ข
์ ์ธ ๊ด๊ด์ง ์ถ์ฒ์์ ํน์ ๊ด๊ด์ง์ ํธํฅ์ด ์๊ธฐ๋ ์ด์๋ฅผ ๊ต์ ํ์๋ค. ๋ค๋ง ์ค์ ๋์ฑ ๋ณต์กํ input ๋ฐ์ดํฐ๋ฅผ ๋ค๋ฃจ๋ ์ํฉ์์๋ ๋ ์ ๊ตํ ์ถ์ฒ ๋ก์ง ๊ตฌ์ฑ์ด ์๊ตฌ๋ ๊ฒ์ด๋ค. ์ค์ ๊ธฐ์
์์ ์ฐ๋ ์ถ์ฒ ๋ก์ง์ ์ถ๊ฐ์ ์ผ๋ก ์กฐ์ฌํด๋ณผ ๊ฒ์ด๋ค.
-๊ธฐ์
ํ๋์ด ์๋์ด์ ์ฌ์ค์ ์ถ์ฒ์์คํ
์ ์ฑ๋ฅ ํ
์คํธ๊ฐ ๋ถ์ฌ์ค์ด๋ผ๋ ์ ์ด ์์ฝ๋ค.
-AiHub์์ ์ฐพ์ ์ฌํ ๊ฒฝ๋ก ๋ฐ์ดํฐ๋ฅผ ๊ฐ์ง๊ณ ๊ด๊ด์ง ๊ฐ ์ฌํ์ฐ๊ฒฐ๋ง ๋ถ์, ๊ด๊ด์ง ํด๋ฌ์คํฐ๋ง ๋ฑ์ ๊ถ๋ฆฌํ์ผ๋ ์๋น์คํํ์ง ๋ชปํ๋ค.
-์ถ์ฒ์์คํ
๊ณผ ์ด๋ฏธ์ง ๋ถ๋ฅ์ ์์ด SOTA๋ผ ํ ์ ์๋ transformer๋ฅผ ๊ณ ๋ คํ์ง ์์๋ค. ์ ๋์ ์ธ ๋ชจ๋ธ์ ์ฐพ์์ ์ ์ฉํ๋ ๊ฒ๋ณด๋ค ์กฐ๊ธ์ ๊ตฌ์์ ๋ชจ๋ธ์ด๋ผ๋ ์ง์ ๊ตฌ์กฐ์ ์ด๋ก ์ ๊ณต๋ถํ๊ณ ํด๋น ๋งฅ๋ฝ์์ ์ฐธ์ ํ ํ๋ก์ฐ๋ฅผ ์ง๊ธฐ ์ํด ์น์ดํ๊ฒ ๊ณ ๋ฏผํด๋ณด๋ ๊ฒ์ด ์ข ๋ ๋ด์ค์๋ ๊ณผ์ ์ด๋ผ๊ณ ์๊ฐํ๊ธฐ ๋๋ฌธ์ด๋ค. ๋ํ ์ด๋ ๊ฒ ์ง์ ์ค๊ณํ๊ณ ๊ตฌํํด๋ธ ๊ฒฝํ์ ์ดํ SOTA ๋ชจ๋ธ์ ํ์ฉํ๊ณ ๊ทธ ์ด์์ ๋ซ๊ธฐ ์ํ ์ ๋ฐ์ด ๋ ๊ฒ์ด๋ค.
- ๊ธฐ๋ฅ: ํค์๋ ๊ฒ์์ ํตํ ๊ด๊ด์ง ์์น ์กฐํ ๋ฐ ์์ธํ์ด์ง ์ด๋ ๊ฐ๋ฅ
- ์์ฒญ URL:
https://dapi.kakao.com/v2/maps/sdk.js?appkey=5b475d258fb5e345e3944cb9418a3f5b&libraries=services - ์์ฒญ ๋ฐฉ์: GET
- ์์ฒญ ํ๋ผ๋ฏธํฐ:
query(๊ฒ์์ด) - ์๋ต ํ์: JSON
- ์๋ฌ ์ฝ๋: 401 (์ธ์ฆ ์คํจ), 404 (์ฐพ์ ์ ์์)
- ๊ธฐ๋ฅ:ํค์๋๋ฅผ ํตํ ๊ธธ์ฐพ๊ธฐ (์ฌ๋ฌ๊ฐ์ง ์ต์ ํฌํจ)
- ์์ฒญ URL:
- ๋ค์ด๋ฒ:
https://nid.naver.com/oauth2.0/authorize - ์นด์นด์ค:
https://kauth.kakao.com/oauth/authorize - ๊ตฌ๊ธ:
https://accounts.google.com/o/oauth2/auth
- ๋ค์ด๋ฒ:
- ์์ฒญ ๋ฐฉ์: GET
- ์์ฒญ ํ๋ผ๋ฏธํฐ:
client_id,redirect_uri,response_type,scope - ์๋ต ํ์: JSON
- ์๋ฌ ์ฝ๋: 400 (์๋ชป๋ ์์ฒญ), 401 (์ธ์ฆ ์คํจ)
- ๊ธฐ๋ฅ: ์ฑ๋ด ๊ธฐ๋ฅ
- ์์ฒญ URL:
https://api.gemini.com/v1/pubticker/:symbol - ์์ฒญ ๋ฐฉ์: GET
- ์์ฒญ ํ๋ผ๋ฏธํฐ:
symbol(๋์งํธ ์์ฐ ์ฌ๋ณผ) - ์๋ต ํ์: JSON
- ์๋ฌ ์ฝ๋: 400 (์๋ชป๋ ์์ฒญ), 403 (๊ถํ ์์), 404 (์ฐพ์ ์ ์์)
- docker(t2.2xLarge): ๊ฐ๋ฐํ๊ฒฝ์ ์ข ๋ ์ํํ๊ณ ๋น ๋ฅด๊ฒ ์์ ํ๊ธฐ์ํด ๋์ปค ํ๊ฒฝ์์ was,web, mariadb๋ฅผ ๊ตฌ์ถ
- nginx(web server): ์ญํ : ์ญ๋ฐฉํฅ ํ๋ก์ ๋ฐ ๋ก๋ ๋ฐธ๋ฐ์ ์ญํ ์ ์ํํฉ๋๋ค. ๊ธฐ๋ฅ: ํด๋ผ์ด์ธํธ๋ก๋ถํฐ์ HTTP ์์ฒญ์ ๋ฐ์ ๋ฐฑ์๋ ์น ์๋ฒ(web1, web2, web3)๋ก ์ ๋ฌํ๋ฉฐ, ๋ก๋ ๋ฐธ๋ฐ์ฑ์ ํตํด ์์ฒญ์ ๋ถ์ฐํฉ๋๋ค. ๋ํ ์ ์ ํ์ผ์ ์ ๊ณตํ๊ธฐ ์ํด ์ ์ ํ์ผ ๋ณผ๋ฅจ์ ๋ง์ดํธํ๊ณ ์์ต๋๋ค.
- web1, web2, web3 (was server): ์ญํ : Django ์ ํ๋ฆฌ์ผ์ด์ ์ ์คํํ๋ ์น ์๋ฒ ์ญํ ์ ํฉ๋๋ค. ๊ธฐ๋ฅ: Django ์ ํ๋ฆฌ์ผ์ด์ ์ ์คํํ๊ณ ํด๋ผ์ด์ธํธ๋ก๋ถํฐ์ HTTP ์์ฒญ์ ์ฒ๋ฆฌํฉ๋๋ค. ๊ฐ๊ฐ์ ์น ์๋ฒ๋ Gunicorn์ ์ฌ์ฉํ์ฌ Django ์ ํ๋ฆฌ์ผ์ด์ ์ ์คํํ๊ณ ์์ต๋๋ค. ๊ฐ ์น ์๋ฒ๋ ๋ค๋ฅธ ํฌํธ(8001, 8002, 8003)์์ ์คํ๋ฉ๋๋ค.
- rabbitmq: ์ญํ : ๋ฉ์์ง ํ ์์คํ ์ธ RabbitMQ๋ฅผ ์คํํฉ๋๋ค. ๊ธฐ๋ฅ: ๋น๋๊ธฐ ์์ ์ฒ๋ฆฌ๋ฅผ ์ํด Celery์ ํจ๊ป ์ฌ์ฉ๋ฉ๋๋ค. Celery ์์ ํ์ ๋ธ๋ก์ปค๋ก์์ ์ญํ ์ ํฉ๋๋ค.
- redis: ์ญํ : ์ธ๋ฉ๋ชจ๋ฆฌ ๋ฐ์ดํฐ ๊ตฌ์กฐ ์คํ ์ด์ธ Redis๋ฅผ ์คํํฉ๋๋ค. ๊ธฐ๋ฅ: ๋ฐ์ดํฐ ์บ์ฑ ๋ฐ ์ธ์ ๊ด๋ฆฌ ๋ฑ ๋ค์ํ ์ฉ๋๋ก ์ฌ์ฉ๋ ์ ์์ต๋๋ค.
- celery_worker: ์ญํ : Celery ์์ปค๋ก ๋น๋๊ธฐ ์์ ์ ์ฒ๋ฆฌํฉ๋๋ค. ๊ธฐ๋ฅ: Celery๋ฅผ ์ฌ์ฉํ์ฌ ๋ฐฑ๊ทธ๋ผ์ด๋์์ ๋น๋๊ธฐ ์์ ์ ์ฒ๋ฆฌํฉ๋๋ค. RabbitMQ ๋ธ๋ก์ปค์ ํต์ ํ์ฌ ์์ ์ ๋ฐ์ ์ฒ๋ฆฌํฉ๋๋ค.
- celery_beat: ์ญํ : Celery ์ค์ผ์ค๋ฌ๋ก ์ฃผ๊ธฐ์ ์ธ ์์ ์ ์คํํฉ๋๋ค. ๊ธฐ๋ฅ: Celery Beat๋ฅผ ์ฌ์ฉํ์ฌ ์ ๊ธฐ์ ์ผ๋ก ์คํ๋์ด์ผ ํ๋ ์์ ์ ์ค์ผ์ค๋งํฉ๋๋ค.
- flower: ์ญํ : Celery ๋ชจ๋ํฐ๋ง ๋๊ตฌ์ธ Flower๋ฅผ ์คํํฉ๋๋ค. ๊ธฐ๋ฅ: Celery ์์ ๋ฐ ํ์ ์ํ๋ฅผ ๋ชจ๋ํฐ๋งํ๊ณ ๊ด๋ฆฌํ ์ ์๋ ์น ์ธํฐํ์ด์ค๋ฅผ ์ ๊ณตํฉ๋๋ค.
- MongoDB: ์ญํ : ์ฑ๋ด ํ์ต์ ์ํ ๋ฐ์ดํฐ ์ ์ฅ (๋ฐฑํฐ ๋ฐ์ดํฐ๋ฒ ์ด์ค) ๊ธฐ๋ฅ: ๋ฐฑํฐ ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ๊ด๋ จ๋ ์ ๋ณด๋ฅผ ๋ณดํธํฉ๋๋ค.
- MariaDB: ์ญํ : ์น ์๋น์ค์ ์ ๊ณตํ ๋ฐ์ดํฐ ์ ์ฅ ๊ธฐ๋ฅ: ์ฌ์ฉ์ ์ ๋ณด ๋ฐ ๊ด๊ด์ง, ์์์ , ์๋ฐ์ ์ ์ ๋ณด๋ฅผ ์์ ํ๊ฒ ๋ณดํธํฉ๋๋ค.
- Colab Pro: ์ญํ : ์์ ์ ์ด๊ณ ๋น ๋ฅธ ํ์ต ํ๊ฒฝ ์ ๊ณต ๊ธฐ๋ฅ: ๊ตฌ๊ธ ์ฝ๋ฉ์ ํตํด ํ์ต์ ํจ์จ์ ์ผ๋ก ์ํํ๊ณ ์์ ์ฑ์ ํ๋ณดํฉ๋๋ค.
- Airflow: ์ญํ : ๋ฐ์ดํฐ ์์ง ์๋ํ ๊ธฐ๋ฅ: ๋ฐ์ดํฐ ์์ง์ ์ ํด์ง ์๊ฐ์ ๋ง์ถ์ด ์ ๋ฐ์ดํธํฉ๋๋ค.
- ํญ๋ชฉ: ๊ด๊ด์ง(์์์ , ์๋ฐ) ๊ธฐ๋ณธ ๋ฐ์ดํฐ
- ์นผ๋ผ: ์ด๋ฆ, ๋ณ์ , ํ๊ทธ, ์ฃผ์, ์ ํ๋ฒํธ, ์ข์์, ์ฐํ๊ธฐ, ๋ฆฌ๋ทฐ, ๋ฐฉ๋ฌธ์, ์กฐํ, SNS๊ณต์ , ์์ธ์ค๋ช , ์ด์ฉ์๋ด, ์ด๋ฏธ์งURL, ์ค๋ช ํต์ฌ ํค์๋
- ๊ฐฏ์: 1488
- ๋ฐ์ดํฐํ์
:
- ์ด๋ฆ, ๋ณ์ , ํ๊ทธ, ์ฃผ์, ์ ํ๋ฒํธ, ์ข์์, ์ฐํ๊ธฐ, ๋ฆฌ๋ทฐ, ๋ฐฉ๋ฌธ์, SNS๊ณต์ , ์์ธ์ค๋ช , ์ด์ฉ์๋ด, ์ด๋ฏธ์งURL, ์ค๋ช ํต์ฌ ํค์๋: object
- ์กฐํ: float
- ํญ๋ชฉ: ๊ด๊ด์ง ์ค๋ช ๋ฐ์ดํฐ
- ์นผ๋ผ: ID, ์ด๋ฆ, ์ฃผ์, ์๋, ๊ฒฝ๋, ์ ํ๋ฒํธ, ์ด๋ฏธ์งURL
- ๊ฐฏ์: 1480
- ๋ฐ์ดํฐํ์
:
- ID: int (์นํ์ด์ง ๊ตฌ๋ถ์)
- ์ด๋ฆ, ์ฃผ์, ์๋, ๊ฒฝ๋, ์ ํ๋ฒํธ, ์ด๋ฏธ์งURL: object
- ํญ๋ชฉ: ์ฑ๋ด ๋ฐ์ดํฐ
- ์นผ๋ผ: ์ด๋ฆ, ์ฃผ์, ์กฐํ, ์์ธ์ค๋ช , ์ด์ฉ์๋ด, ์๋ฒ ๋ฉ, ํ๊ทธ์๋ฒ ๋ฉ
- ๊ฐฏ์: 1487
- ๋ฐ์ดํฐํ์
:
- ์ด๋ฆ, ์ฃผ์, ์ด์ฉ์๋ด, ์์ธ์ค๋ช : object
- ์กฐํ: float
- ์๋ฒ ๋ฉ, ํ๊ทธ์๋ฒ ๋ฉ: array
- ํญ๋ชฉ: ์ด๋ฏธ์ง ์ถ์ฒ ๋ฐ์ดํฐ
- ์นผ๋ผ: ์ด๋ฆ, ์ด๋ฏธ์งURL, ์ด๋ฏธ์ง์๋ฒ ๋ฉ, ๊ด๊ด์ง๊ฐ ์ ์ฌ๋
- ๊ฐฏ์: 1472
- ๋ฐ์ดํฐํ์
:
- ์ด๋ฆ, ์ด๋ฏธ์งURL: object
- ์ด๋ฏธ์ง์๋ฒ ๋ฉ: array
- ๊ด๊ด์ง๊ฐ ์ ์ฌ๋: object
- ํญ๋ชฉ: ๊ด๊ด์ง๋ณ ์ถ์ฒ ๋ฐ์ดํฐ
- ์นผ๋ผ: ID, ์ด๋ฆ, ํ๊ทธ, ์กฐํ, ์๋ฒ ๋ฉ, ํ๊ทธ์๋ฒ ๋ฉ, ์ ์ฌ๊ด๊ด์ง1, ์ ์ฌ๊ด๊ด์ง2, ์ ์ฌ๊ด๊ด์ง3, ์ ์ฌ๊ด๊ด์ง1์ ์ ์ฌ๋, ์ ์ฌ๊ด๊ด์ง2์ ์ ์ฌ๋, ์ ์ฌ๊ด๊ด์ง3์ ์ ์ฌ๋
- ๊ฐฏ์: 1465
- ๋ฐ์ดํฐํ์
:
- ID: object (์นํ์ด์ง ๊ตฌ๋ถ์)
- ์กฐํ: float
- ์๋ฒ ๋ฉ(์ค๋ช ํต์ฌํค์๋์ ์๋ฒ ๋ฉ ๊ฐ), ํ๊ทธ ์๋ฒ ๋ฉ(ํ๊ทธ ์๋ฒ ๋ฉ ๊ฐ): array
- ์ด๋ฆ, ํ๊ทธ, ์ ์ฌ๊ด๊ด์ง1, ์ ์ฌ๊ด๊ด์ง2, ์ ์ฌ๊ด๊ด์ง3(๊ฐ ๊ด๊ด์ง๋ณ ์ ์ฌ ๊ด๊ด์ง), ์ ์ฌ๊ด๊ด์ง1์ ์ ์ฌ๋, ์ ์ฌ๊ด๊ด์ง2์ ์ ์ฌ๋, ์ ์ฌ๊ด๊ด์ง3์ ์ ์ฌ๋(๊ฐ ๊ด๊ด์ง๋ณ ์ ์ฌ ๊ด๊ด์ง ์ ์ฌ๋): object
| ๋ถ๋ฅ | ํญ๋ชฉ |
|---|---|
| FRONT-END | Tmap API,KAKAO API, HTML, CSS |
| BACK-END | Django, Python, Kakao API, GEMINI-Pro API, Tmap API |
| DATA | Python, MySQL(Maria DB), MongoDB |
| CI/CD | Docker, AWS S3 |
| ํ์ | Slack, Git |
(๊ฒฐ๊ณผ๋ฌผ ๋ด์ฉ)















