๊ฐœ๋ฐœ์ž๋ฅผ ์œ„ํ•œ ์žฌ๋ฏธ์žˆ๋Š” ์—ฐ์Šต

์‚ฌ๋žŒ์€ 1000์ผ ๋™์•ˆ ์ดˆ๋ณด์ž๋กœ ๋‚จ์•„์žˆ์Šต๋‹ˆ๋‹ค. ๊ทธ๋Š” 10000๋งŒ์ผ์˜ ์‹ค์ฒœ ๋์— ์ง„์‹ค์„ ์ฐพ์•„๋‚ธ๋‹ค.

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

์—ฌ๊ธฐ ๋‹น์‹ ์˜ ๋ฐœ์ „์— ๋„์›€์ด ๋  ์ˆ˜ ์žˆ๋Š” 7๊ฐ€์ง€ ํ”„๋กœ์ ํŠธ๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค. ์ž์œ ๋กญ๊ฒŒ ๊ธฐ์ˆ  ์Šคํƒ์„ ์„ ํƒํ•˜์„ธ์š”. ์›ํ•˜๋Š” ๊ฒƒ์€ ๋ฌด์—‡์ด๋“  ์‚ฌ์šฉํ•˜์„ธ์š”.

(์ด์ „ ํ›ˆ๋ จ ์ž‘์—… ๋ชฉ๋ก: 1) 8๊ฐœ ๊ต์œก ํ”„๋กœ์ ํŠธ 2) ์—ฐ์Šตํ•  ๋˜ ๋‹ค๋ฅธ ํ”„๋กœ์ ํŠธ ๋ชฉ๋ก)

ํ”„๋กœ์ ํŠธ 1: ํŒฉ๋งจ

๊ฐœ๋ฐœ์ž๋ฅผ ์œ„ํ•œ ์žฌ๋ฏธ์žˆ๋Š” ์—ฐ์Šต

๋‚˜๋งŒ์˜ ํŒฉ๋งจ ๋ฒ„์ „์„ ๋งŒ๋“ค์–ด๋ณด์„ธ์š”. ์ด๊ฒƒ์€ ๊ฒŒ์ž„์ด ์–ด๋–ป๊ฒŒ ๊ฐœ๋ฐœ๋˜๋Š”์ง€์— ๋Œ€ํ•œ ์•„์ด๋””์–ด๋ฅผ ์–ป๊ณ  ๊ธฐ๋ณธ์„ ์ดํ•ดํ•˜๋Š” ์ข‹์€ ๋ฐฉ๋ฒ•์ž…๋‹ˆ๋‹ค. JavaScript ํ”„๋ ˆ์ž„์›Œํฌ์ธ React ๋˜๋Š” Vue๋ฅผ ์‚ฌ์šฉํ•˜์„ธ์š”.

ะ’ั‹ ะทะฝะฐะตั‚ะต:

  • ์š”์†Œ๊ฐ€ ์ด๋™ํ•˜๋Š” ๋ฐฉ๋ฒ•
  • ๋ˆ„๋ฅผ ํ‚ค๋ฅผ ๊ฒฐ์ •ํ•˜๋Š” ๋ฐฉ๋ฒ•
  • ์ถฉ๋Œ ์ˆœ๊ฐ„์„ ๊ฒฐ์ •ํ•˜๋Š” ๋ฐฉ๋ฒ•
  • ๋” ๋‚˜์•„๊ฐ€ ๊ณ ์ŠคํŠธ ์ด๋™ ์ปจํŠธ๋กค์„ ์ถ”๊ฐ€ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์ด ํ”„๋กœ์ ํŠธ์˜ ์˜ˆ๋ฅผ ์ฐพ์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค ์ €์žฅ์†Œ์— GitHub์˜

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


์ถœํŒ ์ง€์› - ํšŒ์‚ฌ ์—๋””์Šจ์ข…์‚ฌํ•˜๋Š” ๋น„๋ฐœ๋”” ๋ฌธ์„œ์ €์žฅ์žฅ์น˜ ๊ฐœ๋ฐœ ๋ฐ ์ง„๋‹จ.

ํ”„๋กœ์ ํŠธ 2: ์‚ฌ์šฉ์ž ๊ด€๋ฆฌ

๊ฐœ๋ฐœ์ž๋ฅผ ์œ„ํ•œ ์žฌ๋ฏธ์žˆ๋Š” ์—ฐ์Šต

๊ณ„ํš ์ €์žฅ์†Œ์— GitHub์˜

์‚ฌ์šฉ์ž ๊ด€๋ฆฌ๋ฅผ ์œ„ํ•œ CRUD ์œ ํ˜• ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ์ž‘์„ฑํ•˜๋ฉด ๊ฐœ๋ฐœ์˜ ๊ธฐ๋ณธ ์‚ฌํ•ญ์„ ๋ฐฐ์šธ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ด๋Š” ํŠนํžˆ ์ƒˆ๋กœ์šด ๊ฐœ๋ฐœ์ž์—๊ฒŒ ์œ ์šฉํ•ฉ๋‹ˆ๋‹ค.

ะ’ั‹ ะทะฝะฐะตั‚ะต:

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

ํ”„๋กœ์ ํŠธ 3: ํ˜„์žฌ ์œ„์น˜์˜ ๋‚ ์”จ ํ™•์ธํ•˜๊ธฐ

๊ฐœ๋ฐœ์ž๋ฅผ ์œ„ํ•œ ์žฌ๋ฏธ์žˆ๋Š” ์—ฐ์Šต
๊ณ„ํš ์ €์žฅ์†Œ์— GitHub์˜

์•ฑ์„ ๋งŒ๋“ค๊ณ  ์‹ถ๋‹ค๋ฉด ๋‚ ์”จ ์•ฑ์œผ๋กœ ์‹œ์ž‘ํ•ด ๋ณด์„ธ์š”. ์ด ํ”„๋กœ์ ํŠธ๋Š” Swift๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์™„๋ฃŒํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ๊ตฌ์ถ• ๊ฒฝํ—˜์„ ์Œ“๋Š” ๊ฒƒ ์™ธ์—๋„ ๋‹ค์Œ์„ ๋ฐฐ์šฐ๊ฒŒ ๋ฉ๋‹ˆ๋‹ค.

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

API๊ฐ€ ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค. ๋‚ ์”จ ๋ฐ์ดํ„ฐ๋ฅผ ์–ป์œผ๋ ค๋ฉด OpenWeather API๋ฅผ ์‚ฌ์šฉํ•˜์„ธ์š”. OpenWeather API์— ๋Œ€ํ•œ ์ถ”๊ฐ€ ์ •๋ณด ์—ฌ๊ธฐ์—.

ํ”„๋กœ์ ํŠธ 4: ์ฑ„ํŒ… ์ฐฝ

๊ฐœ๋ฐœ์ž๋ฅผ ์œ„ํ•œ ์žฌ๋ฏธ์žˆ๋Š” ์—ฐ์Šต
๋‚ด ์ฑ„ํŒ… ์ฐฝ์ด ๋‘ ๊ฐœ์˜ ๋ธŒ๋ผ์šฐ์ € ํƒญ์—์„œ ์—ด๋ฆฝ๋‹ˆ๋‹ค.

์ฑ„ํŒ… ์ฐฝ์„ ๋งŒ๋“œ๋Š” ๊ฒƒ์€ ์†Œ์ผ“์„ ์‹œ์ž‘ํ•˜๋Š” ์™„๋ฒฝํ•œ ๋ฐฉ๋ฒ•์ž…๋‹ˆ๋‹ค. ๊ธฐ์ˆ  ์Šคํƒ์˜ ์„ ํƒ์€ ์—„์ฒญ๋‚ฉ๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด Node.js๋Š” ์™„๋ฒฝํ•ฉ๋‹ˆ๋‹ค.

์†Œ์ผ“์˜ ์ž‘๋™ ๋ฐฉ์‹๊ณผ ๊ตฌํ˜„ ๋ฐฉ๋ฒ•์„ ๋ฐฐ์šฐ๊ฒŒ ๋ฉ๋‹ˆ๋‹ค. ์ด๊ฒƒ์ด ์ด ํ”„๋กœ์ ํŠธ์˜ ๊ฐ€์žฅ ํฐ ์žฅ์ ์ด๋‹ค.

์†Œ์ผ“ ์ž‘์—…์„ ์›ํ•˜๋Š” Laravel ๊ฐœ๋ฐœ์ž๋ผ๋ฉด ์ œ ๊ธ€์„ ์ฝ์–ด๋ณด์„ธ์š”. ัั‚ะฐั‚ัŒัŽ

ํ”„๋กœ์ ํŠธ 5: GitLab CI

๊ฐœ๋ฐœ์ž๋ฅผ ์œ„ํ•œ ์žฌ๋ฏธ์žˆ๋Š” ์—ฐ์Šต

์ถœ์ฒ˜

CI(์ง€์†์  ํ†ตํ•ฉ)๋ฅผ ์ฒ˜์Œ ์‚ฌ์šฉํ•˜๋Š” ๊ฒฝ์šฐ GitLab CI๋ฅผ ์‚ฌ์šฉํ•ด ๋ณด์„ธ์š”. ๋ช‡ ๊ฐ€์ง€ ํ™˜๊ฒฝ์„ ์„ค์ •ํ•˜๊ณ  ๋ช‡ ๊ฐ€์ง€ ํ…Œ์ŠคํŠธ๋ฅผ ์‹คํ–‰ํ•ด ๋ณด์„ธ์š”. ๋ณ„๋กœ ์–ด๋ ค์šด ํ”„๋กœ์ ํŠธ๋Š” ์•„๋‹ˆ์ง€๋งŒ, ์ด ํ”„๋กœ์ ํŠธ๋ฅผ ํ†ตํ•ด ๋งŽ์€ ๊ฒƒ์„ ๋ฐฐ์šธ ์ˆ˜ ์žˆ์„ ๊ฑฐ๋ผ ํ™•์‹ ํ•ฉ๋‹ˆ๋‹ค. ํ˜„์žฌ ๋งŽ์€ ๊ฐœ๋ฐœํŒ€์ด CI๋ฅผ ์‚ฌ์šฉํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. ์‚ฌ์šฉ๋ฒ•์„ ์•Œ์•„๋‘๋ฉด ์œ ์šฉํ•ฉ๋‹ˆ๋‹ค.

ะ’ั‹ ะทะฝะฐะตั‚ะต:

  • GitLab CI ๋ž€ ๋ฌด์—‡์ž…๋‹ˆ๊นŒ?
  • ๊ตฌ์„ฑ ๋ฐฉ๋ฒ• .gitlab-ci.ymlGitLab ์‚ฌ์šฉ์ž์—๊ฒŒ ๋ฌด์—‡์„ ํ•ด์•ผ ํ• ์ง€ ์•Œ๋ ค์ค๋‹ˆ๋‹ค.
  • ๋‹ค๋ฅธ ํ™˜๊ฒฝ์— ๋ฐฐํฌํ•˜๋Š” ๋ฐฉ๋ฒ•

ํ”„๋กœ์ ํŠธ 6: ์›น์‚ฌ์ดํŠธ ๋ถ„์„๊ธฐ

๊ฐœ๋ฐœ์ž๋ฅผ ์œ„ํ•œ ์žฌ๋ฏธ์žˆ๋Š” ์—ฐ์Šต

์›น์‚ฌ์ดํŠธ์˜ ์˜๋ฏธ๋ฅผ ๋ถ„์„ํ•˜๊ณ  ๋“ฑ๊ธ‰์„ ๋งค๊ธฐ๋Š” ์Šคํฌ๋ ˆ์ดํผ๋ฅผ ๋งŒ๋“œ์„ธ์š”. ์˜ˆ๋ฅผ ๋“ค์–ด ์ด๋ฏธ์ง€์— ๋ˆ„๋ฝ๋œ ๋Œ€์ฒด ํƒœ๊ทธ๊ฐ€ ์žˆ๋Š”์ง€ ํ™•์ธํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๋˜๋Š” ํŽ˜์ด์ง€์— SEO ๋ฉ”ํƒ€ ํƒœ๊ทธ๊ฐ€ ์žˆ๋Š”์ง€ ํ™•์ธํ•˜์„ธ์š”. ์Šคํฌ๋ ˆ์ดํผ๋Š” ์‚ฌ์šฉ์ž ์ธํ„ฐํŽ˜์ด์Šค ์—†์ด ์ƒ์„ฑ๋  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

ะ’ั‹ ะทะฝะฐะตั‚ะต:

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

ํ”„๋กœ์ ํŠธ 7: ์†Œ์…œ ๋ฏธ๋””์–ด์˜ ๊ฐ์„ฑ ๊ฐ์„ฑ

๊ฐœ๋ฐœ์ž๋ฅผ ์œ„ํ•œ ์žฌ๋ฏธ์žˆ๋Š” ์—ฐ์Šต

์ถœ์ฒ˜

์†Œ์…œ ๋ฏธ๋””์–ด์˜ ๊ฐ์ • ๊ฐ์ง€๋Š” ๊ธฐ๊ณ„ ํ•™์Šต์„ ์†Œ๊ฐœํ•˜๋Š” ์ข‹์€ ๋ฐฉ๋ฒ•์ž…๋‹ˆ๋‹ค.

ํ•˜๋‚˜์˜ ์†Œ์…œ ๋„คํŠธ์›Œํฌ๋งŒ ๋ถ„์„ํ•˜๋Š” ๊ฒƒ๋ถ€ํ„ฐ ์‹œ์ž‘ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๋ชจ๋“  ์‚ฌ๋žŒ์€ ๋Œ€๊ฐœ ํŠธ์œ„ํ„ฐ๋กœ ์‹œ์ž‘ํ•ฉ๋‹ˆ๋‹ค.

์ด๋ฏธ ๋จธ์‹ ๋Ÿฌ๋‹ ๊ฒฝํ—˜์ด ์žˆ๋‹ค๋ฉด ๋‹ค์–‘ํ•œ ์†Œ์…œ ๋„คํŠธ์›Œํฌ์—์„œ ๋ฐ์ดํ„ฐ๋ฅผ ์ˆ˜์ง‘ํ•˜๊ณ  ๊ฒฐํ•ฉํ•ด ๋ณด์„ธ์š”.

ะ’ั‹ ะทะฝะฐะตั‚ะต:

  • ๋จธ์‹ ๋Ÿฌ๋‹์ด๋ž€?

์ฆ๊ฑฐ์šด ์—ฐ์Šต์ด ๋˜์„ธ์š”.

๋ฒˆ์—ญ: ๋‹ค์ด์•„๋‚˜ ์…ฐ๋ ˆ๋ฏธ์˜ˆ๋ฐ”

์ถœ์ฒ˜ : habr.com

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