์ธํ”„๋Ÿฐ ์˜๋ฌธ ๋ธŒ๋žœ๋“œ ๋กœ๊ณ 
์ธํ”„๋Ÿฐ ์˜๋ฌธ ๋ธŒ๋žœ๋“œ ๋กœ๊ณ 

์ฟ ๋ฒ„๋„คํ‹ฐ์Šค 101 - ํด๋ผ์šฐ๋“œ/์„œ๋ฒ„ ๊ฐœ๋ฐœ ์ฒซ๊ฑธ์Œ

์‹ค์Šต์„ ํ†ตํ•ด ์ฟ ๋ฒ„๋„คํ‹ฐ์Šค์˜ ํ•ต์‹ฌ ๊ฐœ๋…๊ณผ ๋งˆ์ดํฌ๋กœ ์„œ๋น„์Šค ์•„ํ‚คํ…์ฒ˜์˜ ์›๋ฆฌ๋ฅผ ์ดํ•ดํ•ฉ๋‹ˆ๋‹ค.

Thumbnail

์ดˆ๊ธ‰์ž๋ฅผ ์œ„ํ•ด ์ค€๋น„ํ•œ
[๋ฐ๋ธŒ์˜ต์Šค ยท ์ธํ”„๋ผ, ํด๋ผ์šฐ๋“œ] ๊ฐ•์˜์ž…๋‹ˆ๋‹ค.

์ด๋Ÿฐ ๊ฑธ ๋ฐฐ์šธ ์ˆ˜ ์žˆ์–ด์š”

  • ์ฟ ๋ฒ„๋„คํ‹ฐ์Šค์˜ ํ•ต์‹ฌ ๊ฐœ๋…

  • ํด๋ผ์šฐ๋“œ ์•ฑ์˜ ๊ฐœ๋ฐœ ๋ฐ ๋ฐฐํฌ ๊ณผ์ •

  • ๋งˆ์ดํฌ๋กœ ์„œ๋น„์Šค ์•„ํ‚คํ…์ฒ˜์˜ ์›๋ฆฌ

  • ๊ตฌ๊ธ€ ํด๋ผ์šฐ๋“œ ์ฝ”๋“œ(SDK)

์ฒ˜์Œ ๋ฐฐ์šฐ๋Š” ์ฟ ๋ฒ„๋„คํ‹ฐ์Šค, ์‹ค์Šต์œผ๋กœ ์‰ฝ๊ฒŒ!

ํด๋ผ์šฐ๋“œ/์„œ๋ฒ„ ํ™˜๊ฒฝ์˜ ํ‘œ์ค€
์ฟ ๋ฒ„๋„คํ‹ฐ์Šค ๊ธฐ์ดˆ ๋ฐ”๋กœ์žก๊ธฐ 

ํด๋ผ์šฐ๋“œ/์„œ๋ฒ„ ์•ฑ ๊ฐœ๋ฐœ์˜ ์‹œ์ž‘, ์ฟ ๋ฒ„๋„คํ‹ฐ์Šค

์ด ๊ฐ•์˜์—์„œ๋Š” ์ฟ ๋ฒ„๋„คํ‹ฐ์Šค ํ™˜๊ฒฝ์—์„œ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ๊ฐœ๋ฐœํ•˜๊ณ  ๋ฐฐํฌํ•˜๋Š” ๊ณผ์ •์„ ์‹ค์Šตํ•˜๊ณ , ์ฟ ๋ฒ„๋„คํ‹ฐ์Šค์˜ ํ•ต์‹ฌ ๊ฐœ๋…๊ณผ ๋งˆ์ดํฌ๋กœ์„œ๋น„์Šค ์•„ํ‚คํ…์ฒ˜(MSA)์˜ ์„ค๊ณ„ ์›๋ฆฌ๋ฅผ ์ดํ•ดํ•ฉ๋‹ˆ๋‹ค.

ํด๋ผ์šฐ๋“œ/์„œ๋ฒ„ ํ™˜๊ฒฝ์€ ์•Œ์•„์•ผ ํ•  ๋‚ด์šฉ๋„ ๋งŽ๊ณ  ๋ณต์žกํ•ฉ๋‹ˆ๋‹ค. ๋˜ํ•œ, ๊ณ„์† ๋ฐ”๋€Œ๊ณ  ๋ฐœ์ „ํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. ์ด์— ์‹œ์ž‘ํ•˜๋Š” ์‚ฌ๋žŒ๋“ค์ด ์ ‘๊ทผํ•˜๊ธฐ ์‰ฝ์ง€ ์•Š์Šต๋‹ˆ๋‹ค. 

์ฟ ๋ฒ„๋„คํ‹ฐ์Šค(Kubernetes, k8s)๋Š” ํด๋ผ์šฐ๋“œ/์„œ๋ฒ„ ํ™˜๊ฒฝ์˜ ํ‘œ์ค€์ด๋ผ๊ณ  ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. AWS, Google, Microsoft ๋“ฑ ์ฃผ์š” ํด๋ผ์šฐ๋“œ ๊ณต๊ธ‰์ž๋„ ์ฟ ๋ฒ„๋„คํ‹ฐ์Šค๋ฅผ ์ง€์›ํ•˜๋Š” ๋งŒํผ, ์ฟ ๋ฒ„๋„คํ‹ฐ์Šค๋Š” ํด๋ผ์šฐ๋“œ/์„œ๋ฒ„ ๊ฐœ๋ฐœ์„ ์œ„ํ•ด ๊ฐ€์žฅ ๋จผ์ € ์•Œ์•„์•ผ ํ•  ์ง€์‹์ด๋ผ๊ณ  ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์‹ค์Šต์œผ๋กœ ๋ฐฐ์šฐ๋Š” ์ฟ ๋ฒ„๋„คํ‹ฐ์Šค by Minikube

๋ฏธ๋‹ˆํ๋ธŒ(Minikube)๋กœ PC ํ™˜๊ฒฝ์— ์ฟ ๋ฒ„๋„คํ‹ฐ์Šค ํ™˜๊ฒฝ์„ ๊ตฌ์„ฑํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ฆ‰, ์—ฐ๊ฒฐ๋œ ์„œ๋ฒ„๊ฐ€ ์—†๋”๋ผ๋„ ํด๋ผ์šฐ๋“œ/์„œ๋ฒ„ ๊ฐœ๋ฐœ์„ ๊ณต๋ถ€ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์ด ๊ฐ•์˜์—์„œ๋Š” ๋ฏธ๋‹ˆํ๋ธŒ๋กœ ์ฟ ๋ฒ„๋„คํ‹ฐ์Šค ํ™˜๊ฒฝ์„ ๊ตฌ์„ฑํ•˜๋ฉฐ ๊ฐ„๋‹จํ•œ ์˜ˆ์ œ ์–ดํ”Œ๋ฆฌ์ผ€์ด์…˜ ๊ฐœ๋ฐœ์„ ์‹ค์Šตํ•ฉ๋‹ˆ๋‹ค. ์‹ค์Šต์„ ํ†ตํ•ด ์ฟ ๋ฒ„๋„คํ‹ฐ์Šค์˜ ํ•ต์‹ฌ ๊ฐœ๋…์„ ์ดํ•ดํ•˜๊ณ , ํด๋ผ์šฐ๋“œ/์„œ๋ฒ„ ๊ฐœ๋ฐœ์ž๋กœ์„œ์˜ ๊ธฐ์ดˆ๋ฅผ ๋‹ค์ ธ๋ด…์‹œ๋‹ค!


์ฟ ๋ฒ„๋„คํ‹ฐ์Šค๊ฐ€ ์ฒ˜์Œ์ธ ๋‹น์‹ ์„ ์œ„ํ•œ 
๋”ฐ๋ผ ์‹œ์ž‘ํ•˜๋Š” ์ฟ ๋ฒ„๋„คํ‹ฐ์Šค 101

๐Ÿ’ก ์ฟ ๋ฒ„๋„คํ‹ฐ์Šค๋ฅผ ์ฒ˜์Œ ์ ‘ํ•˜๋Š” ๋ถ„๋“ค์„ ์œ„ํ•ด ๋‹จ๊ณ„๋ณ„๋กœ ์„ค๋ช…์„ ์ง„ํ–‰ํ•ฉ๋‹ˆ๋‹ค. ๋”ฐ๋ผํ•˜๋ฉด์„œ ๊ณต๋ถ€ํ•˜์‹œ๋ฉด ์–ด๋ ต์ง€ ์•Š๊ฒŒ ์ฟ ๋ฒ„๋„คํ‹ฐ์Šค ๋ฐ ํด๋ผ์šฐ๋“œ/์„œ๋ฒ„ ๊ฐœ๋ฐœ์„ ์ตํžˆ์‹ค ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์ถ”์ฒœ ํ•™์Šต์ž โœ…

  • ์ฟ ๋ฒ„๋„คํ‹ฐ์Šค๋ฅผ ์•Œ๊ณ  ์‹ถ์€ ๋ถ„ 
  • ํด๋ผ์šฐ๋“œ/์„œ๋ฒ„ ๊ฐœ๋ฐœ์— ๋Œ€ํ•ด ๋ฐฐ์šฐ๊ณ  ์‹ถ์€ ๋ถ„
  • ๋งˆ์ดํฌ๋กœ์„œ๋น„์Šค ์•„ํ‚คํ…์ฒ˜(MSA)์— ๊ด€์‹ฌ์žˆ๋Š” ๋ถ„

๋‹ค๋ฃจ๋Š” ๊ธฐ์ˆ  โœ…

  • Minikube, Kubernetes
  • Node.js, Docker, YAML, Redis DB

ํ•ต์‹ฌ ํ•™์Šต ๋‚ด์šฉ โœ…

  • ์ฟ ๋ฒ„๋„คํ‹ฐ์Šค์˜ ํ•ต์‹ฌ ๊ฐœ๋…์„ ์ดํ•ดํ•˜๊ณ  ์„œ๋น„์Šค๋ฅผ ๊ตฌ์„ฑํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
    • pod, deployment, replicaset, statefulste, autoscaler
    • service, ingress, persistent volume
  • ํด๋ผ์šฐ๋“œ/์„œ๋ฒ„ ๊ฐœ๋ฐœ ๊ณผ์ •์„ ์ดํ•ดํ•˜๊ณ  ์•ฑ์„ ๊ฐœ๋ฐœํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
    • Node.js ์›น ์„œ๋ฒ„ ๊ฐœ๋ฐœ - ๋นŒ๋“œ - ๋ฐฐํฌ
    • Visual Studio Code + Google Cloud Code

์ˆ˜์—… ์˜์ƒ์— ์ž๋ง‰์„ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค. ์ดˆ๋ณด์ž๋„ ์‰ฝ๊ฒŒ ๋”ฐ๋ผ ์‹ค์Šตํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.


์ƒ์„ธ ์ปค๋ฆฌํ˜๋Ÿผ ๐Ÿ“š

์ปค๋ฆฌํ˜๋Ÿผ ์ „์ฒด
ํ•™์Šต ๋ชฉํ‘œ

์ด ๊ฐ•์˜์—์„œ๋Š” 3๊ฐœ์˜ ๋งˆ์ดํฌ๋กœ์„œ๋น„์Šค๋กœ ๊ตฌ์„ฑ๋œ counter ์•ฑ์„ ๊ฐœ๋ฐœํ•˜๊ณ  ์ฟ ๋ฒ„๋„คํ‹ฐ์Šค์— ๋ฐฐํฌํ•ฉ๋‹ˆ๋‹ค. ์ด๋ฅผ ํ†ตํ•ด ์ฟ ๋ฒ„๋„คํ‹ฐ์Šค์˜ ํ•ต์‹ฌ ๊ฐœ๋…๊ณผ ๋งˆ์ดํฌ๋กœ์„œ๋น„์Šค ์•„ํ‚คํ…์ฒ˜์˜ ๊ธฐ๋ณธ ์›๋ฆฌ๋ฅผ ์ดํ•ดํ•ฉ๋‹ˆ๋‹ค.

  • ingress API gateway๋Š” ์š”์ฒญ์„ ์„œ๋น„์Šค๋กœ ์ „๋‹ฌํ•ฉ๋‹ˆ๋‹ค.
  • web-inc ์„œ๋น„์Šค๋Š” count ์ฆ๊ฐ€ ์š”์ฒญ(INC)์„ ์ฒ˜๋ฆฌํ•ฉ๋‹ˆ๋‹ค.
  • web ์„œ๋น„์Šค๋Š” count ๊ฐ’์— ๋Œ€ํ•œ ์š”์ฒญ(GET)์„ ์ฒ˜๋ฆฌํ•ฉ๋‹ˆ๋‹ค.
  • redis ์„œ๋น„์Šค๋Š” count ๊ฐ’์„ ์ €์žฅํ•ฉ๋‹ˆ๋‹ค.

์„น์…˜ 1
kubectl ๋ช…๋ น์œผ๋กœ ์ฟ ๋ฒ„๋„คํ‹ฐ์Šค ๋‹ค๋ฃจ๊ธฐ

์ฟ ๋ฒ„๋„คํ‹ฐ์Šค ๋ช…๋ น ๋„๊ตฌ์ธ kubectl์„ ์ด์šฉํ•ด์„œ ์ฟ ๋ฒ„๋„คํ‹ฐ์Šค ๊ตฌ์„ฑ ์š”์†Œ๋ฅผ ์ƒ์„ฑํ•˜๊ณ  ๊ด€๋ฆฌํ•˜๋Š” ๋ฐฉ๋ฒ•์— ๋Œ€ํ•ด์„œ ์‹ค์Šตํ•ฉ๋‹ˆ๋‹ค.

  • ์›น ์„œ๋ฒ„์ธ nginx ์ด๋ฏธ์ง€๋ฅผ ์‚ฌ์šฉํ•ด deployment๋กœ ๋ฐฐํฌํ•ฉ๋‹ˆ๋‹ค.
  • service๋กœ nginx pod๋ฅผ ๋…ธ์ถœ์‹œํ‚ต๋‹ˆ๋‹ค.
  • ingress API gateway๋ฅผ ์ƒ์„ฑํ•ด์„œ service๋ฅผ ์—ฐ๊ฒฐํ•ฉ๋‹ˆ๋‹ค.

์„น์…˜ 2
์ฟ ๋ฒ„๋„คํ‹ฐ์Šค์—์„œ Node.js ์•ฑ ๊ฐœ๋ฐœํ•˜๊ธฐ

๊ฐ„๋‹จํ•œ ์›น ์„œ๋น„์Šค๋ฅผ ๊ฐœ๋ฐœํ•˜๊ณ  ์ฟ ๋ฒ„๋„คํ‹ฐ์Šค์— ๋ฐฐํฌํ•ฉ๋‹ˆ๋‹ค. YAML ํŒŒ์ผ๋กœ ์ฟ ๋ฒ„๋„คํ‹ฐ์Šค ๊ตฌ์„ฑ ์š”์†Œ๋ฅผ ๋ช…์„ธํ•˜๊ณ  ๊ด€๋ฆฌํ•˜๋Š” ๋ฐฉ๋ฒ•์— ๋Œ€ํ•ด์„œ ์„ค๋ช…ํ•ฉ๋‹ˆ๋‹ค.

  • Node.js HTTP ๋ชจ๋“ˆ๋กœ ์›น ์„œ๋น„์Šค๋ฅผ ๊ฐœ๋ฐœํ•ฉ๋‹ˆ๋‹ค.
  • ๊ฐœ๋ฐœ๋œ ์›น ์„œ๋น„์Šค์˜ ๋ฐฐํฌ๋ฅผ ์œ„ํ•ด ๋„์ปค(Docker) ์ด๋ฏธ์ง€๋ฅผ ์ƒ์„ฑ(๋นŒ๋“œ)ํ•ฉ๋‹ˆ๋‹ค.
  • ์ƒ์„ฑํ•œ ์ด๋ฏธ์ง€๋ฅผ deployment๋กœ ๋ฐฐํฌํ•ฉ๋‹ˆ๋‹ค.
  • service๋กœ deployment๊ฐ€ ์ƒ์„ฑํ•œ pod๋ฅผ ๋…ธ์ถœํ•ฉ๋‹ˆ๋‹ค.

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

์„น์…˜ 3
Counter ์•ฑ ๋งŒ๋“ค๊ธฐ

count ๊ฐ’์„ persistent volume์— ํŒŒ์ผ๋กœ ์ €์žฅํ•˜๊ณ  ์ด๋ฅผ ์„œ๋น„์Šคํ•˜๋Š” counter ์•ฑ์„ ๊ฐœ๋ฐœํ•ฉ๋‹ˆ๋‹ค.

Google Cloud Code๋ฅผ ์‚ฌ์šฉํ•ด์„œ ๋นŒ๋“œ์™€ ๋ฐฐํฌ๋ฅผ ์ž๋™ํ™”ํ•˜๋Š” ๋ฐฉ๋ฒ•์— ๋Œ€ํ•ด์„œ ์‹ค์Šตํ•ฉ๋‹ˆ๋‹ค. ์„น์…˜ 3์˜ ์†Œ์Šค ์ฝ”๋“œ๋Š” github์—์„œ ํ™•์ธํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์„น์…˜ 4
Redis(๋ ˆ๋””์Šค) DB๋กœ Counter ์•ฑ ์™„์„ฑํ•˜๊ธฐ

count ์ฆ๊ฐ€ ์š”์ฒญ์„ ์ฒ˜๋ฆฌํ•˜๋Š” web-inc ์„œ๋น„์Šค, count ๊ฐ’์„ ๋ฐ˜ํ™˜ํ•˜๋Š” web ์„œ๋น„์Šค, Redis DB์— count ๊ฐ’์„ ์ €์žฅํ•˜๋Š” redis ์„œ๋น„์Šค๋กœ ๊ตฌ์„ฑ๋œ ์ด ๊ฐ•์˜ ์ตœ์ข… ๊ตฌ์กฐ๋ฅผ ๊ตฌํ˜„ํ•ฉ๋‹ˆ๋‹ค.

  • ์ƒํƒœ๋ฅผ ์ €์žฅํ•  ํ•„์š”๊ฐ€ ์—†๋Š”(stateless) web, web-inc ์„œ๋น„์Šค๋Š” deployment๋กœ ๊ตฌ์„ฑํ•ฉ๋‹ˆ๋‹ค.
  • ์ƒํƒœ๋ฅผ ์ €์žฅํ•ด์•ผ ํ•˜๋Š” redis ์„œ๋น„์Šค๋Š” statefulset์œผ๋กœ ๊ตฌ์„ฑํ•ฉ๋‹ˆ๋‹ค.
  • Redis DB๋ฅผ master-slave ๊ตฌ์กฐ๋กœ ์„ค์ •ํ•ฉ๋‹ˆ๋‹ค.
  • ์š”์ฒญ์— ๋”ฐ๋ผ ์„œ๋น„์Šค๋ฅผ ๋ผ์šฐํŒ… ํ•˜๋Š” ingress API gateway๋ฅผ ์„ค์ •ํ•ฉ๋‹ˆ๋‹ค.
  • CPU ๋ถ€ํ•˜์— ๋”ฐ๋ผ pod์˜ ๊ฐœ์ˆ˜๋ฅผ ์ž๋™์œผ๋กœ ์กฐ์ •ํ•˜๋„๋ก autoscaler๋„ ์„ค์ •ํ•ฉ๋‹ˆ๋‹ค.

์„น์…˜ 4์˜ ์†Œ์Šค ์ฝ”๋“œ๋Š” github์—์„œ ํ™•์ธํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.


Q&A ๐Ÿ’ญ

Q. ๊ฐ•์˜๋ฅผ ๋“ฃ๊ธฐ ์ „, ์•Œ์•„์•ผ ํ•  ๊ฒƒ์ด ์žˆ๋‚˜์š”?

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

์ด๋Ÿฐ ๋ถ„๋“ค๊ป˜
์ถ”์ฒœ๋“œ๋ ค์š”!

ํ•™์Šต ๋Œ€์ƒ์€
๋ˆ„๊ตฌ์ผ๊นŒ์š”?

  • ์ฟ ๋ฒ„๋„คํ‹ฐ์Šค๋ฅผ ์•Œ๊ณ  ์‹ถ์€ ์‚ฌ๋žŒ

  • ํด๋ผ์šฐ๋“œ ์•ฑ ๊ฐœ๋ฐœ๊ณผ ๋ฐฐํฌ์— ๋Œ€ํ•ด ๊ถ๊ธˆํ•œ ์‚ฌ๋žŒ

  • ๋งˆ์ดํฌ๋กœ ์„œ๋น„์Šค ์•„ํ‚คํ…์ฒ˜๋ฅผ ๋ฐฐ์šฐ๊ณ  ์‹ถ์€ ์‚ฌ๋žŒ

์„ ์ˆ˜ ์ง€์‹,
ํ•„์š”ํ• ๊นŒ์š”?

  • ์ปดํ“จํ„ฐ, ๋„คํŠธ์›Œํฌ, ํ”„๋กœ๊ทธ๋ž˜๋ฐ์— ๋Œ€ํ•œ ๊ธฐ์ดˆ ์ง€์‹

์•ˆ๋…•ํ•˜์„ธ์š”
๋“œ๋ผ์ง„์ž…๋‹ˆ๋‹ค.

239

๋ช…

์ˆ˜๊ฐ•์ƒ

15

๊ฐœ

์ˆ˜๊ฐ•ํ‰

10

๊ฐœ

๋‹ต๋ณ€

4.9

์ 

๊ฐ•์˜ ํ‰์ 

3

๊ฐœ

๊ฐ•์˜

์†Œํ”„ํŠธ์›จ์–ด ์•„ํ‚คํ…ํŠธ & ๊ต์œก๊ฐ€

โ€ข ํ˜„) ๋ณด์ด๋Š”์†Œํ”„ํŠธ์›จ์–ด์—ฐ๊ตฌ์†Œ ๋Œ€ํ‘œ(2016~ํ˜„์žฌ)
  - ์‚ผ์„ฑ์ „์ž ์†Œํ”„ํŠธ์›จ์–ด ์•„ํ‚คํ…ํŠธ ์–‘์„ฑ ๋ฐ ์ธ์ฆ
  - ์†Œํ”„ํŠธ์›จ์–ด ๊ตฌ์กฐ ์„ค๊ณ„ ๋ฐ ํ‰๊ฐ€ ๊ต์œก / ์ปจ์„คํŒ…

โ€ข ์ค‘์•™๋Œ€ํ•™๊ต ์†Œํ”„ํŠธ์›จ์–ด ๋Œ€ํ•™ ๊ฒธ์ž„ ๊ต์ˆ˜(2018~2022)
  - ๊ธฐ์ดˆ ์ปดํ“จํ„ฐ ํ”„๋กœ๊ทธ๋ž˜๋ฐ - C/C++, JavaScript, Python

โ€ข ์‚ผ์„ฑ์ „์ž(2003~2016)

๋”๋ณด๊ธฐ

์ปค๋ฆฌํ˜๋Ÿผ

์ „์ฒด

31๊ฐœ โˆ™ (3์‹œ๊ฐ„ 10๋ถ„)

๊ฐ•์˜ ๊ฒŒ์‹œ์ผ: 
๋งˆ์ง€๋ง‰ ์—…๋ฐ์ดํŠธ์ผ: 

์ˆ˜๊ฐ•ํ‰

์•„์ง ์ถฉ๋ถ„ํ•œ ํ‰๊ฐ€๋ฅผ ๋ฐ›์ง€ ๋ชปํ•œ ๊ฐ•์˜์ž…๋‹ˆ๋‹ค.
๋ชจ๋‘์—๊ฒŒ ๋„์›€์ด ๋˜๋Š” ์ˆ˜๊ฐ•ํ‰์˜ ์ฃผ์ธ๊ณต์ด ๋˜์–ด์ฃผ์„ธ์š”!