웹서비스란..

2019. 4. 8. 17:01정보

반응형

 

 

용어 때문에 많이 고생했지만 정리해보자면

 

웹 서비스 > 웹서비스 로 표현 가능하며

 

웹서비스를 사용하는건 규격화라고 해야할까 독립적이라고 해야할까 아니면 공통정의라고 해야할까

 

웹이 가지는 특성을 다 가지고 있으므르 위 말이 다 틀린건 아니다.

 

웹서비스를 시작하면서 WSDL, SOAP뭐 이런 용어들이 나온다..

 

WSDL(Web Services Description Language의 약자)은 웹 서비스 기술언어 또는 기술된 정의 파일의 총칭으로 XML로 기술된다. 웹 서비스의 구체적 내용이 기술되어 있어 서비스 제공 장소, 서비스 메시지 포맷, 프로토콜 등이 기술된다.

 

SOAP(Simple Object Access Protocol)은 일반적으로 널리 알려진 HTTP, HTTPS, SMTP 등을 통해 XML 기반의 메시지를 컴퓨터 네트워크 상에서 교환하는 프로토콜이다. SOAP은 웹 서비스에서 기본적인 메시지를 전달하는 기반이 된다. SOAP에는 몇가지 형태의 메시지 패턴이 있지만, 보통의 경우 원격 프로시져 호출(Remote Procedure Call:RPC) 패턴으로, 네트워크 노드(클라이언트)에서 다른 쪽 노드(서버)쪽으로 메시지를 요청 하고, 서버는 메시지를 즉시 응답하게 된다. SOAP는 XML-RPC와 WDDX에서 envelope/header/body로 이루어진 구조와 전송(transport)과 상호 중립성(interaction neutrality)의 개념을 가져왔다.

 

SOAP은 XML을 근간으로 헤더와 바디를 조합하는 디자인 패턴으로 설계되어 있다. 「헤더」는 선택사항으로 반복이나 보안 및 트랜잭션을 정보로 하는 메타 정보를 가지고 있다. 「바디」부분은 주요한 정보인 정보를 가지고 있다.

 

 

위 두개를 읽어보면 XML이라는 공통된 부분이 있다.

 

정리해보면 SOAP 통신을 하기위해서 WSDL 정보를 작성한 것이다.

 

웹서비스를 사용하기 위해서는 WSDL만 만들어서 배포하면 간단하게 사용할 수 있는것이다.

 

그럼 WSDL은 우리가 만들어야 하나? 아니다 인터페이스용 개발을 하는것이라면 해당 서비스 로직을 가진곳에서 WSDL 파일을 생성해서 내려준다. 이게 기본이다. 나는 진짜 이걸 내가 만들어서 규약 맞추고 삽질을 해야하나 했었는데 (깔깔 노가단데 이걸 왜쓰지?했었다..)

 

서비스 제공단에서 WSDL을 내려주면 우리는 아래와 같이 사용할수 있는 클래스를 생성해서 호출 하면 끝이다.

 

물론 WSDL안에는 원격지 서비스명이나 접속 방법 데이터 타입이 정의되어 있어야 한다.

 

사용방법은 이클립스 J2EE 버젼(WTP)을 설치하고(몇가지 플러그인을 별도로 설치해도 됨)

 

new > web services > WSDL을 임포트 하면서 프로젝트를 생성한다(끝).

 

서버 부터 테스트 클라이언트까지 한번에 생성할 수 있으며, 테스트 모듈은 개별로 JSP 페이지를 생성해 주어서 데이터만 넣으면 바로 확인이 가능하다.

 

사용해 보면서 참 편하고 확인 하기도 좋은 장점이 있긴한데, 소규모 프로젝트성 개발이나 요구사항이 변경되기 쉬운 프로젝트(안 그런 프로젝트가 있을까?)에서는 개발 기간보다이런 부분이 정의 되는 작업이 더 많아 져서 사용이 조금 힘들지 않을까 싶다. 기능정의서 조차도 제대로 안되어있고 소수의 인원으로 개발한다면 WSDL 작성하는 부하 보다는 바로바로 데이터를 맞춰서 개발하는 편이 더 나아 보인다. 웹서비스가 상당히 오래전에 나온 스팩임에도 많이 활용되지 못하는 이유가 아마 그런게 아닐까 싶다.

 

뭔가 정리를 한다고 썻는데 결론은 정의된 프로토콜을 사용하기 위한 규약정보 나열이 되겠다.

 

결론 웹서비스 별거 없다.

(너무 쫄 필요가 없었던 것이다.)

 

 

 

 

 

 

 

'정보' 카테고리의 다른 글

TBD, TBC, TBA, FYI 뜻  (0) 2019.06.26
[감동] 자소서  (0) 2019.04.11
쿠키와 세션  (0) 2019.03.08
DataBaseConnetionPool (DBCP)  (0) 2019.03.07
고스톱을 배워보자  (0) 2019.03.06