์ค๋์ ๊ทธ๋ฅ ์ง๊ธ๊น์ง ์ํผ์ด ํ๋ฌ๊ฐ๋ ๋๋ก ์ฌ์ฉํ๋
SOAP์ ์์๋ณด๋ ค๊ณ ํ๋ค
์ฌ์ฉ์ ํ๊ณ ์์ง๋ง ๊ทธ๋์ ๊ทธ๊ฒ ๋ญ๋ฐ? ๋ผ๊ณ ํ๋ฉด ์ค๋ช ํ ์ ์๋ฌ๊น....
๋ฐ์ฑํ๋ฉฐ ์ด ๊ธ์ ์๋๋ค
1. SOAP (Simple Object Access Protocol)
SOAP(Simple Object Access Protocol)์ ์ผ๋ฐ์ ์ผ๋ก ๋๋ฆฌ ์๋ ค์ง HTTP, HTTPS, SMTP ๋ฑ์ ํตํด XML ๊ธฐ๋ฐ์ ๋ฉ์์ง๋ฅผ ์ปดํจํฐ ๋คํธ์ํฌ ์์์ ๊ตํํ๋ ํ๋กํ ์ฝ์ด๋ค.
(์ํค๋ฐฑ๊ณผ)
SOAP์ ๋ง ๊ทธ๋๋ก ํด์ํด๋ณด๋ฉด ๊ฐ๋จํ ๊ฐ์ฒด ์ ๊ทผ ํ๋กํ ์ฝ์ด๋ค
์ด๊ฒ ๋จธ์ ๋ง์ธ๊ฐ๋ฅผ ๋ณด๊ธฐ ์ ์,
HTTP์ XML์ ๋ํด์ ๋จผ์ ์ธ๊ธ์ ํด์ผ ํ ๊ฒ ๊ฐ์์ ์งง๊ฒ ๋ค๋ฃจ๊ฒ ๋ค
(1) HTTP (HyperText Transfer Protocol)
๋ณดํต ์น ์๋น์ค์์ SOAP์ด ์ฌ์ฉ ๋๋๋ฐ
์น์ ๊ธฐ๋ณธ์ HTTP๋ฅผ ์ฌ์ฉํ๊ธฐ ๋๋ฌธ์ ์ฌ์ ์ง์์ผ๋ก ์๊ณ ์์ด์ผ ํ๋ค
HTTP๋ ์ด์ ์ Chunked Msg ๋ค๋ฃฐ ๋ ์ ๊น ์๊ธฐํ์๋๋ฐ
์๋๋ฐฉ์๊ฒ ํ ์คํธ๋ฅผ ์ด๋ป๊ฒ ์ ์ก ๋๋ ๋ณด์ฌ์ค ๊ฑด๋ฐ ~~ ํ๋ ํ๋กํ ์ฝ์ด๋ค
HTTP๋ Request์ Response๋ฅผ ์ฃผ๊ณ ๋ฐ๋ ํํ์ด๊ณ
์ ๋ ๊ฐ๋ Header์ Body๋ฅผ ๊ฐ์ง๊ณ ์๋ค
( ์์ธํ ๋ด์ฉ์ ์๋์ ์ฒจ๋ถ ๋งํฌ๋ก ๋จ๊ฒจ๋๊ฒ ๋ค )
๊ทผ๋ฐ, Header๋ ๋์ด์ฐ๊ธฐ๋ ๋ช ์นธ, ๋ช ์ค ๊ณต๋ฐฑ์ ๋๋ฉด Header๊ฐ ๋์ด์ผ!๋ผ๋
์๋ฐ HTTP ๊ท๊ฒฉ์ ์ ์๊ฐ ๋์ด ์์ง๋ง
Body์ ๋ด์ฉ๋ ์ด๋ฐ ๊ท๊ฒฉ์ด ์ ํด์ ธ ์์ด์ผ ๋ณด๋ด๋ ์ฌ๋, ๋ฐ๋ ์ฌ๋์ด
๊ท๊ฒฉ์ ๋ง๊ฒ ์ฝ์ ์ ์์ง ์์๊น?
๊ทธ๋์ ์ด๋ค ํ์์ ๋ง์ถฐ์ ๋ณด๋ด๋๋ก ํด! ํ๋ ๊ฑฐ๊ฐ ๋ช ๊ฐ์ง๊ฐ ์๋๋ฐ
๊ทธ๊ฒ ๋ง์ด ๋ค์ด๋ดค์ XML์ด๋ JSON, Text ๋ฑ์ ํ์์ด๋ค
์ ํ์์ HTTP Header์ Content-Type ํค๋์ ๋ช ์ํด์ฃผ๋ฉด ๋๋ค
๊ทธ์ค XML ํ์์ ์ฌ์ฉํด์ ๋ฉ์์ง๋ฅผ ๋ณด๋ผ๋! ๊ฐ → SOAP
JSON ํ์์ ์ฌ์ฉํด์ ๋ฉ์์ง๋ฅผ ๋ณด๋ผ๋!๊ฐ → REST
์๋ ๊ฒ ๋์๊ฒ ๋ค
(JSON์ REST๋ฅผ ๋ค๋ฃฐ ๋ ๋ค์ ๋ค๋ฃจ๋๋ก ํ๊ฒ ๋ค)
(2) XML (Extensible Markup Language)
๊ทธ๋ฌ๋ฉด SOAP์์ ์ฌ์ฉํ๋ค๋ XML์ ๋ฌด์์ธ์ง๋ ๋ณด๊ฒ ๋ค
XML์ ๋ง ๊ทธ๋๋ก ํ์ฅ ๋งํฌ์ ์ธ์ด์ด๋ค
์ฐธ๊ณ ) Markup (๋งํฌ์ )
<></> ๊ฐ์ ํ๊ทธ๋ฅผ ์ฌ์ฉํ์ฌ ๋ฌธ์๋ ๋ฐ์ดํฐ์ ๊ตฌ์กฐ๋ฅผ ํํํ๋ ์ธ์ด
์๋ฅผ ๋ค์ด, ์๊น์ ์ ์ํ ๋ฐ์ดํฐ๊ฐ ์๋ค๊ณ ํด๋ณด์
์๊น ์ฒซ๋ฒ ์งธ๋ ๋นจ๊ฐ์ ๋๋ฒ ์งธ๋ ํ๋์ ์ธ๋ฒ ์งธ๋ ์ด๋ก์ |
์๊ฑธ ๋งํฌ์ ํ์(<></> ํ๊ทธ ์ฌ์ฉ)์ ๋ํด์ XML ํ์์ผ๋ก ๋ฐ๊ฟ๋ณด๋ฉด
์ด๋์ ๋ง์ด ๋ณธ๋ฏํ ํ์์ผ๋ก ์ ์ํ ์ ์๋ค
XML์ ์ฅ์ ๊ณผ ๋จ์ ๋ง ์ ๋ฆฌ ํ, ๋์ด๊ฐ๋๋ก ํ๊ฒ ๋ค
์์ธํ XML ๊ตฌ์กฐ๋ ์๋ ์ฒจ๋ถ๋งํฌ์ ๋ฌ์ ๋๊ฒ ๋ค
์ฅ์
- HTML ๋ฌธ์์์ ๋ฐ์ดํฐ๋ฅผ XML๋ก ๋ถ๋ฆฌํ ์ ์๋ค
- ํธํํ ์ ์๋ ํ์์ ์ ์ํจ์ผ๋ก์จ ๋ฐ์ดํฐ ๊ณต์ ๋ฐ ์ ์ก์ด ๋จ์ํด์ง๋ค
- ํ์ฅ์ฑ๊ณผ ํธํ์ฑ์ด ์ข๋ค
- tag๋ฅผ ์ฌ์ฉํ๊ธฐ ๋๋ฌธ์ Data์ MetaData์ ๊ตฌ๋ถ์ด ์ฝ๋ค
๋จ์
- ์ฌ์ฉ์ํด๋ ๋ ๊ฒฝ์จ ์ฌ์ฉํ๋ฉด ๋ ์ด๋ ต๊ณ ๋ณต์กํด ๋ณด์ผ ์ ์๋ค
- ํ ์คํธ ํ์ผ์ด๋ผ์ ์ฉ๋ ↑ ์๋ ↓
(๊ทผ๋ฐ ์์ฆ์ ํต์ ์๋๊ฐ ์๋ ๋นจ๋ผ์ ๊ตณ์ด ๋จ์ ์ธ๊ฐ ์ถ๋ค)
(3) XML๊ณผ SOAP
SOAP์ HTTP ๊ธฐ๋ฐ์ XML์ ์ฌ์ฉํ์ฌ ๋ฉ์์ง๋ฅผ ๋ณด๋ด๋ ๊ท๊ฒฉ์ด๋ค
์ฆ, HTTP์ Header + Body ๊ตฌ์กฐ๋ฅผ ์ฌ์ฉํ๊ณ , Body์ ์ฐ๋ ํ์์ XML์ด๋ค
๊ตฌ์ฑ ์์๋ SOAP Envelope, SOAP Header, SOAP Body, SOAP Fault ์ ๋๊ฐ ์๋ค
SOAP Envelope
HTML์์ ๋ณด์ จ๋ <Envelope> ๋ง์ต๋๋ค
SOAP ํ์์ผ๋ก ์์ฑํ ๋ฐ์ดํฐ๋ฅผ ๋ค ํฌํจํ๋ root ์์
SOAP Header (์ต์ )
HTTP Header๊ฐ HTTP Body๋ฅผ ์ค๋ช ํ๋ ๊ฒ ์ฒ๋ผ
SOAP Body๋ฅผ ์ค๋ช ํ๋ ๊ฒ์ด SOAP Header์ด๋ค
SOAP Body (ํ์)
์์์ ์์๋ก ๋ค์๋ <Example> ๊ฐ์ ์ค์ ๋ฐ์ดํฐ๊ฐ ๋ค์ด ์๋ ์์
๋ฉ์์ง๋ฅผ ๋ฐ์ ๋์์ ์ ๋ณด๊ฐ ํฌํจ๋์ด ์๊ธฐ๋ ํจ
SOAP Fault (์ค๋ฅ ๋ณด๊ณ ์ฉ)
๋ณดํต ์๋ต์ ๋ณด๋ผ ๋, ์์ฒญ์ด ์คํจํ ์ด์ ๋ฑ์ ํฌํจํ์ฌ ์ฌ์ฉ๋จ
์๋ฐ ์์ผ๋ก XML ํ์์ ์ฌ์ฉํ์ฌ SOAP์ ์ฌ์ฉํ ์ ์์ต๋๋ค
ํ์๋.. Onvif ๋ผ๋ ๊ท๊ฒฉ์ ๊ณต๋ถ ์ค์ธ๋ฐ, ์ฌ๊ธฐ์ ๊ธฐ๋ณธ์ผ๋ก SOAP ํ์์ ์ฌ์ฉํด์
๋ง์ด ๋์ ์ต์ํ์ง๋ง, ๋ฉ์์ง๋ฅผ ๋ณด๋ผ ๋ ํ์์ด ์กฐ๊ธ๋ง ์ ๋ง์๋
์๋ต์ด ์๋ ๊ฒฝ์ฐ๊ฐ ๋ง์์ ๋งค์ฐ ์ซ์ต๋๋ค
๊ทธ๋์ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ์จ์ ๋ง์ด ์ฌ์ฉํ๋๋ฐ, ๊ฐ์ฅ ์ ๋ช ํ๊ฑด gSOAP์ด ์๋ค
์๊ฑด ๋ฐ๋ก ํ์ฉ๋ฒ ๋ฑ์ ๋ค๋ค๋ณผ๊น ํ๋ค
2. Web Service
SOAP ํ์์ด ๊ทธ๋ฌ๋ฉด ์ด๋์ ๋ง์ด ์ฐ์ด๋๋ ~
ํ๋ฉด Web Service ์ค๋ช ์ ๋นผ ๋์ ์๊ฐ ์๋ค
๊ทผ๋ฐ ์น์๋น์ค๋ ๋ค๋ฃฐ ๋ด์ฉ์ด ์ฐธ ๋ง์ ์น๊ตฌ๋ผ์
๊ทธ๋ฅ ์๋ฐ๊ฒ ์๋ค ์ ๋๋ง ์ ๋ฆฌํด๋๋ ค๊ณ ํ๋ค
์ฐ๋ฆฌ๊ฐ ์ฌ์ฉํ๋ ์น์ ๊ฐ์ ๋ค๋ฅธ ๋คํธ์ํฌ ํ๊ฒฝ์ ์์ง ์๋๊ฐ?
๊ทธ๋ฐ ๊ฐ๊ฐ ๋ค๋ฅธ ์ปดํจํฐ๋ค์ด ์ฐ๊ฒฐ๋ ์ ์๋๋ก ํด์ฃผ๋ ๊ฒ์ด ์น ์๋น์ค๋ค
์ฐธ๊ณ ) ๋ค๋ฅธ ๋คํธ์ํฌ์ ์๋ ์ปดํจํฐ๊ฐ ์ํธ์์ฉํ๋ ๊ฒ์
๋ถ์ฐํ ์ปดํจํ ๊ธฐ์ ์ด๋ผ๊ณ ํ๋ค
์น ์๋น์ค(web service)๋ ๋คํธ์ํฌ ์์์ ์๋ก ๋ค๋ฅธ ์ข ๋ฅ์ ์ปดํจํฐ๋ค ๊ฐ์ ์ํธ์์ฉ์ ํ๊ธฐ ์ํ ์ํํธ์จ์ด ์์คํ ์ด๋ค. ์น ์๋น์ค๋ ์๋น์ค ์งํฅ์ ๋ถ์ฐ ์ปดํจํ ๊ธฐ์ ์ ์ผ์ข ์ด๋ค. ์น ์๋น์ค ํ๋กํ ์ฝ ์คํ์ SOAP, WSDL, UDDI ๋ฑ์ผ๋ก ์ด๋ฃจ์ด์ง๋ค. ๋ชจ๋ ๋ฉ์์ง์ XML์ด ์ฌ์ฉ๋์ด ์ํธ์ด์ฉ์ฑ์ด ๋๋ค.
- ์ํค๋ฐฑ๊ณผ -
์น์๋น์ค์ ์ด์ฉ๋๋ ํ์ค์ ์ฌ๋ฌ ๊ฐ๊ฐ ์๋๋ฐ,
๊ทธ ์ค ํ๋๊ฐ ์ค๋ ๋ค๋ฃฌ SOAP์ด๋ค
์ผ์ชฝ ์ปดํจํฐ๋ฅผ ์ฒ ์๋ค ์๋ ์ปดํจํฐ๋ผ๊ณ ํ๊ณ
์ค๋ฅธ์ชฝ ์ปดํจํฐ๋ฅผ ์ ๋ฆฌ๋ค ์๋ ์ปดํจํฐ๋ผ๊ณ ํ๋ฉด
์ฒ ์์ ์ ๋ฆฌ๊ฐ ์๋ก ๋ฐ์ดํฐ๋ฅผ ์ฃผ๊ณ ๋ฐ์ ์ ์๋ ๊ฒ์ด
๋ฐ๋ก ์น์๋น์ค๊ฐ ๊ฐ๋ฅํ๊ธฐ ๋๋ฌธ์ด๋ค
์น ์๋น์ค์์ ์ฃผ๊ณ ๋ฐ๋ ๋ฐ์ดํฐ์ ํ์์ SOAP์ด ์ฌ์ฉ๋๋ค
https://ko.wikipedia.org/wiki/SOAP
https://mutpp.tistory.com/10?category=932836
http://tcpschool.com/xml/xml_basic_structure
'๐ Protocol' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
UDP๋ฅผ ์์๋ณด์ (0) | 2021.07.08 |
---|---|
HTTP Chunked Message๋ฅผ ์์๋ณด์ (0) | 2021.03.09 |
SMTP๋ฅผ ์์๋ณด์ (0) | 2020.12.16 |