2019๋…„ ํšŒ๊ณ 

· โ˜• 8 min read · ๐Ÿ‘€... views

์ด์ „์—๋Š” ์ƒ๊ฐ๋งŒ ํ•˜๊ณ  ๋‚จ๊ฒจ๋’€๋˜ ๊ฒƒ๋“ค์„ ๋ธ”๋กœ๊ทธ๋ฅผ ๋งŒ๋“ค๊ณ  ๋‚˜๋‹ˆ ์จ๋ด์•ผ ๊ฒ ๋‹ค๋Š” ์ƒ๊ฐ์ด ๋“ค์—ˆ๋‹ค. ๊ทธ๋ ‡๊ฒŒ ํ•˜์—ฌ ์ด๋ฒˆ์—๋Š” 2019๋…„์˜ ์ƒ๊ฐ์„ ๋‚จ๊ธฐ๊ณ ์ž ํ•œ๋‹ค.

์‹ค์ œ๋กœ ์ž‘์„ฑ์„ ์ƒ๊ฐํ–ˆ๋˜ ๊ฑด ์ง€๋‚œ ์ฃผ ์˜€๋Š”๋ฐ, ์ด๋Ÿฌ์ €๋Ÿฌํ•œ ์‚ฌ์ • ๋•Œ๋ฌธ์— ์ด์ œ์„œ์•ผ ์“ฐ๊ฒŒ ๋˜์—ˆ๋‹ค. (์ข€ ๋” ๋Šฆ์ถ”๋ฉด ํšŒ๊ณ ๊ฐ€ ์•„๋‹Œ ์‹ ๋…„ ๋‹ค์ง์ด ๋  ๊ฑฐ ๊ฐ™๊ธฐ์—..)

1. ์—…๋ฌด ์™ธ์ ์œผ๋กœ ๋ฐ›๋Š” ์ŠคํŠธ๋ ˆ์Šค๊ฐ€ ๋งŽ์•˜๋˜ ์ƒ๋ฐ˜๊ธฐ

ํ˜„์žฌ ํšŒ์‚ฌ๋Š” ์ง€์ธ์˜ ์†Œ๊ฐœ๋กœ ์ž‘๋…„ 9์›”์— ์ž…์‚ฌํ–ˆ์—ˆ๋‹ค. ๋‹น์‹œ ํŒ€์€ AI์Šคํ”ผ์ปค ๋ฅผ ๊ฐœ๋ฐœํ•˜๋Š” ํŒ€์ด์—ˆ๊ณ , ๋‚˜๋ฆ„ ์‹ ๊ธฐ์ˆ  ์…‹(์Šคํ”„๋ง ๋ถ€ํŠธ, Angular2, Junit5, AIML, ๋ ˆ๋””์Šค ๋“ฑ) ์œผ๋กœ ์žฌ๋ฐŒ์—ˆ๋‹ค. ํ•˜์ง€๋งŒ, ํ”„๋กœ์ ํŠธ์˜ ์ค‘์ถ”๋ฅผ ๋งž๊ณ  ์žˆ๋Š” ์‚ฌ์ˆ˜๊ฐ€ ๊ฑด๊ฐ•์ƒ์˜ ์ด์œ ๋กœ ํ‡ด์‚ฌํ•˜๊ณ  ๊ทธ ์ดํ›„๋กœ๋Š” ์ •๋ง ํž˜๋“ค์—ˆ๋‹ค. ์ƒˆ๋กœ์šด ์ƒ์‚ฌ๊ฐ€ ์˜ค๊ณ  ์—„์ฒญ๋‚˜๊ฒŒ ๋งž์ง€ ์•Š์•˜์—ˆ๊ณ , ๊ทธ๋Ÿฐ ์—…๋ฌด ์Šคํƒ€์ผ๋กœ ์ธํ•ด ํ‡ด์‚ฌ๊นŒ์ง€ ๊ฒฐ์‹ฌํ–ˆ์—ˆ๋‹ค๊ฐ€ ๊ทธ๋ž˜๋„ ๋ฌด์Šจ ์˜ค๊ธฐ(?)์ธ์ง€ ํ”„๋กœ์ ํŠธ๊ฐ€ ๋๋‚  ๋•Œ๊นŒ์ง€๋งŒ ํ•˜๊ณ  ๋‚˜๊ฐ€๋ ค๊ณ  ์ƒ๊ฐํ–ˆ์—ˆ๋‹ค.

1-1 ๋๋‚˜์ง€ ์•Š๋Š” ํ”„๋กœ์ ํŠธ

์ด๋ฏธ 1-2 ์ฐจ๋ก€ ๋ฐ€๋ฆฐ ์ ์ด ์žˆ๋Š” ํ”„๋กœ์ ํŠธ์˜€๋‹ค. (์ค‘์ถ”๊ฐ€ ์—†๊ณ , ๋ฐ€๋ฆฐ ํ”„๋กœ์ ํŠธ๋Š” ์„ฑ๊ณต ๊ฐ€๋ง์„ฑ์ด ์—†๋Š”๋ฐ, ์ด ๋•Œ๋Š” ๊ฒฝํ—˜๋„ ์—†๊ฑฐ๋‹ˆ์™€ ๋„ˆ๋ฌด ๋ชฐ๋ž๋‹ค.)

ํ‡ด์‚ฌ๋ฅผ ์ƒ๊ฐํ–ˆ๋˜ ์‹œ๊ธฐ๊ฐ€ 3์›” ์ฆˆ์Œ์ด์—ˆ๊ณ , ํ”„๋กœ์ ํŠธ ์˜คํ”ˆ ์˜ˆ์ •์€ 4์›” ์ฆˆ์Œ์ด์—ˆ๋‹ค. ํ•œ ๋‹ฌ ์ •๋„๋Š” ๋ฒ„ํ‹ธ๋งŒ ํ•˜๋‹ค๊ณ  ์ƒ๊ฐํ–ˆ๋‹ค. (๊ทธ๋ฆฌ๊ณ  ๋‚ด ์ชฝ์€ ์ด์ „๋ถ€ํ„ฐ ์˜คํ”ˆ ์ค€๋น„๊ฐ€ ๋˜์–ด ์žˆ์—ˆ๋‹ค…) ํ•˜์ง€๋งŒ, ๋˜ ์˜คํ”ˆ์„ ๋ชป ํ•˜๊ฒŒ ๋˜์—ˆ๊ณ , ์ด๋ฒˆ์—๋Š” 10์›”์ธ๊ฐ€๋กœ ๋ฐ€๋ ค๋ฒ„๋ ธ๋‹ค. ์•„๋ฌด ์ƒ๊ฐ๋„ ์•ˆ ๋“ค์—ˆ๋‹ค. ์ด๋ฏธ ์ƒ์‚ฌํ•œํ…Œ ๋ฐ›๋Š” ์ŠคํŠธ๋ ˆ์Šค๋Š” ๋งŽ์•˜๊ณ , 1๋‹ฌ ์ •๋„๋Š” ์ฐธ์„ ์ˆ˜ ์žˆ์—ˆ์ง€๋งŒ 10์›”๊นŒ์ง„ ์•„๋‹ˆ๋‹ค.

1-2 ๋‹ค๋ฅธ ๋ฐฉ๋ฒ•์„ ์ฐพ์•„์„œ

3์›”์— ํ‡ด์‚ฌ๋ฅผ ์ƒ๊ฐํ•˜๊ธด ํ–ˆ์ง€๋งŒ, ๋„ˆ๋ฌด ์–ต์šธํ•˜๋‹จ ์ƒ๊ฐ์ด ๋“ค์—ˆ๋‹ค. ์ด ํšŒ์‚ฌ์— ์ž‘๋…„ 9์›”์— ์™”๊ณ , ์ด์ œ ๊ฒจ์šฐ 6๊ฐœ์›”์ธ๋ฐ ๋‚˜๊ฐ€๋ฉด ์ปค๋ฆฌ์–ด๋„ ์—‰๋ง์ด ๋˜๊ณ , ๋ฌด์—‡๋ณด๋‹ค ์ƒํ•˜ ๊ด€๊ณ„๋ผ๋Š” ์œ„์น˜์˜ ํ•œ ์‚ฌ๋žŒ๋•Œ๋ฌธ์— ๋‚˜๊ฐ€๋Š” ๊ฒŒ ๋ฌด์ฒ™ ์‹ซ์—ˆ๋‹ค. ๊ทธ๋ž˜์„œ ๋‹ค๋ฅธ ํŒ€ ํŒ€์žฅ๋‹˜ํ•œํ…Œ ์ƒ๋‹ด์„ ์š”์ฒญํ–ˆ์—ˆ๋‹ค. ๋‹น์‹œ์—๋Š” ์˜ฎ๊ธฐ๊ณ  ์‹ถ๋‹ค๋Š” ์ง์ ‘์ ์ธ ์–˜๊ธฐ๋ณด๋‹ค๋Š” ์ƒํ™ฉ์ด ์ด๋Ÿฌํ•œํ…Œ ์ œ๊ฐ€ ์–ด๋–ป๊ฒŒ ํ•˜๋ฉด ์ข‹์„๊นŒ์š” ๊ฐ™์€ ๊ทธ๋Ÿฐ ์–˜๊ธฐ๋ฅผ

1-3 ํŒ€์„ ์˜ฎ๊ธฐ๋‹ค

ํ”„๋กœ์ ํŠธ๊ฐ€ ๊ฐ‘์ž๊ธฐ ๋’ค๋กœ ํ›… ๋ฐ€๋ฆฌ๋ฉด (๊ฑฐ์˜ 6๊ฐœ์›” ๊ฐ€๋Ÿ‰ ๋ฐ€๋ ธ๋‹ค) , ๊ธด์žฅ๋„ ํ’€์–ด์ง€๊ณ  ๋” ๋Š˜์–ด์ง€๋Š” ๊ฒƒ์„ ๊ฒฝํ—˜ํ–ˆ๋‹ค.

์ด๋ฏธ ์˜์š•์€ ์—†๋Š” ์ƒํƒœ์˜€๋‹ค. ํšŒ์‚ฌ๊ฐ€ ์žฌ๋ฏธ๊ฐ€ ์—†๊ณ  ์ฃผ๋„๊ถŒ์ด ์—†๋Š”๋ฐ ๋ฌด์Šจ ์˜์š•์ด ์ƒ๊ธฐ๊ฒ ๋Š”๊ฐ€. ๊ฒŒ๋‹ค๊ฐ€ ์†Œ์† ๋ถ€์„œ์˜ ๋ถ„์‚ฌ ์–˜๊ธฐ๊นŒ์ง€ ๋‚˜๋Œ์•˜๋‹ค.

๋Œ์ด์ผœ๋ณด๋ฉด ์ด๊ฑด ์ฐธ ์ข‹์€ ๊ธฐํšŒ์˜€๋‹ค. ๋ถ„์‚ฌ๋ฅผ ํ•œ๋‹ค๋Š” ์–˜๊ธฐ๊ฐ€ ๋Œ์•„์„œ ๋‚จ์„ ๊ฒƒ์ธ์ง€, ๋ถ„์‚ฌํ•œ ๊ณณ์— ๊ฐˆ ๊ฒƒ์ธ์ง€ ์˜๊ฒฌ์„ ๋ฌป๋Š”๋ฐ ๋‚œ ๋‹น์—ฐํžˆ ๊ฐˆ ์ด์œ ๊ฐ€ ์—†์—ˆ๋‹ค ๋‚จ๋Š”๋‹ค๊ณ  ์–˜๊ธฐ๋ฅผ ํ–ˆ๊ณ , ๊ทธ๋ ‡๊ฒŒ ํŒ€์„ ์˜ฎ๊ธฐ๊ฒŒ ๋˜์—ˆ๋‹ค.

์—ฌ๋‹ด์ด์ง€๋งŒ, ๋ถ„์‚ฌ ๋•๋ถ„์— ์‚ฌ์› -> ์ฃผ์ž„ ์˜ ์ง„๊ธ‰ ๋ˆ„๋ฝ๋„ ๊ฒฝํ—˜ํ•ด๋ดค๋‹ค ใ…‹ใ…‹ใ…‹

(์ง„๊ธ‰ ๋ณ„๋กœ ์‹ ๊ฒฝ๋„ ์•ˆ ์“ฐ๊ณ , ํ•œ๋‹คํ•ด๋„ ์—ฐ๋ด‰์ด ์•ˆ ์˜ค๋ฅธ๋‹ค๋Š” ์–˜๊ธฐ๋ฅผ ๋“ฃ๊ณ  ๋” ๊ด€์‹ฌ์—†์–ด์กŒ์—ˆ๋‹ค.)

2. ์ƒˆ๋กœ์šด ํŒ€์—์„œ (์ค‘๋ฐ˜๊ธฐ? ์ดํ›„)

ํŒ€์„ ์˜ฎ๊ธฐ๊ณ  ๋งก์€ ์—…๋ฌด๋Š” ๋ฐฑ์˜คํ”ผ์Šค (๊ด€๋ฆฌ์ž ํŽ˜์ด์ง€) ์—์„œ ์˜คํ”„๋ผ์ธ ์‚ฌ์—…๋ถ€์™€ ๊ด€๋ จ๋œ ์ผ์„ ๋งก์•˜๋‹ค.

๋‹น์‹œ ์˜คํ”„๋ผ์ธ ์‚ฌ์—…๋ถ€์—์„œ ์‚ฌ์šฉํ•˜๋Š” ๋ชจ๋ฐ”์ผ ํŽ˜์ด์ง€๋ฅผ ๋ณ€๊ฒฝํ•œ๋‹ค๊ณ  ํ–ˆ๊ธฐ์—, ๊ทธ๊ฒŒ ์ƒˆ๋กœ์šด ํŒ€์—์„œ ๋งก์€ ์ฒซ ์—…๋ฌด(ํ”„๋กœ์ ํŠธ?) ์˜€๋‹ค.

2-1 ๋ณด๊ธฐ์‹ซ์€ ๋ ˆ๊ฑฐ์‹œ ์ฝ”๋“œ์™€ JqueryMobile

๋ฌด์—‡์„ ๊ฐœ๋ฐœํ•˜๋“ , ์ฒ˜์Œ์—๋Š” ๋ถ„์„์ด ํ•„์š”ํ•˜๊ธฐ์— ๊ธฐ์กด์— ์–ด๋–ป๊ฒŒ ๊ตฌํ˜„๋˜์–ด ์žˆ๋Š”์ง€ ์ฝ”๋“œ๋ฅผ ๋ณด๊ณ  ์„ค๋ช…์„ ๋“ค์—ˆ๋‹ค.

๊ทธ๋ฆฌ๊ณ  ์•Œ์•„๋‚ธ ํ”„๋กœ์„ธ์Šค๋Š” ๋Œ€๋žต ์ด๋žฌ๋‹ค.

  1. ๋น„ํšŒ์›์— ๋Œ€ํ•œ ์ •๋ณด๋ฅผ ์ž…๋ ฅ
  2. ์ •์ œ๋ผ๋Š” ํ”„๋กœ์„ธ์Šค๋ฅผ ์ง„ํ–‰(๋น„ํšŒ์›์œผ๋กœ ๋“ฑ๋ก์ด ๊ฐ€๋Šฅํ•œ์ง€)
  3. ๋น„ํšŒ์›์œผ๋กœ ๋“ฑ๋ก๋˜๋ฉด ์ต์ผ ๋ฐฐ์น˜ ํ”„๋กœ์„ธ์Šค๋ฅผ ํ†ตํ•ด ์ฒดํ—˜ ํšŒ์›์œผ๋กœ ์ „ํ™˜

๋ฌธ์ œ๋Š” 2,3 ๋ฒˆ์˜ ์ •์ œ, ๋ฐฐ์น˜ ํ”„๋กœ์„ธ์Šค๊ฐ€ ๋‘˜ ๋‹ค DB ํ”„๋กœ์‹œ์ €๋กœ ๋˜์–ด ์žˆ๊ณ ,

๋ช‡ ์ฒœ์ค„ ์ด๋ ‡๊ฒŒ ๋˜๋‹ˆ๊นŒ ๊ฐํžˆ ๊ฑด๋“œ๋ฅผ ์ˆ˜๊ฐ€ ์—†์—ˆ๊ณ , ์„ค์‚ฌ ๊ฑด๋“œ๋ฆฐ๋‹คํ•ด๋„ ์—„์ฒญ๋‚œ ๊ณต์ˆ˜๊ฐ€ ๋“ค ๊ฒƒ์€ ๋ป”ํ–ˆ๋‹ค.

๊ฒŒ๋‹ค๊ฐ€ ๋ฐ์ดํ„ฐ์˜ ๋Œ€๋ถ€๋ถ„์„ Map ์„ ํ†ตํ•ด ์ „๋‹ฌํ•˜๋‹ˆ ์ผ์ผํžˆ ๋””๋ฒ„๊ทธ๋ฅผ ํ†ตํ•ด ๋ฐ์ดํ„ฐ๋ฅผ ๋ถ„์„ํ•˜๋Š” ์ˆ˜๊ณ ๋„ ๊ฒธ์‚ฌ๊ฒธ์‚ฌํ–ˆ๋‹ค.

๋ฌผ๋ก  ๋ ˆ๊ฑฐ์‹œ๊ฐ€ ๋ฌด์กฐ๊ฑด ์‹ซ๋‹ค๊ฑฐ๋‚˜ ๊ทธ๋Ÿฐ ๊ฑด ์•„๋‹ˆ๋‹ค. ์ผ๋‹จ์€ ์ž‘๋™ํ•˜๋Š” ์ฝ”๋“œ์ด๊ธฐ๋„ ํ•˜๋‹ˆ๊นŒ.

๋‹จ์ง€, ๊ทธ๋Ÿฐ ๊ฑธ ๋ณด๊ณ ๋„ ๊ณ ์น  ์—ญ๋Ÿ‰์ด ์•ˆ๋˜๋Š” ์ž์‹ ๊ณผ ์š•์„ ํ•˜๋ฉด์„œ๋„ ๊ทธ์™€ ๋น„์Šทํ•œ ์ฝ”๋“œ๋ฅผ ์ƒ์‚ฐํ•˜๋Š” ์ž์‹ ํ•œํ…Œ ํ™”๊ฐ€ ๋‚  ๋ฟ์ด๋‹ค.

๊ทธ๋Ÿฐ ์˜๋ฏธ์—์„œ JqueryMobile ๋„ ๊ฝค๋‚˜ ์˜๋ฌธ์ด ๋งŽ์ด ๋“ค์—ˆ๋‹ค. ์‚ฌ์ดํŠธ๋ฅผ ๋“ค์–ด๊ฐ€๋ณด๋‹ˆ ๋”์ด์ƒ update ๋ฅผ ์•ˆํ•˜๋Š” ๊ฒƒ ๊ฐ™์€ ๋Š๋‚Œ์—, Jquery๋„ ์ด์   ๊ฑฐ์˜ ์‚ฌ์šฉ์„ ์•ˆํ•˜๋Š” ์ถ”์„ธ์ธ๋ฐ JqueryMobile์€ ๋” ๊ทธ๋ ‡์ง€ ์•Š์„๊นŒ ํ•˜๋Š” ์ƒ๊ฐ๋„ ๋“ค์—ˆ๊ณ  ๋ง์ด๋‹ค.

2-2 ๊ทธ๋ž˜๋„ ์ƒˆ๋กœ์šด ๊ฒƒ๋„ ๋งŽ์ด ์•Œ์•˜๋‹ค.

์•„์ง์€ ๋ฐฐ์šธ ๊ฒŒ ๋งŽ์€ ์ฃผ๋‹ˆ์–ด ๊ฐœ๋ฐœ์ž์ด๋‹ค. ๊ทธ๋Ÿฐ ์˜๋ฏธ์—์„œ ์ฃผ๋ณ€์— ์ข‹์€ ์ž๊ทน์„ ์ค„ ์ˆ˜ ์žˆ๋Š” ์ข‹์€ ๊ฒฝํ—˜ ๋งŽ์€ ๋™๋ฃŒ๊ฐ€ ์žˆ๋‹ค๋Š” ๊ฑด ์ข‹๋‹ค.

์˜คํ”„๋ผ์ธ ์‚ฌ์—…๋ถ€ ์ผ์„ ์–ด๋Š์ •๋„ ๋๋‚ธ ์‹œ์ ์—์„œ ํšŒ์‚ฌ ์„œ๋น„์Šค์˜ ๊ณ ๋„ํ™” ํ”„๋กœ์ ํŠธ์— ํˆฌ์ž…๋˜์—ˆ๋‹ค. (๊ณ ๋„ํ™” ๋‚ด์šฉ์„ ์กฐ๊ธˆ์”ฉ ์ชผ๊ฐœ์„œ ์ง„ํ–‰ํ•˜๋Š”๋ฐ, ๋ช‡ ์ฐจ ๊นŒ์ง€ ์žˆ๋Š”์ง„ ๋ชจ๋ฅด๊ฒ ์œผ๋‚˜, ์–ด์ฉŒ๋‹ค๋ณด๋‹ˆ 1,2,3 ์ฐจ ๋‹ค ์ฐธ์—ฌํ•˜๊ฒŒ ๋˜์—ˆ๊ณ , ํ˜„์žฌ๋Š” 3์ฐจ๋ฅผ ์ง„ํ–‰์ค‘์ด๋‹ค.)

๋Œ€๋žต ์ƒ๊ฐ๋‚˜๋Š” ๋Œ€๋กœ ์—ด๊ฑฐํ•ด๋ณด๋ฉด ์ด๋ ‡๊ฒŒ ๋˜๋Š” ๊ฒƒ ๊ฐ™๋‹ค.

(๋ฌผ๋ก  ๋Œ€๋ถ€๋ถ„์€ ๋ธ”๋กœ๊ทธ์— ์ •๋ฆฌํ•ด๋†“์€ ๊ฒƒ๋“ค์ด๋ฉฐ, TypeScript ๋ฅผ ์† ๋†“์€๊ฒŒ ์•„์‰ฝ๊ธด ํ•˜๋‹ค.)

  • nGrinder ์‚ฌ์šฉ ๋ฐ ์ •๋ฆฌ (๋ถ€ํ•˜ ํ…Œ์ŠคํŠธ)
  • Feign ์‚ฌ์šฉ ๋ฐ ์ •๋ฆฌ (API ํ†ต์‹ )
  • wireMock, Mockito ๋“ฑ ํ…Œ์ŠคํŠธ mock ์‚ฌ์šฉ ๊ฒฝํ—˜
  • ๋ชจ๋ธ ๊ธฐ๋ฐ˜์— ๋Œ€ํ•œ ์„ค๊ณ„ ๊ฒฝํ—˜
  • ์•„ํŒŒ์น˜ ์„ค์ •์„ ํ†ตํ•œ ์„œ๋ฒ„ ๊ตฌ์„ฑ
  • Jenkins ํŒŒ์ผ์„ ํ†ตํ•œ ๋ฐฐํฌ ์ž๋™ํ™”(?) ๊ฒฝํ—˜ ๋“ฑ

๋ฌผ๋ก  ๊ฒฝํ—˜์—์„œ ๋๋‚ด๋ฉด ์•ˆ๋œ๋‹ค, ์ง€์†์ ์œผ๋กœ ํ•˜๊ณ , ์ •๋ฆฌ๋ฅผ ํ•ด์•ผ ๋‚ด ๊ฒƒ์ด ๋˜๋‹ˆ๊นŒ.

๊ทธ๋ฆฌ๊ณ  ์ด๋ฒˆ์— 3์ฐจ๋ฅผ ์ง„ํ–‰ํ•˜๋ฉด์„œ Kotlin, JPA ๋ฅผ ๊ฒฝํ—˜ ํ•˜๊ณ  ์žˆ๋‹ค. ๋‘˜ ๋‹ค ์ƒˆ๋กœ ์‚ฌ์šฉํ•ด๋ณด๋Š” ๊ฒƒ๋“ค์ด๋ผ ๊ณต๋ถ€๋ฅผ ๋งŽ์ด ํ•ด์•ผ ๊ฒ ๋‹ค.

2-3 ์š•์‹ฌ์ด ๋งŽ์•„์„œ ๊ทธ๋Ÿฐ๊ฑธ๊นŒ

๋ฐ˜ ๋…„ ์ •๋„์˜ ์‹œ๊ฐ„ ๋™์•ˆ ๋งŽ๋‹ค๊ณ  ํ•˜๋ฉด ๋งŽ์„ ์ˆ˜ ์žˆ๊ณ , ์ ๋‹ค๊ณ  ํ•˜๋ฉด ์ ์„ ์ˆ˜ ์žˆ๋Š” ๊ฒƒ๋“ค์„ ์•Œ๊ฒŒ๋˜์—ˆ๋‹ค.

์ด์ „ ํšŒ์‚ฌ์—์„œ ์—ฌ์œ ๊ฐ€ ์—†์ด ์ƒํ™œ์„ ํ•ด์„œ ๊ทธ๋Ÿฐ์ง€, ํ˜„์žฌ ํšŒ์‚ฌ์˜ ์—ฌ์œ ๋กœ์šด ์ƒํ™ฉ์—์„œ ๋ญ˜ ํ•ด์•ผ ๋  ์ง€ ๋ชจ๋ฅด๊ฒ ๋‹ค.

์‹œ๊ฐ„์  ์—ฌ์œ ๊ฐ€ ์ƒ๊ธฐ๋‹ค๋ณด๋‹ˆ ๊นƒ์— ๋ ˆํฌ๋ฅผ ํ•˜๋‚˜ ๋งŒ๋“ค์–ด์„œ ์ •๋ฆฌ๋„ ํ•˜๊ฒŒ๋˜๊ณ , (์ •๋ฆฌ๋งŒ ํ•˜๋‹ค๊ฐ€ ์žฌ๋ฏธ์—†์–ด์„œ ๋ธ”๋กœ๊ทธ๊นŒ์ง€ ๋งŒ๋“ค๊ฒŒ ๋˜์—ˆ์ง€๋งŒ..)

๊ทผ๋ฐ ๊ทธ๋ ‡๊ฒŒํ•ด๋„ ๋‚จ๋Š” ์ž‰์—ฌ ์‹œ๊ฐ„์ด ๋งŽ์œผ๋‹ˆ๊นŒ, ๋‹ต๋‹ตํ•จ์„ ๋Š๋ผ๊ฒŒ ๋˜๋Š” ๊ฒƒ ๊ฐ™๋‹ค.

๋‚ด๊ฐ€ ๊ฒ์€ ๋งŽ์ง€๋งŒ, ๊ทธ๋ ‡๋‹ค๊ณ  ๋งˆ๋ƒฅ ํ‰์˜จ์„ ๋ฐ”๋ผ์ง€๋Š” ์•Š๋Š” ๊ฒƒ ๊ฐ™๋‹ค ใ…‹ใ…‹ใ…‹

3. ์—…๋ฌด ์™ธ ์ ์œผ๋กœ๋Š” ๋ฌด์—‡์„ ํ–ˆ๋Š”๊ฐ€

๋Œ€๋ถ€๋ถ„ ํ•˜๋ฐ˜๊ธฐ๋ถ€ํ„ฐ ์‹œ์ž‘ํ•œ ๊ฒƒ์ด๊ธด ํ•˜์ง€๋งŒ, ๊ทธ๋ž˜๋„ ์˜ฌํ•ด๋Š” ์—…๋ฌด ์™ธ ์ ์œผ๋กœ ์ด๊ฒƒ์ €๊ฒƒ ์‹œ๋„ํ•ด๋ณธ ๊ฒƒ ๊ฐ™๋‹ค.

๊ฒฝํ—˜์— ์—†๋˜ ๊ฒƒ๋“ค์ด๋‹ˆ ์ฐจ๊ทผ์ฐจ๊ทผ ์ง„ํ–‰ํ•ด๋‚˜๊ฐ€๋ฉด ๋„์›€์ด ๋˜์ง€ ์•Š์„๊นŒ?

3-1 ์„ค๊ณ„ ์„ธ๋ฏธ๋‚˜

ํšŒ์‚ฌ์—์„œ ์ฃผ๋‹ˆ์–ด ๊ฐœ๋ฐœ์ž๋“ค (5๋ช… ์ •๋„?) ์„ ๋Œ€์ƒ์œผ๋กœ ์ตœ๋ฒ”๊ท  ๋‹˜์ด ๋ชจ๋ธ, ์„ค๊ณ„์— ๋Œ€ํ•ด์„œ ๊ฐ•์˜ ํ˜•์‹์œผ๋กœ ์•Œ๋ ค์ฃผ์‹ ๋‹ค.

๊ธฐ์กด์˜ MVC ์˜ ๊ฐœ๋…๊ณผ DB ๋ฐ์ดํ„ฐ ์ค‘์‹ฌ์ ์ธ ์‚ฌ๊ณ ์—์„œ ๋ฒ—์–ด๋‚˜ ๋„๋ฉ”์ธ ์ค‘์ ์— ๋Œ€ํ•œ ์—ฐ์Šต์„ ํ•  ์ˆ˜ ์žˆ๋‹ค๋Š” ์ ์—์„œ ๋ฐฐ์šฐ๋Š” ์ ์ด ๋งŽ๋‹ค.

  • ๊ธฐ๋Šฅ์—๋Š” Input ๊ณผ OutPut ์ด ์žˆ๋‹ค
  • What ๊ณผ How ๋ฅผ ์–ผ๋งˆ๋‚˜ ์ž˜ ๋‚˜๋ˆ„๋Š๋ƒ์— ๋”ฐ๋ผ ์ข‹์€ ์„ค๊ณ„๊ฐ€ ๋œ๋‹ค
  • ๊ด€๋ จ๋œ ๊ธฐ๋Šฅ์„ ์ตœ๋Œ€ํ•œ ํ•œ ๊ตฐ๋ฐ๋กœ ๋ชจ์™€์•ผ ํ•œ๋‹ค ๋“ฑ

๋งŽ์€ ๋„์›€์ด ๋œ๋‹ค. ์•„์‰ฌ์šด ์ ์ด ์žˆ๋‹ค๋ฉด, ์ง€์†์ ์ธ ์—ฐ์Šต์„ ํ†ตํ•ด ์ฝ”๋“œ์— ๋…น์—ฌ๋‚ด์•ผ ํ•˜๋Š”๋ฐ, ๊ทธ๋ ‡๊ฒŒ ๋ชปํ•˜๋Š” ์ ? (์—ญ์‹œ ๊พธ์ค€ํ•จ์ด..)

3-2 ๋ฆฌ๋ˆ…์Šค ์Šคํ„ฐ๋””

ํšŒ์‚ฌ์—์„œ ์ง„ํ–‰ํ•œ ์Šคํ„ฐ๋””๋กœ ๊ณตํ†ต์ ์œผ๋กœ ๋ฐฐ์šฐ๋ฉด ์ข‹์€ ๋‚ด์šฉ์ด ๋ฌด์—‡์ด ์žˆ์„๊นŒ ํ•˜์—ฌ ์ง„ํ–‰ํ•œ ์Šคํ„ฐ๋””๋กœ, ๋ฆฌ๋ˆ…์Šค์— ๋Œ€ํ•œ ์ „๋ฐ˜์ ์ธ ๋‚ด์šฉ์„ ๋‹ค๋ค˜๋‹ค.

ํšŒ์‚ฌ์—์„œ ์ง„ํ–‰ํ•œ ๊ฒƒ์ด๋‹ค๋ณด๋‹ˆ, ๋น ์ง€๋Š” ์ธ์›์ด ์—†๋‹ค๋Š” ์ ๊ณผ ํŽธ์•ˆํ•˜๊ฒŒ ์ง„ํ–‰ํ•  ์ˆ˜ ์žˆ๋‹ค๋Š” ์ ์ด ๊ดœ์ฐฎ์•˜๋‹ค.

๋˜ํ•œ, ํ•™๋ถ€์ƒ ๋•Œ ๋ฐฐ์› ๋˜ OS ์— ๋Œ€ํ•œ ๋‚ด์šฉ์„ ๊ฐ„๋‹จํžˆ ๋ฆฌ๋งˆ์ธ๋“œ ํ•  ์ˆ˜ ์žˆ๋Š” ๊ธฐํšŒ์ด๊ธฐ๋„ ํ–ˆ๋‹ค.

ํ•˜์ง€๋งŒ, command line ํ™˜๊ฒฝ์ด ์•„์ง์€ ์ต์ˆ™์น˜ ์•Š๊ธฐ์—…

3-3 ํ”„๋กœ๊ทธ๋ž˜๋ฐ ํŒจํ„ด ์Šคํ„ฐ๋””

ํŽ˜์ด์Šค๋ถ ๊ทธ๋ฃน์ธ ์‹ ๋ฆผํ”„๋กœ๊ทธ๋ž˜๋จธ ์—์„œ ์ง„ํ–‰ํ•œ ์Šคํ„ฐ๋””๋กœ ํ”„๋กœ๊ทธ๋ž˜๋ฐ ํŒจํ„ด์— ๋Œ€ํ•œ ์—ญ์‚ฌ์  ํ๋ฆ„์„ ์‚ดํŽด๋ณด๋Š” ์ฑ…์ธ๋ฐ,

๋‚ด ์ˆ˜์ค€์—์„œ๋Š” ์—„์ฒญ ์–ด๋ ค์› ์œผ๋ฉด์„œ๋„ ์—„์ฒญ ์ž๊ทน์„ ๋ฐ›์€ ์Šคํ„ฐ๋””์˜€๋‹ค.

(์ฑ…์˜ ๋‚ด์šฉ์—์„œ ์ž๊ทน์„ ๋ฐ›์•˜๋‹ค๊ธฐ๋ณด๋‹จ, ๊ฐ™์€ ์Šคํ„ฐ๋””์›๋“คํ•œํ…Œ์„œ ์ž๊ทน์„ ๋งŽ์ด ๋ฐ›์•˜๋‹ค.)

๊ฝค๋‚˜ ๋งŽ์€ ๋‚ด์šฉ์ด ์žˆ์—ˆ์ง€๋งŒ, ๊ฒจ์šฐ ์ฝ”๋“œ ์ดํ•ดํ•˜๊ณ  ๊ฐ”๋˜ ์ •๋„๋ผ ๋งŽ์€ ๋‚ด์šฉ์ด ๊ธฐ์–ต์ด ๋‚จ์•„์žˆ์ง„ ์•Š๋‹ค.

๊ทธ๋ž˜๋„ ๊ฐ€๋” ์•„ ์ด๋Ÿฐ ๋น„์Šทํ•œ ๊ฑฐ ์–ด๋””์„œ ๋ณธ ๊ฑฐ ๊ฐ™์€๋ฐ.. ํ•˜๊ณ  ์ฑ…์„ ๋ณด๋ฉด ๋˜ ์•„ ์ด๋žฌ์ง€ ํ•˜๊ณ  ๊ธฐ์–ต์ด ๋‚˜๊ธฐ์— ๊ทธ๋‚˜๋งˆ ๋‹คํ–‰์ผ๊นŒ?

3-4 ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ ์Šคํ„ฐ๋””

์ด ์Šคํ„ฐ๋””๋Š” ์‹œ์ž‘ํ•˜๊ธฐ ์ „ ๋ถ€ํ„ฐ ๊ฝค๋‚˜ ์šฐ์—ฌ๊ณก์ ˆ์ด ๋งŽ์•˜๋‹ค.

์ผ๋‹จ, ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ์— ๋Œ€ํ•ด ๋ณ„๋กœ ๊ด€์‹ฌ์ด ์žˆ์ง„ ์•Š์•˜๋‹ค. ์–ด์ฐจํ”ผ ๋‚œ ์„œ๋ฒ„ ๊ฐœ๋ฐœ์ชฝ์œผ๋กœ ๊ฐˆ ๊ฑฐ๋‹ˆ๊นŒ.

๊ทผ๋ฐ, ์ด๊ฒŒ ๋˜ ์‹œ๊ฐ„์ด ์ง€๋‚˜๋‹ˆ๊นŒ ์ƒ๊ฐ์ด ๋ฐ”๋€Œ๋”๋ผ.

์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ ์‹œ์žฅ์€ ์ปค์ง€๊ณ , ์–ด์ฐจํ”ผ ๋—„๋ž˜์•ผ ๋—„ ์ˆ˜ ์—†๋‹ค๋ฉด ๊ณต๋ถ€ํ•ด์„œ ๊ฑฑ์ •์€ ์•ˆ๋˜๊ฒŒ ํ•ด์•ผ์ง€ ๋ผ๊ณ  ์ƒ๊ฐ์„ ๋ณ€ํ™˜ํ•˜๊ธฐ ๊นŒ์ง€ 1๋…„ ์ •๋„๊ฐ€ ๊ฑธ๋ ธ๋‹ค.

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

๊ทธ๋Ÿฌ๋‹ค๊ฐ€ ํ”„๋ก ํŠธํŒ€์— ์˜์š•๋„˜์น˜๋Š” ๋Œ€๋ฆฌ๋‹˜์ด ์˜ค๊ณ , ๊ฐ™์ด ์Šคํ„ฐ๋”” ํ•˜์ž๊ณ  ํ–ˆ๊ธฐ์— ์–ด์ฐŒ์–ด์ฐŒ ์ธ์›์„ ๋ชจ์™€์„œ ์ง„ํ–‰ํ–ˆ๋‹ค.

์ฒ˜์Œ์—๋Š” 5๋ช…์ด์—ˆ์œผ๋‚˜, ์ด์ง ๋“ฑ์˜ ์ด์œ ๋กœ ํ˜„์žฌ๋Š” 3๋ช…์œผ๋กœ ์กฐ๊ธˆ์€ ๋นก์ƒˆ์ง€๋งŒ, ์žฌ๋ฐŒ๊ฒŒ ์ง„ํ–‰ํ•˜๊ณ  ์žˆ๋‹ค.

4. ๋‚ด๋…„์—๋Š” ๋ฌด์—‡์„?

ํšŒ๊ณ ๋ฅผ ํ–ˆ๊ธฐ์— ๋ฏธ๋ž˜๋ฅผ ๊ณ„ํšํ•ด๋ณผ ์ˆ˜ ์žˆ๋Š” ์ž๋ฆฌ์ด์ง€ ์•Š์„๊นŒ ์‹ถ๋‹ค.

๋ฌผ๋ก  ์ด ์ค‘์—์„œ ๋ฌด์—‡์„ ํ• ์ง€, ๋‚ด๋…„ ํšŒ๊ณ ์—์„œ๋Š” ์–ด๋–ค ๋‚ด์šฉ์ด ์ž๋ฆฌ๋ฅผ ์ฐจ์ง€ํ•˜๊ณ  ์žˆ์„์ง€๋Š” ๋ชจ๋ฅด๊ฒ ์œผ๋‚˜,

์ผ๋‹จ ํ˜„์žฌ ๊ด€์‹ฌ์‚ฌ์— ๋Œ€ํ•ด์„œ ๊ฐ„๋žตํ•˜๊ฒŒ? ํฐ ๋ฉ์–ด๋ฆฌ๋กœ? ๋ฆฌ์ŠคํŠธ์—… ํ•œ๋‹ค๋ฉด,

  • Kotlin
  • Docker ๊ฐ™์€ ์ปจํ…Œ์ด๋„ˆ?
  • TypeScript + React?
  • ๋ ˆ๊ฑฐ์‹œ ์ฝ”๋“œ ํ™œ์šฉ ์ „๋žต - ์ฑ… (์Šคํ„ฐ๋””๋กœ ํ•˜๋ฉด ์ข‹๊ฒ ๋‹ค)
  • Rust? Go?
  • ๋ฐ”์ด์˜ฌ๋ฆฐ (๋งค๋…„ ๋ฒผ๋ฅด์ง€๋งŒ, ๋งค๋…„ ๋ชปํ•˜๊ณ  ์žˆ๋‹ค.)

4. ๋งบ์œผ๋ฉฐ

1๋…„์ด ์งง์•„๋ณด์ด๊ธฐ๋„ ํ•˜์ง€๋งŒ, ๋˜ ์ด๋ ‡๊ฒŒ ํšŒ๊ณ ๋ฅผ ํ•˜๋ฉด ๊ฒฐ์ฝ” ์งง์ง€๋งŒ์€ ์•Š์€ ์‹œ๊ฐ„์ด๋‹ค.

์ด ๊ธ€์„ ์“ฐ๊ธฐ ์ „์— ๋‹ค๋ฅธ ๊ฐœ๋ฐœ์ž๋“ค์˜ ํšŒ๊ณ ๋ฅผ ์ฝ์—ˆ๋Š”๋ฐ, ๋Œ€๋‹จํ•œ ์‚ฌ๋žŒ๋“ค์€ ์—ญ์‹œ ๋งŽ๋‹ค.

๋‚ด๊ฐ€ 1๋…„ ๋™์•ˆ ์žˆ์—ˆ๋˜ ์ผ์— ๋Œ€ํ•ด ์ƒ๊ฐํ•ด์„œ ์“ด ๊ธ€์ธ๋ฐ, ๋ˆ„๊ตฐ๊ฐ€๋Š” ์ƒ๋ฐ˜๊ธฐ์ธ๋ฐ๋„ ์ด ๋‚ด์šฉ๋ณด๋‹ค ๋งŽ๋‹ค.

์˜ˆ์ „๊ฐ™์•˜์œผ๋ฉด, ๋ถ€๋Ÿฝ๋‹ค๋ผ๋Š” ์ƒ๊ฐ์„ ๊ฐ€์ง€๋ฉด์„œ๋„ ์•„๋ฌด๊ฒƒ๋„ ์•ˆํ–ˆ์„ ๊ฒƒ์ด๋‹ค.

ํ•˜์ง€๋งŒ, ์ง€๊ธˆ์€ ๋‹ค๋ฅด๋‹ค. ๋ฌผ๋ก  ๋ถ€๋Ÿฝ๋‹ค๋ผ๋Š” ์ƒ๊ฐ์ด ์•ˆ๋“ค๋ฉด ๊ฑฐ์ง“๋ง์ด๊ฒ ์ง€๋งŒ, ๊ทธ ์‚ฌ๋žŒ์€ ๊ทธ ์‚ฌ๋žŒ์ด๊ณ , ๋‚ด๊ฐ€ ๊ทธ ์‚ฌ๋žŒ์ผ ์ˆœ ์—†์œผ๋‹ˆ, ๋‚˜๋Š” ๋‚˜๋Œ€๋กœ ๋‚ด ํŽ˜์ด์Šค๋Œ€๋กœ ๊พธ์ค€ํžˆ ์ง„ํ–‰ํ•˜๋ฉด ๋˜์ง€ ์•Š์„๊นŒ ์‹ถ๋‹ค.

์ทจ๋ฏธ๋กœ ์ฐธ๊ฐ€ํ•˜๋Š” ๋งˆ๋ผํ†ค ์ฒ˜๋Ÿผ ์ค‘๊ฐ„์— ํฌ๊ธฐํ•˜์ง€๋งŒ ์•Š์œผ๋ฉด ๊ฒฐ๊ตญ ๊ณจ์ธ ์ง€์ ์€ ๋‚˜์˜ค๋‹ˆ๊นŒ ๋ง์ด๋‹ค.

Share on

snack
WRITTEN BY
snack
Web Programmer


What's on this Page