NULLFICTION ํ”„๋กœ์ ํŠธ 4 - ๐Ÿ’ซ 1์ฐจ ํŒ€ ํ”„๋กœ์ ํŠธ ์ตœ์ข… ํ›„๊ธฐ

๋ฌธ์Šน์ค€ยท2021๋…„ 10์›” 24์ผ
0

Wecode Project

๋ชฉ๋ก ๋ณด๊ธฐ
4/8
post-thumbnail

์ด์ „ ๊ธ€๋“ค์€ ๊ธฐ์ˆ ์ ์œผ๋กœ ๋ฐฐ์šด์ ๊ณผ ๋Š๋‚€์ ์„ ์ •๋ฆฌํ–ˆ๋Š”๋ฐ, ๋งˆ์ง€๋ง‰์€ 1์ฐจ ํŒ€ ํ”„๋กœ์ ํŠธ ๊ณผ์ • ์ „์ฒด์— ๋Œ€ํ•œ ์†Œ๊ฐœ์™€ ์†Œ๊ฐ์„ ๋‚จ๊ธฐ๊ณ ์ž ํ•œ๋‹ค.

์‹œ์—ฐ์˜์ƒ

ํ”„๋กœ์ ํŠธ ๊ฐœ์š”

  • ํ”„๋กœ์ ํŠธ ๋ฐ ํŒ€๋ช…

    • NULLFICTION
  • ํ”„๋กœ์ ํŠธ ์†Œ๊ฐœ

    • ๋…ผํ”ฝ์…˜์„ ๋ชจํ‹ฐ๋ธŒ๋กœ ๋‹ค์–‘ํ•œ ์นดํ…Œ๊ณ ๋ฆฌ์˜ ํ–ฅ์ˆ˜์™€ ๋ฐ”๋””์ผ€์–ด ์ œํ’ˆ์„ ํŒ๋งคํ•˜๋Š” ์ปค๋จธ์Šค ์‚ฌ์ดํŠธ
  • ํ”„๋กœ์ ํŠธ ์„ ์ • ์ด์œ 

    • E-commerce ์‚ฌ์ดํŠธ์˜ ์ผ๋ถ€ ๊ธฐ๋Šฅ์„ ๊ตฌํ˜„ํ•˜๋ฉฐ ํ˜‘์—… ๋Šฅ๋ ฅ๊ณผ ๊ธฐ์ˆ  ์—ญ๋Ÿ‰์˜ ์„ฑ์žฅ์„ ๋ชฉํ‘œ๋กœํ•จ

    • ๊ธฐํš ๋ฐ ๋””์ž์ธ ๊ณผ์ •์„ ์ค„์ด๊ณ  ๊ฐœ๋ฐœ์— ์ง‘์ค‘ํ•˜๊ธฐ ์œ„ํ•ด ๋…ผํ”ฝ์…˜ ์‚ฌ์ดํŠธ๋ฅผ ์ฐธ๊ณ ํ•จ

  • ๊ฐœ๋ฐœ ์ธ์› ๋ฐ ๊ธฐ๊ฐ„

    • 2021/10/05 ~ 10/15 (11์ผ๊ฐ„)

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

  • ๊ฐœ๋ฐœ ๋ฐฉ์‹

    • Scrum ๋ฐฉ์‹์œผ๋กœ Sprint ๋‹จ์œ„๋Š” 1์ฃผ์ผ๋กœ ์ง„ํ–‰

    • Sprint planning๊ณผ Daily meeting ์ง„ํ–‰

  • ์ ์šฉ ๊ธฐ์ˆ 

    • Front-end : React, JSX, SCSS

    • Back-end : Python, Django, JWT, Bcrypt

    • Database : dbdiagram.io, MySQL, TablePlus

    • Common : Trello, Slack, Git & Github

  • ๊ตฌํ˜„ ๊ธฐ๋Šฅ

    • ํšŒ์›๊ฐ€์ž…, ๋กœ๊ทธ์ธ

    • ์นดํ…Œ๊ณ ๋ฆฌ๋ณ„ ์ƒํ’ˆ (ํ•„ํ„ฐ๋ง, ํŽ˜์ด์ง€๋„ค์ด์…˜)
      - ๋‚ด๊ฐ€ ๋งก์€ ๋ถ€๋ถ„

    • ๋ฒ ์ŠคํŠธ์…€๋Ÿฌ ๋ชฉ๋ก
      - ๋‚ด๊ฐ€ ๋งก์€ ๋ถ€๋ถ„

    • ์ƒํ’ˆ๋ช… ๊ฒ€์ƒ‰
      - ๋‚ด๊ฐ€ ๋งก์€ ๋ถ€๋ถ„

    • ์ƒํ’ˆ ์ƒ์„ธ ํŽ˜์ด์ง€
      - ๋‚ด๊ฐ€ ๋งก์€ ๋ถ€๋ถ„

    • ์žฅ๋ฐ”๊ตฌ๋‹ˆ ๋‹ด๊ธฐ, ์กฐํšŒ, ์ถ”๊ฐ€, ์‚ญ์ œ
      - ๊ฐ์ž ๋กœ์ง์„ ์ž‘์„ฑํ•˜๊ณ  ํ•ฉ์น˜๋Š” ๋ฐฉ์‹์œผ๋กœ ์ง„ํ–‰ํ•จ

  • API Documentation
    POSTMAN ๋ฌธ์„œ ๋งํฌ


ํŒ€ ํ”Œ๋ ˆ์ด

Agile๊ณผ Scrum

  • ๋ง๋กœ๋งŒ ๋“ฃ๋˜ Agile๊ณผ Scrum

    • Trello๋ฅผ ํ™œ์šฉํ•ด 2๋ฒˆ์˜ Sprint๋ฅผ ์ง„ํ–‰ํ–ˆ๋‹ค.

    • ๋งค๋ฒˆ ๋ฌผ์–ด๋ณด์ง€ ์•Š์•„๋„ ์„œ๋กœ์˜ ์ง„ํ–‰ ์ƒํ™ฉ์„ ์•Œ ์ˆ˜ ์žˆ์—ˆ๊ณ , ์ฃผ๊ฐ„ ๊ณ„ํš ๋‹จ์œ„๋กœ ์›€์ง์ด๋ฉฐ ๊ฐœ๋ฐœ์— ์ง‘์ค‘ํ•  ์ˆ˜ ์žˆ์—ˆ๋‹ค.

    • ํ•„์š”ํ•œ ๋…ผ์˜๋Š” ๋งค์ผ ํšŒ์˜์‹œ๊ฐ„์— ํ•  ์ˆ˜ ์žˆ์–ด์„œ ๋‹ค๋ฅธ ์‹œ๊ฐ„์—๋Š” ๊ฐ์ž ๊ฐœ๋ฐœ์— ์ง‘์ค‘ ํ•  ์ˆ˜ ์žˆ์—ˆ๋‹ค.

  • ์ •๋ง๋กœ Agile ํ–ˆ๋‚˜?

    • ์ฒซ ํŒ€ํ”„๋กœ์ ํŠธ์—ฌ์„œ ํ•œ๋ฒˆ์˜ ์Šคํ”„๋ฆฐํŠธ ํ˜น์€ ํ•˜๋ฃจ์— ๋‚ด๊ฐ€ ํ•  ์ˆ˜์žˆ๋Š” ๋ถ„๋Ÿ‰์„ ์˜ˆ์ธกํ•˜๊ธฐ ์–ด๋ ค์› ๋‹ค.

    • ์„œ๋กœ์˜ ์ง„ํ–‰ ์‚ฌํ•ญ์€ ์ž˜ ๊ณต์œ ๋˜์—ˆ์ง€๋งŒ, ํŒ€ ์ „์ฒด ์ง„ํ–‰ ์ƒํ™ฉ์„ ํŒŒ์•…ํ•˜๊ณ  ๋‚˜์˜ ์ž‘์—…์„ ๋งž์ถ”์–ด๊ฐ€๋Š” ๋ถ€๋ถ„์ด ๋ฏธํกํ–ˆ๋˜ ๊ฒƒ ๊ฐ™๋‹ค.

    • Blocker๋ฅผ ๊ณต์œ ํ•˜๋Š” ๋ถ€๋ถ„์ด ์ต์ˆ™์น˜ ์•Š์•„์„œ ํ˜ผ์ž๋งŒ ๋™๋™ ์•“๋˜ ๋ฌธ์ œ๋“ค์ด ์žˆ์—ˆ๋‹ค. ํ•จ๊ป˜ ํ•ด๊ฒฐํ•  ๋ฌธ์ œ๋Š” ๋” ์ ๊ทน์ ์œผ๋กœ ๊ณต์œ ํ•ด์•ผ ๊ฒ ๋‹ค.

ํšŒ์˜๋ก๊ณผ API ๋ฌธ์„œ

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

  • API ๊ฐœ๋ฐœ์„ ์‹œ์ž‘ํ•˜๋ฉด์„œ๋ถ€ํ„ฐ Postman์œผ๋กœ Integration Test๋ฅผ ํ–ˆ๊ณ  ๊ทธ ๊ณผ์ •์„ ๋ชจ๋‘ ๋ฌธ์„œํ™”ํ•ด๋‘์—ˆ๋‹ค. ๋ฌธ์„œ ์ž‘์—…์— ๋งŽ์€ ์‹œ๊ฐ„์„ ํˆฌ์žํ•˜๊ณ  ์‹ถ์ง„ ์•Š์•˜๋Š”๋ฐ, ์‚ฌ์šฉ๋ฒ•์ด ์ต์ˆ™ํ•ด์ง€๋‹ˆ ์–ด๋ ต์ง€ ์•Š๊ฒŒ API Documentation์„ ๋‚จ๊ธธ ์ˆ˜ ์žˆ์—ˆ๋‹ค.

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


๋‚ด๊ฐ€ ํ•ด๋‚ธ ๊ฒƒ๋“ค

  • "์ƒํ’ˆ ๊ด€๋ จ API ๊ฐœ๋ฐœ"

    • ์ƒํ’ˆ ๊ด€๋ จ ๋ฐ์ดํ„ฐ๋ฅผ ๊ด€๋ฆฌํ•˜๊ณ  ํด๋ผ์ด์–ธํŠธ์˜ ์š”์ฒญ์— ๋”ฐ๋ผ ์ ์ ˆํ•œ ๋ฐ์ดํ„ฐ๋ฅผ ์ „์†กํ•ด์ฃผ๋Š” API๋ฅผ ๋งŒ๋“œ๋Š” ๊ฒƒ์ด ๋‚˜์˜ ์ฃผ์š” ์—ญํ• ์ด์—ˆ๋‹ค. ์žฅ๊ณ ๋ฅผ ์ž˜ ํ™œ์šฉํ•ด์„œ ๋กœ์ง์„ ์ž‘์„ฑํ•˜๋Š” ๊ฒƒ๋„ ์ค‘์š”ํ•˜๊ฒ ์ง€๋งŒ ์šฐ์„ ์€ ๋‚ด๊ฐ€ ๋‹ค๋ฃจ๊ฒŒ ๋  ์ƒํ’ˆ์ด๋‚˜ ์„œ๋น„์Šค๋ฅผ ์ž˜ ์ดํ•ดํ•˜๊ณ ์ž ํ–ˆ๋‹ค. ๊ฐœ๋ฐœ์ž์ด๊ธฐ ์ด์ „์— ํ•˜๋‚˜์˜ ์ด์ปค๋จธ์Šค ํšŒ์‚ฌ์˜ ์ผ์›์ด๋ผ๋Š” ๋งˆ์Œ๊ฐ€์ง์œผ๋กœ ์—ด์ •์ ์œผ๋กœ ์ž„ํ–ˆ๋‹ค.

    • Django์˜ ๊ณต์‹ ํ™ˆํŽ˜์ด์ง€์— ๊ฐ€๋ฉด "Django makes it easier to build better web apps more quickly and with less code." ๋ผ๋Š” ๊ธ€๊ท€๊ฐ€ ์žˆ๋‹ค. ์ฒ˜์Œ ์žฅ๊ณ ๋ฅผ ์ ‘ํ–ˆ์„๋• ์ด๊ฒŒ ์‰ฌ์šด๊ฑฐ๋ผ๊ณ ? ๋ผ๋Š” ์ƒ๊ฐ์ด ๋“ค์—ˆ์ง€๋งŒ ์ „์ฒด ํ๋ฆ„์„ ์ดํ•ดํ•˜๊ณ  ๊ธฐ๋Šฅ์„ ๊ตฌํ˜„ํ•ด๋ณด๋‹ˆ Django์˜ ์žฅ์ ์„ ๋Š๋‚„ ์ˆ˜ ์žˆ์—ˆ๋‹ค. ์•„์ง ๋‹ค๋ฅธ ํ”„๋ ˆ์ž„์›Œํฌ๋ฅผ ์จ๋ณด์ง€ ์•Š์•„ ์ง์ ‘ ๋น„๊ต๋Š” ์–ด๋ ต์ง€๋งŒ, ๋‚ด๊ฐ€ ์ƒ์ƒํ–ˆ๋˜ ๊ฒƒ ์ด์ƒ์œผ๋กœ ์žฅ๊ณ ๋Š” ๋งŽ์€ ๊ธฐ๋Šฅ์„ ์ œ๊ณตํ•˜๊ณ  ์žˆ์—ˆ๊ณ  ๋‚˜๋Š” ๊ทธ๊ฒƒ์„ ์ž˜ ํ™œ์šฉํ•˜๊ธฐ์œ„ํ•ด ๋…ธ๋ ฅํ–ˆ๋‹ค.

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

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


  • "์žฅ๋ฐ”๊ตฌ๋‹ˆ ๊ด€๋ จ API ๊ณต๋™ ๊ฐœ๋ฐœ"

    • ์›๋ž˜ ๋‚ด๊ฐ€ ๋งก์€ ๋ถ€๋ถ„์€ ์•„๋‹ˆ์—ˆ์ง€๋งŒ, ๋‹ด๋‹นํ–ˆ๋˜ ๊ธฐ๋Šฅ ๊ตฌํ˜„์ด ์™„๋ฃŒ๋œ ์ƒํ™ฉ์ด๋ผ ํ•จ๊ป˜ ๊ฐœ๋ฐœ์„ ์ง„ํ–‰ํ–ˆ๋‹ค. ์ผ์ข…์˜ Pair Programming ๋ฐฉ์‹์œผ๋กœ ๋‚ด๊ฐ€ ๋„ค๋น„๊ฒŒ์ดํ„ฐ ์—ญํ• ์„ ๋งก์•„์„œ ํ•จ๊ป˜ ๊ณ ๋ฏผํ•˜๊ณ  ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•ด๊ฐ”๋‹ค. ๋‹ค๋ฅธ ์‚ฌ๋žŒ์ด ์ƒ๊ฐํ•˜์ง€ ๋ชปํ•œ ์ƒํ™ฉ์ด๋‚˜ ๋ฐฉ๋ฒ•์„ ์•Œ ์ˆ˜ ์žˆ์—ˆ๊ณ , ์„œ๋กœ์—๊ฒŒ ํฐ ๋„์›€์ด ๋˜์—ˆ๋˜ ์‹œ๊ฐ„์ด์—ˆ๋‹ค.

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


  • "๋ฐ์ดํ„ฐ ์ž…๋ ฅ"

    • CSV ํŒŒ์ผ๊ณผ db_uploader.py๋ฅผ ์ž‘์„ฑํ•ด ๋ฐ์ดํ„ฐ๋ฅผ DB์— ์ž…๋ ฅํ–ˆ๋‹ค. Numbers๋กœ ํ…Œ์ด๋ธ”์„ ๋งŒ๋“ค๊ณ  ์ •๋ณด๋ฅผ ์ž…๋ ฅํ•œ ํ›„ csv ํŒŒ์ผ๋กœ ๋ณ€ํ™˜ํ–ˆ๋‹ค. ์ƒ๊ฐ๋ณด๋‹ค ๊น”๋”ํ•˜๊ณ  ๋น ๋ฅด๊ฒŒ ๋ฐ์ดํ„ฐ๊ฐ€ ์ž…๋ ฅ๋˜์–ด์„œ ํฅ๋ฏธ๋กญ๊ฒŒ ์ž‘์—…ํ–ˆ๋˜ ๊ฒƒ ๊ฐ™๋‹ค.

    • ์ƒํ’ˆ ์ƒ์„ธ ์ •๋ณด์˜ Text๊ฐ€ ๋งŽ๋‹ค๋ณด๋‹ˆ๊นŒ, ํ„ฐ๋ฏธ๋„๋กœ MySQL DB๋ฅผ ๊ด€๋ฆฌํ•˜๊ธฐ๊ฐ€ ๊ต‰์žฅํžˆ ๋ถˆํŽธํ–ˆ๋‹ค. ๊ธ€์”จ ํฌ๊ธฐ๋ฅผ ์ค„์ด๊ณ  ์ฐฝ์„ ๋งž์ถ”๋ฉด ๊ฐ€๋Šฅํ•˜๊ธดํ–ˆ์ง€๋งŒ, ๋ฐ์ดํ„ฐ ์ž…๋ ฅ์€ ํ”„๋กœ์ ํŠธ ๊ธฐ๋Šฅ๊ตฌํ˜„์„ ์œ„ํ•ด ํ•„์š”ํ•  ๋ฟ์ด๋ผ์„œ ๋งŽ์€ ์‹œ๊ฐ„์„ ํˆฌ์žํ•˜์ง€ ์•Š๊ธฐ๋กœ ํ–ˆ๋‹ค. ๋”ฐ๋ผ์„œ ๋ฐ์ดํ„ฐ์˜ ๋‚ด์šฉ์„ ์ˆ˜์ •ํ• ๋• MySQL Workbench๋‚˜ Table Plus๋ฅผ ์ ๊ทน์ ์œผ๋กœ ํ™œ์šฉํ–ˆ๋‹ค. ๋ฌด์—‡๋ณด๋‹ค ์ง์ ‘ ๋ˆˆ์œผ๋กœ SQL ์ฟผ๋ฆฌ๋ฅผ ๋ณผ ์ˆ˜ ์žˆ๋‹ค๋Š” ์ ์ด ์ข‹์•˜๋‹ค. ๊ฐ๊ฐ์˜ ์žฅ๋‹จ์ ์ด ์žˆ์—ˆ๋Š”๋ฐ ํ•„์š”์— ๋”ฐ๋ผ ์ ์ ˆํžˆ ์ด์šฉํ•˜๋ฉฐ ๋งŽ์ด ์ต์ˆ™ํ•ด์งˆ ์ˆ˜ ์žˆ์—ˆ๋‹ค.


  • "๋ฐฑ์—”๋“œ ํ”„๋กœ์ ํŠธ ๋ฐœํ‘œ"

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

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


1์ฐจ ํŒ€ ํ”„๋กœ์ ํŠธ ํ›„๊ธฐ

  • "๊ฐœ๋ฐœ์€ ํ˜ผ์ž๊ฐ€ ์•„๋‹ˆ๋ผ ํ•จ๊ป˜ํ•˜๋Š” ๊ฒƒ"

    • ์ •๋ง ์ข‹์€ ํŒ€์›๋“ค์„ ๋งŒ๋‚˜์„œ ํ˜‘์—… ๊ณผ์ • ์ž์ฒด๊ฐ€ ์ฆ๊ฑฐ์› ๋‹ค. ์ž์œ ๋กญ๊ฒŒ ์˜๊ฒฌ๊ณผ ์ง€์‹์„ ๋‚˜๋ˆŒ ์ˆ˜ ์žˆ๋Š” ๋ถ„์œ„๊ธฐ์˜€๊ณ  ๊ฐœ์ธ์ ์œผ๋กœ๋„ ์นœํ•ด์งˆ ์ˆ˜ ์žˆ๋Š” ๊ณ„๊ธฐ๊ฐ€ ๋œ ๊ฒƒ ๊ฐ™๋‹ค. ๊ณต์‹์ ์ธ PM์ด ์—†์–ด๋„ ๊ฐ์ž์˜ ๋งก์€ ๋ถ„์•ผ์—์„œ ์ ๊ทน์ ์œผ๋กœ ํ–‰๋™ํ–ˆ๊ธฐ์— ์›ํ™œํ•˜๊ฒŒ ์ง„ํ–‰๋  ์ˆ˜ ์žˆ์—ˆ๋‹ค.

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

  • "๊ธฐ์ˆ ์ ์œผ๋กœ ์„ฑ์žฅํ–ˆ๊ณ  ์ž์‹ ๊ฐ์ด ์ƒ๊ฒผ๋‹ค"

    • ํ˜ผ์ž์„œ ๊ณต๋ถ€๋ฅผ ํ•˜๋Š” ๊ฒƒ๊ณผ ํ”„๋กœ์ ํŠธ๋ฅผ ์œ„ํ•œ ๊ธฐ์ˆ ์  ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•˜๋Š” ๊ฒƒ์€ ์•„์ฃผ ํฐ ์ฐจ์ด๊ฐ€ ์žˆ์—ˆ๋‹ค. ๋ชจ๋“  ๊ธฐ์ˆ ์€ ๊ฒฐ๊ตญ ๋ฌด์–ธ๊ฐ€๋ฅผ ํ•ด๊ฒฐํ•˜๊ธฐ ์œ„ํ•ด ์กด์žฌํ•˜๊ณ , ๋ฌธ์ œ๊ฐ€ ์—†๊ฑฐ๋‚˜ ๋ฌด์—‡์ด ๋ฌธ์ œ์ธ์ง€ ๋ชจ๋ฅด๋Š” ์‚ฌ๋žŒ์—๊ฒŒ๋Š” ๊ธฐ์ˆ ์ด ํฐ ๊ฐ€์น˜๊ฐ€ ์—†๋‹ค. Nullfiction ํ”„๋กœ์ ํŠธ๋Š” ๋‚ด๊ฐ€ ๋งˆ์ฃผ์นœ ๋ฌธ์ œ๋ฅผ ๋ถ„์„ํ•˜๊ณ  ๊ทธ๊ฒƒ์„ ํ•ด๊ฒฐํ•ด์ค„ ๊ธฐ์ˆ ์„ ์ฐพ์•„๋‹ค๋‹ˆ๋Š” ๊ณผ์ •์˜ ์—ฐ์†์ด์—ˆ๋‹ค. ๋‚ด๊ฐ€ ์•Œ์•„๋‚ธ ๊ธฐ์ˆ ์„ ํ”„๋กœ์ ํŠธ์— ์ ์šฉํ•˜๋ฉฐ ๋”์šฑ ๊ฐ€์น˜์žˆ๊ฒŒ ๋งŒ๋“ค๊ธฐ์œ„ํ•ด ๋…ธ๋ ฅํ–ˆ๋‹ค.

    • ์ฒ˜์Œ์—” ์–ด๋–ป๊ฒŒ ์‹œ์ž‘ํ•ด์•ผํ• ์ง€ ๋ง‰๋ง‰ํ•˜๊ธฐ๋„ ํ•˜๊ณ  ๋‹ต๋‹ตํ•œ ๋งˆ์Œ์— ๊ฒ€์ƒ‰๋งŒ ๊ณ„์†ํ•ด์„œ ํฌ๋กฌ ๋ธŒ๋ผ์šฐ์ € ํƒญ์„ ์Œ“์•„๋‘๊ณค ํ–ˆ๋‹ค. ํ•˜์ง€๋งŒ ์กฐ๊ธˆ์”ฉ ์ž‘์€ ๋ฌธ์ œ๋ผ๋„ ํ•ด๊ฒฐํ•ด๊ฐ€๋ฉด์„œ ์ž์‹ ๊ฐ์ด ์ƒ๊ฒผ๊ณ  ๊ฐœ๋ฐœ์— ์†๋„๊ฐ€ ๋ถ™๊ธฐ ์‹œ์ž‘ํ–ˆ๋‹ค. ์žฅ๊ณ  ์‰˜์—์„œ ์ˆ˜๋งŽ์€ ์ฟผ๋ฆฌ์…‹ ๋ฉ”์†Œ๋“œ๋ฅผ ์‚ฌ์šฉํ•ด๋ณด๊ธฐ๋„ ํ•˜๊ณ , logging์œผ๋กœ raw SQL๋ฌธ์„ ๋“ค์—ฌ๋‹ค ๋ณด๊ธฐ๋„ํ–ˆ๋‹ค. ํ™•์‹คํžˆ ์žฅ๊ณ ์™€ ๋งŽ์ด ์นœํ•ด์ง„ ๊ฒƒ ๊ฐ™๊ณ  ๋‚˜๋ฆ„ ์ฆ๊ฑฐ์šด ์‹œ๊ฐ„์„ ๋ณด๋ƒˆ๋‹ค. ๊ฐ€๋”์€ python์˜ ์ž‘๋™์›๋ฆฌ๋ฅผ ์ฐพ์•„๋ณด๋ฉฐ ํฅ๋ฏธ๋กœ์šด ์‹œ๊ฐ„์„ ๋ณด๋‚ด๊ธฐ๋„ ํ–ˆ๊ณ  Postman์œผ๋กœ ํ…Œ์ŠคํŠธ์— ์„ฑ๊ณตํ–ˆ์„๋•Œ๋Š” ์†์œผ๋กœ ํ™˜ํ˜ธ์„ฑ์„ ์ง€๋ฅผ๋•Œ๋„ ์žˆ์—ˆ๋‹ค. ์ด๋Ÿฐ ๊ณผ์ •์„ ๊ฒช์œผ๋ฉฐ "๋ฐฑ์—”๋“œ๋ฅผ ์„ ํƒํ•˜๊ธธ ์ž˜ํ–ˆ๋‹ค", "์ด๋Œ€๋กœ๋งŒ ํ•˜๋ฉด ์ •๋ง ๊ฐœ๋ฐœ์ž๊ฐ€ ๋  ์ˆ˜ ์žˆ๊ฒ ๋‹ค"๋Š” ํ™•์‹ ๊ณผ ์ž์‹ ๊ฐ์ด ์ƒ๊ฒผ๋‹ค.


  • "ํ• ์ผ์ด ๋Š˜์–ด๋‚ฌ๋‹ค"

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

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

profile
๊ฐœ๋ฐœ์ž๊ฐ€ ๋  ํŒ”์ž

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