216.73.216.25 TODAY : 2,833
์ž๋ฃŒ์‹ค ์„œ๋ธŒ ํƒ€์ดํ‹€ ์•„์ด์ฝ˜

์˜จ๋ผ์ธ ๊ฐ•์˜

 > 

PHP - ์ตœ์ƒ๊ธ‰

๐Ÿ“š PHP ์ตœ์ƒ๊ธ‰ - 1์ฃผ์ฐจ: ๋งˆ์ดํฌ๋กœ์„œ๋น„์Šค ์•„ํ‚คํ…์ฒ˜ (MSA) ๊ฐœ์š” - 03 PHP์—์„œ MSA ๊ตฌํ˜„ ์ „๋žต

๐Ÿ“š PHP ์ตœ์ƒ๊ธ‰ - 1์ฃผ์ฐจ: ๋งˆ์ดํฌ๋กœ์„œ๋น„์Šค ์•„ํ‚คํ…์ฒ˜ (MSA) ๊ฐœ์š” - 03 PHP์—์„œ MSA ๊ตฌํ˜„ ์ „๋žต

์ฃผ์š” ํ”„๋กœ๊ทธ๋žจ ์ŠคํŽ™

  • ํ‰์ : 10.0
  • ๋ผ์ด์„ ์Šค: free
  • ์šด์˜์ฒด์ œ:
  • ํŒŒ์ผ ํฌ๊ธฐ: 0

ํ”ผ๋“œ๋ฐฑ ๋ฐ ๋‹ค์šด๋กœ๋“œ

  • ์‚ฌ์šฉ์ž ํ‰์ : 10.0
  • ๋‹ค์šด๋กœ๋“œ ์ˆ˜: 1
  • ์กฐํšŒ์ˆ˜: 40

์ œ์กฐ์‚ฌ ๋ฐ ๋“ฑ๋ก ์ •๋ณด

  • ์ œ์ž‘์‚ฌ: LUZENSOFT
  • ๋“ฑ๋ก์ผ: 2025-10-02 19:52:49
  •  

- ์„ค๋ช…

PHP, MSA์— ์ ํ•ฉํ•œ๊ฐ€?

uploadImage

#PHP ๋Š” ์ „ํ†ต์ ์œผ๋กœ #๋ชจ๋†€๋ฆฌ์‹_์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ์— ๊ฐ•์ ์„ ๋ณด์—ฌ์™”์Šต๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ PHP์˜ ๋น ๋ฅธ ๊ฐœ๋ฐœ ์†๋„, ๋‚ฎ์€ ํ•™์Šต ๊ณก์„ , ๊ทธ๋ฆฌ๊ณ  #Composer ์™€ #PSR ํ‘œ์ค€์„ ํ†ตํ•œ ํ˜„๋Œ€ํ™” ๋•๋ถ„์—, PHP๋Š” ์ด์ œ #๋งˆ์ดํฌ๋กœ์„œ๋น„์Šค_์•„ํ‚คํ…์ฒ˜(#MSA) ๋ฅผ ๊ตฌ์ถ•ํ•˜๋Š” ๋ฐ ๋งค์šฐ ์ ํ•ฉํ•œ ์–ธ์–ด ์ค‘ ํ•˜๋‚˜๊ฐ€ ๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ํŠนํžˆ ๋น„์ฆˆ๋‹ˆ์Šค ๋กœ์ง์ด ๋งŽ๊ณ  ๋น ๋ฅธ ๊ฐœ๋ฐœ์ด ์š”๊ตฌ๋˜๋Š” ์„œ๋น„์Šค ๋ ˆ์ด์–ด์— PHP๋ฅผ ํ™œ์šฉํ•˜๋Š” ์ „๋žต์ด ๋„๋ฆฌ ์“ฐ์ด๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. ๐Ÿ’ก



1. MSA ๊ตฌํ˜„์„ ์œ„ํ•œ PHP ํ”„๋ ˆ์ž„์›Œํฌ ์„ ํƒ

uploadImage

MSA ํ™˜๊ฒฝ์—์„œ PHP ์„œ๋น„์Šค๋Š” ์ž‘๊ณ  ๋น ๋ฅด๊ฒŒ ์š”์ฒญ์„ ์ฒ˜๋ฆฌํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.


1.1. ๊ฒฝ๋Ÿ‰ ํ”„๋ ˆ์ž„์›Œํฌ ํ™œ์šฉ (Swoole, Lumen, Slim)


์ „ํ†ต์ ์ธ ๋Œ€ํ˜• ํ”„๋ ˆ์ž„์›Œํฌ(Laravel, Symfony)๋Š” ๊ฐ•๋ ฅํ•˜์ง€๋งŒ, ๋ถ€ํŠธ์ŠคํŠธ๋žฉ(์ดˆ๊ธฐ ๊ตฌ๋™)์— ์‹œ๊ฐ„์ด ๊ฑธ๋ ค #๋งˆ์ดํฌ๋กœ์„œ๋น„์Šค ์˜ ๋ฏผ์ฒฉ์„ฑ์— ๋ถ€๋‹ด์ด ๋  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

  • #Swoole: PHP์˜ #๋น„๋™๊ธฐ ์ฒ˜๋ฆฌ ๊ธฐ๋Šฅ์„ ํ™œ์šฉํ•˜์—ฌ ์ƒ์ฃผํ•˜๋Š” ์„œ๋ฒ„ ํ”„๋กœ์„ธ์Šค๋ฅผ ๋งŒ๋“ค๊ณ , ์ผ๋ฐ˜์ ์ธ FPM ํ™˜๊ฒฝ๋ณด๋‹ค ํ›จ์”ฌ ๋น ๋ฅด๊ณ  ๋‚ฎ์€ ๋ ˆ์ดํ„ด์‹œ๋กœ ์„œ๋น„์Šค๋ฅผ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค. MSA์˜ ์„ฑ๋Šฅ ๋ณ‘๋ชฉ ํ˜„์ƒ์„ ํ•ด๊ฒฐํ•˜๋Š” ๋ฐ ํ•ต์‹ฌ์ ์ธ ๊ธฐ์ˆ ์ž…๋‹ˆ๋‹ค.

  • #Lumen (Laravel ๊ธฐ๋ฐ˜): Laravel์˜ ๊ฒฝ๋Ÿ‰ ๋ฒ„์ „์œผ๋กœ, API ๋ฐ ๋งˆ์ดํฌ๋กœ์„œ๋น„์Šค๋ฅผ ๋น ๋ฅด๊ฒŒ ๊ตฌ์ถ•ํ•˜๋Š” ๋ฐ ์ตœ์ ํ™”๋˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค.

  • #Slim / #Mezzio: ์ตœ์†Œํ•œ์˜ ๊ธฐ๋Šฅ๋งŒ์„ ์ œ๊ณตํ•˜๋Š” ๋งˆ์ดํฌ๋กœ ํ”„๋ ˆ์ž„์›Œํฌ๋กœ, ๊ฐ€๋ณ๊ณ  ๋น ๋ฅด๊ฒŒ API ์—”๋“œํฌ์ธํŠธ๋ฅผ ๊ตฌํ˜„ํ•˜๋Š” ๋ฐ ์ด์ƒ์ ์ž…๋‹ˆ๋‹ค.


1.2. ๊ธฐ์ˆ  ๋ถ„๋ฆฌ (Polyglot Persistence & Programming)


MSA์˜ ์žฅ์ ์„ ์‚ด๋ ค, ๊ฐ ์„œ๋น„์Šค์— ๊ฐ€์žฅ ์ ํ•ฉํ•œ ๊ธฐ์ˆ ์„ ์„ ํƒํ•ฉ๋‹ˆ๋‹ค.

  • API Gateway ๋˜๋Š” #์ธ์ฆ_์„œ๋น„์Šค ์™€ ๊ฐ™์ด I/O ๋ณ‘๋ชฉ์ด ์ค‘์š”ํ•œ ๋ถ€๋ถ„์€ Go๋‚˜ Node.js๋ฅผ ์‚ฌ์šฉํ•˜๊ณ , ๋น„์ฆˆ๋‹ˆ์Šค ๋กœ์ง์„ ๋น ๋ฅด๊ฒŒ ๊ตฌํ˜„ํ•ด์•ผ ํ•˜๋Š” ์ฃผ๋ฌธ/์‚ฌ์šฉ์ž ์„œ๋น„์Šค๋Š” PHP๋ฅผ ์‚ฌ์šฉํ•˜๋Š” #๋‹ค์ค‘_์–ธ์–ด_์ „๋žต (Polyglot Programming)์„ ์ทจํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.



2. ์„œ๋น„์Šค ๊ฐ„ ํ†ต์‹  ์ „๋žต

uploadImage

๋งˆ์ดํฌ๋กœ์„œ๋น„์Šค์˜ ํ•ต์‹ฌ์€ ์„œ๋น„์Šค ๊ฐ„์˜ ํ†ต์‹  ๋ฐฉ์‹์ž…๋‹ˆ๋‹ค. PHP ํ™˜๊ฒฝ์—์„œ ์ฃผ๋กœ ์‚ฌ์šฉ๋˜๋Š” ํ†ต์‹  ๋ฐฉ์‹์€ ๋‘ ๊ฐ€์ง€์ž…๋‹ˆ๋‹ค.


2.1. ๋™๊ธฐ ํ†ต์‹  (Synchronous Communication) - HTTP/REST


๊ฐ€์žฅ ์ผ๋ฐ˜์ ์ธ ๋ฐฉ์‹์œผ๋กœ, ์„œ๋น„์Šค A๊ฐ€ ์„œ๋น„์Šค B์˜ #API ์—”๋“œํฌ์ธํŠธ์— ์ง์ ‘ HTTP ์š”์ฒญ์„ ๋ณด๋‚ด๊ณ  ์‘๋‹ต์„ ๊ธฐ๋‹ค๋ฆฝ๋‹ˆ๋‹ค.

  • ์žฅ์ : ๊ตฌํ˜„์ด ๋‹จ์ˆœํ•˜๊ณ  ์ดํ•ดํ•˜๊ธฐ ์‰ฝ์Šต๋‹ˆ๋‹ค.

  • ๋‹จ์ : ์„œ๋น„์Šค ๊ฐ„ #๊ฒฐํ•ฉ๋„ ๊ฐ€ ๋†’์•„์ง€๊ณ , ์‘๋‹ต์„ ๊ธฐ๋‹ค๋ฆฌ๋Š” ๋™์•ˆ #๋„คํŠธ์›Œํฌ_์ง€์—ฐ ์ด ๋ฐœ์ƒํ•˜๋ฉฐ, ์„œ๋น„์Šค B์— ๋ฌธ์ œ๊ฐ€ ์ƒ๊ธฐ๋ฉด ์„œ๋น„์Šค A๊นŒ์ง€ ์˜ํ–ฅ์„ ๋ฏธ์นฉ๋‹ˆ๋‹ค (์žฅ์•  ์ „ํŒŒ).

  • PHP ๊ตฌํ˜„: Guzzle๊ณผ ๊ฐ™์€ HTTP ํด๋ผ์ด์–ธํŠธ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋ฅผ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค.


2.2. ๋น„๋™๊ธฐ ํ†ต์‹  (Asynchronous Communication) - ๋ฉ”์‹œ์ง• ํ


#๋ฉ”์‹œ์ง•_ํ (#RabbitMQ, #Kafka ๋“ฑ)๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ํ†ต์‹ ํ•ฉ๋‹ˆ๋‹ค. ์„œ๋น„์Šค A๋Š” ๋ฉ”์‹œ์ง€๋ฅผ ํ์— ๋ฐœํ–‰(Publish)ํ•˜๊ณ , ์„œ๋น„์Šค B๋Š” ํ์—์„œ ๋ฉ”์‹œ์ง€๋ฅผ ๊ตฌ๋…(Consume)ํ•˜์—ฌ ๋…๋ฆฝ์ ์œผ๋กœ ์ฒ˜๋ฆฌํ•ฉ๋‹ˆ๋‹ค.

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

  • ๋‹จ์ : ํ์™€ ์ปจ์Šˆ๋จธ(Consumer) ํ”„๋กœ์„ธ์Šค๋ฅผ ๋ณ„๋„๋กœ ๊ด€๋ฆฌํ•ด์•ผ ํ•˜๋ฏ€๋กœ ์šด์˜ ๋ณต์žก๋„๊ฐ€ ์ฆ๊ฐ€ํ•˜๊ณ , #๋ถ„์‚ฐ_ํŠธ๋žœ์žญ์…˜ ์ฒ˜๋ฆฌ๊ฐ€ ๋ณต์žกํ•ด์ง‘๋‹ˆ๋‹ค.

  • PHP ๊ตฌํ˜„: #Laravel_Queue ๋˜๋Š” AMQP ํ™•์žฅ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋ฅผ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค.



3. MSA ํ™˜๊ฒฝ์˜ ํ•„์ˆ˜ ๊ตฌ์„ฑ ์š”์†Œ

uploadImage

PHP ์„œ๋น„์Šค๋ฅผ MSA ํ™˜๊ฒฝ์—์„œ ์•ˆ์ •์ ์œผ๋กœ ์šด์˜ํ•˜๊ธฐ ์œ„ํ•ด ํ•„์š”ํ•œ ์ธํ”„๋ผ ์š”์†Œ๋“ค์ž…๋‹ˆ๋‹ค.


3.1. API ๊ฒŒ์ดํŠธ์›จ์ด (API Gateway)


๋ชจ๋“  ํด๋ผ์ด์–ธํŠธ์˜ ์š”์ฒญ์ด ๋“ค์–ด์˜ค๋Š” ๋‹จ์ผ ์ง„์ž…์  ์—ญํ• ์„ ํ•ฉ๋‹ˆ๋‹ค.

  • ๋ผ์šฐํŒ…, ๋ถ€ํ•˜ ๋ถ„์‚ฐ, ์ธ์ฆ ๋ฐ ๊ถŒํ•œ ํ™•์ธ ๋“ฑ์˜ ์ž‘์—…์„ ์ฒ˜๋ฆฌํ•˜์—ฌ ๊ฐœ๋ณ„ ์„œ๋น„์Šค๋Š” ๋น„์ฆˆ๋‹ˆ์Šค ๋กœ์ง์—๋งŒ ์ง‘์ค‘ํ•˜๊ฒŒ ํ•ฉ๋‹ˆ๋‹ค. (์˜ˆ: Kong, Ocelot)


3.2. ์„œ๋น„์Šค ๋””์Šค์ปค๋ฒ„๋ฆฌ (Service Discovery)


์„œ๋น„์Šค๊ฐ€ ๋™์ ์œผ๋กœ ์ƒ์„ฑ๋˜๊ฑฐ๋‚˜ ํŒŒ๊ดด๋  ๋•Œ, ํด๋ผ์ด์–ธํŠธ๊ฐ€ ํ•ด๋‹น ์„œ๋น„์Šค์˜ ๋„คํŠธ์›Œํฌ ์œ„์น˜๋ฅผ ์ฐพ์„ ์ˆ˜ ์žˆ๋„๋ก ๋•์Šต๋‹ˆ๋‹ค.

  • PHP ์„œ๋น„์Šค๋Š” ์‹œ์ž‘ ์‹œ ์ž์‹ ์˜ ์œ„์น˜๋ฅผ #๋ ˆ์ง€์ŠคํŠธ๋ฆฌ ์— ๋“ฑ๋กํ•˜๊ณ , ํด๋ผ์ด์–ธํŠธ๋‚˜ ๊ฒŒ์ดํŠธ์›จ์ด๋Š” ๋ ˆ์ง€์ŠคํŠธ๋ฆฌ๋ฅผ ํ†ตํ•ด ์„œ๋น„์Šค ์œ„์น˜๋ฅผ ์กฐํšŒํ•ฉ๋‹ˆ๋‹ค. (์˜ˆ: Consul, Eureka)


3.3. ๋ถ„์‚ฐ ์ถ”์  ๋ฐ ๋กœ๊น… (Distributed Tracing & Logging)


์ˆ˜๋งŽ์€ ์„œ๋น„์Šค์—์„œ ๋ฐœ์ƒํ•˜๋Š” #๋กœ๊ทธ ๋ฅผ ํ†ตํ•ฉํ•˜๊ณ , ํ•˜๋‚˜์˜ ์š”์ฒญ์ด ์—ฌ๋Ÿฌ ์„œ๋น„์Šค๋ฅผ ๊ฑฐ์ณ๊ฐ€๋Š” ๊ณผ์ •์„ ์ถ”์ ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

  • ๋กœ๊น…: #ELK_Stack (Elasticsearch, Logstash, Kibana)์„ ์‚ฌ์šฉํ•˜์—ฌ ๋กœ๊ทธ๋ฅผ ์ค‘์•™ ์ง‘์ค‘ํ™”ํ•ฉ๋‹ˆ๋‹ค.

  • ์ถ”์ : #Zipkin ์ด๋‚˜ #Jaeger ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์š”์ฒญ์˜ ์‹œ์ž‘๋ถ€ํ„ฐ ๋๊นŒ์ง€์˜ ๋ชจ๋“  ํ˜ธ์ถœ ํ๋ฆ„๊ณผ ์ง€์—ฐ ์‹œ๊ฐ„(Latency)์„ ๊ธฐ๋กํ•ฉ๋‹ˆ๋‹ค.



๋งˆ์น˜๋ฉฐ


PHP๋Š” MSA์˜ ํ•ต์‹ฌ ์š”๊ตฌ ์‚ฌํ•ญ์ธ ๋น ๋ฅธ ๊ฐœ๋ฐœ ๋ฏผ์ฒฉ์„ฑ์„ ์ œ๊ณตํ•˜๋ฉฐ, Swoole๊ณผ ๊ฐ™์€ ๊ธฐ์ˆ ์€ ์„ฑ๋Šฅ ๋ฌธ์ œ๊นŒ์ง€ ํ•ด๊ฒฐํ•ด ์ค๋‹ˆ๋‹ค. ์„ฑ๊ณต์ ์ธ MSA ๊ตฌํ˜„์€ ๋‹จ์ˆœํžˆ ์„œ๋น„์Šค๋ฅผ ๋ถ„๋ฆฌํ•˜๋Š” ๊ฒƒ์„ ๋„˜์–ด, ๋น„๋™๊ธฐ ํ†ต์‹  ์ „๋žต์„ ์ฑ„ํƒํ•˜๊ณ , API ๊ฒŒ์ดํŠธ์›จ์ด, ์„œ๋น„์Šค ๋””์Šค์ปค๋ฒ„๋ฆฌ ๊ฐ™์€ #์šด์˜_์ธํ”„๋ผ ๋ฅผ ๊ฒฌ๊ณ ํ•˜๊ฒŒ ๊ตฌ์ถ•ํ•˜๋Š” ๋ฐ ๋‹ฌ๋ ค ์žˆ์Šต๋‹ˆ๋‹ค. ๋‹ค์Œ ์ฃผ์ฐจ๋ถ€ํ„ฐ๋Š” ์ด ๊ตฌ์„ฑ ์š”์†Œ๋“ค์„ PHP๋กœ ๊ตฌํ˜„ํ•˜๋Š” ์‹ค์Šต ์œ„์ฃผ์˜ ๋‚ด์šฉ์„ ๋‹ค๋ฃจ๊ฒ ์Šต๋‹ˆ๋‹ค. ๐Ÿ› ๏ธ



์ผ๋ฐ˜์‚ฌ๋ฌด/๊ฒŒ์ž„/๋งˆ์ผ€ํŒ… ์šฉ๋„๋ณ„ ๊ณ ์ •IP ์ œ๊ณต, ๋งˆ์ผ€ํŒ…,๊ฒŒ์ž„ ์ ์šฉ ๊ฐ€๋Šฅ

https://xn--299ao67b9qbmsf04c.net/