์ฑ„๋„ํ†ก ์•„์ด์ฝ˜

Spring Cloud๋กœ ๊ฐœ๋ฐœํ•˜๋Š” ๋งˆ์ดํฌ๋กœ์„œ๋น„์Šค ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜(MSA)

Spring framework์˜ Spring Cloud ์ œํ’ˆ๊ตฐ์„ ์ด์šฉํ•˜์—ฌ ๋งˆ์ดํฌ๋กœ์„œ๋น„์Šค ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ๊ฐœ๋ฐœํ•ด ๋ณด๋Š” ๊ณผ์ •์ž…๋‹ˆ๋‹ค. Cloud Native Application์œผ๋กœ์จ์˜ Spring Cloud๋ฅผ ์–ด๋–ป๊ฒŒ ์‚ฌ์šฉํ•˜๋Š”์ง€, ๊ตฌ์„ฑ์„ ์–ด๋–ป๊ฒŒ ํ•˜๋Š”์ง€์— ๋Œ€ํ•ด ๋ฐฐ์šธ ์ˆ˜ ์žˆ๋Š” ๊ฐ•์˜์ž…๋‹ˆ๋‹ค.

(4.9) ์ˆ˜๊ฐ•ํ‰ 464๊ฐœ

์ˆ˜๊ฐ•์ƒ 7,904๋ช…

๋‚œ์ด๋„ ์ดˆ๊ธ‰

์ˆ˜๊ฐ•๊ธฐํ•œ ๋ฌด์ œํ•œ

์ƒˆ์†Œ์‹

8 ๊ฐœ

  • Dowon Lee๋‹˜์˜ ํ”„๋กœํ•„ ์ด๋ฏธ์ง€

    Spring Boot 3.5 + Spring Cloud 2025.0.x ๊ฐ•์˜ ์—…๋ฐ์ดํŠธ ์ค‘ ์ž…๋‹ˆ๋‹ค.

    ์•ˆ๋…•ํ•˜์„ธ์š”, ์ด๋„์›์ž…๋‹ˆ๋‹ค.

    ์ด๋ฒˆ์— ์ƒˆ๋กญ๊ฒŒ "Spring Cloud๋กœ ๊ฐœ๋ฐœํ•˜๋Š” ๋งˆ์ดํฌ๋กœ์„œ๋น„์Šค ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜(MSA)" ๊ฐ•์˜์— ๋Œ€ํ•œ 2์ฐจ ์—…๋ฐ์ดํŠธ๊ฐ€ ์ง„ํ–‰ ์ค‘์ž…๋‹ˆ๋‹ค. ์ด๋ฒˆ ์—…๋ฐ์ดํŠธ๋Š” ์‹ค์Šต ์˜ˆ์ œํ•œ ๋Œ€ํ•œ ๋ถ€๋ถ„ ๋ฟ๋งŒ ์•„๋‹ˆ๋ผ, ๊ฐ•์˜ ์ฝ˜ํ…์ธ ์— ๋Œ€ํ•œ ๋ถ€๋ถ„๋„ ์ตœ์‹  ๋‚ด์šฉ์œผ๋กœ ์—…๋ฐ์ดํŠธ ์ค‘์ž…๋‹ˆ๋‹ค. (Spring boot 3.5 + Spring Cloud 2025.0.0)

    ์•ž์„œ ๊ณต์ง€ํ•ด ๋“œ๋ ธ๋˜ ๋‚ด์šฉ์ฒ˜๋Ÿผ 6์›”๋ง๊นŒ์ง€ ์ผ์ •์œผ๋กœ ๋งˆ๋ฌด๋ฆฌํ•˜๋ ค๊ณ  ํ–ˆ๋Š”๋ฐ, ํ˜„์žฌ ํ”„๋กœ์ ํŠธ ์ผ์ •๊ณผ ๊ฒน์ณ ๋„์ €ํžˆ ์‹œ๊ฐ„์„ ๋งž์ถœ์ˆ˜๊ฐ€ ์—†์—ˆ์Šต๋‹ˆ๋‹ค. ๋‹ค์‹œํ•œ๋ฒˆ ์ฃ„์†กํ•˜๋‹ค๋Š” ๋ง์”€๋“œ๋ฆฝ๋‹ˆ๋‹ค.

    ์šฐ์„  Section 1 ๊ฐ•์˜ ์—…๋ฐ์ดํŠธ๊ฐ€ ์ง„ํ–‰๋˜์—ˆ๊ณ , ํ•œ๊บผ๋ฒˆ์— ์—…๋ฐ์ดํŠธํ•˜์ง€๋Š” ๋ชปํ•˜๊ฒ ์ง€๋งŒ, Section2, Section 3... ๋งค์ฃผ ์ˆœ์ฐจ์ ์œผ๋กœ ์—…๋ฐ์ดํŠธ ํ•  ๊ณ„ํš์ž…๋‹ˆ๋‹ค.

    ์ด๋ฒˆ ๊ฐ•์˜ ์ฝ˜ํ…์ธ ๋ฅผ ์—…๋ฐ์ดํŠธ ํ•˜๋ฉด ์ƒˆ๋กญ๊ฒŒ ๋ช‡๋ช‡ ๋‚ด์šฉ๋“ค๋„ ์ถ”๊ฐ€๋˜์—ˆ์œผ๋‹ˆ ๊ฐ™์ด ์ฐธ๊ณ ํ•˜์‹œ๋ฉด ์ข‹์„ ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค.

    ๋‹ค์‹œ ํ•œ๋ฒˆ ๊ฐ•์˜์— ๊ด€์‹ฌ์„ ๊ฐ€์ ธ ์ฃผ์‹  ๋ถ„๋“ค๊ป˜ ๊ฐ์‚ฌ์˜ ์ธ์‚ฌ ๋“œ๋ฆฝ๋‹ˆ๋‹ค.
    ์ง€๋‚œ 5์›” ๋ง๋Š” ๊ทธ๋™์•ˆ ๋ฏธ๋ค„์™”๋˜, ์Šคํ”„๋ง ํด๋ผ์šฐ๋“œ ํŒจํ„ด์— ๋Œ€ํ•œ ๊ฐ•์˜๋„ ์˜คํ”ˆ ํ•˜์˜€๋Š”๋ฐ, ๊ธฐ๋ณธ์ ์ธ MSA ๊ณผ์ •์„ ํ•™์Šตํ•˜์‹  ๋ถ€๋ถ„๋“ค์€ ์ด๋ถ€๋ถ„๋„ ๊ด€์‹ฌ์„ ๊ฐ€์ ธ์ฃผ์‹œ๋ฉด ๊ฐ์‚ฌ๋“œ๋ฆฌ๊ฒ ์Šต๋‹ˆ๋‹ค.

    ์ถ”๊ฐ€๋กœ, ํ˜„์žฌ ์ง„ํ–‰ ์ค‘์ธ ๊ฐ•์˜๋“ค์„ ๋ฌถ์–ด ํ•™์Šตํ•˜์‹ค ์ˆ˜ ์žˆ๋„๋ก ๋กœ๋“œ๋งต์„ ์ž‘์„ฑํ•ด ๋ณด์•˜์Šต๋‹ˆ๋‹ค.

    3
  • Dowon Lee๋‹˜์˜ ํ”„๋กœํ•„ ์ด๋ฏธ์ง€

    ์•ˆ๋…•ํ•˜์„ธ์š”, ์ด๋„์›์ž…๋‹ˆ๋‹ค.

    ๊ทธ๋™์•ˆ ๋ฏธ๋ค„์™”๋˜ "Spring Cloud๋กœ ๊ฐœ๋ฐœํ•˜๋Š” ๋งˆ์ดํฌ๋กœ์„œ๋น„์Šค ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜(MSA)" ๊ฐ•์˜์— ๋Œ€ํ•œ 1์ฐจ ์—…๋ฐ์ดํŠธ๊ฐ€ ์™„๋ฃŒ ๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ์ด๋ฒˆ ์—…๋ฐ์ดํŠธ๋Š” ์‹ค์Šต ์˜ˆ์ œํ•œ ๋Œ€ํ•œ ๋ถ€๋ถ„์€ ๊ธฐ์กด Spring boot 2.x ๋ฒ„์ „์—์„œ Spring boot 3.x ๋ฒ„์ „์œผ๋กœ ๋ณ€๊ฒฝํ•œ ๋‚ด์šฉ์ž…๋‹ˆ๋‹ค. ๊ฐ•์˜ ๋‚ด์šฉ ์ฝ˜ํ…์ธ ์— ๋Œ€ํ•œ ์—…๋ฐ์ดํŠธ๋Š” ํ•˜๋ฐ˜๊ธฐ์— 2์ฐจ ์—…๋ฐ์ดํŠธ ํ•  ๊ณ„ํš์ž…๋‹ˆ๋‹ค.

    ์•ž์„œ ๊ณต์ง€ํ•ด ๋“œ๋ ธ๋˜ ๋‚ด์šฉ์ฒ˜๋Ÿผ 6์›”๋ง๊นŒ์ง€ ์ผ์ •์œผ๋กœ ๋งˆ๋ฌด๋ฆฌํ•˜๋ ค๊ณ  ํ–ˆ๋Š”๋ฐ, ํ˜„์žฌ ํ”„๋กœ์ ํŠธ ์ผ์ •๊ณผ ๊ฒน์ณ ๋„์ €ํžˆ ์‹œ๊ฐ„์„ ๋งž์ถœ์ˆ˜๊ฐ€ ์—†์—ˆ์Šต๋‹ˆ๋‹ค. ๋‹ค์‹œํ•œ๋ฒˆ ์ฃ„์†กํ•˜๋‹ค๋Š” ๋ง์”€๋“œ๋ฆฝ๋‹ˆ๋‹ค.

    ์ด๋ฒˆ ๊ฐ•์˜ ์ฝ˜ํ…์ธ ๋ฅผ ์—…๋ฐ์ดํŠธ ํ•˜๋ฉด ์ƒˆ๋กญ๊ฒŒ ๋ช‡๋ช‡ ๋‚ด์šฉ๋“ค๋„ ์ถ”๊ฐ€๋˜์—ˆ์œผ๋‹ˆ ๊ฐ™์ด ์ฐธ๊ณ ํ•˜์‹œ๋ฉด ์ข‹์„ ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค. ์ถ”๊ฐ€๋œ ๋ถ€๋ถ„์€ Swagger API (OAS 3.0) ์ ์šฉ๊ณผ Kubernetes์—์„œ Spring Boot ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜(์„œ๋น„์Šค)๋ฅผ ๋ฐฐํฌํ•˜๊ธฐ ์œ„ํ•ด ํ•„์š”ํ•œ K8s manifest ์„ค์ •์— ๋Œ€ํ•œ ๋ถ€๋ถ„์ž…๋‹ˆ๋‹ค.

    ์†Œ์Šค์ฝ”๋“œ๋Š” ์ด๋ฏธ github์— ๊ณต์œ ํ•ด ๋“œ๋ ธ์œผ๋‚˜, ์ฝ˜ํ…์ธ ๋ฅผ ๋‹ค์‹œ ๋…นํ™”ํ•˜๋ฉด์„œ ์ผ๋ถ€ ๋ณ€๊ฒฝ๋˜๊ฑฐ๋‚˜ ์ถ”๊ฐ€๋˜๊ธฐ๋„ ํ•˜์˜€์œผ๋‹ˆ, ์ตœ์‹  ์ฝ”๋“œ๋กœ ์‹ค์Šตํ•ด ๋ณด์‹œ๊ธฐ๋ฅผ ๊ถŒ์žฅ๋“œ๋ฆฝ๋‹ˆ๋‹ค. ์‹ค์Šต ์ฝ”๋“œ๊ฐ€ ์—…๋ฐ์ดํŠธ ๋œ ๋ถ€๋ถ„์€ ์•„๋ž˜์™€ ๊ฐ™์Šต๋‹ˆ๋‹ค.

    joneconsulting/toy-msa: A Toy project for a mas practice. (github.com)

    (๋ธŒ๋žœ์น˜: springboot3.2, springboot3.2_k8s)

    • Eureka Service Discovery

    • Configuration Service

    • First-Service

    • Second Service

    • Apigateway Service

    • Kafka

    • Catalog Service

    • Order Service

    • User Service

    • Kubernetes ๋ฐฐํฌ

    • Distributed Tracing (with Zipkin)

    • Swagger API (OAS 3.0)

    ์ถ”๊ฐ€๋กœ, ์—…๋ฐ์ดํŠธ ์ดํ›„ ์ง„ํ–‰ํ•˜๊ฒ ๋‹ค๊ณ  ํ–ˆ๋˜ ์ด๋ฒคํŠธ๋„ ์กฐ๋งŒ๊ฐ„์— ์ง„ํ–‰ํ•˜๋„๋ก ํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค.

     

    ๊ฐ์‚ฌํ•ฉ๋‹ˆ๋‹ค!

    5
  • Dowon Lee๋‹˜์˜ ํ”„๋กœํ•„ ์ด๋ฏธ์ง€

    ์•ˆ๋…•ํ•˜์„ธ์š”, ์ด๋„์›์ž…๋‹ˆ๋‹ค.

    ๋จผ์ € "Spring Cloud๋กœ ๊ฐœ๋ฐœํ•˜๋Š” ๋งˆ์ดํฌ๋กœ์„œ๋น„์Šค ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜(MSA)" ๊ฐ•์˜๋ฅผ ์ˆ˜๊ฐ•ํ•˜์‹œ๋Š” ์ˆ˜๊ฐ•์ƒ ๋ถ„๋“ค๊ป˜ ๊ฐ์‚ฌ์˜ ์ธ์‚ฌ๋“œ๋ฆฝ๋‹ˆ๋‹ค. ๊ทธ๋ฆฌ๊ณ  ํ•ด๋‹น ๊ฐ•์˜์— ๋Œ€ํ•œ ์—…๋ฐ์ดํŠธ๊ฐ€ ์˜ˆ์ •๊ณผ ๋‹ฌ๋ฆฌ ๋Šฆ์–ด์ง€๊ณ  ์žˆ๋Š” ์ ์— ๋Œ€ํ•ด์„œ ์–‘ํ•ด์˜ ๋ง์”€๋“œ๋ฆฌ๊ณ ์ž ๊ธ€ ์˜ฌ๋ฆฝ๋‹ˆ๋‹ค.

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

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

    ํ•ด๋‹น ๊ฐ•์˜๋Š” ํ˜„์žฌ ์ž‘์—…์ด ๋งˆ๋ฌด๋ฆฌ ๋˜๋Š” 6์›” ๊ธฐ์ ์œผ๋กœ ์—…๋ฐ์ดํŠธ ๋˜๋„๋ก ์ค€๋น„ ์ค‘์ž…๋‹ˆ๋‹ค. ์กฐ๊ธˆ ๋” ๊ธฐ๋‹ค๋ ค ์ฃผ์‹œ๋ฉด ๊ฐ์‚ฌ๋“œ๋ฆฌ๊ฒ ์Šต๋‹ˆ๋‹ค.

    ๋‹ค์‹œ ํ•œ๋ฒˆ ๋” ๋ถˆํŽธํ•จ์„ ๋“œ๋ ค ์ฃ„์†กํ•˜๋‹ค๋Š” ๋ง์”€๋“œ๋ฆฝ๋‹ˆ๋‹ค.

     

    - ์ด๋„์› ๋ฐฐ์ƒ -

    8
  • Dowon Lee๋‹˜์˜ ํ”„๋กœํ•„ ์ด๋ฏธ์ง€

    ์ตœ๊ทผ์— ์ถœ์‹œ ๋œ Apache Kafka 3.7๋ถ€ํ„ฐ๋Š” ๊ณต์‹์ ์œผ๋กœ Docker ํ˜•ํƒœ๋กœ ๋„ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. 

    Apache Kafka

    image

    Image Layer Details - apache/kafka:3.7.0 | Docker Hub

    ์‚ฌ์šฉํ•˜์‹œ๋Š” OS์— ๋งž๋Š” docker deskop์„ ์„ค์น˜ํ•˜์‹œ๊ณ  ๋ฐ”๋กœ ์‚ฌ์šฉํ•˜์‹ค ์ˆ˜ ์žˆ์„ ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค.

    ์‚ฌ์ดํŠธ์—์„œ๋Š” linux/amd64์™€ linux/arm64 ๋ชจ๋‘ ์ง€์›๋œ๋‹ค๊ณ  ๋˜์–ด ์žˆ์œผ๋‹ˆ, MacOS Apple chip ์—์„œ๋„ ์‚ฌ์šฉ๊ฐ€๋Šฅ ํ•  ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค.

    docker run --env CONFIG_NAME=CONFIG_VALUE -p 9092:9092 apache/kafka:3.7.0

     

    Kafka ๊ธฐ๋™์— ๋ถˆํŽธํ•˜์…จ๋˜ ๋ถ„๋“ค์€ Docker Kafka๋กœ ์‹คํ–‰ํ•ด ๋ณด์‹œ๊ธฐ ๋ฐ”๋ž๋‹ˆ๋‹ค.

    ๊ฐ์‚ฌํ•ฉ๋‹ˆ๋‹ค .


    1
  • Dowon Lee๋‹˜์˜ ํ”„๋กœํ•„ ์ด๋ฏธ์ง€

    ์•ˆ๋…•ํ•˜์„ธ์š”, ์ˆ˜๊ฐ•์ƒ ์—ฌ๋Ÿฌ๋ถ„,

    "Spring Cloud๋กœ ๊ฐœ๋ฐœํ•˜๋Š” ๋งˆ์ดํฌ๋กœ์„œ๋น„์Šค ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜(MSA)" ๊ฐ•์˜๋ฅผ ์ง„ํ–‰ํ•˜๊ณ  ์žˆ๋Š” ์ด๋„์›์ž…๋‹ˆ๋‹ค.

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

    ๋ณ€๊ฒฝ ๋œ ์ฝ”๋“œ๋Š” Github์—์„œ ํ™•์ธ ํ•˜์‹ค ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

    https://github.com/joneconsulting/toy-msa/tree/springboot3.2

    ์ตœ์‹  ์—…๋ฐ์ดํŠธ ๋œ ์ฝ”๋“œ์— ๋งž์ถฐ ๊ฐ•์˜๋„ ์ถ”๊ฐ€ ๋ฐ ์—…๋ฐ์ดํŠธ ํ•  ์˜ˆ์ •์ž…๋‹ˆ๋‹ค.

    2024-02-02

    • OpenJDK 21

    • Spring Boot 3.2.2 + Spring Cloud 2023.0.0 ๋ฒ„์ „์— ๋งž์ถฐ ์˜ˆ์ œ ํŒŒ์ผ์ด ์—…๋ฐ์ดํŠธ ๋˜์—ˆ์Šต๋‹ˆ๋‹ค.

    • Spring Security 6 ๋ฒ„์ „์œผ๋กœ ํšŒ์›๊ฐ€์ž…, ๋กœ๊ทธ์ธ, ์ธ์ฆ ์˜ˆ์ œ ๋ณ€๊ฒฝ ๋˜์—ˆ์Šต๋‹ˆ๋‹ค.

    • ์ด์ „ ๋ฒ„์ „ (Spring Boot 2.7.6) ์€ main ๋ธŒ๋žœ์น˜์—์„œ ํ™•์ธํ•˜์‹ค ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

     

    ๊ฐ์‚ฌํ•ฉ๋‹ˆ๋‹ค.

    8
  • Dowon Lee๋‹˜์˜ ํ”„๋กœํ•„ ์ด๋ฏธ์ง€

    ์•ˆ๋…•ํ•˜์„ธ์š”, ์ด๋„์›์ž…๋‹ˆ๋‹ค. 

    ์ฝ”๋กœ๋‚˜๋„ ์กฐ๊ธˆ์”ฉ ์ง„์ •๋˜์–ด ๊ฐ€๊ณ  ์žˆ๋Š” ๋ชจ์Šต์ด๊ณ , ์ •์ƒ์ ์ธ ์‚ฌํšŒ์ƒํ™œ๋กœ ๋Œ์•„๊ฐ€๊ณ  ์žˆ๋Š” ๋“ฏ ํ•ฉ๋‹ˆ๋‹ค. 

    2022๋…„๋„ ์—ฌ๋ฆ„์ด ์‹œ์ž‘๋˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. ์žฅ๋งˆ๊ฐ€ ์‹œ์ž‘๋˜๊ณ  ์žˆ๋Š” ๋“ฏ ๋ง‘์€ ํ•˜๋Š˜์„ ๋ณด๊ธฐ๊ฐ€ ์–ด๋ ต๋„ค์š”. 

    "Spring Cloud๋กœ ๊ฐœ๋ฐœํ•˜๋Š” ๋งˆ์ดํฌ๋กœ์„œ๋น„์Šค ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜(MSA)" ๊ฐ•์˜์˜ ํ›„์† ๊ฐ•์˜๋ฅผ ๊ธฐ๋‹ค๋ ค ์ฃผ์‹œ๋Š” ๋ถ„๋“ค๊ป˜๋Š” ์ฃ„์†กํ•˜๋‹ค๋Š” ๋ง์™ธ์—๋Š” ๋“œ๋ฆด ๋ง์”€์ด ์—†๋„ค์š”. ์›๋ž˜ ๊ณ„ํš๋Œ€๋กœ๋‹ค๋ฉด ์ง€๋‚œ 1์›”์— ์˜คํ”ˆ๋˜์–ด์•ผ ํ•  ๊ฐ•์˜๊ฐ€ ์ง„ํ–‰ํ•˜๋˜ ํ”„๋กœ์ ํŠธ์˜ ์ด์Šˆ๋กœ 2์›” 3์›” ์—ฐ๊ธฐ๋˜๋‹ค๊ฐ€ ์•„์ง๋„ ์˜คํ”ˆํ•˜์ง€ ๋ชปํ•˜๊ณ  ์žˆ๋„ค์š”... ๊ทธ๋ž˜๋„... ์ •๋ง ๊ณง! ์˜คํ”ˆํ•˜๋ ค๊ณ  ๋งˆ์ง€๋ง‰ ์ค€๋น„ ์ž‘์—…์ค‘์— ์žˆ์Šต๋‹ˆ๋‹ค. 

    ๋‹ค์Œ ๊ฐ•์˜๋Š” ์˜ˆ์ •๋Œ€๋กœ CI/CD์— ๊ด€๋ จ๋œ ๊ฐ•์˜์ž…๋‹ˆ๋‹ค. ์˜ค๋Š˜์€ CI/CD ๊ฐ•์˜์— ๋Œ€ํ•œ ๋ชฉ์ฐจ ๋จผ์ € ์†Œ๊ฐœํ•˜๋ ค๊ณ  ํ•ฉ๋‹ˆ๋‹ค. 

    ๊ฐ•์˜๋Š” ์ „์ฒด 6~7๊ฐœ ์„น์…˜์œผ๋กœ ๊ตฌ์„ฑ๋˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค. Appendix๋ฅผ ๋ณธ ๊ฐ•์˜์— ํฌํ•จ ์‹œํ‚ฌ์ง€ ์—ฌ๋ถ€์— ๋”ฐ๋ผ์„œ 6๊ฐœ ๋˜๋Š” 7๊ฐœ ์„น์…˜์œผ๋กœ ๋‚˜๋‰  ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค. 

    Section 1. DevOps์™€ CI/CD

        1-1. DevOps์™€ CI/CD

        1-2. CI/CD ์ž‘์—… ํ๋ฆ„

        1-3. Jenkins ์„ค์น˜

        1-4. Exercisef #1

     

    Section 2. Jenkins๋ฅผ ์ด์šฉํ•œ CI/CD ์‚ฌ์šฉ

        2-1. CI/CD๋ฅผ ์œ„ํ•œ Git & Maven ์—ฐ๋™

        2-2. Exercisef #2

        2-3. CI/CD๋ฅผ ์œ„ํ•œ Tomcat Server ์—ฐ๋™

        2-4. Exercisef #3

        2-5. PollSCM ์„ค์ •

        2-6. Docker๋ฅผ ์ด์šฉํ•œ ์‹ค์Šต ํ™˜๊ฒฝ ๊ตฌ์„ฑ 

        2-7. Exercisef #4

     

    Section 3. Jenkins + Infrastructure as Code (Ansible์„ ์ด์šฉํ•œ Configuration Management)

        3-1. IaC

        3-2. Ansible ๊ฐœ์š”

        3-3. Ansible ์„ค์น˜

        3-4. Ansible Playbook

        3-5. Exercise #5

        3-6. Docker ์ด๋ฏธ์ง€ ๋ฐฐํฌ

        3-7. Exercise #6

     

    Section 4. Jenkins + Ansible + Kubernets ์—ฐ๋™

        4-1. Kubernetes Cluster์— ๋ฐฐํฌํ•˜๊ธฐ

        4-2. Ansible + Kubernetes ์—ฐ๋™

        4-3. Exercise #7

        4-4. CI/CD ํ”„๋กœ์„ธ์Šค

        4-5. Exercise #8

        4-6. Minikube ์„ค์น˜ (Apple Silicon chip)

     

    Section 5. Advanced Jenkins ์‚ฌ์šฉ

        5-1. Delivery Pipeline ์‚ฌ์šฉ

        5-2. Jenkins Pipeline ๊ตฌ์„ฑ

        5-3. Exercise #9

        5-4. Exercise #10

        5-5. Practices

        5-6. SonarQube ์ •์ ๋ถ„์„

     

    Section 6. Public Cloud์— ๋ฐฐํฌ

        6-1. AWS EC2 ์ธ์Šคํ„ด์Šค ์ƒ์„ฑ๊ณผ Docker ์„ค์น˜

        6-2. AWS์— ๋ฐฐํฌ

        6-3. Kops๋ฅผ ์ด์šฉํ•œ Kubernetes Cluster ๊ตฌ์„ฑ

        6-4. NCP ์„œ๋ฒ„ ์ธ์Šคํ„ด์Šค ์ƒ์„ฑ๊ณผ Docker ์„ค์น˜

        6-5. NCP์— ๋ฐฐํฌ 

     

    Appendix

        A-1. ํ•„์ˆ˜ SW ์„ค์น˜

        A-2. Tomcat Server ์„ค์น˜ 

        A-3. SSH Server

        A-4. Windows ์‚ฌ์šฉ์ž๋ฅผ ์œ„ํ•œ XShell, MobaXterm ์„ค์น˜

        A-5. MacOS ์‚ฌ์šฉ์ž๋ฅผ ์œ„ํ•œ Terminus ์„ค์น˜

     

    ๊ฐ•์˜์— ๊ด€์‹ฌ์„ ๊ฐ€์ ธ์ฃผ์‹  ๋ถ„๋“ค๊ป˜ ๋‹ค์‹œํ•œ๋ฒˆ ๊ฐ์‚ฌ์˜ ์ธ์‚ฌ๋ฅผ ๋“œ๋ฆฌ๋ฉฐ, ์กฐ๋งŒ๊ฐ„์— ์ข‹์€ ๊ฐ•์˜๋กœ ์ฐพ์•„๋ต™๋„๋ก ํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค. 

    ๊ฐ์‚ฌํ•ฉ๋‹ˆ๋‹ค. 

     

    12
  • Dowon Lee๋‹˜์˜ ํ”„๋กœํ•„ ์ด๋ฏธ์ง€

    ์•ˆ๋…•ํ•˜์„ธ์š”, ์ด๋„์›์ž…๋‹ˆ๋‹ค. 

    "Spring Cloud๋กœ ๊ฐœ๋ฐœํ•˜๋Š” ๋งˆ์ดํฌ๋กœ์„œ๋น„์Šค ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜" ๊ฐ•์˜๋ฅผ ์‹œ์ž‘ํ•œ์ง€ ๋ฒŒ์จ 6๊ฐœ์›”์ด ๋˜์–ด ๊ฐ‘๋‹ˆ๋‹ค. ์ƒ๊ฐ๋ณด๋‹ค ๋งŽ์€ ์ˆ˜๊ฐ•์ƒ๋ถ„๋“ค์ด ๊ด€์‹ฌ์„ ๊ฐ€์ ธ ์ฃผ์…จ์Šต๋‹ˆ๋‹ค. ๋‹ค์‹œํ•œ๋ฒˆ ๊ฐ์‚ฌ์˜ ์ธ์‚ฌ๋“œ๋ฆฝ๋‹ˆ๋‹ค. 

    ๊ทธ๋ฆฌ๊ณ , ์ œ๊ฐ€ ์˜ฌํ•ด ๊ฐ•์˜๋ฅผ ์ง„ํ–‰ํ•˜๊ธฐ๋กœ ๊ธฐํšํ–ˆ๋˜ ํ›„์†๊ฐ•์˜๋ฅผ ๊ณง ๊ณต๊ฐœํ•  ์ˆ˜ ์žˆ๊ฒŒ ๋˜์–ด ์—ฌ๊ธฐ ๊ฐ•์˜์†Œ์‹๋ž€์— ๊ธ€์„ ์˜ฌ๋ฆฝ๋‹ˆ๋‹ค. ํ›„์† ๊ฐ•์˜๋Š” CI/CD์— ๊ด€๋ จ๋œ ๋‚ด์šฉ์œผ๋กœ Jenkins๋ผ๋Š” ์˜คํ”ˆ ์†Œ์Šค๋ฅผ ํ™œ์šฉํ•˜๋Š” CI/CD ์ž‘์—…์„ ์ง„ํ–‰ํ•˜๋ ค๊ณ  ํ•ฉ๋‹ˆ๋‹ค. ๊ฐ•์˜ ๋‚ด์šฉ์€ ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค.  "Spring Cloud๋กœ ๊ฐœ๋ฐœํ•˜๋Š” ๋งˆ์ดํฌ๋กœ์„œ๋น„์Šค ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜"๋ณด๋‹ค ๊ฐ•์˜ ๋‚ด์šฉ์ด ์ ์–ด ์ค€๋น„๊ฐ€ ๊ธˆ๋ฐฉ ๋๋‚ ๊ฑฐ๋ผ ์ƒ๊ฐํ–ˆ์—ˆ๋Š”๋ฐ, ์ด๋ž˜์ €๋ž˜ ๋ฐ”์œ ํ•‘๊ณ„๋กœ ์ธํ•ด, ์ด์ œ์„œ์•ผ ์ค€๋น„๊ฐ€ ๋๋‚˜ ๊ฐ‘๋‹ˆ๋‹ค. ๊ฐ•์˜ ๋…นํ™”๋ฅผ ๋งˆ๋ฌด๋ฆฌํ•˜๊ณ , 10์›” ์ค‘์ˆœ ๊ฒฝ์—๋Š” ์ •์‹ ๊ณต๊ฐœ๊ฐ€ ๋˜์ง€ ์•Š์„๊นŒ ๊ธฐ๋Œ€ํ•ด ๋ด…๋‹ˆ๋‹ค.

     

    ๊ฐ์‚ฌํ•ฉ๋‹ˆ๋‹ค. 

     

    19
  • Dowon Lee๋‹˜์˜ ํ”„๋กœํ•„ ์ด๋ฏธ์ง€

    ์•ˆ๋…•ํ•˜์„ธ์š”, ์ด๋„์›์ž…๋‹ˆ๋‹ค. 

    ๋จผ์ € ๊ฐ•์˜์— ๊ด€์‹ฌ์„ ๊ฐ€์ ธ์ฃผ์‹  ๋งŽ์€ ๋ถ„๋“ค๊นŒ ๊ฐ์‚ฌ์˜ ์ธ์‚ฌ๋“œ๋ฆฝ๋‹ˆ๋‹ค. 

    Spring Boot์™€ Spring Cloud๋ฅผ ํ™œ์šฉํ•œ ๋งˆ์ดํฌ๋กœ์„œ๋น„์Šค ๊ด€๋ จ ๊ฐ•์˜๋Š”, CNCF์— ์–˜๊ธฐํ•˜๋Š” Cloud Native์˜ ๊ตฌ์„ฑ์š”์†Œ 4๊ฐ€์ง€์— ๋งž์ถฐ์„œ ๊ฐ•์˜๋ฅผ ๊ตฌ์„ฑํ•ด ๋ณด๋ ค๊ณ  ๊ณ„ํšํ–ˆ์Šต๋‹ˆ๋‹ค. 

    - ์ปจํ…Œ์ด๋„ˆ ๊ฐ€์ƒํ™”

    - ๋งˆ์ดํฌ๋กœ์„œ๋น„์Šค

    - CI/CD

    - DevOps

    "Spring Boot๋ฅผ ์ด์šฉํ•œ RESTful Web Services ๊ฐœ๋ฐœ"๊ณผ "Spring Cloud๋กœ ๊ฐœ๋ฐœํ•˜๋Š” ๋งˆ์ดํฌ๋กœ์„œ๋น„์Šค ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜" ๊ฐ•์˜๋ฅผ ์‹œ์ž‘ํ•˜์˜€๊ณ , ๊ฐ•์˜์—์„œ ๋ฏธ์ณ ๋‹ค๋ฃจ์ง€ ๋ชปํ•œ ๋‚ด์šฉ์ธ MSA Achitecture, Pattern, Service Mesh์™€ CI/CD๋Š” ํ›„์† ๊ฐ•์˜๋กœ ๊ณ„ํš ์ค‘์ž…๋‹ˆ๋‹ค. ๊ทธ๋ฆฌ๊ณ  "Spring Boot๋ฅผ ์ด์šฉํ•œ RESTful Web Services ๊ฐœ๋ฐœ" ๊ฐ•์˜๋Š” ์ƒˆ๋กœ ์—…๋ฐ์ดํŠธ ๋œ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋ฅผ ๋ฐ˜์˜ํ•˜์—ฌ ๋‹ค์‹œ ์—…๋ฐ์ดํŠธ ๊ณ„ํš ์ค‘์ž…๋‹ˆ๋‹ค. 

    ๋ง์”€ํ•˜์‹  ๋‚ด์šฉ์ฒ˜๋Ÿผ ํ›„์† ๊ฐ•์˜๋Š” ๋‹ค์Œ ์ˆœ์„œ๋กœ ์˜คํ”ˆ ํ•  ๊ณ„ํš์ž…๋‹ˆ๋‹ค. ๊ฐ•์˜ ์˜คํ”ˆ ์‹œ๊ธฐ๋Š” ๋‹ค๋ฅธ ์—…๋ฌด์™€ ๊ฒน์ณ ๊ณ„์† ๋ฏธ๋ค„์ง€๊ณ  ์žˆ์ง€๋งŒ, ์ตœ๋Œ€ํ•œ ์˜ฌํ•ด ์˜คํ”ˆํ•˜๋Š” ๊ฒŒ ๋ชฉํ‘œ์ž…๋‹ˆ๋‹ค. 

    1. CI/CD (8์›” ์ค‘)

    2. MSA Architecture + Pattern + Service Mesh (9์›”~10์›”)

    3. WebFlux (~12์›”) 

    ๋ฌด๋”์šด ๋”์œ„์™€ ์ฝ”๋กœ๋‚˜๋กœ ๊ณ ์ƒ์Šค๋Ÿฝ์ง€๋งŒ, ๋ชจ๋‘๋“ค ๊ฑด๊ฐ•ํ•˜์‹œ๊ณ , ํ•˜์‹œ๊ณ ์ž ํ•˜๋Š” ๋ฐ”๋ฅผ ์ด๋ฃจ์‹œ๊ธธ ๋ฐ”๋ž๋‹ˆ๋‹ค.

    ๊ฐ์‚ฌํ•ฉ๋‹ˆ๋‹ค. 

    10

์›” โ‚ฉ17,600

5๊ฐœ์›” ํ• ๋ถ€ ์‹œ

โ‚ฉ88,000