8๊ฐœ ๊ต์œก ํ”„๋กœ์ ํŠธ

โ€œ์ดˆ๋ณด์ž๊ฐ€ ์‹œ๋„ํ•˜๋Š” ๊ฒƒ๋ณด๋‹ค ๋Œ€๊ฐ€๊ฐ€ ์‹ค์ˆ˜๋ฅผ ๋” ๋งŽ์ด ํ•œ๋‹คโ€

์šฐ๋ฆฌ๋Š” ์‹ค์ œ ๊ฐœ๋ฐœ ๊ฒฝํ—˜์„ ์–ป๊ธฐ ์œ„ํ•ด "์žฌ๋ฏธ๋กœ" ์ˆ˜ํ–‰ํ•  ์ˆ˜ ์žˆ๋Š” 8๊ฐ€์ง€ ํ”„๋กœ์ ํŠธ ์˜ต์…˜์„ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค.

ํ”„๋กœ์ ํŠธ 1. Trello ํด๋ก 

8๊ฐœ ๊ต์œก ํ”„๋กœ์ ํŠธ

Indrek Lasn์˜ Trello ํด๋ก .

๋‹น์‹ ์ด ๋ฐฐ์šธ ๋‚ด์šฉ:

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

๋‹ค์Œ์€ ์ €์žฅ์†Œ์˜ ์˜ˆ์ž…๋‹ˆ๋‹ค., React+Redux๋กœ ์ œ์ž‘๋˜์—ˆ์Šต๋‹ˆ๋‹ค.

ํ”„๋กœ์ ํŠธ 2. ๊ด€๋ฆฌ์ž ํŒจ๋„

8๊ฐœ ๊ต์œก ํ”„๋กœ์ ํŠธ
Github ์ €์žฅ์†Œ.

๊ธฐ๋ณธ ์‚ฌํ•ญ์„ ํ•™์Šตํ•˜๋Š” ๋ฐ ์ด์ƒ์ ์ธ ๊ฐ„๋‹จํ•œ CRUD ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์ž…๋‹ˆ๋‹ค. ๋ฐฐ์šฐ์ž:

  • ์‚ฌ์šฉ์ž๋ฅผ ์ƒ์„ฑํ•˜๊ณ  ์‚ฌ์šฉ์ž๋ฅผ ๊ด€๋ฆฌํ•ฉ๋‹ˆ๋‹ค.
  • ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์™€ ์ƒํ˜ธ ์ž‘์šฉ - ์‚ฌ์šฉ์ž ์ƒ์„ฑ, ์ฝ๊ธฐ, ํŽธ์ง‘, ์‚ญ์ œ.
  • ์ž…๋ ฅ ์œ ํšจ์„ฑ ๊ฒ€์‚ฌ ๋ฐ ์–‘์‹ ์ž‘์—….

ํ”„๋กœ์ ํŠธ 3. ์•”ํ˜ธํ™”ํ ์ถ”์ ๊ธฐ(๋„ค์ดํ‹ฐ๋ธŒ ๋ชจ๋ฐ”์ผ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜)

8๊ฐœ ๊ต์œก ํ”„๋กœ์ ํŠธ
Github ์ €์žฅ์†Œ.

๋ฌด์—‡์ด๋“ : Swift, Objective-C, React Native, Java, Kotlin.

์šฐ๋ฆฌ๋Š” ๊ณต๋ถ€ํ•ฉ๋‹ˆ๋‹ค :

  • ๊ธฐ๋ณธ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์˜ ์ž‘๋™ ๋ฐฉ์‹.
  • API์—์„œ ๋ฐ์ดํ„ฐ๋ฅผ ๊ฒ€์ƒ‰ํ•˜๋Š” ๋ฐฉ๋ฒ•.
  • ๊ธฐ๋ณธ ํŽ˜์ด์ง€ ๋ ˆ์ด์•„์›ƒ์˜ ์ž‘๋™ ๋ฐฉ์‹.
  • ๋ชจ๋ฐ”์ผ ์‹œ๋ฎฌ๋ ˆ์ดํ„ฐ๋กœ ์ž‘์—…ํ•˜๋Š” ๋ฐฉ๋ฒ•.

์ด API๋ฅผ ์‚ฌ์šฉํ•ด ๋ณด์„ธ์š”. ๋” ์ข‹์€ ๊ฒƒ์„ ์ฐพ์œผ๋ฉด ๋Œ“๊ธ€์— ์ ์–ด์ฃผ์„ธ์š”.

๊ด€์‹ฌ์ด ์žˆ๋‹ค๋ฉด ์—ฌ๊ธฐ๋กœ ์—ฌ๊ธฐ ํŠœํ† ๋ฆฌ์–ผ์ด ์žˆ์Šต๋‹ˆ๋‹ค.

ํ”„๋กœ์ ํŠธ 4. ์ฒ˜์Œ๋ถ€ํ„ฐ ์ž์‹ ๋งŒ์˜ ์›นํŒฉ ๊ตฌ์„ฑ ์„ค์ •

8๊ฐœ ๊ต์œก ํ”„๋กœ์ ํŠธ
๊ธฐ์ˆ ์ ์œผ๋กœ ์ด๊ฒƒ์€ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์€ ์•„๋‹ˆ์ง€๋งŒ, webpack์ด ๋‚ด๋ถ€์—์„œ ์–ด๋–ป๊ฒŒ ์ž‘๋™ํ•˜๋Š”์ง€ ์ดํ•ดํ•˜๋Š” ๊ฒƒ์€ ๋งค์šฐ ์œ ์šฉํ•œ ์ž‘์—…์ž…๋‹ˆ๋‹ค. ์ด์ œ ๊ทธ๊ฒƒ์€ "๋ธ”๋ž™๋ฐ•์Šค"๊ฐ€ ์•„๋‹ˆ๋ผ ์ดํ•ดํ•  ์ˆ˜ ์žˆ๋Š” ๋„๊ตฌ๊ฐ€ ๋  ๊ฒƒ์ž…๋‹ˆ๋‹ค.

์š”๊ตฌ ์‚ฌํ•ญ :

  • es7์„ es5๋กœ ์ปดํŒŒ์ผํ•ฉ๋‹ˆ๋‹ค(๊ธฐ๋ณธ).
  • jsx๋ฅผ js๋กœ ์ปดํŒŒ์ผํ•˜๊ฑฐ๋‚˜ - .vue๋ฅผ .js๋กœ ์ปดํŒŒ์ผํ•ฉ๋‹ˆ๋‹ค(๋กœ๋”๋ฅผ ๋ฐฐ์›Œ์•ผ ํ•ฉ๋‹ˆ๋‹ค).
  • webpack ๊ฐœ๋ฐœ ์„œ๋ฒ„ ๋ฐ ํ•ซ ๋ชจ๋“ˆ ์žฌ๋กœ๋”ฉ์„ ์„ค์ •ํ•ฉ๋‹ˆ๋‹ค. (vue-cli์™€ create-react-app ๋‘˜ ๋‹ค ์‚ฌ์šฉ)
  • Heroku, now.sh ๋˜๋Š” Github๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์›นํŒฉ ํ”„๋กœ์ ํŠธ๋ฅผ ๋ฐฐํฌํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ์•Œ์•„๋ณด์„ธ์š”.
  • CSS(scss, less, stylus)๋ฅผ ์ปดํŒŒ์ผํ•˜๊ธฐ ์œ„ํ•ด ์„ ํ˜ธํ•˜๋Š” ์ „์ฒ˜๋ฆฌ๊ธฐ๋ฅผ ์„ค์ •ํ•˜์„ธ์š”.
  • webpack์—์„œ ์ด๋ฏธ์ง€์™€ SVG๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ์•Œ์•„๋ณด์„ธ์š”.

์ด๊ฒƒ์€ ์™„์ „ ์ดˆ๋ณด์ž๋ฅผ ์œ„ํ•œ ๋†€๋ผ์šด ๋ฆฌ์†Œ์Šค์ž…๋‹ˆ๋‹ค.

ํ”„๋กœ์ ํŠธ 5. Hackernews ํด๋ก 

8๊ฐœ ๊ต์œก ํ”„๋กœ์ ํŠธ
๋ชจ๋“  ์ œ๋‹ค์ด๋Š” ์ž์‹ ๋งŒ์˜ Hackernews๋ฅผ ๋งŒ๋“ค์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

๊ทธ ๊ณผ์ •์—์„œ ๋ฐฐ์šธ ๋‚ด์šฉ์€ ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค.

  • hackernews API์™€ ์ƒํ˜ธ์ž‘์šฉํ•˜๋Š” ๋ฐฉ๋ฒ•.
  • ๋‹จ์ผ ํŽ˜์ด์ง€ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ๋งŒ๋“œ๋Š” ๋ฐฉ๋ฒ•.
  • ๋Œ“๊ธ€๋ณด๊ธฐ, ๊ฐœ๋ณ„๋Œ“๊ธ€, ํ”„๋กœํ•„ ๋“ฑ์˜ ๊ธฐ๋Šฅ์„ ๊ตฌํ˜„ํ•˜๋Š” ๋ฐฉ๋ฒ•์ž…๋‹ˆ๋‹ค.
  • ์š”์ฒญ ์ฒ˜๋ฆฌ ๊ฒฝ๋กœ ๊ตฌ์„ฑ(๋ผ์šฐํŒ…)

ํ”„๋กœ์ ํŠธ 6. Tudushechka

8๊ฐœ ๊ต์œก ํ”„๋กœ์ ํŠธ
TodoMVC.

์ง„์ง€ํ•˜๊ฒŒ? ํˆฌ๋‘์Šˆ์นด? ์ˆ˜์ฒœ ๊ฐœ๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค. ํ•˜์ง€๋งŒ ์ด๋Ÿฐ ์ธ๊ธฐ์—๋Š” ์ด์œ ๊ฐ€ ์žˆ๋‹ค๊ณ  ๋ฏฟ์Šต๋‹ˆ๋‹ค.
Tudu ์•ฑ์€ ๊ธฐ๋ณธ ์‚ฌํ•ญ์„ ํ™•์‹คํžˆ ์ดํ•ดํ•  ์ˆ˜ ์žˆ๋Š” ์ข‹์€ ๋ฐฉ๋ฒ•์ž…๋‹ˆ๋‹ค. ๋ฐ”๋‹๋ผ Javascript๋กœ ํ•˜๋‚˜์˜ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ์ž‘์„ฑํ•˜๊ณ , ์„ ํ˜ธํ•˜๋Š” ํ”„๋ ˆ์ž„์›Œํฌ๋กœ ํ•˜๋‚˜์˜ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ์ž‘์„ฑํ•ด ๋ณด์‹ญ์‹œ์˜ค.

๋ฐฐ์šฐ๋‹ค:

  • ์ƒˆ ์ž‘์—…์„ ๋งŒ๋“ญ๋‹ˆ๋‹ค.
  • ํ•„๋“œ๊ฐ€ ์ฑ„์›Œ์กŒ๋Š”์ง€ ํ™•์ธํ•˜์„ธ์š”.
  • ์ž‘์—…์„ ํ•„ํ„ฐ๋งํ•ฉ๋‹ˆ๋‹ค(์™„๋ฃŒ, ํ™œ์„ฑ, ๋ชจ๋‘). ์‚ฌ์šฉ filter ะธ reduce.
  • ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ์˜ ๊ธฐ๋ณธ์„ ์ดํ•ดํ•ฉ๋‹ˆ๋‹ค.

ํ”„๋กœ์ ํŠธ 7. ์ •๋ ฌ ๊ฐ€๋Šฅํ•œ ๋“œ๋ž˜๊ทธ ์•ค ๋“œ๋กญ ๋ชฉ๋ก

8๊ฐœ ๊ต์œก ํ”„๋กœ์ ํŠธ
Github ์ €์žฅ์†Œ.

์ดํ•ดํ•˜๋Š” ๋ฐ ๋งค์šฐ ๋„์›€์ด ๋จ ๋“œ๋ž˜๊ทธ ์•ค ๋“œ๋กญ API.

๋ฐฐ์šฐ์ž:

  • ๋“œ๋ž˜๊ทธ ์•ค ๋“œ๋กญ API
  • ํ’๋ถ€ํ•œ UI ๋งŒ๋“ค๊ธฐ

ํ”„๋กœ์ ํŠธ 8. ๋ฉ”์‹ ์ € ํด๋ก (๋„ค์ดํ‹ฐ๋ธŒ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜)

8๊ฐœ ๊ต์œก ํ”„๋กœ์ ํŠธ
์›น ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜๊ณผ ๊ธฐ๋ณธ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์ด ์–ด๋–ป๊ฒŒ ์ž‘๋™ํ•˜๋Š”์ง€ ์ดํ•ดํ•˜๊ฒŒ ๋˜์–ด ํšŒ์ƒ‰ ๋ฉ์–ด๋ฆฌ์™€ ์ฐจ๋ณ„ํ™”๋ฉ๋‹ˆ๋‹ค.

์šฐ๋ฆฌ๊ฐ€ ๊ณต๋ถ€ํ•  ๋‚ด์šฉ:

  • ์›น ์†Œ์ผ“(์ธ์Šคํ„ดํŠธ ๋ฉ”์‹œ์ง€)
  • ๊ธฐ๋ณธ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์˜ ์ž‘๋™ ๋ฐฉ์‹.
  • ๊ธฐ๋ณธ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์—์„œ ํ…œํ”Œ๋ฆฟ์ด ์ž‘๋™ํ•˜๋Š” ๋ฐฉ์‹.
  • ๊ธฐ๋ณธ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์—์„œ ์š”์ฒญ ์ฒ˜๋ฆฌ ๊ฒฝ๋กœ๋ฅผ ๊ตฌ์„ฑํ•ฉ๋‹ˆ๋‹ค.

์ด๊ฒƒ์€ ํ•œ๋‘ ๋‹ฌ ๋™์•ˆ ์ถฉ๋ถ„ํ•  ๊ฒƒ์ž…๋‹ˆ๋‹ค.

๋ฒˆ์—ญ์€ ํšŒ์‚ฌ์˜ ์ง€์›์„ ๋ฐ›์•„ ์ง„ํ–‰๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ์—๋””์Šจ ์†Œํ”„ํŠธ์›จ์–ด์ „๋ฌธ์ ์œผ๋กœ ์ข…์‚ฌํ•˜๋Š” ์‚ฌ๋žŒ PHP๋กœ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜๊ณผ ์›น์‚ฌ์ดํŠธ ๊ฐœ๋ฐœํ•˜๊ธฐ ๋Œ€๊ทœ๋ชจ ๊ณ ๊ฐ๋ฟ๋งŒ ์•„๋‹ˆ๋ผ Java๋กœ ํด๋ผ์šฐ๋“œ ์„œ๋น„์Šค ๋ฐ ๋ชจ๋ฐ”์ผ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ๊ฐœ๋ฐœ.

์ถœ์ฒ˜ : habr.com

์ฝ”๋ฉ˜ํŠธ๋ฅผ ์ถ”๊ฐ€