Giter Site home page Giter Site logo

zzazo's Introduction

๐Ÿ˜‹ZZAZO - ์•ฝ์† ์žฅ์†Œ ์ถ”์ฒœ ์„œ๋น„์Šค

๐Ÿ‘‡ZZAZO ์†Œ๊ฐœ๐Ÿ‘‡

ZZAZOLOGO.png

์งœ์กฐUCC

๋ชฉ์ฐจ


  1. ์„œ๋น„์Šค ์†Œ๊ฐœ
  2. ๊ธฐ์ˆ  ์Šคํƒ
  3. ํ”„๋กœ์ ํŠธ ์ง„ํ–‰

โ… . ์„œ๋น„์Šค ์†Œ๊ฐœ


โœจ์„œ๋น„์Šค ์„ค๋ช…


๊ฐœ์š”

  • ํ•œ์ค„ ์†Œ๊ฐœ : ์•ฝ์† ์žฅ์†Œ๋ฅผ ์ •ํ•˜๋ฉด ํ•ด๋‹น ์œ„์น˜์— ๋”ฐ๋ฅธ ์ฃผ๋ณ€ ์žฅ์†Œ๋“ค์„ ์นด๋“œ ํ˜•ํƒœ๋กœ ์ถ”์ฒœํ•ด์ฃผ๊ณ  ์„ค๊ณ„ํ•˜๊ณ  ๊ณต์œ ํ•  ์ˆ˜ ์žˆ๋Š” ํ”Œ๋žœ ์„œ๋น„์Šค
  • ์„œ๋น„์Šค ๋ช… :ย ZZAZO

์ด์šฉ ํƒ€๊ฒŸ

  • ์•ฝ์† ์ฝ”์Šค ๋˜๋Š” ๋ฐ์ดํŠธ ์ฝ”์Šค๋ฅผ ๊ฒฐ์ •ํ•˜๊ธฐ ํž˜๋“  ์‚ฌ๋žŒ๋“ค
  • ์•ฝ์† ์ฝ”์Šค๋ฅผ ์•Œ์•„๋ณผ ์‹œ๊ฐ„์ด ๋ถ€์กฑํ•œ ์‚ฌ๋žŒ๋“ค
  • ์•ฝ์† ์ง€์—ญ์— ์กด์žฌํ•˜๋Š” ์‹œ์„ค์— ๋Œ€ํ•œ ์ •๋ณด๊ฐ€ ๋ถ€์กฑํ•œ ์‚ฌ๋žŒ๋“ค

๐Ÿ“†๊ฐœ๋ฐœ ๊ธฐ๊ฐ„


2022.08.22 ~ 2022.10.05

โœจZZAZO์˜ ๋ชจํ† 

๋„Œ ๋†€๊ธฐ๋งŒ ํ•ด! ์ผ์ •์€ ๋‚ด๊ฐ€ ์งœ์ฃ ! ์•ฝ์†, ์—ฌํ–‰ ๋‹ค ์งœ์กฐ!

โœจ๊ธฐํš ๋ฐฐ๊ฒฝ


๋ฐฐ๊ฒฝ

  • ๋ชจ์ž„์ด๋‚˜ ๋ฐ์ดํŠธ, ์—ฌํ–‰ ๋“ฑ์—์„œ ๋งŒ๋‚˜๊ฒŒ ๋˜๋Š” ์•ฝ์† ์žฅ์†Œ (์˜ˆ๋ฅผ ๋“ค์–ด ๋Œ€ํ•™๋กœ XX๊ทน์žฅ์—์„œ ์—ฐ๊ทน ๋ณด๊ธฐ)๋Š” ์ •ํ•˜์˜€์œผ๋‚˜ ์‹์‚ฌ, ์นดํŽ˜, ์˜ค๋ฝ ๋“ฑ ๊ทธ ์ดํ›„์˜ ๋™์„ ๋“ค๊ณผ ํ™œ๋™๋“ค์ด ์ •ํ•ด์ง€์ง€ ์•Š์€ ๊ฒฝํ—˜์ด ์žˆ์Œ.
    • ์„ธ๋ถ€์ ์ธ ์•ฝ์†๋“ค์„ ์žก๋Š”๋ฐ ์–ด๋ ค์›€์„ ๊ฒช์Œ.
  • ์ด๋Ÿฌํ•œ ์ผ์ •๊ณผ ๋™์„ ์„ ๊ณ„ํšํ•˜๋Š”๋ฐ ์–ด๋ ค์›€์„ ๊ฒช๊ณ  ํž˜๋“ค์–ดํ•˜๋ฉฐ ์˜ค๊ฒŒ ๋˜๋Š” ์ŠคํŠธ๋ ˆ์Šค๋ฅผ ๊ฒช๊ฒŒ ๋˜๋Š” ์ƒํ™ฉ๋“ค์— ๋Œ€ํ•œ ๊ณต๊ฐ๋Œ€๋ฅผ ํ†ตํ•ด์„œ ํ•ด๋‹น ๋ฌธ์ œ์— ๋Œ€ํ•œ ํ•ด๊ฒฐ๋ฒ•์„ ์ƒ๊ฐํ•ด๋ณด๊ณ ์ž ํ•จ.
  • ์ฒ˜์Œ์œผ๋กœ ๋งŒ๋‚˜๊ฒŒ ๋  ์•ฝ์† ์žฅ์†Œ๋ฅผ ์ •ํ•˜๋ฉด, ํ•ด๋‹น ์žฅ์†Œ์— ๋”ฐ๋ฅธ ์ถ”์ฒœ ์žฅ์†Œ๋“ค์„ ์ •ํ•ด์ฃผ๊ณ , ์นดํ…Œ๊ณ ๋ฆฌ ๋ณ„๋กœ ์žฅ์†Œ๋“ค์„ ๋ถ„๋ฅ˜ํ•ด์„œ ์ •ํ•  ์ˆ˜ ์žˆ์œผ๋ฉฐ ์นด๋“œ ํ˜•ํƒœ๋กœ ์ฃผ์–ด์ง„ ์žฅ์†Œ๋“ค์„ ํ†ตํ•œ ์•ฝ์† ์ผ์ •์„ ๋งŒ๋“ค๊ณ , ์นด์นด์˜คํ†ก ๋“ฑ์„ ํ†ตํ•ด ์ง€์ธ๋“ค์—๊ฒŒ ๊ณต์œ ํ•  ์ˆ˜ ์žˆ๋Š” ์„œ๋น„์Šค๋ฅผ ๊ธฐํšํ•˜๊ฒŒ ๋จ.

๊ธฐ๋Œ€ ํšจ๊ณผ

  • ์ฒ˜์Œ์œผ๋กœ ๋ฐฉ๋ฌธํ•˜๋Š” ์•ฝ์† ์žฅ์†Œ์— ๋Œ€ํ•œ ์ผ์ •์„ ๊ณ„ํšํ•˜๋Š” ๋ฐ ํŽธ์˜์„ฑ ์ œ๊ณต
  • ์•ฝ์† ์ผ์ •์„ ๊ณ„ํšํ•  ์‹œ๊ฐ„์ด ๋ถ€์กฑํ•œ ์ด๋“ค๋กœ ํ•˜์—ฌ๊ธˆ ์ผ์ • ๊ณ„ํš ์‹œ๊ฐ„ ๋‹จ์ถ•
  • ์•ฝ์† ์žฅ์†Œ๋ฅผ ๊ฒฐ์ •ํ•˜๊ธฐ ์–ด๋ ค์šด ์ด๋“ค์—๊ฒŒ ์ถ”์ฒœ ์„œ๋น„์Šค ์•Œ๊ณ ๋ฆฌ์ฆ˜์„ ํ†ตํ•œ ์•ฝ์† ์žฅ์†Œ ์ œ๊ณต

โšกZZAZO ์„œ๋น„์Šค ํ™”๋ฉด


ZZAZO ์ „์ฒด ์„œ๋น„์Šค ํ™”๋ฉด์€ย ๐Ÿ‘‰์—ฌ๊ธฐ๐Ÿ‘ˆ์—์„œ ๋” ์ž์„ธํžˆ ๋ณด์‹ค ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

ํšŒ์›๊ฐ€์ž… ์‹œ ์ดˆ๊ธฐ ๊ด€์‹ฌ์‚ฌ ๋“ฑ๋ก

ํšŒ์›๊ฐ€์ž… - ๊ด€์‹ฌ์ •๋ณด ์ž…๋ ฅ

๋งŒ๋‚จ ์žฅ์†Œ ์„ ํƒ

์•ฝ์†์žฅ์†Œ์„ ํƒ - ์žฅ์†Œ๊ฒ€์ƒ‰

์•ฝ์† ์นด๋“œ ์ƒ์„ฑ

  • ์•ฝ์†์นด๋“œ์— ์žฅ์†Œ ์ถ”๊ฐ€

์•ฝ์†์นด๋“œ์ƒ์„ฑ - ์•ฝ์†์นด๋“œ ์žฅ์†Œ์ถ”๊ฐ€

  • ์ƒˆ๋กœ๊ณ ์นจ (์ƒˆ๋กœ ์ถ”์ฒœ๋ฐ›๊ธฐ)

์•ฝ์†์นด๋“œ์ƒ์„ฑ - ๋ฆฌ๋กœ๋“œ

  • ์žฅ์†Œ ๋ฆฌ๋ทฐ ํ™•์ธ

์•ฝ์†์นด๋“œ์ƒ์„ฑ - ๋ฆฌ๋ทฐ ๋ณด๊ธฐ

  • ์žฅ์†Œ ์ˆœ์„œ ์ •๋ ฌ ๊ธฐ๋Šฅ

์•ฝ์†์นด๋“œ์ƒ์„ฑ - ๋“œ๋ž˜๊ทธ์•ค๋“œ๋ž

  • ์•ฝ์†์นด๋“œ ์ €์žฅ

์•ฝ์†์นด๋“œ์ƒ์„ฑ - ์ €์žฅ

์•ฝ์† ๊ณต์œ 

์•ฝ์†์นด๋“œ์ƒ์„ฑ - ์นดํ†ก๊ณต์œ 

๋ฐ˜์‘ํ˜• ์›น ๋””์ž์ธ ๊ตฌํ˜„

๋ฐ˜์‘ํ˜•2 ๋ฐ˜์‘ํ˜•1

โœจย ์ฃผ์š” ๊ธฐ๋Šฅ


  • ์„œ๋น„์Šค ์„ค๋ช… : ์•ฝ์† ์žฅ์†Œ ์ถ”์ฒœ ์„œ๋น„์Šค
  • ์ฃผ์š” ๊ธฐ๋Šฅ :
    • ์•ฝ์† ์žฅ์†Œ ์„ ํƒ ๊ธฐ๋Šฅ
      • ์ง€๋„์—์„œ ์›ํ•˜๋Š” ์œ„์น˜ ์ง์ ‘ ์„ ํƒ ๊ฐ€๋Šฅ
      • ์žฅ์†Œ ๊ฒ€์ƒ‰์„ ํ†ตํ•œ ์„ ํƒ ๊ธฐ๋Šฅ
      • ์‚ฌ์šฉ์ž ์œ„์น˜ ์„ ํƒ ๊ธฐ๋Šฅ
    • ์„ธ๋ถ€ ์žฅ์†Œ ์ถ”์ฒœ ๋ฒ”์œ„ ์„ค์ •
      • ๋ฐ˜๊ฒฝ 100m ~ ๋ฐ˜๊ฒฝ 1km ๋“ฑ ๋ฒ”์œ„ ๋‹ค์–‘ํ•˜๊ฒŒ ์„ค์ • ๊ฐ€๋Šฅ
    • ์„ธ๋ถ€ ์žฅ์†Œ ์นดํ…Œ๊ณ ๋ฆฌ ์„ค์ •
      • ์„ค์ •ํ•  ๊ฒฝ์šฐ ์„ค์ •ํ•œ ์นดํ…Œ๊ณ ๋ฆฌ์— ํ•ด๋‹นํ•˜๋Š” ์žฅ์†Œ๋“ค๋งŒ ์ถ”์ฒœ(์‹์‚ฌ, ์นดํŽ˜, ์ฃผ๋ฅ˜, ๋†€๊ฑฐ๋ฆฌ, ์ทจ๋ฏธ, ๊ด€๋žŒ, ๊ฑท๊ธฐ ๋“ฑ)
      • ์„ค์ •ํ•˜์ง€ ์•Š์„ ๊ฒฝ์šฐ ์ž์ฒด์  ์ถ”์ฒœ ์•Œ๊ณ ๋ฆฌ์ฆ˜์œผ๋กœ ํŒ๋‹จํ•˜์—ฌ ์‚ฌ์šฉ์ž๊ฐ€ ์„ ํ˜ธํ•˜๋Š” ์žฅ์†Œ ์ถ”์ฒœ (์‚ฌ์šฉ์ž์™€ ์œ ์‚ฌ๋„๊ฐ€ ๋†’์€ ๋‹ค๋ฅธ ์‚ฌ์šฉ์ž๋“ค์ด ๋งŽ์ด ์ด์šฉํ•œ ์žฅ์†Œ ๋ฐ์ดํ„ฐ ๊ธฐ๋ฐ˜ํ•œ ์ถ”์ฒœ)
    • ์„ธ๋ถ€ ์žฅ์†Œ ์ถ”์ฒœ
      • ์ ํฌ ๋ฆฌ์ŠคํŠธ ๋ฐ ๋ฆฌ๋ทฐ ํฌ๋กค๋ง
      • ๋ฆฌ๋ทฐ์™€ ํ‰์  ๊ธฐ๋ฐ˜ ์žฅ์†Œ ์ถ”์ฒœ
      • KNN (ํ˜‘์—… ํ•„ํ„ฐ๋ง) ์•Œ๊ณ ๋ฆฌ์ฆ˜์„ ์ด์šฉํ•˜์—ฌ ์žฅ์†Œ ์ถ”์ฒœ

โ…ก. ๊ธฐ์ˆ ์Šคํƒ


๐Ÿ–ฅ๏ธย ๊ฐœ๋ฐœ ํ™˜๊ฒฝ


๐Ÿ–ฑFrontend

HTML5 CSS3
HTML5 CSS3
React.js Redux
React Redux
MUI Styled-Component
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
Django MariaDB MongoDB
Postman
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
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๋ฅผ ํ†ตํ•˜์—ฌ ๊ณต์œ ํ•˜๊ธฐ ๊ธฐ๋Šฅ์„ ๊ตฌํ˜„ํ•˜๋Š”๋ฐ ์‚ฌ์šฉํ•˜์˜€์Šต๋‹ˆ๋‹ค.

โœจ Selenuim


Selenuim ์ด๋ž€ ? python์—์„œ ์›น ์‚ฌ์ดํŠธ ํฌ๋กค๋ง์„ ํ•˜๊ธฐ ์œ„ํ•ด ์‚ฌ์šฉ ๋˜๋Š” ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ์ž…๋‹ˆ๋‹ค. html์—์„œ ๊ฐ€์ ธ์˜จ ๋ฐ์ดํ„ฐ๋Š” ํ…์ŠคํŠธ ํ˜•ํƒœ์˜ html ์ž…๋‹ˆ๋‹ค. ํ…์ŠคํŠธ ํ˜•ํƒœ์˜ ๋ฐ์ดํ„ฐ์—์„œ ์›ํ•˜๋Š” html tag๋ฅผ ์ถ”์ถœ ํ•  ์ˆ˜ ์žˆ๋Š” ๋ฐฉ๋ฒ•์€ โ€œBeautifulSoupโ€ ๋ฅผ ์ด์šฉํ•˜์—ฌ ์‰ฝ๊ฒŒ ๊ฐ€์ ธ์˜ฌ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

๐Ÿ’ก BeautifulSoup : ํ…์ŠคํŠธํ˜•ํƒœ์˜ ๋ฐ์ดํ„ฐ์—์„œ ์›ํ•˜๋Š” html ํƒœ๊ทธ๋ฅผ ๊ฐ€์ ธ์˜ฌ ์ˆ˜ ์žˆ๋Š” ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ

โœจ์ถ”์ฒœ ์•Œ๊ณ ๋ฆฌ์ฆ˜

ํ˜‘์—… ํ•„ํ„ฐ๋ง


ํ˜‘์—…ํ•„ํ„ฐ๋ง ์ด๋ž€? ์‚ฌ์šฉ์ž์˜ ๊ตฌ๋งค ํŒจํ„ด์ด๋‚˜ ํ‰์ ์„ ๊ฐ€์ง€๊ณ  ๋‹ค๋ฅธ ์‚ฌ๋žŒ๋“ค์˜ ๊ตฌ๋งค ํŒจํ„ด, ํ‰์ ์„ ํ†ตํ•ด์„œ ์ถ”์ฒœ์„ ํ•˜๋Š” ๋ฐฉ๋ฒ•์ž…๋‹ˆ๋‹ค. ์ถ”๊ฐ€์ ์ธ ์‚ฌ์šฉ์ž์˜ ๊ฐœ์ธ์ •๋ณด๋‚˜ ์•„์ดํ…œ์˜ ์ •๋ณด๊ฐ€ ์—†์ด๋„ ์ถ”์ฒœํ•  ์ˆ˜ ์žˆ๋Š”๊ฒŒ ํฐ ์žฅ์ ์ž…๋‹ˆ๋‹ค.

Neighborhood based Collaborative Filtering


Neighborhood based Collaborative Filtering์€ ๋ฉ”๋ชจ๋ฆฌ ๊ธฐ๋ฐ˜ ์•Œ๊ณ ๋ฆฌ์ฆ˜์œผ๋กœ ํ˜‘์—… ํ•„ํ„ฐ๋ง์„ ์œ„ํ•ด ๊ฐœ๋ฐœ๋œ ์ดˆ๊ธฐ ์•Œ๊ณ ๋ฆฌ์ฆ˜์ž…๋‹ˆ๋‹ค.

  • ๋ฉ”๋ชจ๋ฆฌ ๊ธฐ๋ฐ˜ ์•Œ๊ณ ๋ฆฌ์ฆ˜(Neighborhood model ๊ธฐ์ค€)์€ ์œ ์ €์™€ ์•„์ดํ…œ์— ๋Œ€ํ•œ matrix๋ฅผ ๋งŒ๋“  ๋’ค, ์œ ์ €ย ๊ธฐ๋ฐ˜ย ํ˜น์€ ์•„์ดํ…œย ๊ธฐ๋ฐ˜์œผ๋กœ ์œ ์‚ฌํ•œ ๊ฐ์ฒด๋ฅผ ์ฐพ์€ ๋’ค ๋นˆ๊ณต๊ฐ„์„ ์ถ”๋ก ํ•˜๋Š”ย ์•Œ๊ณ ๋ฆฌ์ฆ˜์ž…๋‹ˆ๋‹ค.

KNN ์•Œ๊ณ ๋ฆฌ์ฆ˜


K Nearest Neighbors๋Š” ๊ฐ€์žฅ ์œ ์‚ฌํ•œ K ๋ช…์˜ Neighbors๋ฅผ ํ†ตํ•ด์„œ ์˜ˆ์ธกํ•˜๋Š” ๋ฐฉ๋ฒ•์ž…๋‹ˆ๋‹ค.

  • ์‚ฌ์šฉ์ž ๊ธฐ๋ฐ˜: ๋‚˜์™€ ๋น„์Šทํ•œ ์„ฑํ–ฅ์˜ ์‚ฌ๋žŒ์ด ์žฌ๋ฐŒ๊ฒŒ ๋ณธ ์˜ํ™” ๋“ฑ์„ ์ถ”์ฒœํ•˜๋Š” ๋ฐฉ์‹์ด๋‹ค.
  • ์•„์ดํ…œ ๊ธฐ๋ฐ˜: ์•„์ดํ…œ์— ๋Œ€ํ•œ ํ‰๊ฐ€๊ฐ€ ์œ ์‚ฌํ•œ ์•„์ดํ…œ์„ ์ถ”์ฒœํ•˜๋Š” ๋ฐฉ์‹์œผ๋กœ ์ผ๋ฐ˜์ ์œผ๋กœ ์„ฑ๋Šฅ์ด ๋” ๋›ฐ์–ด๋‚˜๋‹ค.

ํ˜‘์—… ํ•„ํ„ฐ๋ง KNN ์•Œ๊ณ ๋ฆฌ์ฆ˜ ์ค‘ ์•„์ดํ…œ ๊ธฐ๋ฐ˜ ์ถ”์ฒœ์œผ๋กœ ๊ตฌํ˜„ํ•˜์˜€์Šต๋‹ˆ๋‹ค.

๋ฌธ์ œ์ 


  1. ์ดˆ๊ธฐ ์‚ฌ์šฉ์ž๋Š” ์ถ”์ฒœ์„ ๋ฐ›์ง€ ๋ชปํ•œ๋‹ค.
  2. ๊ธฐ์กด ๋ฐ์ดํ„ฐ๊ฐ€ ๋งŽ์•„์•ผ ์ถ”์ฒœ์„ ๋ฐ›์„ ์ˆ˜ ์žˆ๋‹ค.
  3. ์•Œ๊ณ ๋ฆฌ์ฆ˜ ์‹คํ–‰ ์‹œ๊ฐ„์ด ๊ธธ๋‹ค.

ํ•ด๊ฒฐ๋ฐฉ์•ˆ


  1. ์ดˆ๊ธฐ ์‚ฌ์šฉ์ž๋Š” ์ถ”์ฒœ์„ ๋ฐ›์ง€ ๋ชปํ•œ๋‹ค.
    • ์ดˆ๊ธฐ ์‚ฌ์šฉ์ž๋Š” ๋ฐ์ดํ„ฐ๊ฐ€ ์—†์–ด์„œ ์œ ์‚ฌํ•œ ์‚ฌ์šฉ์ž๋ฅผ ์ฐพ์„ ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค.
    • ๋”ฐ๋ผ์„œ ๋‹ค๋ฅธ ์ถ”์ฒœ์„ ํ†ตํ•ด ๋จผ์ € ๋ฐ์ดํ„ฐ๋ฅผ ์Œ“๊ณ  ๋ฆฌ๋ทฐ๊ฐ€ 10๊ฐœ ์ด์ƒ์ธ ์‚ฌ์šฉ์ž๋งŒ ํ˜‘์—… ํ•„ํ„ฐ๋ง์„ ์ ์šฉํ–ˆ์Šต๋‹ˆ๋‹ค.
    • ๋‹ค๋ฅธ ์ถ”์ฒœ์€ ์นดํ…Œ๊ณ ๋ฆฌ ์ผ์น˜ํ•˜๋Š” ์žฅ์†Œ, ๋‹ค๋ฅธ ์‚ฌ์šฉ์ž๋“ค์ด ๋งŽ์ด ๋ฐฉ๋ฌธํ•œ ๊ณณ, ๋ณ„์  ์ˆœ์œผ๋กœ ์žฅ์†Œ ์ถ”์ฒœ์„ ํ•ด์ฃผ์—ˆ์Šต๋‹ˆ๋‹ค.
  2. ๊ธฐ์กด ๋ฐ์ดํ„ฐ๊ฐ€ ๋งŽ์•„์•ผ ์ถ”์ฒœ์„ ๋ฐ›์„ ์ˆ˜ ์žˆ๋‹ค.
    • ๊ธฐ์กด ๋ฐ์ดํ„ฐ๊ฐ€ ์—†์–ด์„œ ์นด์นด์˜ค๋งต ๋ฆฌ๋ทฐ๋ฅผ ํฌ๋กค๋งํ•˜์—ฌ ๋ฒ ์ด์Šค ๋ฐ์ดํ„ฐ๋ฅผ ๋งŒ๋“ค์—ˆ์Šต๋‹ˆ๋‹ค.
  3. ์•Œ๊ณ ๋ฆฌ์ฆ˜ ์‹คํ–‰ ์‹œ๊ฐ„์ด ๊ธธ๋‹ค.
    • ์•Œ๊ณ ๋ฆฌ์ฆ˜ ์‹คํ–‰ ์‹œ๊ฐ„์ด 6๋ถ„ ~ 15๋ถ„ ์ •๋„ ์†Œ์š”๋˜์—ˆ์Šต๋‹ˆ๋‹ค.
    • ๋”ฐ๋ผ์„œ ์œ ์ €๋“ค์ด ์ž˜ ์‚ฌ์šฉํ•˜์ง€ ์•Š๋Š” ์ƒˆ๋ฒฝ 3์‹œ์— ์•Œ๊ณ ๋ฆฌ์ฆ˜์„ ํ•œ ๋ฒˆ ๋Œ๋ฆฌ๊ณ  DB์— ์ €์žฅํ•ด์„œ ์•Œ๊ณ ๋ฆฌ์ฆ˜ ๊ฒฐ๊ณผ๋ฅผ DB์—์„œ ๊บผ๋‚ด ์“ธ ์ˆ˜ ์žˆ๋„๋ก ๋งŒ๋“ค์—ˆ์Šต๋‹ˆ๋‹ค.

๊ฒฐ๊ณผ


  • ์•Œ๊ณ ๋ฆฌ์ฆ˜์„ ํ†ตํ•œ ์˜ˆ์ƒ ๋ณ„์ 

Untitled

  • ์‹ค์ œ ์œ ์ €๊ฐ€ ์ค€ ๋ณ„์ 

Untitled

  • ์•ฝ 80% ์ •๋„ ์ผ์น˜ํ•˜๋Š” ๊ฒƒ์œผ๋กœ ๊ฒฐ๊ณผ๊ฐ€ ๋‚˜์™”์Šต๋‹ˆ๋‹ค.
  • MSE ์„ฑ๋Šฅ ํ‰๊ฐ€ ์ ์ˆ˜๋Š” ์•ฝ 6.1164์ด ๋‚˜์™”์Šต๋‹ˆ๋‹ค.
  • MSE ์„ฑ๋Šฅํ‰๊ฐ€: ์‹ค์ œ ๊ฐ’๊ณผ ์˜ˆ์ธก๊ฐ’์˜ ์ฐจ์ด๋ฅผ ์ œ๊ณฑํ•ด ํ‰๊ท ํ•œ ๊ฒƒ

โœจ๋ฐฐํฌ


์ž์„ธํ•œ ์‚ฌํ•ญ์€ ๋‹ค์Œ์„ ์ฐธ๊ณ ํ•ด์ฃผ์„ธ์š”.

๋นŒ๋“œ ๋ฐ ๋ฐฐํฌ ๊ฐ€์ด๋“œ

โœจ EC2 ํฌํŠธ ์ •๋ฆฌ


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 ์ด ๋ฐœ์ƒํ•˜์˜€์„ ๊ฒฝ์šฐ ๋ชจ์—ฌ์„œ ํ•ด๊ฒฐํ•˜๋Š” ๋ฐฉ์‹์œผ๋กœ ์ง„ํ–‰ํ•˜์˜€์Šต๋‹ˆ๋‹ค.

๐ŸŽจย ํ™”๋ฉด ์„ค๊ณ„์„œ


ํ™”๋ฉด์„ค๊ณ„์„œ1 ํ™”๋ฉด์„ค๊ณ„์„œ2 ํ™”๋ฉด์„ค๊ณ„์„œ3 ํ™”๋ฉด์„ค๊ณ„์„œ4

โœจGit ์ปจ๋ฒค์…˜


์ž์„ธํ•œ ์‚ฌํ•ญ์€ ๋‹ค์Œ์„ ์ฐธ๊ณ ํ•ด ์ฃผ์„ธ์š”.

Git ์ปจ๋ฒค์…˜

โœจGit Flow


  • Git Flow ์ „๋žต ์‚ฌ์šฉ

Gitํ”Œ๋กœ์šฐ

  • master ๋ธŒ๋žœ์น˜
    • ๋ฐฐํฌ๋˜๋Š” ๋ธŒ๋žœ์น˜
  • develop ๋ธŒ๋žœ์น˜
    • ๊ฐœ๋ฐœ์ด ์ฃผ๋กœ ์ด๋ฃจ์–ด ์ง€๋Š” ๋ธŒ๋žœ์น˜
  • feature ๋ธŒ๋žœ์น˜
    • develop ์—์„œ ๋ถ„๊ธฐ๋˜๋Š” ๋ธŒ๋žœ์น˜
    • feat/BE or FE/<๊ธฐ๋Šฅ>
  • hotfix ๋ธŒ๋žœ์น˜
    • develop์—์„œ ๋ถ„๊ธฐ๋˜๋Š” ๋ธŒ๋žœ์น˜
    • ์ˆ˜์ •์ด ํ•„์š”ํ•œ ๊ฒฝ์šฐ ์‚ฌ์šฉ
    • fix/BE or FE/<๊ธฐ๋Šฅ>

๐Ÿ‘จโ€๐Ÿ‘ฉโ€๐Ÿ‘งย Jira


ํ˜‘์—… ๋ฐ ์ผ์ •, ์—…๋ฌด ๊ด€๋ฆฌ๋ฅผ ์œ„ํ•ด Jira๋ฅผ ์ด์šฉํ•˜์˜€์Šต๋‹ˆ๋‹ค. ๋งค์ฃผ ์›”์š”์ผ ์˜ค์ „ ์Šคํฌ๋Ÿผ ํšŒ์˜์—์„œ ํ•œ ์ฃผ๋™์•ˆ ์ง„ํ–‰๋˜์–ด์•ผ ํ•  1์ฃผ ๋‹จ์œ„ ๊ณ„ํš์„ ์งœ๊ณ , ์ง„ํ–‰ํ•  ์ด์Šˆ๋“ค์„ ์Šคํ”„๋ฆฐํŠธ๋ฅผ ๋งŒ๋“ค์–ด ๋“ฑ๋กํ–ˆ์Šต๋‹ˆ๋‹ค. ์Šคํ† ๋ฆฌ ํฌ์ธํŠธ 1์ ๋‹น 1์‹œ๊ฐ„ ๋‹จ์œ„์˜ ์ž‘์—…๋Ÿ‰์œผ๋กœ์„œ ์„ ์ •ํ•˜์˜€๊ณ , ์Šคํ”„๋ฆฐํŠธ๋Š” ์ผ์ฃผ์ผ ๋‹จ์œ„๋กœ ์ง„ํ–‰ํ•˜์˜€์Šต๋‹ˆ๋‹ค.

์ด ์™ธ์—, ํ˜‘์—… ๋ฉ”์‹ ์ €(Mattermost)์— ์•Œ๋žŒ์„ ๋“ฑ๋กํ•˜์—ฌ ์ž‘์—… ์ƒํ™ฉ์„ ์‹ค์‹œ๊ฐ„์œผ๋กœ ํ™•์ธํ•  ์ˆ˜ ์žˆ๋„๋ก ํ–ˆ์Šต๋‹ˆ๋‹ค.

๐Ÿ‘จโ€๐Ÿ‘ฉโ€๐Ÿ‘งย Notion


๋ชจ๋‘๊ฐ€ ๋ด์•ผํ•  ๊ณต์ง€, ํ•จ๊ป˜ ์„ ์ •ํ•ด์•ผํ•˜๋Š” ์ฃผ์ œ ๋ฐ ์ดˆ๊ธฐ ERD, API ์„ค๊ณ„, ๊ณต๋ถ€ํ•ด์•ผ ํ•  ๋งํฌ, ๊ฐœ๋ฐœ ์ค‘ ์ฐธ๊ณ  ๋งํฌ, ํŠธ๋Ÿฌ๋ธ” ์ŠˆํŒ…, ๊ฐ„ํŠธ ์ฐจํŠธ ๋“ฑ์„ ๋ชจ์•„์„œ ๊ด€๋ฆฌํ–ˆ์Šต๋‹ˆ๋‹ค. ์ปจ๋ฒค์…˜ ๊ทœ์น™ ๋“ฑ๋„ ๋…ธ์…˜์— ๊ธฐ๋กํ•˜์—ฌ ๋ชจ๋‘๊ฐ€ ํ•ญ์‹œ ํ™•์ธํ•  ์ˆ˜ ์žˆ๋„๋ก ๊ด€๋ฆฌํ–ˆ์Šต๋‹ˆ๋‹ค.

[ํŒ€ ๋…ธ์…˜ ๋ฐ”๋กœ๊ฐ€๊ธฐ]

โœจย ER Diagram


ERD ์ „์ฒด

โœจ ๋ถ€ํ•˜ ํ…Œ์ŠคํŠธ


case1#

  • ํ™ˆ ํŽ˜์ด์ง€
  • ์ƒํ™ฉ : ์ ์‹ฌ์‹œ๊ฐ„์ฒ˜๋Ÿผ ์‚ฌ๋žŒ์ด ๋ชฐ๋ฆฌ๋Š” ์‹œ๊ฐ„์„ ๊ฐ€์ •ํ•˜์—ฌ ๋ถ€ํ•˜ํ…Œ์ŠคํŠธ ์‹คํ–‰
  • ๋งŒ๋ช…์ด ์ ‘์†ํ–ˆ์„ ๋•Œ ์‘๋‹ต์‹œ๊ฐ„ ์•ฝ 9์ดˆ ๋ถ€ํ•˜ํ…Œ์ŠคํŠธ-ํ™ˆ ๊ฐ‘์ž๊ธฐ.PNG

case2#

  • ์ถ”์ฒœ ํŽ˜์ด์ง€
  • ์ƒํ™ฉ : ์ ์‹ฌ์‹œ๊ฐ„์ฒ˜๋Ÿผ ์‚ฌ๋žŒ์ด ๋ชฐ๋ฆฌ๋Š” ์‹œ๊ฐ„์„ ๊ฐ€์ •ํ•˜์—ฌ ๋ถ€ํ•˜ํ…Œ์ŠคํŠธ ์‹คํ–‰
  • ๋Œ€์ „๊ด‘์—ญ์‹œ ์ค‘๊ตฌ ๋ฌธํ™”1๋™ ๊ทผ๋ฐฉ์„ ์ถ”์ฒœ๋ฐ›์Œ ๋ถ€ํ•˜ํ…Œ์ŠคํŠธ ์ ์‹ฌ์‹œ๊ฐ„.png
  • 690 ๋ช…์—์„œ ์„œ๋ฒ„์ดˆ๊ณผ

case3#

  • ํ™ˆ ํŽ˜์ด์ง€
  • ์ƒํ™ฉ : ์„œ๋ฒ„ ์ˆ˜์ •, ๋ฐฐํฌ ํ›„, ์‚ฌ์šฉ์ž๊ฐ€ ๋ชฐ๋ฆฌ๋Š” ๊ฒƒ์„ ๊ฐ€์ •ํ•˜์—ฌ ๋ถ€ํ•˜ํ…Œ์ŠคํŠธ ์‹คํ–‰
  • ์ดˆ๋‹น 2์ฒœ๋ช…์”ฉ ์ถ”๊ฐ€ ๋ถ€ํ•˜ํ…Œ์ŠคํŠธ-ํ™ˆ ๊ฐ‘์ž๊ธฐ.PNG
  • ์‚ฌ์šฉ์ž ๋งŒ๋ช…์—์„œ ์‘๋‹ต์‹œ๊ฐ„ ์•ฝ 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 ๊ตฌํ˜„

์ด๋ฏธ์ง€ ์ถœ์ฒ˜

[404 ์ทจ์†Œ ์•„์ด์ฝ˜](https://kor.pngtree.com/freepng/cancel-vector-icon-with-transparent-background_5156945.html) [ํ”„๋กœํ•„ ์ด๋ฏธ์ง€](https://kor.pngtree.com/freepng/a-group-of-small-animal-expressions_7390459.html?sol=downref&id=bef) [๋งˆ์ปค ์ด๋ฏธ์ง€](https://kor.pngtree.com/freepng/a-group-of-small-animal-expressions_7390459.html?sol=downref&id=bef)

zzazo's People

Contributors

hanghang13 avatar win9612 avatar tjsgnrla97 avatar brotherj5 avatar platycodonv avatar sungbae95 avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.