C# SOAP ํ†ต์‹  ๋ฌธ์˜

์•ˆ๋…•ํ•˜์„ธ์š”.

WPF์„ ๋ฐฐ๋‹˜๋“ค SOAPํ†ต์‹ ์„ ๊ด€๋ จํ•ด์„œ ๋ช‡๊ฐ€์ง€ ์—ฌ์ญ™๊ณ ์ž ํ•ฉ๋‹ˆ๋‹ค.

  1. WPF๋ฅผ ๊ธฐ๋ฐ˜์œผ๋กœ SOAP๋ชจ๋“ˆ์„ ์ œ์ž‘ํ•˜๋ ค๊ณ  ํ•˜๋Š”๋ฐ์š”. ์ถ”์ฒœํ•ด์ฃผ์‹ค๋งŒํ•œ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๊ฐ€ ์žˆ์„๊นŒ์š” ?

  2. C#์œผ๋กœ WSDL์„ Generateํ•ด์•ผ๋˜๋Š”๋ฐ ๋ฐฉ๋ฒ•์„ ์ž˜ ๋ชจ๋ฅด๊ฒ ์Šต๋‹ˆ๋‹ค.

ํ˜น์‹œ ๊ฒฝํ—˜์ด ์žˆ์œผ์‹  ์„ ๋ฐฐ๋‹˜๋“ค์ด ๊ณ„์‹ค๊นŒ์š”?

2๊ฐœ์˜ ์ข‹์•„์š”

SOAP ๋ชจ๋“ˆ์ด๋ผ ํ•˜๋ฉดโ€ฆ
์›นAPI ๋ฅผ ์ œ๊ณตํ•˜๊ฒ ๋‹ค๋Š” ๊ฑฐ์ฃ ?

์š”์ฆ˜์€ ๋”ฑํžˆ SOAP ์„ ์‚ฌ์šฉํ•˜์ง€๋Š” ์•Š๋Š”๋ฐ, ๊ตณ์ด ์‚ฌ์šฉํ•ด์•ผํ•˜๋Š” ์ƒํ™ฉ์ด๋ผ๋ฉดโ€ฆ

๋‹ท๋„ท ์ด๋ผ๋ฉด WCF ๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด ๋ฉ๋‹ˆ๋‹ค.

๋‹จ์ง€ ์ œ๋Œ€๋กœ ๋‹ค ์ตํ˜€์„œ ์‚ฌ์šฉํ•˜๋ ค๋ฉด ์—„์ฒญ๋‚œ ํ•™์Šต ์ปค๋ธŒ๋ฅผ ๊ฐ์ˆ˜ํ•ด์•ผโ€ฆ ์ฟจ๋Ÿญโ€ฆ
(์•„โ€ฆ ์ฑ…๊ด‘๊ณ ๋Š” ์•„๋‹ˆ๊ณ โ€ฆ)

๊ทธ๊ฒŒ ๋ถ€๋‹ด์Šค๋Ÿฌ์šฐ๋ฉด ASP.NET ์˜ ์›น ์„œ๋น„์Šค๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ๋„ ๋ฐฉ๋ฒ•์ž…๋‹ˆ๋‹ค.

4๊ฐœ์˜ ์ข‹์•„์š”

Greg.Lee ๋‹˜ ํ•ญ์ƒ ๊ฐ์‚ฌ๋“œ๋ฆฝ๋‹ˆ๋‹ค~^^

์ผ๋‹จ ๊ทธ๋ƒฅ WSDL์„ ์ œ๋„ˆ๋ ˆ์ดํŠธ ํ•˜๋‹ˆ๊นŒ C# ํŒŒ์ผ์ด ๋งŒ๋“ค์–ด์ง€๋„ค์š”. ํ•ด๋‹น ํด๋ž˜์Šค ์ œ๋„ˆ๋ ˆ์ดํŠธ ๋œ ๊ฒƒ์œผ๋กœ ์ด์šฉํ•˜๊ธฐ๋กœ ํ–ˆ์–ด์š”.

[์ฐธ๊ณ ] WSDL.exe ์žˆ๋Š” ๊ณณ
(์ƒํ™ฉ๋งˆ๋‹ค ๋‹ค๋ฅผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.)
์ €๋Š” .net 4.8์„ ์„ค์น˜ํ•˜์—ฌ์„œโ€ฆ
์œ„์น˜ => C:\Program Files (x86)\Microsoft SDKs\Windows\v10.0A\bin\NETFX 4.8 Tools\wsdl.exe

-ํ˜•์‹-
wsdl.exe /namespace:<Namespace> /out:<Filename> <WSDL-document>
-์˜ˆ์ œ-
wsdl.exe /namespace:MyProject.Soap /out: c:\workspace\MyProject.Soap\

์ฐธ๊ณ  ์›๋ฌธ
์š”์ฆ˜ ๊ฑฐ์˜ RestApi ์จ์„œ ์ €๋„ ์“ธ์ผ ์—†์„ ์ค„ ์•Œ์•˜๋Š”๋ฐโ€ฆ ์ƒํ™ฉ์ƒ ์“ฐ๊ฒŒ ๋˜๋„ค์š”~ ^^

1๊ฐœ์˜ ์ข‹์•„์š”

์•„ wsdl ์„ generate ํ•œ ๋‹ค๋Š” ๊ฒŒ wsdl ์„ ํด๋ผ์ด์–ธํŠธ ํด๋ž˜์Šค ํŒŒ์ผ๋กœ ๋ฝ‘๊ณ  ์‹ถ๋‹ค๋Š” ์–˜๊ธฐ์˜€๊ตฐ์š”.
(์ œ๊ฐ€ ๋ฐ˜๋Œ€๋กœ ์ดํ•ดํ–ˆ๊ตฐ์š”โ€ฆ -ใ……ใ…ก;;; )

๋™์ ์œผ๋กœ ์ƒ์„ฑํ•ด์„œ ์‚ฌ์šฉํ•˜๋Š” ๊ฒŒ ์•„๋‹ˆ๋ผ๋ฉด wsdl ์–ด์…ˆ๋ธ”๋ฆฌ๋ฅผ ํ˜ธ์ถœํ•˜๋Š” ๊ฒƒ๋ณด๋‹ค๋Š”
VS ์˜ Service reference ๊ธฐ๋Šฅ์„ ๋” ์ถ”์ฒœํ•ฉ๋‹ˆ๋‹ค.

๋™์ ์œผ๋กœ ์‚ฌ์šฉํ•˜๋ฉด ์ผ๋‹จ ๋””์ž์ธํƒ€์ž„์— ์ฐธ์กฐ๋ฅผ ํ•˜๊ธฐ ์–ด๋ ต๊ฒ ์ฃ ?
(๊ทธ๋ ‡๊ฒŒ ๋˜๋ฉด ํด๋ž˜์Šค ํŒŒ์ผ๋กœ ๋ฝ‘์•„๋‚ด๋Š” ์˜๋ฏธ๊ฐ€ ๋งŽ์ด ํ‡ด์ƒ‰๋  ๊ฑฐ ๊ฐ™์•„์š”.)

์–ด์ฐจํ”ผ wsdl ์„ ์ œ๊ณตํ•˜๋Š” ์ธก๋„ ๋ณ€๊ฒฝ์„ ์ ์šฉํ•˜๋ ค๋ฉด down time ์ด ํ•„์š”ํ• ํ…๋ฐ
์ด down time ์„ ๊ณต์œ ํ•ด์•ผํ•œ๋‹ค๋ฉด ํด๋ผ์ด์–ธํŠธ ์ธก๋„ ์ •์ ์œผ๋กœ ๋ฆฌ๋นŒ๋“œ๊ฐ€ ํ•„์š”ํ•˜๊ฒŒ ๋  ๊ฑฐ์˜ˆ์š”.

๊ทธ๋ ‡๋‹ค๋ฉด Service Reference ๋ฅผ ์ด์šฉํ•ด, ํด๋ž˜์Šค ํŒŒ์ผ ์ƒ์„ฑ๊ณผ ์ฐธ์กฐ๋ฅผ ํ•จ๊ป˜ ์ž๋™์œผ๋กœ ์ˆ˜ํ–‰ํ•  ์ˆ˜ ์žˆ๊ฒŒ ๋งŒ๋“œ๋Š” ํŽธ์ด ๋‚˜์•„ ๋ณด์—ฌ์—ฌ

2๊ฐœ์˜ ์ข‹์•„์š”

WCF๋ฅผ ์ด์šฉํ•ด๋ณด๋‹ˆ๊นŒ ์ข€ ์‚ฌ์šฉ๋ฒ•์€ ์ดํ•ดํ•  ์ˆ˜ ์žˆ์„ ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค.

WCF ๊ณต๋ถ€

์œ„ ๋ธ”๋กœ๊ทธ ์ฐธ๊ณ ํ•ด์„œ ํŒŒ๋ดค์Šต๋‹ˆ๋‹ค.

svcutil์„ ์ด์šฉํ•ด์„œ class generate๋ฅผ ํ•˜๊ณ  ํ•ด๋‹น ๋ฐ์ดํ„ฐ๋ฅผ SOAP ํ†ต์‹ ์œผ๋กœ ํ™œ์šฉํ–ˆ์Šต๋‹ˆ๋‹ค.
๊ทธ๋Ÿฐ๋ฐ ๊ฐœ๋ฐœ์„œ๋ฒ„ ์ชฝ์ด CPP๋ฅผ ๊ธฐ๋ฐ˜์œผ๋กœ ๋งŒ๋“ค์–ด์ ธ์„œ ๊ทธ๋Ÿฐ์ง€ ๊ธฐ์กด์— ๊ตฌ์กฐ์ฒด ๋ฐ์ดํ„ฐ๋กœ ๋งŒ๋“ค์–ด์ง„ ๋ฐ์ดํ„ฐ๋ฅผ soap์œผ๋กœ ์ฃผ๊ณ  ๋ฐ›์œผ๋ฉด์„œ Generate๋œ ํด๋ž˜์Šค์˜ ํƒ€์ž…์ด stirng์œผ๋กœ ์ง€์ •๋˜์„œ ๋ฐ์ดํ„ฐ๊ฐ€ ๊นจ์ง€๋Š” ๋ฌธ์ œ๊ฐ€ ๋ฐœ์ƒํ•˜๋”๋ผ๊ณ ์š”.

ํ•ด๋‹น ์—…์ฒด๋„ CPP๊ธฐ๋ฐ˜์˜ gSoap๋งŒ ์ง€์›ํ•ด์„œ ์–ด์ฉ”์ˆ˜ ์—†์ด gsoap๊ธฐ๋ฐ˜์˜ cpp๋ฐ์ดํ„ฐ๋กœ generateํ•ด์„œ dll๋งŒ๋“ค๊ณ  ๊ทธ๊ฑธ C#์—์„œ ์จ์•ผ๋  ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค.

ํž˜๋“œ๋„ค์š”โ€ฆใ… ใ… 
ํƒ€์ž…์ด ๋ˆ„๋ฝ๋˜๊ณ , ๊ทธ ๋ˆ„๋ฝ๋œ ํƒ€์ž…์„ ๊ทธ๋ƒฅ string ๊ฐ™์€ ๊ฒƒ์œผ๋กœ

1๊ฐœ์˜ ์ข‹์•„์š”