๐ŸŒˆ ๊พธ๋ฉฐ์ค˜ ํ™ˆ์ฆˆ Project(์ง‘ ๊พธ๋ฏธ๊ธฐ ํด๋ก ) ํšŒ๊ณ 

Lee, Chankyuยท2021๋…„ 12์›” 3์ผ
0
post-thumbnail
post-custom-banner

๐ŸŒˆ ํ”„๋กœ์ ํŠธ ์†Œ๊ฐœ

1. ๊ฐœ์š”

  • ๋ˆ„๊ตฌ๋‚˜ ์ด์œ์ง‘์„ ๊พธ๋ฐ€ ์ˆ˜ ์žˆ๋„๋ก ์ธํ…Œ๋ฆฌ์–ด ๊ฐ€๊ตฌ & ์†Œํ’ˆ ์ •๋ณด๋ฅผ ์ œ๊ณตํ•˜๋Š” ์ง‘๊พธ๋ฏธ๊ธฐ ์‚ฌ์ดํŠธ๋ฅผ ํด๋ก ์ฝ”๋”ฉํ•˜๋ฉฐ ๊ฐœ๋ฐœ์ž๋กœ์จ์˜ ์ฒซ ํŒ€ ํ”„๋กœ์ ํŠธ๋ฅผ ์ง„ํ–‰ํ•˜์˜€๋‹ค.
  • ๊ธฐ์กด ์‚ฌ์ดํŠธ์˜ ๋Š๋‚Œ์„ ๋ฒ—์–ด๋‚˜ ์ข€ ๋” ํŽธ์•ˆํ•œ ๋Š๋‚Œ์„ ์ฃผ๊ธฐ ์œ„ํ•ด UI/UX๋ฅผ ๋ณ€๊ฒฝํ•˜์˜€๋‹ค.

2. ํ”„๋กœ์ ํŠธ ์ง„ํ–‰ ๊ธฐ๊ฐ„

  • 2021๋…„ 11์›” 1์ผ ~ 2021๋…„ 11์›” 12์ผ

3. ํ”„๋กœ์ ํŠธ ์ฐธ์—ฌ ์ธ์›

  • ํ”„๋ก ํŠธ์—”๋“œ 4๋ช…, ๋ฐฑ์—”๋“œ 2๋ช…

4. ๊ธฐ์ˆ  ์Šคํƒ

  • Front-End : JavaScript(ES6+), HTML/CSS, React.js, SASS
  • Back-End : Python, Django web framework, Bcrypt, JWT, MySQL
  • Common : AWS(EC2,RDS), RESTful API
  • ํ˜‘์—… Tool : Trello, Slack, Github, Notion, Postman, dbdiagram

๐ŸŒˆ Teamwork

1. Trello

  • ํ”„๋กœ์ ํŠธ์˜ ํ˜‘์—… ํˆด๋กœ Trello๋ฅผ ์‚ฌ์šฉํ•˜์˜€์œผ๋ฉฐ, ํฌ๊ฒŒ Backlog, This week, In Progress, Done 4๊ฐœ์˜ ์นดํ…Œ๊ณ ๋ฆฌ๋กœ ๋‚˜๋ˆ„์—ˆ๋‹ค.

  • ์œ„์™€ ๊ฐ™์ด ํšŒ์˜๋ก ์นดํ…Œ๊ณ ๋ฆฌ๋ฅผ ์ƒ์„ฑํ•˜์—ฌ ํ”„๋ก ํŠธ์—”๋“œ-๋ฐฑ์—”๋“œ ๊ฐ„ ์†Œํ†ต์ด ์›ํ™œ ํ•  ์ˆ˜ ์žˆ๋„๋ก ์ปค๋ฎค๋‹ˆ์ผ€์ด์…˜ํ•œ ๋‚ด์šฉ์€ ๋ชจ๋‘ ๊ธฐ๋ก ๋  ์ˆ˜ ์žˆ๊ฒŒ ํ•˜์˜€๋‹ค. ์Šคํƒ ๋“œ์—… ๋ฏธํŒ…, ์Šคํ”„๋ฆฐํ‹ฐ ๋ฏธํŒ…, ๊ทธ๋ฆฌ๊ณ  ๊ธฐํƒ€ ๊ณต์œ  ์‚ฌํ•ญ์— ๋Œ€ํ•œ ํ‹ฐ์ผ“์„ ๋”ฐ๋กœ ์ƒ์„ฑํ•˜์—ฌ ๋ชจ๋‘ ๊ธฐ๋ก ํ•˜์˜€๋‹ค.

2. Sprint meeting

  • ํ”„๋กœ์ ํŠธ ๊ธฐ๊ฐ„(2์ฃผ)๋™์•ˆ 1st_Sprint์™€ 2nd_Sprint๋กœ ๋‚˜๋ˆ„์–ด 2๋ฒˆ์˜ Sprint meeting์„ ์ง„ํ–‰ํ•˜์˜€๋‹ค.
  • ๊ฐ Sprint ๋งˆ๋‹ค To-Do list๋ฅผ ์ •ํ•˜๊ณ  ๊ตฌ์ฒด์ ์ธ ๊ณ„ํš์„ ์„ค์ •ํ•˜์˜€๋‹ค.
  • ๊ณ„ํš์— ๋งž๊ฒŒ Trello ํ‹ฐ์ผ“์„ ์„ธ๋ถ„ํ™”ํ•˜๊ณ  ํŒ€์›๊ฐ„ ์†Œํ†ต ๊ณ„ํš ๋ฐ ๋ฐฉ๋ฒ•์— ๋Œ€ํ•ด์„œ๋„ ์˜๋…ผํ•˜์˜€๋‹ค.

3. Daily Standup meeting

  • ๋งค์ผ ์•„์นจ 10์‹œ์— ์ง„ํ–‰๋˜์—ˆ์œผ๋ฉฐ, ์ „๋‚  ์ง„ํ–‰๋œ ์‚ฌํ•ญ, ์˜ค๋Š˜์˜ ์˜ˆ์ • ์ž‘์—…, ๋ชฉํ‘œ, Blocker ๋“ฑ์— ๊ณต์œ ํ•˜๋Š” meeting์„ ์ง„ํ–‰ํ•˜์˜€๋‹ค.

  • Trello ํšŒ์˜๋ก ์นดํ…Œ๊ณ ๋ฆฌ์˜ Standup-meeting ํ‹ฐ์ผ“์— ์ „๋‚  ํ‡ด๊ทผ ์ „๊นŒ์ง€ ๊ณต์œ  ์‚ฌํ•ญ์„ ๋ฏธ๋ฆฌ ์ •๋ฆฌ ํ•˜๋„๋ก ํ•˜์˜€์œผ๋ฉฐ, ๋ฏธํŒ… ์ „๊นŒ์ง€ ๊ณต์œ ๋œ ๋‚ด์šฉ์„ ์ฝ์–ด๋ณด๊ณ  ๋ฏธํŒ…์„ ์ง„ํ–‰ํ•˜์˜€๋‹ค.


๐ŸŒˆ ๋‚˜์˜ ์—ญํ• 

1. ๋ฉ”์ธํŽ˜์ด์ง€ ๋ฉ”๋‰ด ๋ฆฌ์ŠคํŠธ, ๋ฒ ์ŠคํŠธ30 ๊ตฌํ˜„

  • Menu, Category, SubCategory์˜ ๋ฐ์ดํ„ฐ๋ฅผ ํ˜ธ์ถœํ•˜์—ฌ ๋ฉ”์ธํŽ˜์ด์ง€์˜ ์นดํ…Œ๊ณ ๋ฆฌ ํ•ญ๋ชฉ์ด ๊ตฌํ˜„ ๋˜๋„๋ก ํ•˜์˜€๋‹ค.

  • ์ง‘๊พธ๋ฏธ๊ธฐ ๋ฒ ์ŠคํŠธ30์˜ ๊ฒฝ์šฐ ๋ณ„์ ์ด ๋†’์€ ์ˆœ์œผ๋กœ ๋ฐ์ดํ„ฐ๋ฅผ ํ˜ธ์ถœํ•˜์˜€์œผ๋ฉฐ, ์ƒํ’ˆ๋ฆฌ์ŠคํŠธAPI๋ฅผ ์‚ฌ์šฉํ•˜์˜€๋‹ค.

2. ์ƒํ’ˆ๋ฆฌ์ŠคํŠธ ์—”๋“œํฌ์ธํŠธ ๊ตฌํ˜„

  • Subcategory๋ณ„ ์ƒํ’ˆ์ •๋ณด๊ฐ€ ํ•œ ํŽ˜์ด์ง€์— 16๊ฐœ์”ฉ ๋…ธ์ถœ๋˜๋„๋ก ๊ตฌํ˜„ํ•˜์˜€์œผ๋ฉฐ, ๊ฐ€๊ฒฉ์ˆœ, ๋ฆฌ๋ทฐ์ˆœ, ๋ณ„์ ์ˆœ ๋“ฑ์œผ๋กœ filtering์ด ๊ฐ€๋Šฅํ•˜๋‹ค.

3. ์ฃผ๋ฌธ ์—”๋“œํฌ์ธํŠธ ๊ตฌํ˜„

  • ์ œํ•œ์ ์ธ ํ”„๋กœ์ ํŠธ์˜ ๊ธฐ๊ฐ„์œผ๋กœ ์ธํ•ด ํ”„๋ก ํŠธ์—์„œ ์ฃผ๋ฌธ ํŽ˜์ด์ง€๋ฅผ ๊ตฌํ˜„ํ•˜์ง€ ๋ชปํ–ˆ์ง€๋งŒ API ๊ตฌํ˜„์€ ์™„๋ฃŒํ•œ ๊ฒƒ์— ๋งŒ์กฑํ•œ๋‹ค.

  • ๋‹ค๋งŒ, ํ˜„์—…์— ์ ์šฉํ•  ์ˆ˜ ์žˆ์œผ๋ ค๋ฉด ๋งŽ์€ ๋ฆฌํŒฉํ† ๋ง๊ณผ ๊ณ ๋„ํ™”๊ฐ€ ํ•„์š”ํ•œ ์ƒํ™ฉ์ด๋‹ค. ์ด๋ฒˆ ํ”„๋กœ์ ํŠธ์—์„œ๋Š” ์ฃผ๋ฌธAPI์˜ flow์™€ ์ ์šฉ๋˜์–ด์•ผ ํ•˜๋Š” ๊ธฐ์ˆ , ์ด๋ก ์— ๋Œ€ํ•ด ๊ณต๋ถ€ ํ•  ์ˆ˜ ์žˆ์—ˆ๋˜ ๊ฒƒ์— ์˜์˜๋ฅผ ๋‘๊ณ  ์žˆ๋‹ค.


๐ŸŒˆ ๋Š๋‚€ ์ 

1. ์ž˜ํ•œ ์ 

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

  • blocker๊ฐ€ ์žˆ์„ ๊ฒฝ์šฐ ํŒ€์› ๋ชจ๋‘ ํ˜น์€ ๋ฐฑ์—”๋“œ๋ผ๋ฆฌ ๋…ผ์˜๋ฅผ ์ง„ํ–‰ํ•˜์—ฌ ๋น ๋ฅธ ์‹œ๊ฐ„์•ˆ์— ํ•ด๊ฒฐํ•˜์˜€๋‹ค. 2์ฃผ์ผ ๋‚ด๋‚ด ๋ชจ๋‘๊ฐ€ ์ž์‹ ์˜ ํ• ๋‹น๋Ÿ‰์„ ํ•˜๊ธฐ์—๋„ ๋ฒ…์ฐผ์ง€๋งŒ ์„œ๋กœ์—๊ฒŒ ๋„์›€์„ ์š”์ฒญํ•˜๋Š”๊ฒƒ์„ ์–ด๋ ค์›Œํ•˜์ง€ ์•Š๋„๋ก ๋ถ„์œ„๊ธฐ๋ฅผ ์กฐ์„ฑํ•˜์˜€๋‹ค.

  • API ๊ตฌ์ถ•์„ 2์ฃผ์ฐจ ์ดˆ๊ธฐ๊นŒ์ง€ 90ํ”„๋กœ ์ด์ƒ ์™„๋ฃŒํ•˜์—ฌ ํ”„๋ก ํŠธ์™€ ํ†ต์‹ ํ•˜๋ฉฐ ๋งž์ถฐ๊ฐ€๋Š” ๊ณผ์ •์„ ๊ธธ๊ฒŒ ์žก์„ ์ˆ˜ ์žˆ์–ด์„œ ํ”„๋ก ํŠธ ๋‹ด๋‹น์ž ๋ถ„๋“ค์—๊ฒŒ ์‹œ๊ฐ„์  ์—ฌ์œ ๋ฅผ ๋“œ๋ฆด ์ˆ˜ ์žˆ์—ˆ๋˜ ๊ฒƒ ๊ฐ™๋‹ค.

2. ๊ฐœ์„ ํ•  ์ 

  • ์ด๋ฒˆ ํ”„๋กœ์ ํŠธ๋ฅผ ์ง„ํ–‰ํ•˜๋ฉฐ ๊ฐ€์žฅ ํฌ๊ฒŒ ์•„์‰ฌ์› ๋˜ ์ ์€, ERD๊ฐ€ ๊ณ„์† ๋ณ€๊ฒฝ๋˜๊ณ  Database์˜ ์ˆ˜์ •์ด ๊ณ„์† ์ด๋ฃจ์–ด ์ง„ ์ ์ด๋‹ค. ์•„์ง์€ ๋ถ„๋ช… ๊ฒฝํ—˜์ด ๋ถ€์กฑํ•œ ์ ์ด ์žˆ๊ธฐ์— ์–ด์ฉ”์ˆ˜ ์—†๋‹ค๊ณ ๋Š” ์ƒ๊ฐํ•˜์ง€๋งŒ ์•ž์œผ๋กœ ์ด๋Ÿฌํ•œ ์‹œํ–‰์ฐฉ์˜ค๋ฅผ ์ค„์—ฌ๋‚˜๊ฐ€์•ผ ๊ฒ ๋‹ค๊ณ  ๋‹ค์งํ•˜์˜€๋‹ค.

  • API๋ฅผ ๊ตฌํ˜„ํ•จ์— ์žˆ์–ด์„œ POSTMAN์„ ํ†ตํ•ด ์›ํ•˜๋Š” data๋ฅผ ๋„์šฐ๋Š” ๊ฒƒ์—๋งŒ ์ง‘์ค‘ํ–ˆ๋˜ ๊ฒƒ ๊ฐ™๋‹ค. ๋ฐฑ์—”๋“œ ๊ฐœ๋ฐœ์ž๋ผ๋ฉด logging์„ ํ†ตํ•ด Query๋ฅผ ์ค„์ด๊ณ  ํšจ์œจ์ ์ธ API๋ฅผ ๊ตฌํ˜„ํ•˜๋Š” ๊ฒƒ์—๋„ ๋ฌด์กฐ๊ฑด ํฌ์ปค์‹ฑ์„ ํ•ด์•ผํ•œ๋‹ค๊ณ  ์ƒ๊ฐํ•œ๋‹ค. ๋ฌผ๋ก  ์ด๋ฒˆ ํ”„๋กœ์ ํŠธ์—์„œ๋„ logging์„ ํ•˜๊ณ  prefetch_related, select_related์˜ ๊ธฐ๋Šฅ์„ ์‚ฌ์šฉํ•˜์—ฌ query ์š”์ฒญ ํšŸ์ˆ˜๋ฅผ ๋น„์•ฝ์ ์œผ๋กœ ์ค„์ด๊ธด ํ•˜์˜€์œผ๋‚˜ ๋‹ค์Œ ํ”„๋กœ์ ํŠธ์—์„œ๋Š” ORM ์ตœ์ ํ™”์— ์ข€ ๋” ์ง‘์ค‘ํ•ด์•ผ ๊ฒ ๋‹ค๊ณ  ์ƒ๊ฐํ•˜์˜€๋‹ค.

profile
Backend Developer - "Growth itself contains the germ of happiness"
post-custom-banner

0๊ฐœ์˜ ๋Œ“๊ธ€