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


  1. ํด๋ผ์šฐ๋“œ ํ™˜๊ฒฝ ์ดํ•ด
  2. ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ๊ตฌ์ƒ ๋ฐ ์š”๊ฑด ์ •์˜
  3. ์š”๊ฑด์— ๋Œ€ํ•œ Usecase ๋ฐ Wireframe ์ž‘์„ฑ
  4. ๋งˆ์ดํฌ๋กœ ์„œ๋น„์Šค ์•„ํ‚คํ…์ณ ์„ค๊ณ„
  5. ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ์„œ๋ฒ„ ํ™˜๊ฒฝ ์ค€๋น„
  6. ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ๋กœ์ปฌ ๊ฐœ๋ฐœ ํ™˜๊ฒฝ ์ค€๋น„
  7. ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ํ”„๋กœํ† ํƒ€์ž… ์ž‘์„ฑ Part1
  8. ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ํ”„๋กœํ† ํƒ€์ž… ์ž‘์„ฑ Part2
  9. ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ํ”„๋กœํ† ํƒ€์ž… ์ž‘์„ฑ Part3
  10. ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ DevOps ํ™˜๊ฒฝ ๊ตฌ์„ฑ

ํด๋ผ์šฐ๋“œ ํ™˜๊ฒฝ ์ดํ•ด

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

ํด๋ผ์šฐ๋“œ ์„œ๋ฒ„์™€ ์ผ๋ฐ˜ ์„œ๋ฒ„ ํ™˜๊ฒฝ์˜ ์ฐจ์ด?

์‚ฌ์‹ค ํด๋ผ์šฐ๋“œ ์„œ๋ฒ„์™€ ์ผ๋ฐ˜ ์„œ๋ฒ„์˜ ํ™˜๊ฒฝ ์ฐจ์ด์— ๋Œ€ํ•ด ์„ค๋ช…ํ•˜์ž๋ฉด ์ข€ ์˜› ์ด์•ผ๊ธฐ ์ผ์ง€๋„ ๋ชจ๋ฅด์ง€๋งŒ ๊ฐœ์ธ์šฉ ์ปดํ“จํ„ฐ PC๋ถ€ํ„ฐ ์ด์•ผ๊ธฐ๋ฅผ ์‹œ์ž‘ํ•ด์•ผ ํ•  ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค.

๊ฐœ์ธ์šฉ PC๊ฐ€ ์„œ๋ฒ„์™€ ๋‹ค๋ฅธ์ ์€ ๋ง ๊ทธ๋Œ€๋กœ ๊ฐœ์ธ์šฉ์œผ๋กœ ์‚ฌ์šฉ๋˜๋Š” ๊ฒƒ์ด๋ผ ์„ฑ๋Šฅ์˜ ์ œํ•œ์ด๋‚˜ OS์˜ ์ฐจ์ด๊ฐ€ ์žˆ์„ ๋ฟ ์ปดํ“จํ„ฐ๋ผ๋Š” ์ ์€ ๋™์ผํ•ฉ๋‹ˆ๋‹ค. ํŠนํžˆ, ๋Œ€ํ˜• ์„œ๋น„์Šค๋ฅผ ๊ตฌ์„ฑํ•˜๋Š” ๊ฒฝ์šฐ๊ฐ€ ์•„๋‹ˆ๋ผ๋ฉด ์›น์„œ๋ฒ„, Database ํ™˜๊ฒฝ๋„ ๊ตฌ์„ฑํ•  ์ˆ˜๋„ ์žˆ์œผ๋ฉฐ, Linux์™€ ๊ฐ™์€ OS๊ฐ€ ์•„๋‹ˆ๋”๋ผ๋„ ์ต์ˆ™ํ•œ OS์ธ Windows์˜ Server์šฉ์„ ์‚ฌ์šฉํ•  ์ˆ˜๋„ ์žˆ์Šต๋‹ˆ๋‹ค.

๊ทธ๋Ÿผ ์„œ๋ฒ„ ํ™˜๊ฒฝ๊ณผ PC์™€ ๋ญ๊ฐ€ ๋‹ค๋ฅธ ๊ฑธ๊นŒ์š”?

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

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

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

์„œ๋น„์Šค ์šด์˜์ž์˜ ์ž…์žฅ์—์„œ ๋ฐ”๋ผ๋ณธ ํด๋ผ์šฐ๋“œ

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

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

ํด๋ผ์šฐ๋“œ ์„œ๋ฒ„์˜ ๊ฒฝ์šฐ๋Š” ๋ฌผ๋ฆฌ ์„œ๋ฒ„์™€ ๋‹ฌ๋ฆฌ ๊ฐ€์ƒ ์„œ๋ฒ„๋ฅผ ์ด์šฉํ™˜ ํด๋ผ์šฐ๋“œ ํ™˜๊ฒฝ(Infrastructure)์˜ ํŠน์„ฑ์œผ๋กœ ์ธํ•ด ์‚ฌ์šฉ๋Ÿ‰ ๋ณ€๋™์— ๋Œ€ํ•ด ํ›จ์”ฌ ์œ ์—ฐํ•˜๊ฒŒ ๋Œ€์‘ ํ•  ์ˆ˜ ์žˆ๋Š”๋ฐ, ์ด๋ฅผ Scaling์ด๋ผ๊ณ  ํ‘œํ˜„ํ•ฉ๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด ๋„คํŠธ์›Œํฌ๋‚˜ CPU์˜ ์‚ฌ์šฉ๋Ÿ‰์ด ํŠน์ • %์ด์ƒ์œผ๋กœ ์ฆ๊ฐ€ํ•˜๊ณ  ๊ทธ ์‹œ๊ฐ„์„ ์–ด๋Š์ •๋„ ์œ ์ง€ํ•˜๋Š” ๊ฒฝ์šฐ ์„œ๋ฒ„๋ฅผ ๋” ์ฆ์„คํ•˜์—ฌ ์ด์— ๋Œ€์‘์„ ํ•  ์ˆ˜ ์žˆ๋„๋ก ํ•˜๋Š” ๊ฒƒ์„ Scale Up ๊ทธ์™€ ๋ฐ˜๋Œ€๋กœ ์‚ฌ์šฉ๋Ÿ‰์ด ์ค„์–ด๋“œ๋Š” ๊ฒฝ์šฐ ์„œ๋ฒ„๋ฅผ ๊ฐ์†Œ ํ•˜๋„๋ก ํ•˜๋Š” ๊ฒƒ์„ Scale Down์ด๋ผ๊ณ  ๋ถ€๋ฆ…๋‹ˆ๋‹ค.

์„œ๋น„์Šค ์šด์˜์ž๋Š” ํด๋ผ์šฐ๋“œ๋ฅผ ์•ˆ์ •๋œ ์„œ๋น„์Šค ๊ณต๊ธ‰ ๋ฟ๋งŒ ์•„๋‹ˆ๋ผ ๊ฐ€์ƒ ์„œ๋ฒ„๋ฅผ ์ด์šฉํ•˜๋Š” ๊ฒƒ์œผ๋กœ ๋ฌผ๋ฆฌ ์„œ๋ฒ„์˜ ์œ ์ง€ ๋ณด์ˆ˜ ๊ด€๋ฆฌ ๋น„์šฉ ๋˜ํ•œ ์ค„์ผ ์ˆ˜ ์žˆ๋Š” Infrastructure๋กœ ์ธ์‹ํ•ฉ๋‹ˆ๋‹ค.

๊ฐœ๋ฐœ์ž์˜ ์ž…์žฅ์—์„œ ๋ฐ”๋ผ๋ณธ ํด๋ผ์šฐ๋“œ

๊ทธ๋ ‡๋‹ค๋ฉด ๊ฐœ๋ฐœ์ž์˜ ์ž…์žฅ์—์„œ๋Š” ์–ด๋–จ๊นŒ์š”? ๋‹ค์–‘ํ•œ ๊ฐœ๋ฐœ์ž๊ฐ€ ์žˆ๊ฒ ์ง€๋งŒ ์—ฌ๊ธฐ์„œ๋Š” ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ๊ฐœ๋ฐœ์ž๋กœ ๊ฐ€์ •ํ•ด ๋ด…๋‹ˆ๋‹ค. ์•ฑ๊ฐœ๋ฐœ์ž ์ž…์žฅ์—์„œ ๋ณด๋ฉด ๊ฐ€์ƒ์„œ๋ฒ„๋‚˜ ๋ฌผ๋ฆฌ ์„œ๋ฒ„์™€ ๊ฐ™์€ H/W์  ๋ณ€ํ™”๋Š” ๊ทธ๋ฆฌ ํฐ ๊ด€์‹ฌ์ด ์—†๋‹ค๊ณ  ๋ณผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๋ณดํ†ต์€ Middleware๋ผ ๋ถˆ๋ฆฌ๋Š” ํ”Œ๋žซํผ S/W๊ฐ€ ์žˆ์–ด, ๊ธฐ๋ณธ์ ์ธ ์„œ๋ฒ„ ํ™˜๊ฒฝ์— ๋Œ€ํ•œ ๊ด€๋ฆฌ๋Š” ์ž๋™์œผ๋กœ ์ฒ˜๋ฆฌํ•ด ์ฃผ๊ธฐ ๋•Œ๋ฌธ์— ์•ฑ๊ฐœ๋ฐœ์ž์˜ ๊ณ ๋ฏผ์€ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜๊ณผ ๊ทธ ์„œ๋น„์Šค๋ฅผ ๋งŒ๋“œ๋Š” ๊ฒƒ์ด ๋ฉ๋‹ˆ๋‹ค.

๋ฌธ์ œ๋Š” ์ด ์„œ๋น„์Šค๋ผ๋Š” ๊ฒƒ์ด ๊ทธ๋ฆฌ ๋‹จ์ˆœํ•œ ๊ฒƒ์ด ์•„๋‹ˆ๋ผ๋Š” ์ ์ž…๋‹ˆ๋‹ค. ํŠนํžˆ, ์ˆ˜๋งŽ์€ ์—…๋ฌด(Business)์™€ ๊ทธ ์—…๋ฌด๊ฐ€ ์„œ๋กœ ์„œ๋กœ ์—ฐ๊ด€๋œ ํ˜•ํƒœ(Business Logic & Flow)๋กœ ๊ตฌ์„ฑ๋˜์–ด ์žˆ๊ธฐ์— ์ด๋ฅผ ํ•˜๋‚˜๋กœ ํ†ตํ•ฉ๋œ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜(Monolithic)์œผ๋กœ ๋ฐฐํฌํ•ฉ๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ ๊ทธ ๋งŒํผ ๋ฉ์น˜๋„ ์ปค์ง€๊ณ , ์ด ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์ด ์‹คํ–‰๋˜์–ด์•ผ ํ•  ์„œ๋ฒ„๋„ ๋Œ€์šฉ๋Ÿ‰, ๊ณ ์„ฑ๋Šฅ์œผ๋กœ ์ค€๋น„๋˜์–ด์•ผ ํ•˜๊ฒŒ ๋˜๋Š”๋ฐ, ๊ทธ๋Ÿฐ ๊ฒฝ์šฐ ํ…Œ์ŠคํŠธ ํ™˜๊ฒฝ ๊ตฌ์„ฑ๋„ ์‰ฝ์ง€ ์•Š์„ ๋ฟ๋งŒ ์•„๋‹ˆ๋ผ ์ž‘์€ ๋ถ€๋ถ„์— ๋Œ€ํ•œ ์ˆ˜์ •์‚ฌํ•ญ์ด๋‚˜ ์˜ค๋ฅ˜๊ฐ€ ๋ฐœ์ƒํ•˜๋Š” ๊ฒฝ์šฐ๋ผ ํ•˜๋”๋ผ๋„ ์ „์ฒด ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์˜ ์„œ๋น„์Šค์— ์˜ํ–ฅ์„ ๋ฏธ์น˜๊ฒŒ ๋˜๋Š” ํ˜„์ƒ์ด ๋ฐœ์ƒํ•ฉ๋‹ˆ๋‹ค. ๊ฒฐ๊ตญ, ๊ฐœ๋ฐœ์ž ์ž…์žฅ์—์„œ๋Š” ๊ฐœ๋ฐœ์— ์ง‘์ค‘ํ•  ์ˆ˜ ์žˆ๋Š” ๊ธฐํšŒ๋ฅผ ๋นผ์•—๊ธฐ๊ฒŒ ๋˜๋Š” ์…ˆ์ด ๋ฉ๋‹ˆ๋‹ค.

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

๋‹ค๋งŒ, ์•ž์„œ ์ด์•ผ๊ธฐ ํ–ˆ๋˜ ํด๋ผ์šฐ๋“œ ํ™˜๊ฒฝ์˜ Scaling์ด๋ผ๋ฉด ์šด์˜์ฒด์ œ๋ถ€ํ„ฐ Middleware์— ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜๊นŒ์ง€ ์„œ๋น„์Šค์— ๋น„ํ•ด ์‚ฌ์šฉ๋˜๋Š” ๋ฆฌ์†Œ์Šค๊ฐ€ ๋„ˆ๋ฌด ์ปค์„œ ์„œ๋น„์Šค๋กœ ํ• ๋‹น๋˜๊ธฐ์—๋Š” ๋ถ€์ ํ•ฉํ•˜๋‹ค๊ณ  ๋ณผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๊ทธ๋ ‡๊ธฐ ๋•Œ๋ฌธ์—, Cloud Foundry PaaS(Platform As-a Service)๋‚˜ Docker Container์™€ ๊ฐ™์ด ์ ์€ ๋ฆฌ์†Œ์Šค๋กœ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์ด๋‚˜ ์„œ๋น„์Šค๋ฅผ ๊ฐœ๋ฐœ์— ๋” ์ง‘์ค‘ ํ•  ์ˆ˜ ์žˆ๋Š” ํด๋ผ์šฐ๋“œ ๊ธฐ์ˆ ์ด ๋งˆ์ดํฌ๋กœ ์„œ๋น„์Šค ์•„ํ‚คํ…์ณ์— ๋”์šฑ ์ ํ•ฉํ•œ ํ˜•ํƒœ๋กœ ๋ณผ ์ˆ˜ ์žˆ๊ฒŒ ๋˜์—ˆ์Šต๋‹ˆ๋‹ค.

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

ํด๋ผ์šฐ๋“œ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ์œ„ํ•œ 12์š”์†Œ

์ด์ œ ํด๋ผ์šฐ๋“œ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ์„ค๊ณ„ํ•˜๊ธฐ ์œ„ํ•ด์„œ ์•Œ์•„๋‘์–ด์•ผ ํ•  ๋‚ด์šฉ์œผ๋กœ The 12-Factors App์— ๋Œ€ํ•ด ์•Œ์•„ ๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค.

12๊ฐ€์ง€ ์š”์†Œ๋Š” Adam Wiggins๊ฐ€ 2011๋…„ ์ •๋ฆฌํ•œ ๊ฒƒ์œผ๋กœ ๊ธฐ๋ณธ์ ์œผ๋กœ๋Š” ํด๋ผ์šฐ๋“œ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ๊ฐœ๋ฐœ ๋ฐฉ๋ฒ•๋ก ์ž…๋‹ˆ๋‹ค. ๋‹ค๋งŒ, ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜๋งŒ ํ•ด๋‹น๋˜๋Š” ๋‚ด์šฉ์€ ์•„๋‹ˆ๊ณ , ๊ทธ๋Ÿฐ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์ด ์‹คํ–‰๋˜๋Š” ํด๋ผ์šฐ๋“œ ํ”Œ๋žซํผ๊ณผ ๊ฐœ๋ฐœ ๋ฐ ์šด์˜ ํ™˜๊ฒฝ์˜ ๋‚ด์šฉ๋„ ๊ฐ™์ด ์ •๋ฆฌ๋˜์–ด ์žˆ์œผ๋ฉฐ, ์•ž์œผ๋กœ ์‚ฌ์šฉํ•  Bluemix ํ”Œ๋žซํผ๋„ ์ด 12์š”์†Œ๊ฐ€ ์ ์šฉ๋œ ํ˜•ํƒœ์ด๋ฏ€๋กœ ์–ด๋–ค ๋ถ€๋ถ„์ด Bluemix์™€ ๊ด€๋ จ๋œ ๋‚ด์šฉ์ธ์ง€ ์ž ์‹œ ์†Œ๊ฐœ ๋“œ๋ฆฝ๋‹ˆ๋‹ค.

  • Factor I: [์ฝ”๋“œ ๋ฒ ์ด์Šค] ๋ฆฌ๋น„์ ผ์„ ์ด์šฉํ•˜์—ฌ ํ•˜๋‚˜์˜ ๋ฒ ์ด์Šค ์ฝ”๋“œ๋ฅผ ๋‹ค์–‘ํ•œ ํ˜•ํƒœ๋กœ ๋ฐฐํฌ
  • Factor II: [์˜์กด์„ฑ] ๋ช…์‹œ์ ์ธ ์„ ์–ธ ๋ฐ ์˜์กด์„ฑ ๋ถ„๋ฆฌ
  • Factor III: [์„ค์ •] ์„ค์ • ๊ฐ’์„ ํ™˜๊ฒฝ ๋ณ€์ˆ˜์— ์ €์žฅ
  • Factor VI: [๋ฐฑ์—”๋“œ ์„œ๋น„์Šค] Backend ์„œ๋น„์Šค๋ฅผ ์—ฐ๊ฒฐ๋œ ๋ฆฌ์†Œ์Šค๋กœ ์ทจ๊ธ‰
  • Factor V: [๋นŒ๋“œ, ๋ฆด๋ฆฌ์ฆˆ, ์‹คํ–‰] ๋นŒ๋“œ์™€ ์‹คํ–‰ ์Šคํ…Œ์ด์ง€์˜ ์ฒ ์ €ํ•œ ๊ตฌ๋ถ„
  • Factor VI: [ํ”„๋กœ์„ธ์Šค] ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ํ•˜๋‚˜ ์ด์ƒ์˜ stateless ํ”„๋กœ์„ธ์Šค๋กœ ์‹คํ–‰
  • Factor VII: [ํฌํŠธ ๋ฐ”์ธ๋”ฉ] ํฌํŠธ ๋ฐ”์ธ๋”ฉ(์—ฐ๊ฒฐ)์„ ์ด์šฉํ•˜์—ฌ ์„œ๋น„์Šค ๋…ธ์ถœ
  • Factor VIII: [๋™์‹œ์„ฑ] ํ”„๋กœ์„ธ์Šค ๋ชจ๋ธ์„ ์ด์šฉํ•œ ํ™•์žฅ(scale out)
  • Factor IX: [ํ๊ธฐ๊ฐ€๋Šฅ์„ฑ] ๋น ๋ฅธ ์‹œ์ž‘๊ณผ ์ •์ƒ ์ข…๋ฃŒ๋กœ ์•ˆ์ •์„ฑ ๊ทน๋Œ€ํ™”
  • Factor X: [๊ฐœ๋ฐœ/์šด์˜ ์ผ์น˜] ๊ฐœ๋ฐœ, ์Šคํ…Œ์ด์ง€ ๊ทธ๋ฆฌ๊ณ  ์šด์˜์„ ์ตœ๋Œ€ํ•œ ์œ ์‚ฌํ•œ ํ˜•ํƒœ๋กœ ์œ ์ง€
  • Factor XI: [๋กœ๊ทธ] ์ด๋ฒคํŠธ ์ŠคํŠธ๋ฆผ์œผ๋กœ ๋กœ๊ทธ๋ฅผ ์ฒ˜๋ฆฌ
  • Factor XII: [๊ด€๋ฆฌ ํ”„๋กœ์„ธ์Šค] ์šด์˜์ž ๋ฐ ๊ด€๋ฆฌ์ž ์ž‘์—…์„ ์ผํšŒ์„ฑ ํ”„๋กœ์„ธ์Šค๋กœ ์‹คํ–‰
  1. [์ฝ”๋“œ ๋ฒ ์ด์Šค] ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์ด Revision Control๋กœ ์ถ”์ /๊ด€๋ฆฌ๋˜๊ณ  ์žˆ๋Š”๊ฐ€?
    ๊ธฐ๋ณธ์ ์œผ๋กœ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ์†Œ์Šค ์ฝ”๋“œ ๊ด€๋ฆฌ๋ฅผ ์œ„ํ•œ ํ™˜๊ฒฝ์ด ๊ตฌ์„ฑ๋˜์–ด ์žˆ๋Š” ๊ฒƒ์„ ๊ฐ€์ •ํ•ฉ๋‹ˆ๋‹ค. Bluemix์—์„œ๋Š” DevOps ํ™˜๊ฒฝ์„ ์ง€์›ํ•˜๋ฉฐ, Code Repositry ๋ฐ Project Management ํ”Œ๋žซํผ์œผ๋กœ JazzHub๋ฅผ ์‚ฌ์šฉํ–ˆ์—ˆ์œผ๋‚˜, GitHub๋„ ์ง€์›ํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค.

  2. [์˜์กด์„ฑ] ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์ด ํ•„์š”๋กœํ•˜๋Š” ๋ชจ๋“ˆ์ด๋‚˜ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๊ฐ€ ์„ ์–ธ๋˜์–ด ์žˆ๋Š”๊ฐ€?
    Runtime์— ๋”ฐ๋ผ ๋‹ค๋ฅด๊ฒ ์ง€๋งŒ Node.js์ธ ๊ฒฝ์šฐ package.json์— ํ•ด๋‹น ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์ด ์‚ฌ์šฉํ•˜๋Š” ๋ชจ๋“ˆ๊ณผ version์„ ๋ช…์‹œ์ ์œผ๋กœ ์„ ์–ธํ•ด ๋†“๊ณ  ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค.

  3. [์„ค์ •] ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ์œ„ํ•œ ์„ค์ • ์ •๋ณด๋ฅผ ๋ณ„๋„๋กœ ๊ฐ€์ง€๊ณ  ์žˆ๋Š”๊ฐ€?
    ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์˜ ์ฝ”๋“œ์™€ ๋ณ„๋„์˜ ์„ค์ • ์ •๋ณด๋กœ Bluemix์˜ ๊ฒฝ์šฐ๋Š” ์‹œ์Šคํ…œ ํ™˜๊ฒฝ ๋ณ€์ˆ˜๋ฅผ ์ด์šฉํ•˜์—ฌ ์„ค์ • ์ •๋ณด๋ฅผ ์–ป์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

  4. [๋ฐฑ์—”๋“œ ์„œ๋น„์Šค] ๋ณ„๋„๋กœ ๊ตฌ์„ฑ๋œ Backend ์„œ๋น„์Šค๋ฅผ ์‚ฌ์šฉํ•˜๋Š”๊ฐ€?
    Bluemix๋Š” Service Catalog๋ฅผ ํ†ตํ•ด ์ƒ๋‹นํžˆ ๋งŽ์€ ์„œ๋น„์Šค๋ฅผ SaaS (Software As-a Service)๋ฅผ ์ œ๊ณต ํ•ฉ๋‹ˆ๋‹ค. Cloud Foundry ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์€ manifest.yml์— ํ•„์š”ํ•œ ์„œ๋น„์Šค๋ฅผ ์ง€์ • ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

  5. [๋นŒ๋“œ, ๋ฆด๋ฆฌ์ฆˆ, ์‹คํ–‰] ๋นŒ๋“œ, ๋ฆด๋ฆฌ์ฆˆ์™€ ์‹คํ–‰์— ๋Œ€ํ•œ ์Šคํ…Œ์ด์ง€๊ฐ€ ๊ตฌ๋ถ„๋˜์–ด ์žˆ๋Š”๊ฐ€?
    Bluemix์˜ DevOps์˜ Continous Delivery ํ™˜๊ฒฝ์„ ์ด์šฉํ•˜๋ฉด Build, Release ๋ฐ Deploy๋ณ„ ์Šคํ…Œ์ด์ง€๋กœ ๊ตฌ๋ถ„ํ•˜๋ฉฐ ๊ฐ ์Šคํ…Œ์ด์ง€์— ํ•„์š”ํ•œ ๋‹จ๊ณ„๋ฅผ ์ถ”๊ฐ€ ๋ฐ ํ•„์š”ํ•œ ์Šคํฌ๋ฆฝํŠธ๋‚˜ ์‹คํ–‰ ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

  6. [ํ”„๋กœ์„ธ์Šค] ๋ฉ”์ธ ์›น ํ”„๋กœ์„ธ์Šค์™€ ์—ฐ๊ฒฐ๋˜๋Š” ๋ณ„๋„์˜ ๋ฐฑ๊ทธ๋ผ์šด๋“œ ํ”„๋กœ์„ธ์Šค๊ฐ€ ์žˆ๋Š”๊ฐ€?
    Stateless์™€ share-nothing์ธ ํ˜•ํƒœ์˜ ํ”„๋กœ์„ธ์Šค๋ฅผ ๊ฐ•์กฐํ•˜๋Š” ๋‚ด์šฉ์ธ๋ฐ, ํ˜„์žฌ Bluemix์—์„œ๋Š” Procfile ํŒŒ์ผ์— web์ด๋ผ๋Š” ์ด๋ฆ„์˜ ํ”„๋กœ์„ธ์Šค๋งŒ ๋“ฑ๋ก ํ•  ์ˆ˜ ์žˆ๋„๋ก ๋˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค. ๋ณ„๋„์˜ ๋ฐฑ๊ทธ๋ผ์šด๋“œ ์‹คํ–‰ ํ”„๋กœ์„ธ์Šค๊ฐ€ ํ•„์š”ํ•œ ๊ฒฝ์šฐ๋ผ๋ฉด ๋ณ„๋„์˜ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์œผ๋กœ ์ƒ์„ฑํ•ด์„œ ์‚ฌ์šฉํ•˜๋„๋ก ๊ฐ€์ด๋“œ ํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค.

  7. [ํฌํŠธ ๋ฐ”์ธ๋”ฉ] ์›น ํ”„๋กœ์„ธ์Šค์™€ ํŠน์ • ํฌํŠธ ๋ฒˆํ˜ธ๋ฅผ ์—ฐ๊ฒฐ ํ•  ์ˆ˜ ์žˆ๋Š”๊ฐ€?
    Bluemix์˜ Diego ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์ธ ๊ฒฝ์šฐ๋Š” VCAP_APP_PORT๋ฅผ, ์ตœ๊ทผ ์ƒ์„ฑํ•˜๋Š” Diego ์ธ ๊ฒฝ์šฐ๋Š” PORT๋ผ๋Š” ํ™˜๊ฒฝ ๋ณ€์ˆ˜๋ฅผ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค. DEA ์—์„œ Diego ๋กœ, Bluemix Cloud Foundry ์—…๊ทธ๋ ˆ์ด๋“œ๋ฅผ ์ฐธ๊ณ .

  8. [๋™์‹œ์„ฑ] ๋™์‹œ์„ฑ์— ํ•„์š”ํ•œ ์ˆ˜์ค€์„ ๋งŒ์กฑํ•˜๊ธฐ ์œ„ํ•ด ํ•„์š”ํ•œ ๋ฉ”๋ชจ๋ฆฌ์™€ ์ธ์Šคํ„ด์Šค๊ฐ€ ์–ผ๋งˆ๋‚˜ ๋˜๋Š”๊ฐ€?
    Bluemix์˜ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์€ ์ธ์Šคํ„ด์Šค๋ฅผ ์ฆ๊ฐํ•˜๋Š” ๋ฐฉ๋ฒ•์œผ๋กœ Horizontal Scaling์„ ์ง€์›ํ•˜๋ฉฐ, ์ธ์Šคํ„ด์Šค๋‹น ํ• ๋‹น๋˜๋Š” ๋ฉ”๋ชจ๋ฆฌ๋ฅผ ์กฐ์ ˆํ•˜๋Š” Vertical Scaling์„ ์ง€์›ํ•ฉ๋‹ˆ๋‹ค. manifest.xml์— ํ•„์š”ํ•œ ๋ฉ”๋ชจ๋ฆฌ์™€ ์ธ์Šคํ„ด์Šค ๊ฐฏ์ˆ˜๋ฅผ ์ง€์ •ํ•˜๋Š” ๋ฐฉ๋ฒ•์œผ๋กœ ๋ฐฐํฌ ํ•˜๋Š” ๋ฐฉ๋ฒ•๋„ ์ง€์›ํ•ฉ๋‹ˆ๋‹ค.

  9. [ํ๊ธฐ๊ฐ€๋Šฅ์„ฑ] ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์˜ ํ”„๋กœ์„ธ์Šค๋“ค์ด ์‚ฌ์šฉ ํ›„ disposable(์‚ฌ์šฉํ›„ ๋ฒ„๋ฆด ์ˆ˜ ์žˆ๋Š”) ์ƒํƒœ์ธ๊ฐ€?
    ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์ด SIGTERM์ด๋‚˜ ์‹œ์Šคํ…œ ์˜ค๋ฅ˜๋กœ ์ธํ•ด ๊ธ‰์ž‘์Šค๋Ÿฝ๊ฒŒ ์ค‘๋‹จ๋˜์–ด๋„ ๋ฌธ์ œ๊ฐ€ ์—†์ด ์ข…๋ฃŒ๋  ์ˆ˜ ์žˆ๋Š” ์ƒํƒœ๋ฅผ ๋งํ•ฉ๋‹ˆ๋‹ค. crash-only design for your appโ€™s processes. ์ฐธ๊ณ .
    Bluemix์—์„œ๋Š” ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์˜ crash, scaling์„ ๋น„๋กฏํ•œ ๋‹ค์–‘ํ•œ ์‹œ๋‚˜๋ฆฌ์˜ค์— ๋Œ€์‘ํ•˜๊ธฐ ์œ„ํ•œ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ํ”„๋กœ์„ธ์Šค์˜ ์ข…๋ฃŒ ๋ฐ ์žฌ์‹œ์ž‘์„ ํ—ˆ์šฉํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค.

  10. [๊ฐœ๋ฐœ/์šด์˜ ์ผ์น˜] ๊ฐœ๋ฐœ๊ณผ ์šด์˜์— ๋Œ€ํ•œ ์ผ์น˜๋ฅผ ์œ„ํ•ด ์–ด๋–ป๊ฒŒ ๊ด€๋ฆฌ๋˜๊ณ  ์žˆ๋Š”๊ฐ€?
    ๊ฐœ๋ฐœํ™˜๊ฒฝ๊ณผ ์šด์˜ํ™˜๊ฒฝ์ด ์ตœ๋Œ€ํ•œ ๋™์ผํ•˜๊ฒŒ ๊ตฌ์„ฑ๋˜์–ด์•ผ ์žˆ์–ด์•ผ ํ•˜๋Š” ์ ์„ ๋งํ•ฉ๋‹ˆ๋‹ค. Node.js์˜ ๊ฒฝ์šฐ๋Š” ์ตœ์†Œํ•œ npm ๋ฐ node ๋ฒ„์ ผ ์ •๋ณด๋ฅผ ๋งž์ถ”๋„๋ก package.json์— engine ํ•ญ๋ชฉ์„ ๋ช…์‹œํ•˜๋„๋ก ๊ฐ€์ด๋“œ๊ณ  ํ•˜๊ณ  ์žˆ์œผ๋ฉฐ, VCAP_SERVICES์™€ ๊ฐ™์ด ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ํ™˜๊ฒฝ ๋ณ€์ˆ˜๋ฅผ ๋กœ์ปฌ ๊ฐœ๋ฐœ ํ™˜๊ฒฝ์—์„œ ํ™•์ธ ํ•  ์ˆ˜ ์žˆ๋„๋ก cfenv ๋ช…๋ น์„ ์ด์šฉํ•  ์ˆ˜๋„ ์žˆ์Šต๋‹ˆ๋‹ค.

  11. [๋กœ๊ทธ] ๋กœ๊ทธ ๋ฉ”์‹œ์ง€๊ฐ€ ํ‘œ์ค€ ์ถœ๋ ฅ์„ ํ†ตํ•ด ์ƒ์„ฑ๋˜๊ณ  ์žˆ๋Š”๊ฐ€?
    ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์ด ์‚ฌ์šฉํ•˜๋Š” ๋กœ๊ทธ ๋ฉ”์‹œ์ง€๋Š” ๋‹ค์–‘ํ•œ ๋ฐฉ๋ฒ•์œผ๋กœ ์ƒ์„ฑ๋˜๊ณ  ๊ด€๋ฆฌ ๋  ์ˆ˜ ์žˆ๋Š”๋ฐ, ํ‘œ์ถ˜ ์ถœ๋ ฅ์œผ๋กœ ๋ฉ”์‹œ์ง€๋ฅผ ์ถœ๋ ฅํ•˜๊ณ  ์ด ๋ฉ”์‹œ์ง€๋ฅผ ๋ณ„๋„์˜ ๋กœ๊ทธ ๊ด€๋ฆฌ ์‹œ์Šคํ…œ๊ณผ ์—ฐ๋™ํ•˜๋„๋ก ํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. Bluemix์˜ ๊ฒฝ์šฐ๋Š” ํ‘œ์ค€ ์ถœ๋ ฅ(stdout), ํ‘œ์ค€ ์˜ค๋ฅ˜(stderr)์— ๋Œ€ํ•ด ๋กœ๊ทธ๋ฅผ ์ž๋™์œผ๋กœ ์ˆ˜์ง‘ํ•˜๋ฉฐ ํ•„์š”ํ•œ ๊ฒฝ์šฐ Log drain์„ ์ง€์ •ํ•˜์—ฌ ์™ธ๋ถ€ ๋กœ๊ทธ ๊ด€๋ฆฌ ์‹œ์Šคํ…œ๊ณผ ์—ฐ๋™ ํ•  ์ˆ˜ ์žˆ๋„๋ก ๊ตฌ์„ฑ๋˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค. ๋กœ๊ทธ์— ๊ด€๋ จ ๋‚ด์šฉ์€ Bluemix Node.js ์•ฑ ๋””๋ฒ„๊น… ํ•ด ๋ณด๊ธฐ #1 โ€“ ๋กœ๊ทธ ์ด์šฉํ•˜๊ธฐ์™€ Bluemix แ„‹แ…ขแ†ธ แ„‹แ…ฌแ„‡แ…ฎ แ„…แ…ฉแ„€แ…ณ แ„‰แ…ตแ„‰แ…ณแ„แ…ฆแ†ท แ„‹แ…งแ†ซ๋™ํ•˜๊ธฐ๋ฅผ ์ฐธ๊ณ  ํ•˜์‹œ๊ธฐ ๋ฐ”๋ž๋‹ˆ๋‹ค.

  12. [๊ด€๋ฆฌ ํ”„๋กœ์„ธ์Šค] ์•ฑ์— ์ผํšŒ์„ฑ ๊ด€๋ฆฌ ํ”„๋กœ์„ธ์Šค๊ฐ€ ์žˆ๋Š”๊ฐ€?
    ๊ด€๋ฆฌ ํ”„๋กœ์„ธ์Šค๋“ค์€ DB ๋งˆ์ด๊ทธ๋ ˆ์ด์…˜์ด๋‚˜, shell์—์„œ REPL(Read-Evaluate-Print Loop)์ด๋‚˜ ๋‹ค๋ฅธ script๋ฅผ ์‹คํ–‰ํ•˜๊ฑฐ๋‚˜ ํ•˜๋Š” ์šฉ๋„๋กœ ์‚ฌ์šฉ ๋  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. Bluemix์˜ ๊ฒฝ์šฐ๋Š” ํ˜„์žฌ adhoc admin ํ”„๋กœ์„ธ์Šค๋ฅผ ์ง€์›ํ•˜์ง€๋Š” ์•Š๊ณ  ์žˆ์ง€๋งŒ, ๋ฐฐํฌ ํ”„๋กœ์„ธ์Šค์—์„œ ํ•„์š”ํ•œ ๊ฒฝ์šฐ admin ํ”„๋กœ์„ธ์Šค๋ฅผ ์‹คํ–‰ ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. Node.js ์•ฑ์˜ ๊ฒฝ์šฐ๋Š” package.json ํŒŒ์ผ์— install์ด๋‚˜ postinstall ์Šคํฌ๋ฆฝ๋“œ๋ฅผ ์ถ”๊ฐ€ํ•˜์—ฌ ๊ฐ„๋‹จํ•˜๊ฒŒ๋‚˜๋งˆ ๊ด€๋ฆฌ ํ”„๋กœ์„ธ์Šค๋ฅผ ์‹คํ–‰ ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

12๊ฐ€์ง€ ์š”์†Œ์— ๋Œ€ํ•ด์„œ ๊ฐ„๋žตํ•˜๊ฒŒ ์•Œ์•„๋ณด๊ธฐ๋Š” ํ–ˆ์œผ๋‚˜ ์ข€ ๋” ์ž์„ธํ•œ ๋‚ด์šฉ์„ ์›ํ•˜์‹ ๋‹ค๋ฉด The 12-Factors App ํ™ˆํŽ˜์ด์ง€์—์„œ ํ™•์ธ ํ•˜์‹ค ์ˆ˜ ์žˆ์œผ๋‹ˆ ์ฐธ๊ณ  ํ•˜์‹œ๊ธฐ ๋ฐ”๋ž๋‹ˆ๋‹ค.

๋‹ค์Œ ํฌ์ŠคํŒ…์—์„œ๋Š” ๋ณธ๊ฒฉ์ ์œผ๋กœ ํด๋ผ์šฐ๋“œ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ๋งŒ๋“ค์–ด ๋ณด๋„๋ก ํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค.


  1. ํด๋ผ์šฐ๋“œ ํ™˜๊ฒฝ ์ดํ•ด
  2. ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ๊ตฌ์ƒ ๋ฐ ์š”๊ฑด ์ •์˜
  3. ์š”๊ฑด์— ๋Œ€ํ•œ Usecase ๋ฐ Wireframe ์ž‘์„ฑ
  4. ๋งˆ์ดํฌ๋กœ ์„œ๋น„์Šค ์•„ํ‚คํ…์ณ ์„ค๊ณ„
  5. ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ์„œ๋ฒ„ ํ™˜๊ฒฝ ์ค€๋น„
  6. ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ๋กœ์ปฌ ๊ฐœ๋ฐœ ํ™˜๊ฒฝ ์ค€๋น„
  7. ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ํ”„๋กœํ† ํƒ€์ž… ์ž‘์„ฑ Part1
  8. ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ํ”„๋กœํ† ํƒ€์ž… ์ž‘์„ฑ Part2
  9. ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ํ”„๋กœํ† ํƒ€์ž… ์ž‘์„ฑ Part3
  10. ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ DevOps ํ™˜๊ฒฝ ๊ตฌ์„ฑ

์ฐธ๊ณ