Giter VIP home page Giter VIP logo

๐Ÿ“Œ Spot On (์ œ์ฃผ)

  • Problem : ์—ฌํ–‰์„ ๋‹ค๋…€์™”๋Š”๋ฐ ์ธ์Šคํƒ€ ์—…๋ฐ์ดํŠธ๋ฅผ ํ•  ์ˆ˜ ์—†์—ˆ๋˜ ์ด์œ ? (ํŠน๋ณ„ํ•œ ํฌํ† ์ŠคํŒŸ์„ ๋ฐœ๊ฒฌํ•˜์ง€ ๋ชปํ•ด์„œ, ์ฐพ์•„๋ณธ ํฌํ† ์ŠคํŒŸ์ด ๋‚ด ์—ฌํ–‰๋™์„ ๊ณผ ๋‹ฌ๋ผ์„œ, ํ˜ผ์ž ์—ฌํ–‰๋‹ค๋‹ˆ๋Š๋ผ ์ฐ์–ด์ค„ ์‚ฌ๋žŒ์ด ์—†์–ด์„œ)
  • Idea : ์—ฌํ–‰์ง€์—์„œ ์ธ์ƒ์ƒท์„ ์ฐ๊ณ  ์‹ถ์€ ์œ ์ €๋ฅผ ์œ„ํ•ด ์–ด๋–ค ์„œ๋น„์Šค๋ฅผ ์ œ๊ณตํ•  ์ˆ˜ ์žˆ์„๊นŒ?
  • Solution : 3๊ฐ€์ง€ ํ•ต์‹ฌ ์„œ๋น„์Šค
    • ๋‘˜๋Ÿฌ๋ณด๊ธฐ: ์ŠคํŒŸ ์‚ฌ์ง„ ๊ตฌ๊ฒฝ ๋ฐ ์œ„์‹œ๋ฆฌ์ŠคํŠธ ์ถ”๊ฐ€
    • ์ง€๋„๋ณด๊ธฐ: ์ง€๋„ API๋ฅผ ํ™œ์šฉํ•˜์—ฌ ์ŠคํŒŸ์˜ ์œ„์น˜ ํŒŒ์•…
    • ํ•จ๊ป˜ํ•˜๊ธฐ: ํ•จ๊ป˜ ์‚ฌ์ง„์„ ์ฐ์„ ๋™ํ–‰์„ ๊ตฌํ•  ์ˆ˜ ์žˆ๋Š” ์ปค๋ฎค๋‹ˆํ‹ฐ

1. ์ œ์ž‘ ๊ธฐ๊ฐ„ & ์ฐธ์—ฌ ์ธ์›

  • 2022๋…„ 3์›” 1์ผ ~ 3์›” 29์ผ
  • ์ฐธ์—ฌ ์ธ์› : 4๋ช…(์ตœ์˜์ˆ˜, ๋ฐ•์šฉํ˜ธ, ๊น€ํ•˜์€, ๊น€์ƒ๋ฐฑ)

2. ์‚ฌ์šฉ ๊ธฐ์ˆ 

Front-end

์–ธ์–ด

  • HTML
  • CSS
  • Javascript

Back-end

์–ธ์–ด

  • Python 3.9.1

ํ”„๋ ˆ์ž„์›Œํฌ

  • Django 3.2.9

๊ฐœ๋ฐœํ™˜๊ฒฝ

  • VSCode

DBMS

  • sqlite3

๋ฒ„์ „๊ด€๋ฆฌ

  • Git
  • Github

๋ฐฐํฌ

  • AWS Route 53
  • Nginx

3. ERD ์„ค๊ณ„

spoton (2)

  • User ๋ชจ๋ธ๊ณผ Profile ๋ชจ๋ธ์€ 1:1๊ด€๊ณ„ ์„ค์ • - Profile ๋ชจ๋ธ๋กœ ๋‹ค์–‘ํ•œ ์‚ฌ์šฉ์ž ๋ฐ์ดํ„ฐ๋ฅผ ๋ฐ›๊ธฐ ์œ„ํ•ด ์„ค์ •
  • User ๋ชจ๋ธ๊ณผ Travel ๋ชจ๋ธ์€ M:N๊ด€๊ณ„ ์„ค์ • - 1๋ช…์˜ ์œ ์ €๊ฐ€ ์—ฌ๋Ÿฌ ๊ฐœ์˜ ์—ฌํ–‰ ์ŠคํŒŸ์— ์ข‹์•„์š”๋ฅผ ๋ˆ„๋ฅผ ์ˆ˜ ์žˆ๊ณ , 1๊ฐœ์˜ ์—ฌํ–‰ ์ŠคํŒŸ์€ ์—ฌ๋Ÿฌ ๋ช…์˜ ์œ ์ €์—๊ฒŒ ์ข‹์•„์š”๋ฅผ ๋ฐ›์„ ์ˆ˜ ์žˆ๊ธฐ ๋•Œ๋ฌธ
  • Profile ๋ชจ๋ธ๊ณผ Post ๋ชจ๋ธ์€ 1:N๊ด€๊ณ„ ์„ค์ • - 1๋ช…์˜ ์œ ์ €๊ฐ€ ์—ฌ๋Ÿฌ ๊ฐœ์˜ ๊ฒŒ์‹œํŒ ๊ธ€์„ ์ž‘์„ฑํ•  ์ˆ˜ ์žˆ๊ฒŒ ์„ค์ •
  • Profile ๋ชจ๋ธ & Travel ๋ชจ๋ธ & Post ๋ชจ๋ธ๊ณผ Comment ๋ชจ๋ธ์€ 1:N๊ด€๊ณ„ ์„ค์ • - 1๋ช…์˜ ์œ ์ €๊ฐ€ ์—ฌ๋Ÿฌ ๊ฐœ์˜ ๋Œ“๊ธ€์„ ๋‚จ๊ธธ ์ˆ˜ ์žˆ๊ณ , 1๊ฐœ์˜ ์—ฌํ–‰ ์ŠคํŒŸ๊ณผ 1๊ฐœ์˜ ๊ฒŒ์‹œ๊ธ€์ด ์—ฌ๋Ÿฌ ๊ฐœ์˜ ๋Œ“๊ธ€์„ ๊ฐ€์งˆ ์ˆ˜ ์žˆ๊ธฐ ๋•Œ๋ฌธ

4. ์‚ฌ์ดํŠธ๋งต

sitemapp

5. ์—ญํ• ๋ถ„๋‹ด

  • App ๋ณ„ Views.py์— ์ฃผ์„์œผ๋กœ ๊ฐ์ž์˜ ์ฝ”๋“œ๋ฅผ ๊ตฌ๋ถ„ํ•˜์—ฌ ๊ฐœ๋ฐœ ์ง„ํ–‰
  • github์— pushํ•  ๋•Œ, version์œผ๋กœ commit ๋ฉ”์„ธ์ง€๋ฅผ ์ž‘์„ฑํ•˜์—ฌ ํ˜‘์—… ์ง„ํ–‰

  • Front-end(ํŽ˜์ด์ง€๋ณ„ ๋ถ„๋‹ด) :
    • ์ตœ์˜์ˆ˜: ๋žœ๋”ฉํŽ˜์ด์ง€(HTML, CSS, Javascript), ๋‘˜๋Ÿฌ๋ณด๊ธฐ(HTML, CSS), ๋กœ๊ทธ์ธ/ํšŒ์›๊ฐ€์ž…(HTML, CSS), ์ง€๋„๋ณด๊ธฐ(HTML, CSS, Javascript(์ง€๋„API)), ์ŠคํŒŸ์ƒ์„ธ(CSS, Javascript),
    • ๊น€์ƒ๋ฐฑ: ํ•จ๊ป˜ํ•˜๊ธฐ(HTML, CSS), ์ŠคํŒŸ์ƒ์„ธ(HTML, CSS), ํ•จ๊ป˜ํ•˜๊ธฐ(CSS)
    • ๋ฐ•์šฉํ˜ธ: ์ง€๋„๋ณด๊ธฐ(HTML, CSS, Javascript(์ง€๋„API))
    • ๊น€ํ•˜์€: ๋งˆ์ดํŽ˜์ด์ง€(HTML, CSS)
  • Back-end : ๊น€์ƒ๋ฐฑ
  • ๋ฐฐํฌ : ๋ฉ‹์‚ฌ ์˜จ์•ค์˜คํ”„ ๊ฐ•์‚ฌ๋‹˜ ๋„์›€์œผ๋กœ ์ง„ํ–‰
  • ๊ธฐํš : ์ตœ์˜์ˆ˜

6. ํ•ต์‹ฌ ๊ธฐ๋Šฅ

  • ๋ฉ”์ธ ํŽ˜์ด์ง€ : Carousel ๊ธฐ๋Šฅ์„ ํ™œ์šฉํ•ด์„œ DB์— ์ €์žฅ๋œ ์—ฌํ–‰ ์ŠคํŒŸ์„ ์ž๋™์œผ๋กœ ๋ณด์—ฌ์ฃผ๊ธฐ

    • ํ•ด๋‹น ์ŠคํŒŸ์— ๋งˆ์šฐ์Šค๋ฅผ ์œ„์น˜์‹œํ‚ฌ ๋•Œ ์ŠคํŒŸ์˜ ์ข‹์•„์š” ๊ฐœ์ˆ˜ ํ‘œ์‹œ
    • ๋กœ๊ทธ์ธ ์‹œ ๋งˆ์ดํŽ˜์ด์ง€ ํ™”๋ฉด์„ ๋ณผ ์ˆ˜ ์žˆ๋„๋ก ์„ค์ •
    • ๋ฉ”์ธ ํŽ˜์ด์ง€ ๋ฉ”์„ธ์ง€๋ฅผ ํด๋ฆญํ•ด์„œ ๋‘˜๋Ÿฌ๋ณด๊ธฐ ํŽ˜์ด์ง€๋‚˜ ํ•จ๊ป˜ํ•˜๊ธฐ ํŽ˜์ด์ง€๋กœ ์ด๋™ํ•  ์ˆ˜ ์žˆ๋„๋ก ๊ตฌ์„ฑ
  • ์ง€๋„๋ณด๊ธฐ ํŽ˜์ด์ง€ : ์นด์นด์˜ค ์ง€๋„ API๋ฅผ ์ด์šฉํ•˜์—ฌ ์ง€๋„์œ„์˜ ์ŠคํŒŸ์„ ํด๋ฆญํ–ˆ์„ ๋•Œ, DB์— ์ €์žฅ๋˜์–ด ์žˆ๋Š” ํ•ด๋‹น ์ŠคํŒŸ์˜ ์ •๋ณด(์ด๋ฆ„, ์ง€์—ญ, ์ด๋ฏธ์ง€ ๋“ฑ) ๋ณด์—ฌ์ฃผ๋Š” ๊ธฐ๋Šฅ ๊ตฌ์„ฑ

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

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

    • ์นด์นด์˜ค ์ง€๋„ API๋กœ ํ•ด๋‹น ์ŠคํŒŸ์„ ์ง€๋„์œ„์— ๋ณด์—ฌ์ฃผ๊ธฐ
    • ๋กœ๊ทธ์ธ ์‹œ, ํ•ด๋‹น ์ŠคํŒŸ์— ๋Œ€ํ•œ ๋Œ“๊ธ€์„ ์ž‘์„ฑํ•  ์ˆ˜ ์žˆ๋„๋ก ๊ตฌํ˜„
    • ๋ณธ์ธ์ด ๋‚จ๊ธด ๋Œ“๊ธ€์ผ ๊ฒฝ์šฐ, ์‚ญ์ œ๊ฐ€ ๊ฐ€๋Šฅํ•˜๋„๋ก ์‚ญ์ œ ๋ฒ„ํŠผ ์ถœ๋ ฅ
  • ํ•จ๊ป˜ํ•˜๊ธฐ ํŽ˜์ด์ง€ : Spot On์˜ ์œ ์ €์ธ ๊ฒฝ์šฐ, ํ•จ๊ป˜ ์‚ฌ์ง„์„ ์ฐ์„ ๋™ํ–‰์„ ๊ตฌํ•  ์ˆ˜ ์žˆ๋Š” ๊ฒŒ์‹œํŒ CRUD ๊ตฌ์„ฑ

    • ์œ ์ €์ธ ๊ฒฝ์šฐ, ๊ฐ ๊ฒŒ์‹œ๊ธ€์— ๋Œ“๊ธ€์„ ๋‚จ๊ธธ ์ˆ˜ ์žˆ๋„๋ก ์„ค์ •
    • ๋Œ“๊ธ€ ์ž‘์„ฑ ์‹œ, ์ž‘์„ฑ์ž์—๊ฒŒ ๊ท“์†๋งํ•˜๊ธฐ๋ฅผ ์ฒดํฌํ•˜๊ณ  ์ž‘์„ฑํ•˜๋ฉด ๋Œ“๊ธ€ ์ž‘์„ฑ์ž์™€ ๊ฒŒ์‹œ๊ธ€ ์ž‘์„ฑ์ž๋งŒ์ด ๋Œ“๊ธ€์„ ํ™•์ธํ•  ์ˆ˜ ์žˆ๊ฒŒ ๊ธฐ๋Šฅ ๊ตฌํ˜„
    • ๊ฒ€์ƒ‰ ๊ธฐ๋Šฅ์œผ๋กœ ๊ฒŒ์‹œํŒ ์ œ๋ชฉ์œผ๋กœ ๊ฒ€์ƒ‰์ด ๊ฐ€๋Šฅํ•˜๊ฒŒ๋” ๊ตฌํ˜„ํ•˜๊ณ  ๊ฒŒ์‹œ๊ธ€ ์ˆœ์„œ ์ˆซ์ž๋ฅผ DB์˜ id๊ฐ€ ์•„๋‹Œ ์ˆœ์„œ๋Œ€๋กœ ๋‚˜์—ดํ•˜๊ฒŒ๋” ์„ค์ •
    • ๊ฒŒ์‹œํŒ pagination ๊ตฌํ˜„
  • ๋งˆ์ดํŽ˜์ด์ง€ : Spot On์˜ ์œ ์ €์ธ ๊ฒฝ์šฐ, ๋ณธ์ธ์ด ์ข‹์•„์š”๋ฅผ ๋ˆ„๋ฅธ ๋ชจ๋“  ์—ฌํ–‰ ์ŠคํŒŸ์„ ํ™•์ธํ•  ์ˆ˜ ์žˆ๋Š” ์œ„์‹œ๋ฆฌ์ŠคํŠธ ๊ตฌํ˜„

    • ๋งˆ์ดํŽ˜์ด์ง€์—์„œ๋„ ์œ ์ €๊ฐ€ ์ข‹์•„์š”๋ฅผ ๋ˆ„๋ฅธ ์—ฌํ–‰ ์ŠคํŒŸ์„ ํด๋ฆญํ•˜๋ฉด ์ŠคํŒŸ ์ƒ์„ธ ํŽ˜์ด์ง€๋ฅผ ํ™•์ธํ•  ์ˆ˜ ์žˆ๊ฒŒ ์„ค์ •
  • Django ์–ด๋“œ๋ฏผ ํŽ˜์ด์ง€ : ๋ชจ๋ธ ๋ณ„ ํ•„๋“œ ์„ค์ • ๋ฐ ๊ฒ€์ƒ‰๊ณผ ํ•„ํ„ฐ ๊ธฐ๋Šฅ ์ถ”๊ฐ€

    • 1:N๊ด€๊ณ„๋‚˜ 1:1๊ด€๊ณ„์˜ ๊ฒฝ์šฐ, ์‹ค์ œ ๋ชจ๋ธ์˜ ํ•„๋“œ๋ฅผ ์„ค์ •ํ•  ์ˆ˜ ์žˆ๋„๋ก ํ•„๋“œ ์„ค์ • ex) user__user__username

Team ACE's Projects

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.