[ํ’€์Šคํƒ] HTTP's streaming / Curl / SOA / Microservice

2023. 4. 19. 00:18ใ†ComputerScience/FullStackProgramming

 

 

 

HTTP Client Modules in Python

  • Standard Libraries
    • urllib : URL handling module
      URL์„ ์ „๋ฌธ์ ์œผ๋กœ ์ฒ˜๋ฆฌํ•˜๋Š” python ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ 
    • http.client : HTTP protocol client module
  • Non-Standard Library (recommended)
    • 3rd - party
    • Requests: HTTP for Humans”
    • Installation required ( pip install requests Elegant and simple HTTP library for Python
    • import requests required
    • ํด๋ผ์ด์–ธํŠธ ์ธก์—์„œ ์‚ฌ์šฉํ•œ๋‹ค๋ฉด, request๋ฅผ ์“ฐ์„ธ์š”
    • ํ•œ ์ค„์ด๋ฉด ๋ - ์ •๋ง ์‰ฝ๋‹ค

 

 

 

 

HTTP Server Modules in Python

  • http.server - HTTP servers (standard library)
    • http.server.HTTPServer ํด๋ž˜์Šค
      TCP/IP ์„œ๋ฒ„ ๊ฐœ๋ฐœ๊ณผ ์œ ์‚ฌ
    • http.server.ThreadingHTTPServer ํด๋ž˜์Šค
    • http.server.BaseHTTPRequestHandler ํด๋ž˜์Šค
    • Client ๋””๋ฒ„๊ทธ๋ฅผ ์œ„ํ•œ ๊ฐ„๋‹จํ•œ ์„œ๋ฒ„ ๊ตฌ๋™ ๋ฐฉ๋ฒ•
      • ์ถ”๊ฐ€์  ๊ฐœ๋ฐœ์„ ์•ˆ ํ•˜๋”๋ผ๋„ ์„œ๋ฒ„๊ฐ€ ๋œฌ๋‹ค!
      • python -m http.server
      • python -m http.server 8000
      • python -m http.server 8000 --bind 127.0.0.1
      • python -m http.server --directory /tmp/
      • parameter์„ ์ฃผ๊ฑฐ๋‚˜, directory ์ง€์ •๋„ ๊ฐ€๋Šฅ 

 

 

 

HTTP์˜ ๋ชฉ์ 

  • “๋ฉ€ํ‹ฐ๋ฏธ๋””์–ด ์›น ์ฝ˜ํ…์ธ  ์ „์†ก”์ด ์•„๋‹Œ “์ •๋ณด ๊ตํ™˜” ์ž„
  • ์›น ์ฝ˜ํ…์ธ  ์„œ๋ฒ„๋Š” django (์žฅ๊ณ ) ์›น ํ”„๋ ˆ์ž„์›Œํฌ ๋“ฑ์„ ๊ถŒ์žฅ

 

  • HTTP1.1์˜ ๋ฌธ๋ฒ•์„ ์ดํ•ดํ•˜๋Š” ์ผ 
  • ์ปจํ…์ธ ๋ฅผ ์ฃผ๊ณ  ๋ฐ›๋Š”๋‹ค? ํ•ด์•ผํ•  ์ผ์ด ํ›จ์”ฌ ๋งŽ์€ ๊ฒƒ 
  • ์›น ์„œ๋ฒ„ X, HTTP ์„œ๋ฒ„ -> ๋ฆฌํ€˜์ŠคํŠธ์— ์‘๋‹ตํ•˜๋Š” ์• 
  • ์›น ์„œ๋ฒ„ - HTTP๋ฅผ ์“ฐ์ง€๋งŒ, ๋ฉ€ํ‹ฐ๋ฏธ๋””์–ด ์ปจํ…์ธ ๋ฅผ ์‹ค์–ด๋‚˜๋ฅธ๋‹ค -> ์žฅ๊ณ ๋ฅผ ์“ฐ๋Š” ๊ฒƒ 
  • ์›น base์˜ ์„œ๋ฒ„ application
  • http ๊ธฐ๋ฐ˜์˜ ์„œ๋ฒ„ ์–ดํ”Œ๋ฆฌ์ผ€์ด์…˜์€ ๋งค์šฐ ๋งŽ๋‹ค. 
  • ๊ณตํ†ต์  - http๋ฅผ ๊น”๊ณ  ์žˆ๋‹ค -> ๊ทธ ์œ„์— ๋” ์˜ฌ๋ผ๊ฐ

 

 

 

HTTP GET & POST server example

1. ๊ฐ„๋‹จํ•˜๊ฒŒ ์›น ๋ธŒ๋ผ์šฐ์ €๋กœ ํ•  ์ˆ˜ ์žˆ๋‹ค. ๊ฐ„๋‹จํžˆ get ์จ๋ณด๊ธฐ ๊ฐ€๋Šฅ
2. ํŒŒ์ด์ฌ์œผ๋กœ import request๋กœ ์ ‘์† ๊ฐ€๋Šฅ
3. ํ”„๋กœ๊ทธ๋ž˜๋ฐ๊นŒ์ง€ ๊ฐ€๋Šฅ   

 

 

 

์œ ์šฉํ•œ ๊ฐœ๋ฐœ ๋„๊ตฌ๋“ค 

  • ๊ฐœ๋ฐœ์ž ๋ชจ๋“œ ๋„คํŠธ์›Œํฌ 
    • ๋ฐ›๊ณ  ์žˆ๋Š” element์™€ ์ฒ˜๋ฆฌ ์‹œ๊ฐ„๋„ ๋ชจ๋‘ ๋ณด์—ฌ์คŒ
  • http ์„œ๋ฒ„๋ฅผ ์‹คํ–‰์‹œํ‚ค๋ฉด ๋ฌด์—‡์„ ํ• ๊นŒ? 
    • ํŒŒ์ผ์ด ๊ทธ๋Œ€๋กœ ๋ณด์ธ๋‹ค!
    • ํ˜„์žฌ ๋””๋ ‰ํ† ๋ฆฌ์˜ ํŒŒ์ผ๋“ค์„ ๋ชจ๋‘ ๋ณด์—ฌ์คŒ
    • ํŒŒ์ผ ํƒ์ƒ‰๊ธฐ ๊ธฐ๋Šฅ
    • ๋‹ค์šด๋กœ๋“œ๋„ ๊ฐ€๋Šฅ wow
  • ์ปฌ (Curl) 
    • ํด๋ผ์ด์–ธํŠธ๋Š” ๋‹ค์–‘ํ•œ ๋ฐฉ๋ฒ•์œผ๋กœ ์ ‘์† ๊ฐ€๋Šฅ 
      ๋ฆฌํ€˜์ŠคํŠธ ์‚ฌ์šฉ, ๊ทธ๋ƒฅ ์›น ์ฃผ์†Œ๋กœ๋„ ๊ฐ€๋Šฅ
      ์—ฌ๋Ÿฌ ํ†ต์‹  ํ”„๋กœํ† ์ฝœ์˜ ํด๋ผ์ด์–ธํŠธ ๋ฒ„์ „์„ ๋ชจ๋‘ ์ง€์› 
    • ํด๋ผ์ด์–ธํŠธ ์ชฝ์„ ํ•˜๋‚˜์˜ application์œผ๋กœ ๊ตฌํ˜„ํ•œ ๊ฒƒ 
    • curl + URL 
      ํ†ต์ฑ„๋กœ ๊ฐ€์ ธ์˜จ ๊ฒƒ์„ ๋ณผ ์ˆ˜ ์žˆ๋‹ค. 
    • ๋ฆฌ๋ˆ…์Šค์— ์žˆ๋Š” ๋ช…๋ น 
      • ๋ณดํ†ต ํŒŒ์ผ๋กœ ์ €์žฅ or ๋‹ค๋ฅธ ํ”„๋กœ๊ทธ๋žจ์—๊ฒŒ ์ „๋‹ฌ
      • ์ŠคํŠธ๋ฆผ ํ˜•ํƒœ๋กœ ๋‚ด๋ณด๋‚ด๋„๋ก  
      • ๋ฐ”์ดํŠธ ๋ฉ์–ด๋ฆฌ๋ฅผ ์ž…๋ ฅ์œผ๋กœ ๋ฐ›๋„๋ก
      • ํ™”๋ฉด์œผ๋กœ ๋ณด๋‚ด์ฃผ๊ธฐ ๋ณด๋‹ค๋Š” (not GUI)
      • ๊ฒฐ๊ณผ๋ฅผ ๋ฐ›์•„, ๋‹ค๋ฅธ ๊ณณ์œผ๋กœ ์ž…๋ ฅ์„ ํ•˜๋„๋ก
        -> batch file 

 

 

 

HTTP์˜ ์˜์ƒ streaming

  • ์œ ํŠœ๋ธŒ์— ์˜์ƒ ์—…๋กœ๋“œ - ๊ฐ€๊ณต์ค‘์ž…๋‹ˆ๋‹ค ๋ฌธ๊ตฌ
  • ๋‚ด๊ฐ€ ์—…๋กœ๋“œ ํ•œ ํฌ๋งท๊ณผ ํ•ด์ƒ๋„
  • ์˜์ƒ์„ ์„œ๋กœ ๋‹ค๋ฅธ ํ‘œ์ค€ ํ•ด์ƒ๋„๋กœ ์ „๋ถ€ ๋‹ค ๋ฐ”๊ฟˆ
    ์ €์‚ฌ์–‘ ๋‹จ๋ง๊ธฐ์—์„œ๋„ ๋ณผ ์ˆ˜ ์žˆ๋„๋ก 

 

  • 4K๋ผ๋ฉด, ํŒŒ์ผ์„ ์ž‘์€ ๋‹จ์œ„๋กœ ์ชผ๊ฐฌ 
    4K -> ์ž‘์€ ํŒŒ์ผ๋“ค์˜ ๋ชจ์Œ 

 

  • ์ฒซ๋ฒˆ์งธ ํŒŒ์ผ์„ HTTP GET request 
    ๊ณ„์†๊ณ„์† GET์„ ํ•˜๋Š” ๊ฒƒ 
  • ์˜ค๋Š” ์†๋„๋ฅผ ์ฒดํฌ
    -> ๋Š๋ ค์ง€๋„ค? -> HD์˜ 3๋ฒˆ์งธ ๊ฑฐ ๊ฐ€์ ธ์™€ 
    ํ•ด์ƒ๋„ ๋ณ€ํ™”์˜ ์›๋ฆฌ (์ด์œ )
  • ๋Š์ž„์—†์ด http request 

 

  • ๋ฉ”์„ธ์ง€์˜ ๊ฐ„๊ฒฉ์ด ๊ท ๋“ฑํ•˜๊ฒŒ ์˜จ๋‹ค๋ฉด 
  • -> ์†๋„(ํ•ด์ƒ๋„) ์ข€ ์˜ฌ๋ ค๋ณผ๊นŒ? 
  • ๋‹ค์Œ ์กฐ๊ฐ์€ 1080์œผ๋กœ ์ค˜

 

  • ๋™์˜์ƒ ์—…์ฒด๊ฐ€ http ์“ด๋‹ค๋ฉด? -> ํ”„๋กœํ† ์ฝœ TCP 
  • ์••์ถ•๋œ ๊ฒƒ ํ’€๊ธฐ + ๋ฒ„ํผ๋ง ์‹œ๊ฐ„ (์‹ค์‹œ๊ฐ„ dynamic ์•„๋‹˜!)
  • ์ฒœ์ฒœํžˆ ๋ฐ›์œผ๋ฉด์„œ, ์—๋Ÿฌ ๋ณต๊ตฌํ•˜๋ฉด์„œ ์Œ“์•„ ๋†“๊ณ ,  ์ œ ์‹œ๊ฐ„ ๋˜๋ฉด ํ”Œ๋ ˆ์ด
  • ์—๋Ÿฌ ๊ฒ€์ถœ ๋ฐ ๋ณต๊ตฌ๋ฅผ ํ•˜๋Š” ๊ฒƒ (๊ด‘๊ณ )
  • ๊ทธ ์‹œ๊ฐ„์— ๋ฒ„ํผ๋ง ์‹œ๊ฐ„์„ ๋ฒ„๋Š” ๊ฒƒ 

 

  • HTTP -> TCP ๊ธฐ๋ฐ˜
    TCP์˜ ๋ฌธ์ œ๋ฅผ ๊ณ ์Šค๋ž€ํžˆ ๊ฐ€์ ธ ๊ฐ 
    ์—ฐ๊ฒฐ ์„ค์ • ์‹œ๊ฐ„ + slow start
  • ์œ ํŠœ๋ธŒ, ๋„ทํ”Œ๋ฆญ์Šค ๋งˆ์ €๋„ ํ•ด๋‹น ๋ฌธ์ œ๋ฅผ ๊ฒช์—ˆ๋‹ค

 

  • ex) ๋ช…๋™ ์‹ค์‹œ๊ฐ„ ๋ผ์ด๋ธŒ
    ์„œ๋ฒ„์—์„œ๋Š” ์••์ถ•ํ•ด์„œ ์ธ์ฝ”๋”ฉ
    http ๋ผ์ด๋ธŒ ์ŠคํŠธ๋ฆฌ๋ฐ ์„œ๋ฒ„ -> ํด๋ผ์ด์–ธํŠธ
    ์ด๋ฏธ ์ธ์ฝ”๋”ฉ ๋œ, ์ชผ๊ฐœ์ง„ ์˜์ƒ์„ ๋ณด๋‚ด๋Š” ๊ฒƒ ๋ฟ
    -> static resource
  • ์„œ๋ฒ„์—์„œ ํด๋ผ์ด์–ธํŠธ๊นŒ์ง€ ๋Šฆ๊ฒŒ ๋„์ฐฉํ•œ ๊ฒฝ์šฐ 
    ์œ„์„ฑ ํ†ต์‹  sky life (์œ„์„ฑ์—์„œ ์˜ค๋Š” ์†๋„๊ฐ€ ๋Š๋ ค์„œ)
  • ํ€„๋ฆฌํ‹ฐ๊ฐ€ reasonableํ•œ ์ˆ˜์ค€ (์‹ค์‹œ๊ฐ„ ๋ฐฉ์†ก)
    ํ™”์งˆ์ด ๊ทธ๋ฆฌ ์ข‹์ง€ ์•Š๋”๋ผ๋„, ํ‘œ์ค€ ์ฝ”๋ฑ์„ ํ•˜๋‚˜๋งŒ ์ฐ์–ด์„œ ๋ผ์ด๋ธŒ ์†ก์ถœ
    ์••์ถ•์„ ํ•˜๋Š” ๊ฒƒ์—๋Š” ์‹œ๊ฐ„์ด ๋งŽ์ด ๊ฑธ๋ฆฌ๊ณ , 
    ์••์ถ•์„ ํ‘ธ๋Š” ๋ฐ์—๋Š” ๋น ๋ฆ„

 

 

 

 

< ์ถ”๊ฐ€ ์„ค๋ช… >

  • SOA (Service Oriented Architecture)
  • Microservice / Serverless / Cloud Native
    • OpenStack
    • Docker / Kubernetes
  • SOAP (Simple Object Access Protocol)
  • REST (Representational State Transfer) & RESTful
  • JSON (JavaScript Object Notation)

 

 

 

https://azderica.github.io/01-architecture-soa/

 

 

 

Monolithic vs SOA vs Microservice

1. monolithic

  • ์„œ๋ฒ„ -> ๊ฑฐ๋Œ€ํ•œ ์•„ํ‚คํ…์ฒ˜ ํ•˜๋‚˜
  • ๋ฉ”์ธ ํ”„๋ ˆ์ž„ ๊ธ‰ ๊ต‰์žฅํžˆ ๋ง‰๊ฐ•ํ•œ ์ปดํ“จํ„ฐ (์œ ๋‹‰์Šค ๊ณ„์—ด)
  • ๊ต‰์žฅํžˆ ์ข‹์€ ํ”„๋กœ์„ธ์„œ ์‚ฌ์šฉ
  • tmi) ์šด์˜์ฒด์ œ ์ž…์žฅ์—์„œ, ๋ฆฌ๋ˆ…์Šค๋„ monolithic ๋‹จ์–ด ์”€ 

 

2. SOA - Service Oriented Architecture

  • ํ•˜๋‚˜์˜ ์ปดํ“จํ„ฐ๊ฐ€ ๋‹ค๋ฃฐ ์ˆ˜ ์—†๋Š” ๋ณต์žกํ•œ ๋ฌธ์ œ
  • ์ธํ…”CPU ๋ฆฌ๋ˆ…์Šค + ๋ฌถ์—ˆ๋”๋‹ˆ
    ๋ฉ”์ธํ”„๋ ˆ์ž„์— ๋„์ „ํ•  ์„ฑ๋Šฅ์ด ๋‚˜์˜ค๊ธฐ ์‹œ์ž‘ํ•จ
    ๊ฐ€๊ฒฉ๋„ ์ €๋ ด
  • ํ•œ ๋Œ€๋กœ ๋งŒ๋“ค๋˜ ์†Œํ”„ํŠธ์›จ์–ด
    ์—ฌ๋Ÿฌ ๊ฐœ์˜ ํ”„๋กœ๊ทธ๋žจ์œผ๋กœ ๋ถ„๋ฆฌ์‹œํ‚จ ํ›„ 
    ๋„คํŠธ์›Œํฌ๋กœ ๋ฌถ์€ ๊ฒƒ
  • ์„œ๋น„์Šค ์˜ค๋ฆฌ์—”ํ‹ฐ๋“œ ์•„ํ‚คํ…์ฒ˜ SOA
    ํ˜„์žฌ(micro)์™€ ๊ณผ๊ฑฐ(monolithic)์˜ ์ค‘๊ฐ„ ๊ฐœ๋…

 

3. microservices

  • ์šฐ๋ฆฌ์˜ ์‹œ๋Œ€ - micro service
  • 100๊ฐœ์˜ ๊ธฐ๋Šฅ
    ๊ทน๋‹จ์ ์œผ๋กœ, 100๊ฐœ๋กœ ์ชผ๊ฐœ์„œ 100๋Œ€์˜ ์ปดํ“จํ„ฐ์—์„œ ๋Œ๋ ค
  • ๊ธฐ๋Šฅ์„ ์ž˜๊ฐœ ์ชผ๊ฐœ์„œ, ์—ฌ๋Ÿฌ ์ปดํ“จํ„ฐ์—์„œ ๋™์‹œ ๋‹ค๋ฐœ์  ์ฒ˜๋ฆฌ
  • ์ด๋ฅผ ํ†ต์‹ ์„ ํ†ตํ•ด ์—ฐ๊ฒฐ

 

 

 

< monolithic vs SOA >

  • monolithic
    • ํ•˜๋‚˜์˜ ๊ฑฐ๋Œ€ํ•œ ํ”„๋กœ๊ทธ๋žจ ๋‚ด๋ถ€์˜ ๋ชจ๋“ˆ๋“ค์ด ํ•˜๋‚˜๋กœ ํ†ตํ•ฉ๋จ
    • ํ•˜๋‚˜์˜ ํ”„๋กœ์ ํŠธ ๋‚ด๋ถ€์— ์†Œ์Šค์ฝ”๋“œ๋“ค -> ๋นŒ๋“œ -> ๊ฑฐ๋Œ€ํ•œ ํ•˜๋‚˜์˜ ํ”„๋กœ๊ทธ๋žจ
    • ์ด๋Ÿฐ ์• ๋“ค์ด ์„œ๋กœ ๋Œ€ํ™”๋ฅผ ๋‚˜๋ˆŒ ๊ฒฝ์šฐ๋Š” ๋ณ„๋กœ X
    • ๊ณต์œ  DB ์‚ฌ์šฉ, ๋™์‹œ๋‹ค๋ฐœ์  ์ž‘์—…X
  • SOA
    • ๋ณ„๋„์˜ ํ”„๋กœ๊ทธ๋žจ๋“ค๋กœ ๊ตฌ์„ฑ๋จ
    • ์ชผ๊ฐ  ์ดํ›„, ์ผ์˜ ์„ ํ›„ ๊ด€๊ณ„๊ฐ€ ๋ฐœ์ƒ
    • ์•ž์— ์• ๊ฐ€ ๋งˆ์น˜๋ฉด, ํ†ต์‹ ์„ ํ†ตํ•ด ๋‹ค์Œ ์• ์—๊ฒŒ ์ •๋ณด ์ „๋‹ฌ
    • ์„œ๋ฒ„ to ์„œ๋ฒ„, ์ „ํ›„ ๊ด€๊ณ„๊ฐ€ ์ƒ๊ฒผ๋‹ค. 
    • ๋ถ„ํ™” ์ž‘์—…์ด ์‹œ์ž‘ -> ์„œ๋ฒ„ ๊ฐ„ ํ†ต์‹ ์„ HTTP๋กœ ์‹œ์ž‘!  

 

 

 

< microservice >

  • ๊ฐœ๋ฐœ์—์„œ ํ†ตํ•ฉํ•˜๊ณ , ๋ฐฐํฌ๋„ ์ž๋™ -> ์ญ‰ ์ž๋™ํ™”๋œ ์‹œ์Šคํ…œ
  • ์ˆ˜์ฒœ ์ˆ˜๋งŒ๊ฐœ์˜ ์ปดํ“จํ„ฐ(CPU)๋ฅผ ์ƒ๊ฐํ•˜์—ฌ ์„ค๊ณ„๋จ
  • ์ž‘์€ ํ”„๋กœ๊ทธ๋žจ๋“ค์„ ์ซ™ ๋ฟŒ๋ฆฌ๋Š” ๋ฐฉ์‹์œผ๋กœ ๊ตฌํ˜„
  • ํ•˜๋‚˜์˜ ํ•จ์ˆ˜๊ฐ€ ๋ช‡ ๊ฐœ์˜ ์ปดํ“จํ„ฐ์—์„œ ๋Œ์•„๊ฐ€๋Š”, ๋งˆ์ดํฌ๋กœ ์„œ๋น„์Šค
  • ๊ต‰์žฅํžˆ ์ž‘์€ ๋‹จ์œ„๋กœ ๊ฐœ๋ฐœํ•œ๋‹ค

 

 

 

Microservice : Cloud Computing

  • ์˜คํ”ˆ ์Šคํƒ
    • CPU + ๋””์Šคํฌ + ๋„คํŠธ์›Œํฌ 
    • ๋นŒ๋ ค์„œ ์‚ฌ์šฉํ•˜๊ณ , ํ•„์š” ์—†์–ด์ง€๋ฉด ๋ฐ˜๋‚ฉํ•œ๋‹ค.
    • ๊ฐ€์ƒ ๋จธ์‹ ์„ ๋„์šฐ๋Š” ์Šคํ‚ด
    • ex) ์„œ๋ฒ„ ์‹œ์Šคํ…œ์˜ ์šด์˜์ฒด์ œ๊ฐ€ ๋ฆฌ๋ˆ…์Šค 
      ํšŒ์‚ฌ ๊ฐœ๋ฐœ๋„ ๋‹ค ๋ฆฌ๋ˆ…์Šค๋กœ 
      -> ๋ฆฌ๋ˆ…์Šค ์œ„์— ๋ฆฌ๋ˆ…์Šค๊ฐ€ ์˜ฌ๋ผ๊ฐ€๊ฒŒ ๋จ
      ๋ฆฌ๋ˆ…์Šค ์œ„์—์„œ ๋ฆฌ๋ˆ…์Šค๋ฅผ ๋„์šฐ๋ƒ -> ์„ฑ๋Šฅ์ €ํ•˜ ๋ฌธ์ œ ๋ฐœ์ƒ
  • ๋„์ปค & ์ฟ ๋ฒ„๋„คํ‹ฑ์Šค
    • ๊ฐ€์ƒ ๋จธ์‹  ๊ธฐ๋ฒ• X
    • ๋™์ž‘ํ•˜๊ณ  ์‹ถ์€ ํ”„๋กœ๊ทธ๋žจ์ด ํ•„์š”ํ•œ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ, ํ™˜๊ฒฝ ๋ณ€์ˆ˜, ๋ณธ์ธ ์ž์ฒด ๋“ฑ
      ์ปดํ“จํ„ฐ์— ์†Œํ”„ํŠธ์›จ์–ด ์„ค์น˜ ๋ฐ ์‚ญ์ œ๊ฐ€ ์‰ฌ์šด ์ปจํ…Œ์ด๋„ˆ ๊ธฐ์ˆ  
    • ์ˆ˜์ฒœ ์ˆ˜๋งŒ ๋Œ€์— ๋™์ž‘ํ•˜๊ฒŒ ํ•˜์ž 

    • ๋„์ปค - ์„ค์น˜ ๋ฐ ํ•ด์ œ 
      ์ฟ ๋ฒ„๋„คํ‹ฐ์Šค (์˜ค์ผ€์ŠคํŠธ๋ ˆ์ดํ„ฐ) - ์ˆ˜์ฒœ ๊ฐœ์— ๋ฟŒ๋ฆฌ์ž 
    • ๋ชจ๋‘ ๋ฆฌ๋ˆ…์Šค foundation
      microservice ๊ธฐ๋ฐ˜์œผ๋กœ ๊ฐœ๋ฐœ
      cloud native foundation
      ์ˆ˜์ฒœ ์ˆ˜๋งŒ๋Œ€์˜ CPU ๋””์Šคํฌ, ์—ฐ๊ฒฐํ•˜๋Š” ๋„คํŠธ์›Œํฌ ๊ฐœ๋…
      ํ”„๋กœ๊ทธ๋ž˜๋ฐ์„ ํ•˜๊ณ , ์šด์˜์„ ํ•˜๋Š” -> ์—ฌ๊ธฐ ๊ด€์‹ฌ์žˆ๋Š” ์‚ฌ๋žŒ์€ ์—ฌ๊ธฐ๋กœ ๋ชจ์—ฌ๋ผ
      ์„œ๋ฒ„์™€ ๊ด€๋ จ + CI/CD, ๋ฐ๋ธŒ์˜ต์Šค -> ๋‹ค ์—ฌ๊ธฐ๋กœ ๋ชจ์ž„
    • Cloud Native 
      ํด๋ผ์šฐ๋“œ ํ™˜๊ฒฝ์„ ๊ณ ๋ คํ•˜์—ฌ, ์†Œํ”„ํŠธ์›จ์–ด ๊ฐœ๋ฐœ, ์šด์˜ํ•˜๋Š” ๊ฒƒ 
    • kubernetes
    • 300๋งŒ ๊ฐœ์˜ ์ฝ”์–ด์—์„œ ๊ตฌ๊ธ€ ์„œ๋น„์Šค๋ฅผ ๋งŒ๋“ค๊ธฐ ์œ„ํ•œ ์„œ๋น„์Šค
      ์ ์€ ์ธ์›์„ ํ†ตํ•ด, ํšจ์œจ์ ์œผ๋กœ ์ปจํ…Œ์ด๋„ˆ๋ฅผ ์šด์˜ํ•  ์ˆ˜ ์žˆ๋‹ค. 
      ์ปจํ…Œ์ด๋„ˆ -> ํ•˜๋‚˜์˜ ์‹คํ–‰ ํ”„๋กœ๊ทธ๋žจ(์„œ๋ฒ„๊ธ‰ ํ”„๋กœ์„ธ์Šค)
      ์ˆ˜ ์–ต ๊ฐœ์˜ ํ”„๋กœ์„ธ์Šค๋กœ ๋‚˜๋ˆ„์–ด์„œ ์‹คํ–‰

    • ๊ฐ€์ƒ๋จธ์‹  ์œ„์— ์˜ฌ๋ผ์˜จ ํ”„๋กœ๊ทธ๋žจ 
      ์œˆ๋„์šฐ, ๋ฆฌ๋ˆ…์Šค, ์œ ๋‹‰์Šค ์œ„์—์„œ (ํ˜ธ์ŠคํŠธ OS)
      ์ด ์œ„์— ๋‹ค์‹œ ๋ฆฌ๋ˆ…์Šค ์œ ๋‹‰์Šค๋ฅผ ๋„์›€ (๊ฒŒ์ŠคํŠธ OS)
    • ๋ฆฌ๋ˆ…์Šค ์œ„์— ๋„์ปค๋ฅผ ๋„์šฐ๋ฉด 
      ๋ณ„๋„์˜ ์šด์˜์ฒด์ œ๋ฅผ ์˜ฌ๋ฆฌ์ง€ ์•Š๊ณ ,
      ์–ดํ”Œ๋ฆฌ์ผ€์ด์…˜๊ณผ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋“ค์„ ์„ค์น˜ํ–ˆ๋‹ค๊ฐ€, ๊ฐ™์ด ์‚ญ์ œํ•  ์ˆ˜ ์žˆ๋‹ค. 
    • Docker - ์œˆ๋„์šฐ์™€ ๋ฆฌ๋ˆ…์Šค ์—ฐ๊ฒฐ ๊ฐ€๋Šฅ

 

 

 

SOAP & REST/RESTful

2000 SOA ๋“ฑ์žฅ
ํ†ต์‹  ์‹œ HTTP ์‚ฌ์šฉ
TCP/UDP ๋“ฑ ์†Œ์ผ“ ํ”„๋กœ๊ทธ๋ž˜๋ฐ์ด ์•„๋‹Œ
-> ํ•จ์ˆ˜ ํ˜ธ์ถœ๊ณผ ์œ ์‚ฌํ•œ response ๋ฐฉ์‹ 
-> ํ”„๋กœ๊ทธ๋žจ ์งœ๋Š” ๊ฒƒ์ด ์‰ฝ๋‹ค


์ด๋•Œ ์ฃผ๊ณ  ๋ฐ›๋Š” ์ •๋ณด๋ฅผ ์–ด๋–ป๊ฒŒ ํ‘œํ˜„ํ•˜๋Š”๊ฐ€? 
XML -> ๊ฐ€์žฅ ์‰ฌ์šด ์ถ•์†ŒํŒ์ด html
๋ฌดํ•œ ๊ทน๊ฐ•์˜ over spec ํˆฌ์ž…
xml ์ฒ˜๋ฆฌํ•˜๋Š๋ผ ๋„ˆ๋ฌด ํž˜๋“ค์—ˆ๋‹ค

SOAP

service oriented architecture protocol
ํŒŒ์‹ฑ -> xml์—์„œ ์›ํ•˜๋Š” ๋ฐ์ดํ„ฐ ์ถ”์ถœํ•˜๋Š” ๊ธฐ์ˆ 
์˜ค๋ฒ„ํ—ค๋“œ๊ฐ€ ๋„ˆ๋ฌด ํฐ ๋ฐ?

 

2007
HTTP ์œ„์— ๋Œ€์•ˆ๋“ค์„ ์˜ฌ๋ฆผ 
JSON / RESTful ์›น ์„œ๋น„์Šค 
HTTP๋ฅผ ์“ฐ๋Š” ๊ฒƒ์€ ๋™์ผ
๋ฌธ์„œ ๋งŒ๋“œ๋Š” ๋ฐฉ์‹, ๋ณต์žกํ•œ XML์„ ์“ฐ์ง€ ๋ง์ž

JSON - ์ž๋ฐ” ์Šคํฌ๋ฆฝํŠธ์˜ ๋…ธํ…Œ์ด์…˜ 
(ํŒŒ์ด์ฌ์˜ ๋ฆฌ์ŠคํŠธ, ๋”•์…”๋„ˆ๋ฆฌ, ์ธํ‹ฐ์ € ๋“ฑ์— ๋งคํ•‘)
์™œ ํ•จ์ˆ˜ ํ˜ธ์ถœ์ธ๋ฐ, ๋ฌธ์„œ๋ฅผ ์ฃผ๊ณ  ๋ฐ›๊ณ  ์žˆ์ง€? 
ํ•จ์ˆ˜ ํ˜ธ์ถœํ•˜๋Š” ๊ฒƒ์ฒ˜๋Ÿผ ๋ฐ์ดํ„ฐ๋ฅผ ์ฃผ๊ณ  ๋ฐ›์ž

์ •์ ์ธ html์„ ๋™์ ์œผ๋กœ ๋ฐ”๊ฟ”์ค„ ์ˆ˜ ์žˆ๋Š” ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์–ธ์–ด JS

์™œ JS? ๋„คํŠธ์›Œํฌ๋ฅผ ํƒ€๋Š” ์–ธ์–ด JS ! (ํŒŒ์ด์ฌ, C ์•„๋‹ˆ๋ผ)
์ด๋Ÿฌ๋ฉด์„œ REST ๋‹จ์–ด ๋“ฑ์žฅํ•˜๊ธฐ ์‹œ์ž‘