SOAP/WSDL vs REST

API์˜ ๊ตฌ์กฐ๋ฅผ ์ด์•ผ๊ธฐํ•  ๋•Œ, ๋Œ€ํ‘œ์ ์œผ๋กœ SOAP๊ณผ REST๊ฐ€ ํ”ํžˆ ๋น„๊ต๋œ๋‹ค. SOAP์€ ํ”„๋กœํ† ์ฝœ์ด๋ฉฐ, REST๋Š” ์•„ํ‚คํ…์ณ ์Šคํƒ€์ผ์ด๊ธฐ ๋•Œ๋ฌธ์ด๋‹ค.

  • SOAP๋Š” ๋ถ„์‚ฐ ์ปดํ“จํŒ… ํ™˜๊ฒฝ์„ ์œ„ํ•ด ์„ค๊ณ„๋˜์—ˆ์œผ๋ฉฐ REST๋Š” ์ง€์  ๊ฐ„ ํ™˜๊ฒฝ์„ ์œ„ํ•ด ์„ค๊ณ„๋˜์—ˆ๋‹ค.

  • WADL์„ ์‚ฌ์šฉํ•˜์—ฌ REST ์„œ๋น„์Šค์— ๋Œ€ํ•œ ์ธํ„ฐํŽ˜์ด์Šค๋ฅผ ์ •์˜ ํ•  ์ˆ˜ ์žˆ๋‹ค.

SOAP(Simple Object Access Protocol)

https://dydals5678.tistory.com/4

SOAP(Simple Object Access Protocol)์€ ์ผ๋ฐ˜์ ์œผ๋กœ ๋„๋ฆฌ ์•Œ๋ ค์ง„ HTTP, HTTPS, SMTP ๋“ฑ์„ ํ†ตํ•ด XML ๊ธฐ๋ฐ˜์˜ ๋ฉ”์‹œ์ง€๋ฅผ ์ปดํ“จํ„ฐ ๋„คํŠธ์›Œํฌ ์ƒ์—์„œ ๊ตํ™˜ํ•˜๋Š” ํ”„๋กœํ† ์ฝœ์ด๋‹ค. -์œ„ํ‚คํ”ผ๋””์•„-

SOAP๋Š” SOA๋ฅผ ๋”ฐ๋ฅด๋Š” ์›น์„œ๋น„์Šค ๋””์ž์ธ ํ‘œ์ค€์ด๋ฉฐ, WSDL(Web Services Description Language)์„ ์ด์šฉํ•ด ์ •์˜ํ•œ๋‹ค. XML์„ ๊ธฐ๋ฐ˜์œผ๋กœ ํ—ค๋”์™€ ๋ฐ”๋””๋ฅผ ์กฐํ•ฉํ•˜๋Š” ๋””์ž์ธํŒจํ„ด์œผ๋กœ ์„ค๊ณ„๋œ๋‹ค.

์žฅ์ 

  • ํ”Œ๋žซํผ๊ณผ ํ”„๋กœ๊ทธ๋ž˜๋ฐ์— ๋…๋ฆฝ์ ์ด๋‹ค.

  • ๋ถ„์‚ฐ์ปดํ“จํŒ… ํ™˜๊ฒฝ์—์„œ ์‚ฌ์šฉํ•˜๊ธฐ ์œ„ํ•œ ๋””์ž์ธ์ด๋‹ค.(์š”์ฒญ๊ณผ ์‘๋‹ต์ด ๋งค์šฐ ์ฒด๊ณ„์ ์œผ๋กœ ๊ตฌ์„ฑ๋˜๊ณ  DTD๋ฅผ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋‹ค)

  • ์›น์„œ๋น„์Šค๋ฅผ ์œ„ํ•ด ๋„๋ฆฌ ์‚ฌ์šฉํ•˜๋Š” ํ‘œ์ค€์ด๋ฉฐ, ํ™•์žฅ์„ฑ์ด ๋›ฐ์–ด๋‚˜๋‹ค.

๋‹จ์ 

  • ์–ด๋ ต๊ณ , ๋ฌด๊ฒ๊ณ , ๋А๋ฆฌ๋‹ค.

์ฆ‰, ์˜์‚ฌ ์†Œํ†ต๊ณผ ๊ฐ™์€ ์—„๊ฒฉํ•œ ๊ณ„์•ฝ์„ ์ฒด๊ฒฐํ•ด์•ผํ•˜๋Š” ๊ฒฝ์šฐ์— ์œ ์šฉ ํ•˜๋‹ค.

SOA(Service Oriented Architecture)

https://mblogthumb-phinf.pstatic.net/20151102_101/wndrlf2003_1446452548035Gkxze_PNG/soa.png?type=w2

SOA๋ž€ ๋Œ€๊ทœ๋ชจ ์ปดํ“จํ„ฐ ์‹œ์Šคํ…œ์„ ๊ตฌ์ถ•ํ•  ๋•Œ์˜ ๊ฐœ๋…์œผ๋กœ ์—…๋ฌด์ƒ์˜ ์ผ ์ฒ˜๋ฆฌ์— ํ•ด๋‹นํ•˜๋Š” ์†Œํ”„ํŠธ์›จ์–ด ๊ธฐ๋Šฅ์„ ์„œ๋น„์Šค๋กœ ํŒ๋‹จํ•˜์—ฌ ๊ทธ ์„œ๋น„์Šค๋ฅผ ๋„คํŠธ์›Œํฌ์ƒ์— ์—ฐ๋™ํ•˜์—ฌ ์‹œ์Šคํ…œ ์ „์ฒด๋ฅผ ๊ตฌ์ถ•ํ•ด ๋‚˜๊ฐ€๋Š” ๋ฐฉ๋ฒ•๋ก ์ด๋‹ค. ์œ„ํ‚คํ”ผ๋””์•„

์ฆ‰, ๋น„์ฆˆ๋‹ˆ์Šค ์†Œํ”„ํŠธ์›จ์–ด๋ฅผ ๋…๋ฆฝ์ ์ธ ์„œ๋น„์Šค๋กœ ๋ถ„๋ฆฌํ•˜์—ฌ ์‹œ์Šคํ…œ์„ ๊ตฌ์ถ•ํ•˜๋ฉฐ, ์ด๋กœ ์ธํ•ด ๊ฐ ์„œ๋น„์Šค๋“ค์„ ๋‹ค๋ฅธ ๋ฐฉ์‹์œผ๋กœ ๋ฌถ์–ด ์ƒˆ๋กœ์šด ์„œ๋น„์Šค๋ฅผ ๋งŒ๋“ค์–ด ๋‚ผ ์ˆ˜ ์žˆ๋‹ค. ๊ณต๊ธ‰์—…์ฒด์™€ ํ˜‘๋ ฅ์—…์ฒด ๋ฐ ๊ณ ๊ฐ๋“ค๊ณผ ์—ฐ๊ฒฐํ•˜๋Š” ์ƒˆ๋กœ์šด ๋ฐฉ๋ฒ•์„ ํ™•๋ณดํ•  ์ˆ˜ ์žˆ๊ณ  ๋ณ€ํ™” ์š”๊ตฌ์—์„œ ์‹ ์†ํžˆ ๋ฐ˜์‘ํ•  ์ˆ˜ ์žˆ๋‹ค๋Š” ๊ฒƒ์ด๋‹ค.

WSDL(Web Services Description Language)

WSDL์€ ์›น ์„œ๋น„์Šค ๊ธฐ์ˆ ์–ธ์–ด ๋˜๋Š” ๊ธฐ์ˆ ๋œ ์ •์˜ ํŒŒ์ผ์˜ ์ด์นญ์œผ๋กœ XML๋กœ ๊ธฐ์ˆ ๋œ๋‹ค. ์›น ์„œ๋น„์Šค์˜ ๊ตฌ์ฒด์  ๋‚ด์šฉ์ด ๊ธฐ์ˆ ๋˜์–ด ์žˆ์–ด ์„œ๋น„์Šค ์ œ๊ณต ์žฅ์†Œ, ์„œ๋น„์Šค ๋ฉ”์‹œ์ง€ ํฌ๋งท, ํ”„๋กœํ† ์ฝœ ๋“ฑ์ด ๊ธฐ์ˆ ๋œ๋‹ค. - ์œ„ํ‚คํ”ผ๋””์•„ -

https://upload.wikimedia.org/wikipedia/commons/c/c2/WSDL_11vs20.png

WSDL์€ SOAP๊ณผ XML ์Šคํ‚ค๋งˆ๋ฅผ ๊ฒฐํ•ฉํ•ด ์ธํ„ฐ๋„ท ์ƒ์— ์›น ์„œ๋น„์Šค๋ฅผ ์ œ๊ณตํ•˜๊ธฐ ์œ„ํ•ด ์‚ฌ์šฉํ•˜๋ฉฐ, ์•„๋ž˜์™€ ๊ฐ™์€ ์ •๋ณด๋ฅผ ๋‹ด๊ณ  ์žˆ๋‹ค.

  • ์›น ์„œ๋น„์Šค์˜ name, URL ์ •๋ณด

  • SOAP ๋ฉ”์„ธ์ง€์˜ ์ธ์ฝ”๋”ฉ ๊ทœ์น™

  • SOAP ๋ฉ”์„ธ์ง€ ์ „์†ก์„ ์œ„ํ•œ ํ”„๋กœํ† ์ฝœ ์ •๋ณด

  • ์›น์„œ๋น„์Šค๋ฅผ ์ด์šฉํ•˜๋Š”๋ฐ ํ•„์š”ํ•œ ์ธํ„ฐํŽ˜์ด์Šค ์ •๋ณด(type, including name, operations, parameter, data)

2.0๋ฒ„์ „์€ ์œ„์˜ ํ˜•ํƒœ๋กœ ๊ตฌํ˜„๋˜์–ด ์žˆ์œผ๋ฉฐ, ์•„๋ž˜๋Š” ์˜ˆ์‹œ์ด๋‹ค.

  • types(types,message)

    • ๋ฉ”์„ธ์ง€๋‚˜ ํ”„๋กœ์‹œ์ €์— ๋Œ€ํ•œ ๋ฐ์ดํ„ฐ ํƒ€์ž… ์„ค์ •

    • ๋ฉ”์„ธ์ง€ ์ „์†ก๊ณผ ๊ด€๋ จ๋œ ๋ฐ์ดํ„ฐ ํฌ๋งท ์ •์˜

  • interface(portType)

    • WSDL๋ฌธ์„œ๋Š” ์ด์™€ ๊ฐ™์ด ๊ตฌ์ฒด์ ์œผ๋กœ ๋ฌผ๋ฆฌ์ ์ธ ๋ถ€๋ถ„(๋ฐ์ดํ„ฐ ํƒ€์ž…)์—์„œ ์ถ”์ƒ์ ์ด๊ณ  ๋…ผ๋ฆฌ์ ์ธ ๋ถ€๋ถ„(์ธํ„ฐํŽ˜์ด์Šค)๊นŒ์ง€ ๋ชจ๋‘ ํฌ๊ด„ํ•ด ์ฐธ์กฐ ๊ฐ€๋Šฅ

  • binding

    • ๋…ผ๋ฆฌ์  ๋ชจ๋ธ๊ณผ ๋ฌผ๋ฆฌ์  ๋ชจ๋ธ ์‚ฌ์ด์˜ ์—ฐ๊ฒฐ์„ ์ œ๊ณต

    • ์ด๋ฏธ ์ •์˜ํ•œ ์ถ”์ƒ์ ์ธ ํฌํŠธํƒ€์ž…์— ์žˆ๋Š” SOAP๋ฅผ ์–ด๋–ป๊ฒŒ ์ „์†กํ•  ๊ฒƒ์ธ์ง€ ๊ตฌ์ฒด์ ์œผ๋กœ ๊ธฐ์ˆ ํ•œ ์‹ค์ œ ํฌํŠธ์— ์—ฐ๊ฒฐ

    • SOAP์— HTTP์™€ SMTP๊ฐ™์€ ํ”„๋กœํ† ์ฝœ์„ ์‚ฌ์šฉํ•˜๋ฉด ํ”„๋ก์‹œ๋‚˜ ๋ฐฉํ™”๋ฒฝ์€ ํ†ต๊ณผํ•  ์ˆ˜ ์žˆ์ง€๋งŒ, ๋ณด์•ˆ์„ฑ์— ์žˆ์–ด์„œ๋Š” ์ทจ์•ฝ

  • service

    • ํฌํŠธ ํƒ€์ž…๊ณผ ๋ฐ”์ธ๋”ฉ์„ ์ด์šฉํ•ด์„œ ์„œ๋น„์Šค์— ๋Œ€ํ•œ ์›น ์ฃผ์†Œ ๋˜๋Š” URL ์ง€์ •

    • SOAP ์„œ๋ฒ„๋ฅผ ์„ค์ •ํ•œ ์œ„์น˜๋ฅผ ์ง€์ •ํ•˜๋Š” ๊ฒƒ์ด ์ผ๋ฐ˜์ ์ธ ๋ฐฉ๋ฒ•

REST(REpresentaional State Transfer)

REST(Representational State Transfer)๋Š” ํ‘œ์ค€์„ ์ •์˜ํ•˜์ง€ ์•Š๋Š” ์•„ํ‚คํ…์ฒ˜ ์Šคํƒ€์ผ์ด๋‹ค. ์ผ๋ฐ˜์ ์œผ๋กœ JSON์ด ๋งŽ์ด ์‚ฌ์šฉ๋˜์ง€๋งŒ, XML, YAML๋“ฑ protocol์„ ๊ฐ•์ œํ•˜์ง€ ์•Š๋Š”๋‹ค.

์žฅ์ 

  • ํ”Œ๋žซํผ, ํ”„๋กœ๊ทธ๋ž˜๋ฐ์— ๋…๋ฆฝ์ ์ด๋‹ค.

  • ๊ฐ€๋ณ๊ณ  ๋น ๋ฅด๊ณ  ์‰ฝ๋‹ค.

  • ํ˜•์‹์— ๊ตฌ์• ๋ฐ›์ง€ ์•Š๋Š”๋‹ค.(XML, JSON, HTML ๋“ฑ ๋ฌด์—‡์ด๋“  ์‚ฌ์šฉ ๊ฐ€๋Šฅ)

๋‹จ์ 

  • HTTP ํ”„๋กœํ† ์ฝœ์—์„œ๋งŒ ์‚ฌ์šฉ๊ฐ€๋Šฅํ•˜๋‹ค.

  • ๋ถ„์‚ฐํ™˜๊ฒฝ์— ๋น„์ ํ•ฉํ•˜๋‹ค.(point to point ํ†ต์‹  ๋ชจ๋ธ ๊ฐ€์ •)

  • ๋ณด์•ˆ, ์ •์ฑ… ๋“ฑ์— ํ‘œ์ค€์ด ์—†๋‹ค.

RESTful์— ๋Œ€ํ•ด์„œ ๋” ์•Œ์•„๋ณด๊ธฐ

์ฐธ์กฐ

Last updated

Was this helpful?