공모전을 준비하다 공공DB 사용여부에 대한 말이 나오길레 그동안 존재만 알고 써본적이 없던걸..
한번 써보려고 합니다.
그런데 공공DB가 어떤식으로 제공되는줄 몰랐는데..
OpenAPI로 제공되는걸 받아쓰면 되는거 같네요..
그런데 서비스 유형이 SOAP , REST , RSS/ATOM 3가지가 있습니다.
REST는 제가 알기로 일반적으로 구글 날씨처럼 XML형태로 제공되는걸로 알고있습니다. (맞나요??)
RSS 형태도 그냥 XML 파싱해서 사용하면 되는거 아닌가요?? (맞나요 ;;)
SOAP 형태는 어떻게 쓰는건지요?? 데이터포맷은 XML이라고 되있긴 한데..
예전에 언로킹 안드로이드라는 책에서 SOAP형태는 모바일 플랫폼에서 사용하기 적절한 형태가 아니라는 글을
읽은적이 있는거 같아서요..
제가 아는 일반적인 API이용 형태라곤 구글 날씨처럼 XML페이지 받아와 파싱하는 방법밖에 없습니다..
서비스 형태별 주의해야 할점이나 특별한 사용방법 같은게 있는지요...
능력자 님들의 친절한 답변 기다리겠습니다 ㅠ
답변 감사드립니다~
저 그렇다면 공공DB가 soap로 서비스를 제공한다는것은 단순히 서버의 원격 메서드에 값을 날려주고 그 결과를 xml로 받아서
제가 파싱해 사용하면 되는건가요??
그렇다면 SOAP와 제가 생각하기로 REST 형식의 서비스라 생각하는 구글 날씨 API와의 차이점은 사용하는 사용자 관점에서 볼때
구글 날씨처럼 URL로 인자를 전달하느냐 SoapObject를 이용해서 원격메서드에 값을 날려주느냐의 차이가 맞는지요..
구현 방법에 있어서는 분명 다르겠지만 단순히 사용자가 API를 사용하는 관점에서요..
그리고.. 안드로이드에서 원격 메서드에 바로 값을 날릴수 있나요??
SOAP은 Web Service Definition Language (WSDL) 제공하는데,
이 WSDL 정보로 이클립스나 기타 SOAP 툴에서 Java소스를 만들어 줍니다.
자동으로 만들어준 이 Java 소스로 호출 하고 반환값도 받아 올수 있습니다.
루틴님이 설명하셨듯이
xml 파싱이나 http 호출하는 코딩은 하지 않아도
자동으로 생성된 소스로 객체를 만들고, 호출하면 됩니다.
다시말해
내부적으로 http로 웹메소드를 호출해서 결과값을 xml로 받아와서 파싱부분은
자동 생성되는 소스가 알아서 다 해주네요.




저도 정확히는 잘 모르지만
soap통신을 이용해서 서버 연동을 한적이 있어서 도움이 될까해서 답글 남겨요..ㅎㅎ
soap 는 원격 메소드의 이름과 필요한 매개변수들을 전달한다는 것이 제일 큰 특징이 아닐까 합니다.
앱에서 원격 서버에 접속해서 검색을 하는 작업을 예를 든다면요..
앱에서 검색값을 입력 받은 후에 SoapObject를 이용해서 서버에 원격 메소드에 검색값을 날려줍니다.
서버에는 원격메소드가 구축되어 있어야 되는데요 (asp.net 을 예를 들자면 웹서비스/웹메소드를 구축하셔야 됩니다)
서버에 웹메소드는 앱에서 받은 검색값을 이용해서 쿼리를 날리던지 해서 결과값을 xml로 리턴해주는 작업을 합니다
다시 앱에서는 웹메소드가 리턴해준 xml값을 받아서 파싱한후에 결과값을 나타내주면 됩니다
도움이 되셨는지 모르겠습니다.. 아래링크 한번 참고해 보세요^^
http://ondestroy.tistory.com/entry/Android-aspnet-mssql-%EC%97%B0%EB%8F%99