Apr 052012
 

공공 개발을 하다 보면 행정 시스템과 연동해서 개발해야 하는 경우가 발생합니다.

기본적으로 행정 시스템에 직접 접속할수 없기 때문에 SOAP 기반의 웹서비스(WSDL)을 기반으로 데이타를 요청하고, 수신해야 합니다.

이를 위해서는 담당 공무원이 새올행정 통합지원센터를 통해서 연계아이디를 발급받고, 코드를 발급받아야 합니다.
그리고 연동 담당자와 각 서비스별로 담당자와 연계 쿼리를 발급받고, 해당 정보를 담아서 서비스로 받아야 합니다.
(여기서부터 자연스럽게 연계담당자와 통화를 좀 많이 하셔야 합니다. -_-)

나머지는 메뉴얼을 보고 연계를 하면 되지만, 처음 개념을 알지 못하면 정말 힘든 작업입니다.
그리고 중요한 것은 웹서비스(WSDL)로 통신을 하기 때문에 요청할떄 MIME 유형과 encoding 형태를 잘 맞춰야 합니다.

많이 사용하는 AXIS등을 사용하기 위해서는 웹서버의 환경과 연계서버의 환경을 잘 고려해야 합니다.
(초기에 연계서버를 개발할때 개발용 PC환경, 개발서비스 시스템과 실서비스가 환경이 모두 달라서 여러 경험을 했었습니다. 만약 해당 사항이 맞지 않으면 HTTP 500 Response가 나오기 때문에 무엇 때문에 오류인지도 모르고 고생하는 경우가 발생됩니다.)

무식한 저는 이런 고생을 많이 했고, 짧은 기간에 프로젝트를 완료해야 했기 때문에 서버의 상태를 검증하기 보다는 프로젝트 완료를 빨리 진행하기 위해서 웹클라이언트를 만들어서 처리를 빨리 했습니다. -_-

아래와 같이 Connection을 만들고, 직접 XML을 생성해서 보내는 방식이죠.

URL url = new URL(“http://”);
URLConnection con = url.openConnection();
con.addRequestProperty(“SOAPAction”,”");
con.setRequestProperty(“Content-Type”,”text/xml; charset=euc-kr”);
con.setDoOutput(true);

다시 받은 데이타도 XML을 파싱루틴도 만들어서 처리를 하면 됩니다.

하지만 또 하나의 난관은 개인정보가 될만한 사항이 있는 것은 GPKI 통신을 해야 합니다.
이를 위해서는 추가적으로 GPKI 서버용 인증 코드를 발급받아서 새올연동 서버에 등록을 해야 합니다.
그리고는 LDAP을 통해서 연계할 서버의 공개키블 받아서 저장해두고, 해당 키들로 초기화를 해야 합니다. 그런 다음 만든 XML의 일부분을 GPKI encode를 해서 전달하고, 받은 데이타의 일부분을 decode 해서 확인을 해야 합니다.
(샘플 프로그램에도 있지만, 암호화되 데이타는 base64로 encode를 해야 하며, 복호화할때에도 base64로 decode를 먼저 한 다음에 해야 합니다.)

주의할 점은 Java용 GPKI 모듈은 JNI 를 사용하기 때문에 OS에 맞는 버전으로 설치를 해야 하며, 서버에 미리 설치해서 검증을 할 수 있습니다.
또 새올행정 서버의 공개키를 받을때는 샘플 프로그램을 이용하는 방법도 있지만, LDAP 클라이언트를 하나 구해서 저장하는 방식이 더 편리합니다.
(저는 잘 몰라서 2가지 방법 모두 했습니다. -_-)

실제로 개발보다는 연동을 하기 위해서 연계팀과 진행해야 할 부분이 많으며, 경험이 있다면 쉽지만, 그렇지 않으면 처음에는 조금 고생을 하셔야 합니다.

Print Friendly

Warning: array_merge() [function.array-merge]: Argument #1 is not an array in /home/smlee/blog/wordpress/wp-content/plugins/seo-facebook-comments/seofacebook.php on line 488

Warning: Invalid argument supplied for foreach() in /home/smlee/blog/wordpress/wp-content/plugins/seo-facebook-comments/seofacebook.php on line 490

 Leave a Reply

(required)

(required)

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>

Plugin from the creators of Brindes :: More at Plulz Wordpress Plugins