SOAP(Simple Object Access Protocol)μ
π₯ βμλ‘ λ€λ₯Έ μμ€ν
λΌλ¦¬ λ°μ΄ν°λ₯Ό μμ νκ² μ£Όκ³ λ°κΈ° μν΄ λ§λ XML κΈ°λ° ν΅μ κ·μ½βμ
λλ€.
μ§κΈμ REST APIκ° ν¨μ¬ λ§μ§λ§,
2025λ
κΈ°μ€μΌλ‘ κΈμ΅Β·κ³΅κ³΅Β·λ³΄νΒ·λκΈ°μ
μμ€ν
μ μ¬μ ν SOAPμ ν΅μ¬ κΈ°μ λ‘ μ¬μ©ν©λλ€.
μλνλ©΄ SOAPμ λ¨μν APIκ° μλλΌ
β 보μ
β νΈλμμ
β νμ€ν
β μ λ’°μ±
μ΄ λ§€μ° κ°λ ₯ν μν°νλΌμ΄μ¦κΈ ν΅μ λ°©μμ΄κΈ° λλ¬Έμ
λλ€.
2000λ λ μ΄λ°, μμ€ν ꡬμ±μ λλΆλΆ μ΄λ κ² μ κ°κ°μ΄μμ΅λλ€:
π AκΈ°μ
: Java
π BκΈ°μ
: C#
π CκΈ°μ
: C++
π DκΈ°κ΄: COBOL
λ¬Έμ λ μλ‘ λ°μ΄ν°λ₯Ό κ΅νν΄μΌ νλλ°
β 곡ν΅λ κ΅¬μ‘°κ° μκ³
β μΈμ΄λ λ€λ₯΄κ³
β 보μ κ·μ λ μ κ°κ°
μ΄μλ€λ μ μ
λλ€.
SOAPμ μ΄ λ¬Έμ λ₯Ό ν΄κ²°νκΈ° μν΄
π₯ βλͺ¨λ κΈ°μ
Β·κΈ°κ΄μ΄ λ°λΌμΌ ν ν΅μ νμ€β
λ‘ λ±μ₯νμ΅λλ€.
SOAPμ κ°μ₯ μ€μν νΉμ§μ νμ XMLμ΄λ©° νμ κ°μ ꡬ쑰λ₯Ό κ°μ§λ€λ κ².
<soap:Envelope>
<soap:Header></soap:Header>
<soap:Body></soap:Body>
<soap:Fault></soap:Fault>
</soap:Envelope>
λ©μμ§ μ 체λ₯Ό κ°μΈλ μ΅μμ κ»λ°κΈ°
β βμ΄κ±΄ SOAP λ©μμ§λ€β λΌκ³ μλ €μ£Όλ μν
보μ ν ν°, μΈμ¦ μ 보, νΈλμμ
λ±μ λΆκ° κΈ°λ₯ λ΄λΉ
β κΈμ΅Β·κ³΅κ³΅ μμ€ν
μμ νμ
ν΅μ¬ λ°μ΄ν°κ° λ΄κΈ°λ μ€μ μμ²Β·μλ΅ λ³Έλ¬Έ
μ€λ₯ μ 보λ₯Ό λ΄λ μμ
β λ¨μν HTTP statusλ³΄λ€ λ νλΆν μ€λ₯ μ 곡
| κ΅¬λΆ | SOAP | REST |
|---|---|---|
| λ°μ΄ν° ν¬λ§· | XMLλ§ κ°λ₯ | JSON, XML, text λ± μμ |
| 보μ | WS-Security μ§μ | HTTPS κΈ°λ° |
| νΈλμμ | κ³ κΈ νΈλμμ μ²λ¦¬ κ°λ₯ | κΈ°λ³Έμ μΌλ‘ μμ |
| λμ΄λ | 볡μ‘ν¨ | μ¬μ |
| μ¬μ©μ² | κΈμ΅/곡곡/λκΈ°μ μμ€ν | μΉ/λͺ¨λ°μΌ κ°λ° μ λ° |
| λ©μμ§ ν¬κΈ° | 무거μ | κ°λ²Όμ |
RESTλ λΉ λ₯΄κ³ κ°λ¨ν΄μ μΉκ³Ό λͺ¨λ°μΌμ μ΅μ νλμ΄ μμ§λ§,
SOAPμ μ ν΄μ§ κ·μΉ μλμμ νμ€νκ² μμ νκ² μ²λ¦¬ν΄μΌ νλ λΆμΌμ κ°ν©λλ€.
μλΉμ€μ λͺ¨λ κΈ°λ₯(λ©μλ, μ
λ ₯κ°, μΆλ ₯κ° λ±)μ μ€λͺ
νλ XML λ¬Έμ
β SOAP μλΉμ€μ βμ€λͺ
μβ
XML ꡬ쑰μ νμ
μ μ
β λ°μ΄ν°κ° νλ¦¬μ§ μλλ‘ λ³΄μ₯
μνΈν, μλͺ
, ν ν° μΈμ¦ λ± κ³ κΈ λ³΄μ κΈ°μ
β RESTλ³΄λ€ ν¨μ¬ κ°λ ₯ν μμ€
SOAPμ΄ HTTP, SMTP λ± λ€μν νλ‘ν μ½ μμμ λμν μ μλλ‘ νλ κ·μΉ
π 보μμ΄ λ§€μ° κ°λ ₯νλ€
WS-Security λλΆμ μνΈν/μλͺ
/ν ν° μΈμ¦μ μ κ΅νκ² μ§μ
π μ λ’°μ±μ΄ λλ€
μ μ‘ μ€ν¨ μ μ¬μλ, λ©μμ§ κ²μ¦ λ± λ³΄μ¦ κΈ°λ₯ μ 곡
π νΈλμμ
μ§μ
μν μ΄μ²΄μ²λΌ βμ λ μ€ν¨νλ©΄ μ λλβ μμ
μ μ ν©
π μ격ν νμ€ν
λκ·λͺ¨ μμ€ν
μ°λ(SI)μ λ§€μ° μ 리
β XML κΈ°λ°μ΄λΌ 무κ²κ³ λλ¦Ό
β κ΅¬μ‘°κ° λ³΅μ‘νμ¬ λ¬λ컀λΈκ° λμ
β λ©μμ§ μμ±, μ€ν€λ§ κ΄λ¦¬, WSDL ν΄μμ΄ μ΄λ €μ
β λͺ¨λ°μΌΒ·μΉ μλΉμ€μλ μ ν©νμ§ μμ
κ·Έλμ μ΅μ μ€ννΈμ
, μΉμλΉμ€, μ± κ°λ°μ 95%λ REST κΈ°λ°μ
λλ€.
νμ§λ§ 볡μ‘ν λκΈ°μ
μμ€ν
μΌμλ‘ SOAPμ κ°μ μ΄ λλλ¬μ§λλ€.
μμ§λ SOAPμ΄ μ¬μ©λλ μ΄μ λ βλκ·λͺ¨ Β· κ³ λ³΄μ μμ€ν βμμλ RESTλ³΄λ€ λ κ°λ ₯νκΈ° λλ¬Έμ λλ€.
νμ¬ SOAPμ μ£Όλ‘ μ¬μ©νλ κ³³:
π¦ κΈμ΅(μν, μΉ΄λμ¬, νν
ν¬ λ΄λΆ μμ€ν
)
π 곡곡기κ΄(Open API, μ£Όλ―Όλ±λ‘/λ±λ³Έ/μ μλ¬Έμ)
π« ν곡·κ΅μ λ¬Όλ₯
π’ λκΈ°μ
ERP, MES, CRM
π‘ 보νμ¬ λ΄λΆ μμ€ν
π ν΅μ μ¬(BSS/OSS)
μ΄λ€ μμ€ν
μ λλΆλΆ
π κ³ λ³΄μ + κ³ μ λ’° + νΈλμμ
+ νμ€ν
μ΄ νμλΌ SOAPμμ μ½κ² λ²μ΄λκΈ° μ΄λ ΅μ΅λλ€.
<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">
<soap:Body>
<GetUserInfo>
<UserID>1234</UserID>
</GetUserInfo>
</soap:Body>
</soap:Envelope>
<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">
<soap:Body>
<GetUserInfoResponse>
<Name>νκΈΈλ</Name>
<Age>50</Age>
</GetUserInfoResponse>
</soap:Body>
</soap:Envelope>
μ΄μ²λΌ μμ²κ³Ό μλ΅ λͺ¨λ
π λ°λμ Envelope β Header β Body ꡬ쑰λ₯Ό κ°λ κ²μ΄ SOAPμ ν΅μ¬μ
λλ€.
RESTκ° λμΈμΈ μλμ§λ§
SOAPμ RESTκ° ν΄κ²°νμ§ λͺ»νλ μμμμ μ¬μ ν μ λμ μΈ μν μ νκ³ μμ΅λλ€.
2025λ κΈ°μ€ SOAPμ μ΄ν΄νλ©΄:
π₯ κΈμ΅/곡곡 νλ‘μ νΈ μ°Έμ¬ κ°λ₯
π λκ·λͺ¨ μν°νλΌμ΄μ¦ μμ€ν
ꡬ쑰 μ΄ν΄
π₯ WSDL/XSD/νΈλμμ
μ²λ¦¬ κ°λ
κ°ν
π κ°λ°μμ κΉμ΄κ° ν¨μ¬ κΉμ΄μ§
νΉν SIΒ·κΈμ΅Β·λκΈ°μ
λλ©μΈμ λͺ©νλ‘ νλ κ°λ°μλΌλ©΄
SOAP μ΄ν΄λ μ νμ΄ μλλΌ νμμ
λλ€.
λ‘컬 λ€νΈμν¬ νκ²½μ μ‘°κΈμ΄λΌλ λ€λ€λ³Έ μ¬λμ΄λΌλ©΄ ν λ²μ―€μ λ§μ£ΌμΉλ μ΅μν λ¨μ΄κ° μμ΅λλ€. λ°λ‘ NetBIOSμ NBTμ λλ€.…
μλ νμΈμ! νλ μΉ κ°λ°μμ λ°μ΄ν° κ΅νμ ν΅μ¬μΈ JSON(JavaScript Object Notation)μ λμ± κ°λ ₯νκ³ μμ μ μΌλ‘ λ§λ€μ΄μ£Όλ λꡬ,…
β ECMAScript 3(E3)λ 무μμΌκΉ ECMAScript 3λ 1999λ μ 곡μνλ μλ°μ€ν¬λ¦½νΈ νμ€μ΄λ€. μ§κΈ 보면 μ€λλ κΈ°μ κ°μ§λ§,…
CoffeeScriptλ νλ νλ‘ νΈμλ κ°λ° μνκ³μμ λ§€μ° μΈκΈ° μμλ μΈμ΄μκ³ , μ§κΈλ νΉμ νλ‘μ νΈλ λ κ±°μ μμ€ν , κ°κ²°ν…
νλμ μΈ νλ‘κ·Έλλ° νκ²½μμ λ©λͺ¨λ¦¬ λμ(Memory Leak)λ μ¬μ ν μ ν리μΌμ΄μ μ μ±λ₯ μ νμ μΆ©λμ μΌμΌν€λ μ£Όμ μμΈ μ€…
(Critical Rendering Path, ν΅μ¬ λ λλ§ κ²½λ‘ μλ²½ μ΄ν΄) μΉ λΈλΌμ°μ μ μ£Όμλ₯Ό μ λ ₯νκ³ μν°λ₯Ό λλ₯΄λ μκ°,…