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

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

Wecode Project

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

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

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

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

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

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

    • ์ดฌ์˜ ์žฅ์†Œ ์˜ˆ์•ฝ ํ”Œ๋žซํผ HourPlace๋ฅผ ๋ชจํ‹ฐ๋ธŒ๋กœ ํ•œ ํŒ€ ํ”„๋กœ์ ํŠธ
  • ํ”„๋กœ์ ํŠธ ์„ ์ • ์ด์œ 

    • ์žฅ์†Œ ์˜ˆ์•ฝ ์‚ฌ์ดํŠธ์˜ ์ผ๋ถ€ ๊ธฐ๋Šฅ์„ ๊ตฌํ˜„ํ•˜๋ฉฐ ํ˜‘์—… ๋Šฅ๋ ฅ๊ณผ ๊ธฐ์ˆ  ์—ญ๋Ÿ‰์˜ ์„ฑ์žฅ์„ ๋ชฉํ‘œ๋กœํ•จ
    • ๊ธฐํš ๋ฐ ๋””์ž์ธ ๊ณผ์ •์„ ์ค„์ด๊ณ  ๊ฐœ๋ฐœ์— ์ง‘์ค‘ํ•˜๊ธฐ ์œ„ํ•ด ์•„์›Œํ”Œ๋ ˆ์ด์Šค ์‚ฌ์ดํŠธ๋ฅผ ์ฐธ๊ณ ํ•จ
  • ๊ฐœ๋ฐœ ์ธ์› ๋ฐ ๊ธฐ๊ฐ„

    • 2021/10/18 ~ 10/29 (12์ผ๊ฐ„)
    • ํ”„๋ก ํŠธ์—”๋“œ 3๋ช… Repository, ๋ฐฑ์—”๋“œ 2๋ช… Repository
  • ๊ฐœ๋ฐœ ๋ฐฉ์‹

    • Scrum ๋ฐฉ์‹์œผ๋กœ Sprint ๋‹จ์œ„๋Š” 1์ฃผ์ผ๋กœ ์ง„ํ–‰
    • Sprint planning๊ณผ Daily meeting ์ง„ํ–‰
  • ์ ์šฉ ๊ธฐ์ˆ 

    • Front-end : React, HTML5, CSS3 , Styled Components
    • Back-end : Python, Django, JWT, Bcrypt, EC2, RDS
    • Database : dbdiagram.io, MySQL, TablePlus
    • Communication : Git, GitHub, Trello, Slack, PostMan
  • ๊ตฌํ˜„ ๊ธฐ๋Šฅ

    • ๋‚ด๊ฐ€ ๋งก์€ ๋ถ€๋ถ„

      • ์นด์นด์˜ค API์„ ํ™œ์šฉํ•ด ์†Œ์…œ ํšŒ์›๊ฐ€์ž… ๋ฐ ๋กœ๊ทธ์ธ ๊ธฐ๋Šฅ

      • JWT๋ฅผ ์‚ฌ์šฉํ•œ ์ธ์ฆ&์ธ๊ฐ€์™€ ํšŒ์› ํ”„๋กœํ•„ ์กฐํšŒ ๊ธฐ๋Šฅ

      • ์žฅ์†Œ๋ณ„ ์บ˜๋ฆฐ๋” ์กฐํšŒ์‹œ ์˜ˆ์•ฝ์ •๋ณด ์ „์†ก ๊ธฐ๋Šฅ

      • ์žฅ์†Œ๋ณ„ ์˜ˆ์•ฝ ๋ฐ ํ˜„ํ™ฉ๋ณ„ ์˜ˆ์•ฝ ์กฐํšŒ ๊ธฐ๋Šฅ

      • EC2์™€ RDS๋ฅผ ์—ฐ๋™ํ•œ ๋ฐฑ์—”๋“œ ์„œ๋ฒ„ ๋ฐฐํฌ

    • ๋‹ค๋ฅธ ํŒ€์›์ด ๋งก์€ ๋ถ€๋ถ„

      • ๋ฉ”๋‰ด, ์นดํ…Œ๊ณ ๋ฆฌ๋ณ„ ์žฅ์†Œ ์กฐํšŒ

      • ์žฅ์†Œ ๋ฆฌ์ŠคํŠธ ์ „์ฒด ์กฐํšŒ

      • ๊ฐ€๊ฒฉ์ˆœ, ๋“ฑ๋ก์ˆœ ์žฅ์†Œ ๋ฆฌ์ŠคํŠธ ์กฐํšŒ

      • ํ‚ค์›Œ๋“œ ๊ฒ€์ƒ‰์œผ๋กœ ์žฅ์†Œ ์กฐํšŒ

  • API Documentation


๋‹ฌ๋ผ์ง„ ์ 

๋” ๋‚˜์€ ํ˜‘์—…์„ ์œ„ํ•œ ๋…ธ๋ ฅ

  • Daily Meeting ์‹œ๊ฐ„ ์ค„์ด๊ณ  ํšจ์œจ์„ฑ ๋†’์ด๊ธฐ

    • ์ด์Šˆ : Daily Meeting์— ๋„ˆ๋ฌด ๋งŽ์€ ์–˜๊ธฐ๊ฐ€ ์˜ค๊ฐ€๋Š” ๊ฒฝ์šฐ๊ฐ€ ์žˆ์—ˆ๋‹ค. ๋ฏธํŒ… ์ฃผ์ œ๋ฅผ ๋ฒ—์–ด๋‚˜๊ฑฐ๋‚˜ ๊ธฐ์ˆ ์ ์ธ ํ† ๋ก ์ด ๊ธธ์–ด์ง€๋ฉด ์‹œ๊ฐ„์„ ๋งŽ์ด ์žก์•„๋จน์—ˆ๋‹ค. ๋ฌผ๋ก  ์†Œํ†ต์„ ๋งŽ์ด ํ•˜๋Š” ๊ฒƒ์€ ์ข‹์ง€๋งŒ, ํ”„๋ก ํŠธ์—”๋“œ์™€ ๋ฐฑ์—”๋“œ๊ฐ€ ๊ณตํ†ต์ ์œผ๋กœ ํŒŒ์•…ํ•ด์•ผํ•  ๋‚ด์šฉ๋ณด๋‹ค ๊ฐœ๋ณ„์ ์ธ ์ด์Šˆ๊ฐ€ ์šฐ์„ ์‹œ ๋˜๋Š” ๊ฒฝํ–ฅ์ด ์žˆ์—ˆ๋‹ค.

    • ํ•ด๊ฒฐ : Daily Meeting ์ „์— ํ”„๋ก ํŠธ์—”๋“œ, ๋ฐฑ์—”๋“œ๊ฐ€ ๋‚˜๋ˆ„์–ด์„œ ๋จผ์ € ์ •๋ฆฌํ•˜๋Š” ์‹œ๊ฐ„์„ ๊ฐ€์กŒ๋‹ค. ๊ธฐ์ˆ ์ ์ธ ํ† ๋ก ์€ ์–ธ์ œ๋“  ํ•  ์ˆ˜ ์žˆ์œผ๋‹ˆ ๊ณตํ†ต ๋ฏธํŒ… ์‹œ๊ฐ„์—๋Š” ์„œ๋กœ์˜ ์ง„ํ–‰์‚ฌํ•ญ, ๋ฌธ์ œ์ , ํ˜‘์˜๊ฐ€ ํ•„์š”ํ•œ ๋ถ€๋ถ„์— ๋Œ€ํ•ด์„œ๋งŒ ์–˜๊ธฐํ•˜๊ธฐ๋กœ ํ–ˆ๋‹ค. ์ด๋ ‡๊ฒŒ ์ง„ํ–‰ํ•˜๋‹ˆ ๋ฏธํŒ…์„ ํšจ์œจ์ ์œผ๋กœ ์ง„ํ–‰ํ•  ์ˆ˜ ์žˆ์—ˆ๋‹ค.

  • ์ „์ฒด ์ง„ํ–‰ ์ƒํ™ฉ ํŒŒ์•…ํ•˜๋ฉฐ ๊ฐœ๋ฐœ ์†๋„ ๋†’์ด๊ธฐ

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

    • ํ•ด๊ฒฐ : ๋ชฉํ‘œํ•œ ๊ธฐ๋Šฅ์„ ์ฐจ๊ทผ์ฐจ๊ทผ ํ•˜๋‚˜์”ฉ ์™„์„ฑํ•ด๊ฐ€๊ธฐ๋กœ ํ–ˆ๋‹ค. ํ•˜๋‚˜์˜ ๊ธฐ๋Šฅ์— ๋Œ€ํ•œ ๊ฐœ๋ฐœ์„ ๋๋‚ด๊ณ  ํ”„-๋ฐฑ ์—ฐ๊ฒฐ์„ ํ•ด๋ณด๊ณ  API ๋ช…์„ธ๋ฅผ ์ž‘์„ฑํ•ด์•ผ ๋‹ค์Œ์œผ๋กœ ๋„˜์–ด๊ฐ€๊ธฐ๋กœ ํ–ˆ๋‹ค. ๋ฏธํŒ…๋•Œ๋งˆ๋‹ค ์ „์ฒด ์ง„ํ–‰ ์ƒํ™ฉ์„ ์ƒ๊ธฐ์‹œํ‚ค๋ ค ๋…ธ๋ ฅํ–ˆ๋‹ค. ์ด ๊ณผ์ •์„ ํ†ตํ•ด ํ˜„์žฌ ํŒ€์˜ ์ƒํ™ฉ์„ ๊ฐ๊ด€์ ์œผ๋กœ ์•Œ ์ˆ˜ ์žˆ์—ˆ๊ณ  ์šฐ์„ ์ˆœ์œ„๋ฅผ ๋‘๊ณ  ์—…๋ฌด์— ์ง‘์ค‘ ํ•  ์ˆ˜ ์žˆ์—ˆ๋‹ค.

Unit Test

  • TDD์™€ ํ…Œ์ŠคํŒ…

    • ์„ธ์…˜์„ ๋“ฃ๊ณ  ํ…Œ์ŠคํŠธ ์ž๋™ํ™”์— ๋Œ€ํ•œ ๊ฐœ๋…์„ ์•Œ ์ˆ˜ ์žˆ์—ˆ๋‹ค. ์ง€๊ธˆ๊นŒ์ง„ Integration Test๋งŒ ํ–ˆ๋‹ค๋ฉด ์ด๋ฒˆ ํ”„๋กœ์ ํŠธ์—๋Š” Unit Test ์ฝ”๋“œ๋ฅผ ์ž‘์„ฑํ•ด์•ผํ–ˆ๋‹ค. ์ฒ˜์Œ์—” ๊ต‰์žฅํžˆ ๋ง‰๋ง‰ํ•˜๊ณ  ๊ณต์ˆ˜๊ฐ€ ๋งŽ์ด ๋“ค์ง„ ์•Š์„๊นŒ ๊ฑฑ์ •๋„ ์žˆ์—ˆ์ง€๋งŒ, ํ• ์ˆ˜๋ก ์ต์ˆ™ํ•ด์กŒ๊ณ  ๋ฌด์—‡๋ณด๋‹ค ๋‚ด ์ฝ”๋“œ์— ๋Œ€ํ•œ ์ž์‹ ๊ฐ์ด ์ƒ๊ฒผ๋‹ค.

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


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

  • "์นด์นด์˜ค ์†Œ์…œ ๋กœ๊ทธ์ธ API"

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

    • Python์˜ HTTP ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ ์ค‘ Requests๋ฅผ ์‚ฌ์šฉํ•ด ์นด์นด์˜ค API๋กœ ์š”์ฒญ์„ ๋ณด๋ƒˆ๋Š”๋ฐ, ์•ž์œผ๋กœ๋„ ์œ ์šฉํ•˜๊ฒŒ ํ™œ์šฉํ•  ์ˆ˜ ์žˆ์„ ๊ฒƒ ๊ฐ™๋‹ค. ์ƒˆ๋กœ์šด ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋ฅผ ์‚ฌ์šฉํ• ๋• ๋ฐ˜๋“œ์‹œ ๊ณต์‹๋ฌธ์„œ๋ฅผ ์ฝ์–ด๋ด์•ผ๊ฒ ๋‹ค๋Š” ์ƒ๊ฐ์„ ํ–ˆ๋‹ค.

    • ์ฒ˜์Œ์œผ๋กœ ์ž‘์„ฑํ•˜๋Š” ํ…Œ์ŠคํŠธ ์ฝ”๋“œ๊ฐ€ ์™ธ๋ถ€ API๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๋กœ์ง์ด์—ˆ๋‹ค. Mock Response๋ฅผ ๋งŒ๋“ค์–ด ํ…Œ์ŠคํŠธํ•˜๋Š” ๋ฐฉ์‹์„ ์ ์šฉํ•˜๋Š”๋ฐ ์‹œ๊ฐ„์ด ๋งŽ์ด ๊ฑธ๋ ธ๋‹ค. ํŠนํžˆ MagicMock์˜ ์ธ์Šคํ„ด์Šค์— status_code ์†์„ฑ์ด ์—†๋‹ค๋Š” ์—๋Ÿฌ๊ฐ€ ๊ณ„์† ๋‚˜์™€์„œ ํ—ค๋งธ์—ˆ๋Š”๋ฐ ์ „์ฒด class์˜ ๊ตฌ์กฐ๋ฅผ ํŒŒ์•…ํ•˜๋‹ˆ ์‰ฝ๊ฒŒ ํ•ด๊ฒฐํ•  ์ˆ˜ ์žˆ๋Š” ๋ฌธ์ œ์˜€๋‹ค.

  • "์žฅ์†Œ๋ณ„ ์˜ˆ์•ฝ ๋ฐ ํ˜„ํ™ฉ๋ณ„ ์˜ˆ์•ฝ ์กฐํšŒ API"

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

    • ์˜ˆ์•ฝ์„ ๋ฐ›์„๋•Œ ์ค‘๋ณต์„ ๋ฐฉ์ง€ํ•˜๋Š” ๊ณผ์ •์—์„œ ๋งŽ์€ ๊ณ ๋ฏผ์„ ํ–ˆ๋‹ค. ์บ˜๋ฆฐ๋”๋กœ ๊ธฐ ์˜ˆ์•ฝ ๋ฐ์ดํ„ฐ๋ฅผ ๋ณด๋‚ด์„œ ์• ์ดˆ์— ์ค‘๋ณต ์„ ํƒ์ด ์•ˆ๋˜๋„๋กํ–ˆ์ง€๋งŒ, DB์— ์ €์žฅ๋˜๊ธฐ์ „์— ํ•œ๋ฒˆ ๋” ํ•„ํ„ฐ๋งํ•˜๋Š” ๊ณผ์ •์„ ๊ฑฐ์น˜๋ คํ–ˆ๋‹ค. ๊ธฐ๊ฐ„ ๋ฐ์ดํ„ฐ์˜ ๋น„๊ต๋ฅผ ํ†ตํ•ด ๊ต์ง‘ํ•ฉ์ด ์žˆ์œผ๋ฉด ์—๋Ÿฌ๋ฅผ ๋ฐ˜ํ™˜ํ•˜๋„๋ก ํ–ˆ๋‹ค.

    • ์˜ˆ์•ฝ ์ƒํƒœ์— ๋”ฐ๋ฅธ ์žฅ์†Œ ์กฐํšŒ ๊ธฐ๋Šฅ์„ ๊ตฌํ˜„ํ• ๋•Œ Dictionary Comprehension์„ ํ™œ์šฉํ–ˆ๋‹ค. ํŒŒ๋ผ๋ฏธํ„ฐ๋กœ ๋ฐ›๋Š” ํ‚ค์™€ ํ•„ํ„ฐ๋ง look up ๊ฐ’์„ filter_prefixes์— ์ €์žฅํ•ด๋†“๊ณ  filter_set์„ ๋”•์…”๋„ˆ๋ฆฌ๋กœ ๊ตฌํ˜„ํ–ˆ๋‹ค. ์ด๋ฅผํ†ตํ•ด status code์— ๋”ฐ๋ผ ํ•„ํ„ฐ๋งํ•ด์„œ ์˜ˆ์•ฝ์„ ๋ณด์—ฌ์ค„ ์ˆ˜ ์žˆ์—ˆ๊ณ  ์—ฌ๋Ÿฌ๊ฐœ์˜ status code๋„ ํ•จ๊ป˜ ํ•„ํ„ฐ๋ง ํ•  ์ˆ˜ ์žˆ์—ˆ๋‹ค.

  • "EC2์™€ RDS๋ฅผ ์—ฐ๋™ํ•œ ๋ฐฐํฌ"

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

    • ํด๋ผ์šฐ๋”ฉ ์ปดํ“จํŒ…์— ๋Œ€ํ•ด ๊ณต๋ถ€ํ•˜๋ฉฐ AWS๊ฐ€ ์ œ๊ณตํ•˜๋Š” ์ˆ˜๋งŽ์€ ์„œ๋น„์Šค๋“ค์„ ํ›‘์–ด๋ณด์•˜๋‹ค. ์•ž์œผ๋กœ VPC, S3, ELB ๋“ฑ ์„œ๋น„์Šค๋“ค์— ๋Œ€ํ•ด ๋” ์•Œ์•„๋ณผ ์˜ˆ์ •์ด๋‹ค. ํŠนํžˆ ์„œ๋ฒ„๋ฆฌ์Šค ์ปดํ“จํŒ…์— ๋Œ€ํ•ด์„œ๋„ ๊ถ๊ธˆํ•œ ์ ์ด ๋งŽ๋‹ค.


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

  • "ํŒ€ ๋‹จ์œ„๋กœ ์ƒ๊ฐํ•˜๋Š” ๋ฒ•์„ ๋ฐฐ์› ๋‹ค."

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

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

  • "๊ธฐ์ˆ ์— ๋Œ€ํ•ด ๋” ๊นŠ์ด ์ดํ•ดํ•˜์ž."

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

    • Python, Django, MySQL ๋“ฑ ๋‚ด๊ฐ€ ๊ธฐ์ˆ  ์Šคํƒ์ด๋ผ๊ณ  ์ ๋Š” ๊ฒƒ๋“ค๋ฟ ์•„๋‹ˆ๋ผ ์ž๋ฃŒ๊ตฌ์กฐ์™€ ์•Œ๊ณ ๋ฆฌ์ฆ˜์„ ๊ณต๋ถ€ํ•ด์•ผ๊ฒ ๋‹ค. CS ์ง€์‹, ๋„คํŠธ์›Œํฌ ๋“ฑ ๊ณต๋ถ€ํ•  ๊ฒƒ๋“ค์ด ํƒœ์‚ฐ์ด๋‹ค!

  • "๋” ์„ฑ์žฅํ•˜๊ณ  ์‹ถ๋‹ค."

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

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

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

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