PROJECTS

Team Project | ๐ŸŒฒ KPT | ์ตœ์ข…ํ”„๋กœ์ ํŠธ iPark ์ค‘๊ฐ„๋ฐœํ‘œ

nicesugi 2022. 8. 4. 20:27

๐Ÿ‘‹ ํฌ์ŠคํŒ… ๋‚ด์šฉ : ๋ฐฐํฌ์ฃผ์†Œ | Github ์ฃผ์†Œ | KPT | ํ”ผ๋“œ๋ฐฑ | ํŒ€ ํ”„๋กœ์ ํŠธ ํšŒ๊ณ 

 โœจ https://www.ilovepark.net

 โœจ Github

https://github.com/2JYK/iPark_django_backend

https://github.com/2JYK/iPark_frontend

 

KEEP(์œ ์ง€ํ•˜๊ณ  ์‹ถ์€ ๋ถ€๋ถ„)

  • ๊ธฐํš
    • ๊ธฐ๋Šฅ๋ช…์„ธ์„œ + ํ”ผ๊ทธ๋งˆ + ERD + ์ปจ๋ฒค์…˜ ๋“ฑ
    • ๊ธฐํš์— ๋งž์ถฐ ๊ตฌํ˜„ํ•œ ํ›„ ๋ณด์™„์  ๋ฐ ์ถ”๊ฐ€์ ์„ ์ฐพ์•„ ๋ฐ˜์˜ํ•˜๋Š” ๋ถ€๋ถ„
  • ๊ธฐ๋ณธ ๊ตฌํ˜„ ์™„์„ฑ ํ›„ ์ถ”๊ฐ€ ๊ธฐ๋Šฅ ๊ตฌํ˜„
    • ํ•„์š”ํ•œ ์ตœ์†Œ ๊ธฐ๋Šฅ์„ ๋ชฉํ‘œ์น˜๋กœ ์žก์•„์„œ ๊ตฌํ˜„
    • ๊ตฌํ˜„๋œ ๋ถ€๋ถ„์— ๋Œ€ํ•œ ๋ฆฌํŒฉํ† ๋ง ์ง„ํ–‰
    • ํ…Œ์ŠคํŠธ ์ฝ”๋“œ ์ž‘์„ฑ์„ ํ†ตํ•ด ์™„์„ฑ๋„ ์žˆ๋Š” ๊ธฐ๋Šฅ ๊ตฌํ˜„
  • API ๋ฐ DB ์„ค๊ณ„์— ๋Œ€ํ•œ ๋กœ์ง
    • ๊ธฐํš์— ์ตœ๋Œ€ํ•œ ๋งž์ถ”๋ฉฐ ๋‚˜์ค‘์— ๋ฐ”๋€Œ๋Š” ์ƒํ™ฉ์ด ์˜ค๋”๋ผ๋„ ์œ ์—ฐํ•˜๊ฒŒ ๋Œ€์ฒ˜
  • REST-ful ์„ ์œ„ํ•œ ์„ฑ์žฅ
    • backend, frontend ๋ถ„๋ฆฌ
    • serializer ํ™œ์šฉ
  • ๋ฐฐํฌ : ubuntu command, nginx
  • Docker

 

PROBLEM(๋ฌธ์ œ์  ๋ฐ ํ•ด๊ฒฐ๋ฐฉ์•ˆ)

  • ์นด์นด์˜ค๊ณ„์ •์—์„œ ์‚ฌ์šฉ์ž๊ฐ’์„ ๋ฐ›์•„ ํšŒ์›๊ฐ€์ž… ์—ฐ๊ฒฐ
    • ํ•ด๊ฒฐ ๋ฐฉ์•ˆ :
      • ํŽ˜์ด์ง€๊ฐ€ ๋„˜์–ด๊ฐ€๋ฉด ์ •๋ณด๊ฐ’ ๋ฆฌ์…‹
      • login.html์—์„œ ์ •๋ณด๊ฐ’์„ ๋ณด์—ฌ์ฃผ๊ณ  ํšŒ์›๊ฐ€์ž…ํ•˜๋Š” ๊ฒƒ์œผ๋กœ ๋Œ€์ฒด
  • ์นด์นด์˜ค๋กœ๊ทธ์ธ payload ์‹คํŒจ
    • ํ•ด๊ฒฐ ๋ฐฉ์•ˆ :
      • ์ธ๊ฐ€์„ค์ •์„ ์œ„ํ•ด ipark ์„œ๋ฒ„ ์ „์šฉ ํ† ํฐ ๋ฐœํ–‰
  • ๋ธŒ๋ผ์šฐ์ €๋ฅผ ์ข…๋ฃŒํ•ด๋„ access token, payload, refresh token๊ฐ€ ์œ ์ง€๋จ
    • ํ•ด๊ฒฐ ๋ฐฉ์•ˆ :
      • html์„ ์ข…๋ฃŒํ•˜๋ฉด access token, payload, refresh token์ด ์‚ญ์ œ๋˜๋„๋ก ํ•จ
      • ๋‹ค๋ฅธ html๋กœ ๋„˜์–ด๊ฐ€๋„ access token, payload, refresh token์ด ์‚ญ์ œ๋˜๋Š” ๋ฌธ์ œ ๋ฐœ์ƒ
      • ๋‹ค๋ฅธ html๋กœ ๋„˜์–ด๊ฐ€๋Š” ๊ฒฝ์šฐ, ์ƒˆ๋กœ๊ณ ์นจ, ๋’ค๋กœ๊ฐ€๊ธฐ๋ฅผ ํ•  ๋•Œ ์œ ์ง€๋˜๋„๋ก ์กฐ๊ฑด์„ ๋ถ€์—ฌํ•ด ๋ธŒ๋ผ์šฐ์ €๋ฅผ ์ข…๋ฃŒํ•  ๋•Œ์—๋งŒ ์‚ญ์ œ๋˜๋„๋ก ์กฐ์น˜
  • ์„œ๋น„์Šค๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๋„์ค‘ access token์ด ๋งŒ๋ฃŒ๋˜๋ฉด ์‚ฌ์šฉ์ž๊ฐ€ undefined๋กœ ๋ณ€ํ•จ
    • ํ•ด๊ฒฐ ๋ฐฉ์•ˆ :
      • refresh token์„ ํ™œ์šฉํ•ด payload์˜ exp๊ฐ€ ๋งŒ๋ฃŒ๋˜๋ฉด access token์„ ๊ฐฑ์‹ ํ•ด ์ง€์†์ ์œผ๋กœ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋„๋ก ์กฐ์น˜
  • ๊ณต์› ์ƒ์„ธ์ •๋ณด get -> sessionStorage -> ์ƒˆ๋กœ๊ณ ์นจ ์•ˆ๋จ -> ์ƒ์„ธํŽ˜์ด์ง€ ๋กœ๋“œ ํ•จ์ˆ˜ ์‹คํ–‰
    • ํ•ด๊ฒฐ ๋ฐฉ์•ˆ :
      • ๋Œ“๊ธ€, ๋ถ๋งˆํฌ ๊ธฐ๋Šฅ์˜ ๋ณ€๋™์‚ฌํ•ญ ๋ฐ”๋กœ ๋ณด๊ธฐ ํž˜๋“ฆ -> ํ”„๋ก ํŠธ์—์„œ ์กฐ์ž‘ ํ›„ ํ•จ์ˆ˜ ์žฌ์‹คํ–‰
  • ๊ณต์›์˜ ์˜ต์…˜๊ณผ ์ง€์—ญ์„ ๋™์‹œ์„ ํƒํ•ด ๊ฒ€์ƒ‰ํ•˜๋ฉด ๋‘˜ ์ค‘ ํ•˜๋‚˜์˜ ๊ฐ’๋งŒ ๋ฐ˜์˜
    • ํ•ด๊ฒฐ ๋ฐฉ์•ˆ :
      • django์˜ Q ๊ฐ์ฒด๊ฐ€ ์ œ๋Œ€๋กœ ์ž‘๋™ํ•˜์ง€ ์•Š์•„ filter๋ฅผ ๋‘ ๋ฒˆ ์‚ฌ์šฉํ•˜์˜€์ง€๋งŒ ๊ฒฐ๊ณผ ๋™์ผ
      • model์— through table์„ ์„ ์–ธํ•ด ์ค‘๊ฐ„ ํ…Œ์ด๋ธ”์„ ์‚ฌ์šฉํ•˜์˜€๊ณ , ๋™์‹œ์„ ํƒ์— ๋Œ€ํ•œ ๊ฒฐ๊ณผ๊ฐ’ ์–ป์Œ
      • try except๋ฌธ์„ ํ™œ์šฉํ•ด ๊ณต์› ๊ฒ€์ƒ‰ ๊ฒฐ๊ณผ๊ฐ€ ์—†์„ ๋•Œ ๋ฐœ์ƒํ•˜๋Š” 500 ์—๋Ÿฌ ํ•ด๊ฒฐ
  • ์ง€๋„๋ฅผ ์‚ฌ์šฉํ•˜๊ธฐ ์œ„ํ•ด html์—์„œ pyscript์™€ folium์„ ํ™œ์šฉ
    • ํ•ด๊ฒฐ ๋ฐฉ์•ˆ :
      • ์ง€๋„๋Š” ์ œ๋Œ€๋กœ ๋‚˜์™”์œผ๋‚˜ ์ž‘๋™ ์‹œ๊ฐ„์ด ๋„ˆ๋ฌด ๊ธธ์–ด UX์— ์•…์˜ํ–ฅ์„ ์ค„ ๊ฒƒ์œผ๋กœ ํŒ๋‹จ
      • ๋„ค์ด๋ฒ„ ์ง€๋„ api๋ฅผ ํ™œ์šฉํ•ด html์— ์ง€๋„ ์‚ฝ์ž…
  • ํŽ˜์ด์ง€๋„ค์ด์…˜ : ํŽ˜์ด์ง€๋„ค์ด์…˜์— ํ•„์š”ํ•œ page_num ๋ฟ๋งŒ ์•„๋‹ˆ๋ผ ๊ฒŒ์‹œ๋ฌผ์„ ํƒœ๊ทธ๋ณ„๋กœ ๋ณด์—ฌ์ฃผ๊ธฐ ์œ„ํ•œ tag_id๊นŒ์ง€, parameter ๋‘๊ฐœ ๋™์‹œ ์ฒ˜๋ฆฌ ํ•„์š”
    • ํ•ด๊ฒฐ ๋ฐฉ์•ˆ :
      • indexOf ํ•จ์ˆ˜๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ํŠน์ • ๋ฌธ์ž๋ฅผ ์ฐพ์•„ ์คŒ
      • id๊ฐ’์„ str๋กœ ๋ณ€ํ™˜ํ•˜๊ณ  ์ด id ๊ฐ’์— “http”๊ฐ€ ํฌํ•จ๋˜์–ด ์žˆ์œผ๋ฉด ๋งค๊ฐœ๋ณ€์ˆ˜์˜ ๊ฐ’์„ ๋ณ€๊ฒฝ
      • ๋กœ๊ทธ์ธํ•œ user์™€ ๋กœ๊ทธ์ธ์„ ํ•˜์ง€ ์•Š์€ user๋ฅผ ๊ตฌ๋ถ„ํ•˜๊ธฐ ์œ„ํ•ด if๋ฌธ ์ถ”๊ฐ€ ์ž‘์„ฑ
  • ํŽ˜์ด์ง€๋„ค์ด์…˜ : ๋‹ค์ŒํŽ˜์ด์ง€๋กœ ๋„˜์–ด๊ฐˆ๋•Œ ํ† ํฐ๊ฐ’์ด ๊ฐ™์ด ๋„˜์–ด์˜ค์ง€ ์•Š๋Š” ์˜ค๋ฅ˜ and ๋กœ๊ทธ์ธ์„ ํ•˜์ง€ ์•Š์€ ์œ ์ €๊ฐ€ ๋‚ด๊ฐ€์“ด ๊ฒŒ์‹œ๋ฌผ์— ๋“ค์–ด๊ฐ€์ง€๋Š” ์˜ค๋ฅ˜
    • ํ•ด๊ฒฐ ๋ฐฉ์•ˆ :
      • ์กฐ๊ฑด ์ถ”๊ฐ€, “access”๊ฐ’์ด undefined์ธ ๊ฒฝ์šฐ
        • token๊ฐ’์„ ๋นˆ ๋”•์…”๋„ˆ๋ฆฌ๋กœ ์ €์žฅ
      • “access”๊ฐ’์ด undefined์ธ ๊ฒฝ์šฐ ๊ทธ๋ฆฌ๊ณ  (and) id ๊ฐ’์ด 3์ผ ๊ฒฝ์šฐ
        • alert์ฐฝ์„ ๋„์šฐ๊ณ  ์ปค๋ฎค๋‹ˆํ‹ฐํŽ˜์ด์ง€๋กœ ๋ฆฌํ„ด
  • ์ƒ๋‹จ๋ฐ”์˜ “๋‚ด๊ฐ€ ์“ด ๊ฒŒ์‹œ๋ฌผ”์„ ํด๋ฆญํ•ด ์ปค๋ฎค๋‹ˆํ‹ฐ ํŽ˜์ด์ง€๋กœ ์ด๋™ ์‹œ, ํ•ด๋‹น ์‚ฌ์šฉ์ž์˜ ๊ฒŒ์‹œ๊ธ€๋งŒ ๋”ฐ๋กœ ๋ถˆ๋Ÿฌ์˜ค์ง€ ๋ชปํ•˜๋Š” ์˜ค๋ฅ˜
    • ํ•ด๊ฒฐ ๋ฐฉ์•ˆ
      • sessionStorage๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ “๋‚ด๊ฐ€ ์“ด ๊ฒŒ์‹œ๋ฌผ์—์„œ ์ด๋™ํ•  ๋•Œ”์™€ “์ผ๋ฐ˜์ ์œผ๋กœ ์ปค๋ฎค๋‹ˆํ‹ฐ ํŽ˜์ด์ง€์— ์ ‘๊ทผํ•  ๋•Œ” ์‚ฌ์ด์— ์ฐจ์ด๋ฅผ ๋งŒ๋“ค์–ด ์คŒ.
        • “๋‚ด๊ฐ€ ์“ด ๊ฒŒ์‹œ๋ฌผ” ๋ฒ„ํŠผ ํด๋ฆญ ์‹œ session์— ๊ฐ’์„ ๋‹ด์•„์คŒ.
        • ์กฐ๊ฑด๋ฌธ์„ ์‚ฌ์šฉํ•˜์—ฌ ์ปค๋ฎค๋‹ˆํ‹ฐ ํŽ˜์ด์ง€์—์„œ ๊ฒŒ์‹œ๊ธ€์„ ๋กœ๋“œํ•  ๋•Œ ์„ธ์…˜์— ๊ฐ’์ด ๋‹ด๊ฒจ ์žˆ๋‹ค๋ฉด ์‚ฌ์šฉ์ž๊ฐ€ ์ž‘์„ฑํ•œ ๊ธ€๋งŒ ๋…ธ์ถœ. / ๊ทธ๋ ‡์ง€ ์•Š๋‹ค๋ฉด ๋ชจ๋“  ๊ฒŒ์‹œ๋ฌผ ๋…ธ์ถœ.
        • sessionStorage์— ๋‹ด๊ธด ๊ฐ’์€ ์‚ฌ์šฉ ํ›„ ์ฆ‰์‹œ ์‚ญ์ œ.

 

TRY(๋‹ค์Œ์„ ์œ„ํ•œ ๋…ธ๋ ฅ)

  • [ ] ๊ณต๋ถ€
    • JWT
    • Javascript
    • ๋ฐฐํฌ
    • github ๋ธŒ๋žœ์น˜
  • [ ] ๋ฐ์ดํ„ฐ ์ „์†ก ์ตœ์ ํ™”, Query ์ตœ์ ํ™” (ํŽ˜์ด์ง€ ๋กœ๋”ฉ ์‹œ๊ฐ„ ์ค„์ด๊ธฐ)
  • [ ] ํ”„๋กœ์ ํŠธ ๊ธฐํš์— ๋งž์ถ”์–ด ์›น ์•ฑ์˜ ํŠน์„ฑ ์ถ”๊ฐ€
  • [ ] test code
  • [ ] ์‚ฌ์šฉ์ž ํ”ผ๋“œ๋ฐฑ์— ๋งž์ถฐ ํ”„๋กœ์ ํŠธ ์—…๊ทธ๋ ˆ์ด๋“œ
  • ์ตœ์ข…๋ฐœํ‘œ๊นŒ์ง€์˜ ๊ธฐ๋Šฅ ์—…๊ทธ๋ ˆ์ด๋“œ
    • USER
      • [ ] ๋น„๋ฐ€๋ฒˆํ˜ธ ๋ณ€๊ฒฝ ์‹œ ์‚ฌ์šฉ์ž์˜ ์ •๋ณด๋ฅผ ํ†ตํ•ด ์‚ฌ์šฉ์ž ์ธ์ฆ ์ง„ํ–‰
        • ์‚ฌ์šฉ์ž ์ด๋ฉ”์ผ์„ ํ†ตํ•œ ์ธ์ฆ ๋ฐฉ์‹์œผ๋กœ ๋ณด์™„ ์˜ˆ์ •
      • [ ] refresh token์„ ํ†ตํ•œ access token ๊ฐฑ์‹  ์ž๋™ํ™”
        • ํ˜„์žฌ๋Š” ์‚ฌ์šฉ์ž๊ฐ€ ์„œ๋น„์Šค๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๋„์ค‘ access token์ด ๋งŒ๋ฃŒ๋˜๋ฉด undefined๋กœ ํ‘œ๊ธฐ
        • ๋‹ค๋ฅธ ํŽ˜์ด์ง€๋กœ ์ด๋™ํ•˜๊ฑฐ๋‚˜ ์ƒˆ๋กœ๊ณ ์นจ์„ ํ•˜๋ฉด access token์ด ๊ฐฑ์‹ ๋˜์ง€๋งŒ, ์ด๋กœ ์ธํ•œ ๋ถˆํŽธํ•จ์„ ์ค„์ผ ์ˆ˜ ์žˆ๋„๋ก ๋ณด์™„ํ•  ์˜ˆ์ •
    • PARK
      • [ ] ๊ณต์› ์ƒ์„ธํŽ˜์ด์ง€ ํ•จ์ˆ˜๊ฐ€ ์•„๋‹Œ get์„ ํ†ตํ•ด ์ •๋ณด ๋กœ๋“œ
      • [ ] ๊ณต์›์ •๋ณด์™€ ๋Œ“๊ธ€,๋ถ๋งˆํฌ๋ฅผ ๋ถ„๋ฆฌ
      • [ ] url ํŒŒ๋ผ๋ฏธํ„ฐ๋กœ ๋ณ€๊ฒฝ
    • AI ๋จธ์‹ ๋Ÿฌ๋‹
      • [ ] ์ง€๋„ km → ๋ถ„
      • [ ] ์ถ”์ฒœ๋œ ์ฃผ์ฐจ์žฅ์˜ ์ฃผ์ฐจ์š”๊ธˆ
    • COMMUNITY
      • [ ] ์‚ฌ์šฉ์ž๋“ค์ด ๋Œ“๊ธ€๋กœ ์•„๋‹Œ ์‹ค์‹œ๊ฐ„ ์ฑ„ํŒ…์œผ๋กœ ๋Œ€ํ™”ํ•  ์ˆ˜ ์žˆ๋„๋ก ๋ณด์™„ํ•  ์˜ˆ์ •

 

ํ”ผ๋“œ๋ฐฑ

  • [ ] ํšŒ์›๊ฐ€์ž… ์‹คํŒจ์‹œ ์–ด๋Š๋ถ€๋ถ„์—์„œ ํ‹€๋ ธ๋Š”์ง€ ํ™•์ธํ•˜๊ณ  ์‹ถ์Œ
  • [ ] ๊ธฐ๋ณธ์ ์ธ alert ์‚ฌ์šฉ ์ง€์–‘
  • [ ] ์‚ฌ๋žŒ๋“ค์ด ๊ณต์›์— ์žˆ๋Š”์ง€ ์—†๋Š”์ง€ ์‹ค์‹œ๊ฐ„์œผ๋กœ ํ™•์ธํ•  ์ˆ˜ ์žˆ์œผ๋ฉด ์ข‹๊ฒ ์Œ
  • [ ] ๋Œ“๊ธ€๋‹ฌ๊ณ  ์ƒˆ๋กœ๊ณ ์นจ์ด ๋˜์ง€ ์•Š์•„์„œ ์ง์ ‘ ํ•ด์•ผ๋˜๋Š” ๋ถˆํŽธํ•จ์ด ์žˆ์–ด๋ณด์ž„
  • [ ] ๊ณต์›์„ ์‚ฌ์šฉ์ž๊ฐ€ ์ง์ ‘ ์„ ํƒํ•˜๋ฉด์„œ ํ•ด์•ผ๋˜๋Š” ๊ฒƒ์ด ๋ฒˆ๊ฑฐ๋กœ์›Œ ๋ณด์ž„
  • [โœ”๏ธ] ๋„๋ฉ”์ธ์„ ์‚ฌ์šฉ์ž๊ฐ€ ์ ‘๊ทผํ•˜๊ธฐ ์‰ฝ๊ฒŒ ํ•˜๋ฉด ์ข‹์„ ๊ฒƒ ๊ฐ™์Œ ⇒ front.ilovepark.netwww.ilovepark.net

 

๋Š๋‚€์  ๐Ÿ’ญ

  • ์œค์Šฌ๊ธฐ

์ œ๊ฐ€ ๋‹ด๋‹นํ•œ ๊ธฐ๋Šฅ์€ ์†Œ์…œ๋กœ๊ทธ์ธ, ๊ณต์› ์ƒ์„ธํŽ˜์ด์ง€, ๋ฐฐํฌ์˜€์Šต๋‹ˆ๋‹ค. ๋ฐฑ์—”๋“œ์—์„œ์˜ ๊ธฐ๋Šฅ์ด ๋งŽ์ง€๋Š” ์•Š์•„ status๋ฅผ ๋‹ค์–‘ํ•˜๊ฒŒ ์ž‘์„ฑํ•ด๋ณด๊ณ  ํ…Œ์ŠคํŠธ์ฝ”๋“œ๋„ ์ž‘์„ฑํ•˜์˜€์Šต๋‹ˆ๋‹ค. ์†Œ์…œ๋กœ๊ทธ์ธ๊ณผ pagination๊ตฌํ˜„์„ ํ•˜๋ฉฐ ๊ธฐ์กด๊ณผ๋Š” ๋‹ค๋ฅธ ์ฝ”๋“œ๋„ ์ž‘์„ฑํ•ด๋ณธ ๊ฒƒ๋„ ์žฌ๋ฐŒ์—ˆ์Šต๋‹ˆ๋‹ค. ์ด์ œ์„œ์•ผ ์–ด๋Š์ •๋„ ํ”„๋ก ํŠธ์—”๋“œ๋ฅผ ์•Œ ๊ฒƒ ๊ฐ™๋‹ค๊ณ  ๋Š๋‚๋‹ˆ๋‹ค.. ci, cd๋ฅผ ํ•˜๋ฉฐ ์ƒ๋‹นํ•œ ์˜ค๋ฅ˜๋“ค์„ ๋งˆ์ฃผํ–ˆ๊ณ  ํ•ด๊ฒฐ์ด ๋˜์–ด https๋กœ ๋ฐฐํฌ๋ฅผ ์ง„ํ–‰ํ•˜์˜€์Šต๋‹ˆ๋‹ค. ์ •๋ง ๊ณต๋ถ€ํ•  ๊ฒƒ์ด ๋งŽ๋‹ค๊ณ  ๋Š๋‚๋‹ˆ๋‹ค. ubuntu command, git stash, Docker, sql, netlify, EC2 ๋“ฑ ์ฝ”๋“œ๋ฅผ ์ž‘์„ฑํ•˜๋Š” ๊ฒƒ๋„ ์ค‘์š”ํ•˜์ง€๋งŒ ์„œ๋น„์Šค๋ฅผ ๋ฐฐํฌํ•ด์•ผํ•˜๋Š” ๊ณผ์ •๋„ ๋”์šฑ ์ ‘ํ•˜๊ณ  ๊ณต๋ถ€ํ•˜๊ฒŒ ๋˜์–ด ์ข‹์•˜์Šต๋‹ˆ๋‹ค.

์ œ๊ฐ€ ์ตœ์ข…๋ฐœํ‘œ๊นŒ์ง€ ํ˜„์žฌ ์ž‘์„ฑํ•œ ์ฝ”๋“œ์˜ ํ…Œ์ŠคํŠธ์ฝ”๋“œ์™€ ํ”„๋ก ํŠธ์ชฝ์˜ ๋ฆฌํŒฉํ† ๋ง, ๊ทธ๋ฆฌ๊ณ  ๋„์ปค ๋“ฑ ์ง€๊ธˆ๊นŒ์ง€ ํ•œ ๊ฒƒ์ด๋ผ๋„ ์™„๋ฒฝํ•˜๊ฒŒ ์ดํ•ดํ•˜๊ณ  ์„ค๋ช…ํ•  ์ˆ˜ ์žˆ๋Š” ์ƒํƒœ๋ฅผ ๊ฐœ์ธ์ ์ธ ๋ชฉํ‘œ๋กœ ํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค.

2JYK์˜ ์ตœ์ข…ํ”„๋กœ์ ํŠธ์ธ๋งŒํผ ๋ฐฐ์› ๋˜ ๊ธฐ๋Šฅ๊ณผ ์ด์ „ ํ”„๋กœ์ ํŠธ๋“ค์—์„œ ๋„์ „ ๊ธฐ๋Šฅ๋“ค๋กœ ์ œ์‹œํ–ˆ๋˜ ๊ธฐ๋Šฅ๋“ค๊นŒ์ง€ ์ตœ๋Œ€ํ•œ ๋„ฃ์–ด๋ณด์•˜์Šต๋‹ˆ๋‹ค. ์ด๋ฏธ ํ•ด์™”๋˜ ๊ธฐ๋Šฅ์ด๋ผ ๊ทธ๊ฐ„์˜ ๊ฒฝํ—˜์„ ๋ฐ”ํƒ•์œผ๋กœ ๊ฐ™์€ ๊ธฐ๋Šฅ์ด์—ฌ๋„ ๊ผผ๊ผผํ•˜๊ฒŒ ์—…๊ทธ๋ ˆ์ด๋“œ๋œ ๊ฒฐ๊ณผ๋ฌผ์„ ๋งŒ๋“ค๊ณ  ์‹ถ์—ˆ๊ณ  ์ด๋ฒˆ ์—ญ์‹œ ํž˜๋“ค์ง€๋งŒ ๋ฟŒ๋“ฏํ•จ์„ ๋งŽ์ด ๋Š๋‚„ ์ˆ˜ ์žˆ์—ˆ์Šต๋‹ˆ๋‹ค.

  • ๊น€๊ฒฝ์ˆ˜

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

  • ์ •๋Œ€๊ทผ

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

  • ์ •์ฃผํ˜„

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

๋ฐ˜์‘ํ˜•

'PROJECTS' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๋‹ค๋ฅธ ๊ธ€

์„œ๋น„์Šค ๋ ˆ์ด์–ด  (0) 2022.09.01
Team Project | ๐ŸŒฒ KPT | iPark ์ตœ์ข…๋ฐœํ‘œ  (0) 2022.08.17
Team Project 6 | 7์›” 14์ผ |  (0) 2022.07.14
Team Project 6 | 7์›” 13์ผ |  (0) 2022.07.14
Team Project 6 | 7์›” 12์ผ |  (0) 2022.07.12