/ShareToDolistProject

๐ŸŒฑํ˜‘์—…์„ ์œ„ํ•œ ์‹ค์‹œ๊ฐ„ ๊ณต์œ ํ˜• To-Do List๐ŸŒฑ

Primary LanguageHTML

๐Ÿ“‹ WorkOurself ๐Ÿ“‹

Work hard, Try Ourself!


๐Ÿ”– ๋ชฉ์ฐจ

๋ชฉ์ฐจ
  1. โžค ์›น์„œ๋น„์Šค ์„ค๋ช…
  2. โžค ์‚ฌ์ดํŠธ
  3. โžค ๊ธฐ์ˆ  ์Šคํƒ
  4. โžค FE & BE ์—ญํ•  ๋ถ„๋‹ด
  5. โžค ๊ธฐํš & ์„ค๊ณ„
  6. โžค ๊ฐœ๋ฐœ ๊ธฐ๊ฐ„
  7. โžค PreView

๐Ÿ‘ฉโ€๐Ÿซ ์›น์„œ๋น„์Šค ์„ค๋ช…

Work Ourself ๋Š” ๊ฐœ์ธ ๋ฐ ํŒ€๋‹จ์œ„ ํ”„๋กœ์ ํŠธ์˜ ํƒœ์Šคํฌ๋ฅผ ๋“ฑ๋ก, ๊ณต์œ ํ•˜๊ณ  ๊ด€๋ฆฌํ•˜๋Š” ํ˜‘์—…์„ ์œ„ํ•œ ์„œ๋น„์Šค์ž…๋‹ˆ๋‹ค. ํŒ€์›๋“ค๊ณผ ํ˜‘์—… ๊ณผ์ •์—์„œ ํ•„์š”ํ•œ ๊ณผ์ œ๋“ค์„ To-Do List ํ˜•์‹์œผ๋กœ ๋“ฑ๋กํ•˜๊ณ  ๊ณต์œ ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ฒดํฌ๋ฆฌ์ŠคํŠธ๋ฅผ ์ฑ„์šฐ๋ฉฐ ์ง„ํ–‰ ์ƒํ™ฉ์„ ๊ณต์œ ํ•˜๊ณ , ์‹ค์‹œ๊ฐ„ ์ฑ„ํŒ…์„ ํ†ตํ•ด ์†Œํ†ตํ•˜๋ฉฐ ํšจ์œจ์ ์œผ๋กœ ํ”„๋กœ์ ํŠธ๋ฅผ ์ง„ํ–‰ํ•  ์ˆ˜ ์žˆ๋„๋ก ๋•๋Š” ์„œ๋น„์Šค์ž…๋‹ˆ๋‹ค.


๋ฉ”์ธํŽ˜์ด์ง€

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

ํ”„๋กœ์ ํŠธ ๋ฐฉ

  • ์‹ค์‹œ๊ฐ„ ์ฑ„ํŒ…
    • ๋ฐฉ์— ์ž…์žฅํ•˜๊ฒŒ ๋˜๋ฉด ๊ธฐ์กด์— ์ ‘์†ํ•ด์žˆ๋˜ ๋ฉค๋ฒ„๋“ค์—๊ฒŒ ์ž…์žฅ์ด ๊ณต์ง€๋ฉ๋‹ˆ๋‹ค.
    • ๋ฐฉ์—์„œ ๋‚˜๊ฐ€๊ฒŒ ๋˜๋ฉด ๋‚จ์•„์žˆ๋Š” ๋ฉค๋ฒ„๋“ค์—๊ฒŒ ํ‡ด์žฅ์ด ๊ณต์ง€๋ฉ๋‹ˆ๋‹ค.
    • ์‹ค์‹œ๊ฐ„ ์ฑ„ํŒ…์œผ๋กœ ํŒ€์›๋“ค๊ณผ ์†Œํ†ตํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
  • ๊ณต์œ ํ˜• To Do List
    • ๋ชจ๋“  ๋ฉค๋ฒ„๋Š” ์šฐ์ธก ํˆฌ๋‘๋ฆฌ์ŠคํŠธ์— ํƒœ์Šคํฌ๋ฅผ ๋“ฑ๋ก, ์ˆ˜์ •, ์‚ญ์ œํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
    • ํƒœ์ŠคํŠธ ์ˆ˜์ • ์‹œ ์ทจ์†Œ๋ฅผ ๋ˆ„๋ฅด๋ฉด ๋ณ€๊ฒฝ์‚ฌํ•ญ์€ ์ €์žฅ๋˜์ง€ ์•Š๊ณ  ์›๋ž˜ ํƒœ์Šคํฌ๋กœ ๋Œ์•„๊ฐ‘๋‹ˆ๋‹ค.
    • ๋‹ฌ์„ฑํ•œ ํƒœ์Šคํฌ๋ฅผ ์ฒดํฌ๋กœ ํ† ๊ธ€ํ•˜๋ฉด ๋‹ฌ์„ฑ๋ฅ ์ด ์˜ฌ๋ผ๊ฐ‘๋‹ˆ๋‹ค.
    • ๋ฐ˜๋Œ€๋กœ ์ฒดํฌ๋˜์–ด์žˆ๋˜ ํƒœ์Šคํฌ๋ฅผ ๋ฏธ๋‹ฌ์„ฑ ์ƒํƒœ๋กœ ๋˜๋Œ๋ฆฌ๋ฉด ๋‹ฌ์„ฑ๋ฅ ์ด ๋‚ด๋ ค๊ฐ‘๋‹ˆ๋‹ค.
    • ๋‹ฌ์„ฑ๋ฅ ์€ ๋“ฑ๋ก๋œ ํƒœ์Šคํฌ์˜ ์ด ๊ฐฏ์ˆ˜์— ๋”ฐ๋ผ ์ง€์ •๋ฉ๋‹ˆ๋‹ค. ๋”ฐ๋ผ์„œ ์‹ ๊ทœ ํƒœ์Šคํฌ๋ฅผ ๋“ฑ๋กํ•˜๊ฑฐ๋‚˜ ๊ธฐ์กด ํƒœ์Šคํฌ๋ฅผ ์‚ญ์ œํ•ด๋„ ๋‹ฌ์„ฑ๋ฅ ์ด ์˜ค๋ฅด๊ฑฐ๋‚˜ ๋‚ด๋ฆด ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
    • ๋ชจ๋“  ๋ณ€๊ฒฝ์‚ฌํ•ญ์€ ์‹ค์‹œ๊ฐ„์œผ๋กœ ํŒ€์›๋“ค๊ณผ ๊ณต์œ ๋ฉ๋‹ˆ๋‹ค.

๐Ÿ’ป ์‚ฌ์ดํŠธ


๐Ÿ—ƒ ๊ธฐ์ˆ  ์Šคํƒ

FE

  • Javascript, Tailwind

BE

  • Python 3.8, Flask
  • NodeJS, Express
  • MySQL
  • AWS LightSail, Route53
  • Docker + Nginx

๐Ÿ‘จโ€๐Ÿ’ป FE & BE ์—ญํ•  ๋ถ„๋‹ด

ํ”„๋กœ์ ํŠธ ์นธ๋ฐ˜๋ณด๋“œโœจ

FE, BE


๐Ÿ‘ฉโ€๐Ÿ’ป ๊ธฐํš & ์„ค๊ณ„

  • โš™ DB ๋ช…์„ธ์„œ
แ„‰แ…ณแ„แ…ณแ„…แ…ตแ†ซแ„‰แ…ฃแ†บ 2021-11-11 แ„‹แ…ฉแ„’แ…ฎ 3 30 38แ„‰แ…ณแ„แ…ณแ„…แ…ตแ†ซแ„‰แ…ฃแ†บ 2021-11-11 แ„‹แ…ฉแ„’แ…ฎ 3 35 53

  • ๐Ÿ“ API

ํšŒ์›๊ฐ€์ž…

method uri
POST /signin
{
  request: {
    id: ""
    pwd: ""
  }
 response: STATUS:302, URL: "/login"
}

์•„์ด๋”” ์ค‘๋ณต์ฒดํฌ

method uri
POST /emilcheck
{
 request: {
   email : ""
 }
 response: {
   jsonify(ok = response)
 }
 // response = true / false
}

๋กœ๊ทธ์ธ

method uri
POST /login
{
 request: {
   id : ""
   pwd : ""
 }
 response: {
   login: True
   roomList : []
 }
 // STATUS : 302
 // URL : "/"
}

ํ”„๋กœ์ ํŠธ ๋ฐฉ ์ž…์žฅ

method uri
GET /todolist/<roomId>
{
 response: {
   user: session.get(user),
   roomId: "",
   roomName: ""
 }
}

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

  • ver 1. (2021/02 ~ 2021/05)

๐ŸŽ‡ PreView

๐ŸŽ‡ Signin && Login

๋กœ๊ทธ์ธ

๐ŸŽ‡ Room Search && Create

๋ฐฉ์ƒ์„ฑ

๊ฒ€์ƒ‰

๐ŸŽ‡ Chat

์ฑ„ํŒ…

๐ŸŽ‡ To DO CRUD

ํˆฌ๋‘