728x90
๋ฐ˜์‘ํ˜•

Project 16

[MSA ๊ตฌ์ถ•ํ•˜๊ธฐ] 2. Eureka ์„œ๋ฒ„ ๊ตฌ์ถ• (Service Discovery)

๐Ÿ”Š ์šฐ๋ฆฌ๋Š” Spring Cloud๋ฅผ ํ™œ์šฉํ•˜์—ฌ MSA๋ฅผ ๊ตฌ์ถ•ํ•œ๋‹ค. ๐Ÿ”Š ์ด๋ฒˆ์—๋Š”, Service Discovery๋ฅผ ๊ตฌ์ถ•ํ•  ๊ฒƒ์ด๋‹ค. Service Discovery ํŒŒํŠธ 1 Service Discovery์˜ ์—ญํ• ์„ ๊ฐ„๋žตํ•˜๊ฒŒ ์ •๋ฆฌํ•˜์ž๋ฉด, Service Discovery๋ž€? ๋งˆ์ดํฌ๋กœ์„œ๋น„์Šค์˜ ์ •๋ณด(์œ„์น˜ ๋“ฑ)๋ฅผ ๋“ฑ๋กํ•  ์ˆ˜ ์žˆ๋‹ค. ์™ธ๋ถ€์˜ ์š”์ฒญ์ด๋‚˜ ์„œ๋น„์Šค๊ฐ€ ๋งˆ์ดํฌ๋กœ์„œ๋น„์Šค์˜ ์ •๋ณด๋ฅผ ๊ฒ€์ƒ‰ํ•˜๊ธฐ ์œ„ํ•ด ์‚ฌ์šฉ๋œ๋‹ค. Spring Cloud์—์„œ๋Š” Spring Cloud Netflix Eureka๊ฐ€ Service Discovery์˜ ์—ญํ• ์„ ์ˆ˜ํ–‰ํ•œ๋‹ค. Eureka๋Š” Eureka Server์™€ Eureka Client๋กœ ๊ตฌ์„ฑ๋œ๋‹ค. Eureka ์„œ๋ฒ„๋ž€? Eureka ์„œ๋ฒ„๋Š” ๋‹จ์ˆœํ•˜๊ฒŒ MSA๋ฅผ ๊ตฌ์„ฑํ•˜๋Š” ๋งˆ์ดํฌ๋กœ ์„œ๋น„์Šค๋“ค์„ ๋ชจ๋‹ˆํ„ฐ๋งํ•˜๋Š” ๊ฐ์‹œ์ž ..

[MSA] Service Discovery

Service Discovery ๋งˆ์ดํฌ๋กœ์„œ๋น„์Šค ์•„ํ‚คํ…์ฒ˜(MSA)๋กœ ๊ตฌ์„ฑ๋˜์–ด ์žˆ๋Š” ์„œ๋น„์Šค๋“ค์€ ๊ฐ์ž ๋‹ค๋ฅธ IP์™€ Port๋ฅผ ๊ฐ€์ง€๊ณ  ์žˆ๋‹ค. ์ด๋Ÿฌํ•œ ์„œ๋กœ ๋‹ค๋ฅธ ์„œ๋น„์Šค๋“ค์˜ IP์™€ Port ์ •๋ณด์— ๋Œ€ํ•ด์„œ ์ €์žฅํ•˜๊ณ  ๊ด€๋ฆฌํ•  ํ•„์š”๊ฐ€ ์žˆ๋Š”๋ฐ Service Discovery๋ผ๊ณ  ํ•œ๋‹ค. ์ฆ‰, MSA์—์„œ๋Š” Service์˜ IP์™€ Port๊ฐ€ ์ผ์ •ํ•˜์ง€ ์•Š๊ณ  ์ง€์†์ ์„ ๋ณ€ํ™”ํ•œ๋‹ค. ๊ทธ๋ ‡๊ธฐ ๋•Œ๋ฌธ์— Client์— Service์˜ ์ •๋ณด๋ฅผ ์ˆ˜๋™์œผ๋กœ ์ž…๋ ฅํ•˜๋Š” ๊ฒƒ์€ ํ•œ๊ณ„๊ฐ€ ๋ถ„๋ช…ํ•˜๋‹ค. Service Discovery๋ž€ ์ด๋Ÿฐ MSA์˜ ์ƒํ™ฉ์— ์ ํ•ฉํ•˜๋‹ค. ์„œ๋น„์Šค์˜ ์ธ์Šคํ„ด์Šค๊ฐ€ ์ƒ์„ฑ ํ˜น์€ ์†Œ๋ฉธ๋˜๊ฑฐ๋‚˜ ์‹ ๊ทœ ์„œ๋น„์Šค๋“ค์ด ์ง€์†์ ์œผ๋กœ ์ฆ๊ฐ€ํ•˜๋Š” ๋“ฑ ์„œ๋น„์Šค์˜ ์ •๋ณด๊ฐ€ ์ง€์†์ ์œผ๋กœ ๋ฐ”๋€” ์ˆ˜ ์žˆ๋‹ค. ๋””์Šค์ปค๋ฒ„๋ฆฌ ์„œ๋ฒ„๋Š” ์ด๋Ÿฌํ•œ ๊ฐ€๋ณ€์ ์ธ ๋ชจ๋“  ์„œ๋น„์Šค์˜ ์ •๋ณด๋“ค์€ ๊ฐ ์„œ๋น„์Šค์˜ ๊ณ ์œ  I..

[MSA] ๋งˆ์ดํฌ๋กœ์„œ๋น„์Šค ์•„ํ‚คํ…์ฒ˜๋ž€?

๋งˆ์ดํฌ๋กœ์„œ๋น„์Šค ์•„ํ‚คํ…์ฒ˜(MSA)์— ๋Œ€ํ•ด ์•Œ์•„๋ณด์ž. NAVER Cloud Platform : ๋„ค์ด๋ฒ„ ํด๋ผ์šฐ๋“œ ํ”Œ๋žซํผ์˜ [Talk&Talk] ๋ˆ„๊ตฌ๋‚˜ ์‰ฝ๊ฒŒ ์ดํ•ดํ•  ์ˆ˜ ์žˆ๋Š” ๋งˆ์ดํฌ๋กœ์„œ๋น„์Šค ์•„ํ‚คํ…์ฒ˜(MSA)๋ฅผ ํ•œ๋ฒˆ ๋ณด๊ณ  ์˜ค๋ฉด ์ดํ•ด๊ฐ€ ์‰ฝ๋‹ค. ๋” ์ž์„ธํžˆ ์•Œ๊ณ  ์‹ถ๋‹ค๋ฉด, SK ํ”Œ๋ž˜๋‹›์˜ 11๋ฒˆ๊ฐ€ Spring Cloud ๊ธฐ๋ฐ˜ MSA๋กœ์˜ ์ „ํ™˜ - ์ง€๋‚œ 1๋…„๊ฐ„์˜ ์ด์•ผ๊ธฐ๋ฅผ ์ถ”์ฒœํ•œ๋‹ค. ๋งˆ์ดํฌ๋กœ์„œ๋น„์Šค ์•„ํ‚คํ…์ฒ˜ (MSA, MircroService Architecture) ๋งˆ์ดํฌ๋กœ์„œ๋น„์Šค ์•„ํ‚คํ…์ฒ˜(MSA)๋Š” ์†Œํ”„ํŠธ์›จ์–ด ์‹œ์Šคํ…œ์„ ์ž‘๊ณ  ๋…๋ฆฝ์ ์ธ ์„œ๋น„์Šค๋กœ ๋‚˜๋ˆ„์–ด ๊ตฌ์„ฑํ•˜๋Š” ๋””์ž์ธ ํŒจํ„ด์œผ๋กœ, ๊ฐ ์„œ๋น„์Šค๋Š” ํŠน์ • ๊ธฐ๋Šฅ์„ ๋‹ด๋‹นํ•˜๋ฉฐ ์„œ๋กœ ๋…๋ฆฝ์ ์œผ๋กœ ๊ฐœ๋ฐœ, ๋ฐฐํฌ, ํ™•์žฅ๋  ์ˆ˜ ์žˆ๋‹ค. ์ด๋Ÿฌํ•œ ์ž‘์€ ์„œ๋น„์Šค๋“ค์ด ๋ชจ์—ฌ ํ•˜๋‚˜์˜ ์ปค๋‹ค๋ž€ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ๊ตฌ์„ฑํ•œ๋‹ค. MSA..

[MSA ๊ตฌ์ถ•ํ•˜๊ธฐ] 1. ๋งˆ์ดํฌ๋กœ์„œ๋น„์Šค ์ƒ์„ฑํ•˜๊ธฐ

๐Ÿ”Š ์šฐ๋ฆฌ๋Š” Spring Cloud๋ฅผ ํ™œ์šฉํ•˜์—ฌ MSA๋ฅผ ๊ตฌ์ถ•ํ•œ๋‹ค. ๐Ÿ”Š ์ด๋ฒˆ์—๋Š”, ๋งˆ์ดํฌ๋กœ์„œ๋น„์Šค๋ฅผ ์ƒ์„ฑํ•  ๊ฒƒ์ด๋‹ค. ๋งˆ์ดํฌ๋กœ์„œ๋น„์Šค๋Š” user, beverage, community 3๊ฐœ์˜ ์„œ๋น„์Šค๋กœ ๊ตฌ์„ฑํ•œ๋‹ค. user-service beverage-service community-service โญ ์›น ํ”„๋กœ์ ํŠธ๋ฅผ ์ƒ์„ฑํ•  ๋•Œ ํ•„์š”ํ•œ ์˜์กด์„ฑ์— ๋Œ€ํ•ด ์•Œ์•„๋ณด์ž. 1. Lombok lombok ์€ Java ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ ์ค‘ ํ•˜๋‚˜๋กœ Java ๊ฐœ๋ฐœ ์‹œ์— ๋ฐ˜๋ณต์ ์œผ๋กœ ๊ตฌํ˜„๋˜๋Š” getter, setter, toString ๋“ฑ์„ ์ž๋™์œผ๋กœ ์ƒ์„ฑํ•ด ์ฃผ์–ด ์ฝ”๋“œ๋ฅผ ๊ฐ„๊ฒฐํ•˜๊ฒŒ ์œ ์ง€ํ•˜๊ณ  ์ƒ์‚ฐ์„ฑ์„ ๋†’์—ฌ์ฃผ๋Š” ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ์ด๋‹ค. ์–ด๋…ธํ…Œ์ด์…˜์„ ๊ธฐ๋ฐ˜์œผ๋กœ ๋™์ž‘ํ•˜๋ฉฐ, ํด๋ž˜์Šค์— ์–ด๋…ธํ…Œ์ด์…˜์„ ์ถ”๊ฐ€ํ•˜์—ฌ ์ปดํŒŒ์ผ ๊ณผ์ •์—์„œ ์‹ค์ œ ๊ธฐ๋Šฅ์ด ์ƒ์„ฑ๋˜๋Š” ๋ฐฉ์‹์œผ๋กœ ๋™์ž‘ํ•œ๋‹ค. ์ฆ‰, ์†Œ์Šค์ฝ”..

[Spring] Spring Initializr๋กœ ํ”„๋กœ์ ํŠธ ์ƒ์„ฑํ•˜๊ธฐ

Spring Initializr Spring Initializr ๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด SpringBoot ๊ธฐ๋ฐ˜์˜ ํ”„๋กœ์ ํŠธ๋ฅผ ์‰ฝ๊ฒŒ ๋งŒ๋“ค ์ˆ˜ ์žˆ๋‹ค. https://start.spring.io/ ์˜ ์ฃผ์†Œ๋กœ ์ ‘๊ทผํ•˜๋ฉด ์•„๋ž˜์™€ ๊ฐ™์€ ์ฐฝ์ด ๋œฌ๋‹ค. Project SpringBoot๋ฅผ ๋นŒ๋“œํ•˜๊ณ  ๋ฐฐํฌํ•˜๋Š” ๋ฐฉ์‹์„ ์„ ํƒํ•œ๋‹ค. ๊ณผ๊ฑฐ์—๋Š” Maven์„ ๋งŽ์ด ์‚ฌ์šฉํ–ˆ์ง€๋งŒ ์ตœ๊ทผ์—๋Š” Gradle์„ ์‚ฌ์šฉํ•˜๋Š” ์ถ”์„ธ์ด๋‹ค. Language ํ”„๋กœ์ ํŠธ์— ์‚ฌ์šฉํ•  ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์–ธ์–ด๋ฅผ ์„ ํƒํ•œ๋‹ค. SpringBoot SpringBoot ๋ฒ„์ „์„ ์„ ํƒํ•œ๋‹ค. SNAPSHOT์€ ์•„์ง ๊ฐœ๋ฐœ ์ค‘์ธ ๋ฐ๋ชจ๋ฒ„์ „์ด๋‹ค. M1์ด๋‚˜ M2 ๋“ฑ์€ ์ •์‹ ๋ฆด๋ฆฌ์ฆˆ๋˜์ง€ ์•Š์€ ๋ฒ„์ „์ด๋‹ค. ๋‹ค๋ฅธ ๊ฒƒ ์—†์ด ๋ฒ„์ „๋งŒ ๋ช…์‹œ๋˜์–ด ์žˆ๋Š” ๊ฒƒ์ด ์ •์‹ ๋ฆด๋ฆฌ์ฆˆ ๋œ ๋ฒ„์ „์ž„์œผ๋กœ ์ด๋“ค ์ค‘์—์„œ ์„ ํƒํ•˜๋ฉด ๋œ๋‹ค. ๋†’์€ ๋ฒ„์ „์€ ๋†’์€ ..

Programming/Spring 2024.03.05

[Architecture] ๋ชจ๋†€๋ฆฌ์‹ vs ๋งˆ์ดํฌ๋กœ์„œ๋น„์Šค ์•„ํ‚คํ…์ฒ˜

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

728x90
๋ฐ˜์‘ํ˜•