Pyun's

1. REST

1.1 REST (Representational State Transfer, 표현 상태 정의)

가. 정의

REST는 네트워크 구조원리의 모음, 리소스를 정의하고 자원에 대한 주소를 지정하는 방법에 대한 조건. , 도메인 지향 데이터를 HTTP 위에서 부가적인 전송 레이어 없이 전송하기 위한 간단한 구조를 정의한 것.

나. REST의 제약조건 (모든 조건을 만족하는 것을 'RESTful'하다고 함.)

1) 클라이언트/서버(Client/Server) : 웹의 일관된 인터페이스를 따른 다는 전제하에 클라이언트와 서버는 독립적으로 구현되어야함.

2) 균일한 인터페이스 (Uniform Interface): 자원 식별, 표현을 통한 자원처리, 자기 서술적 메시지, HATEOAS 같은 인터페이스 제약에 따라 서로 일관성 있게 상호 운영되어야한다.

3) 계층시스템(Layered System) : 웹의 일관된 인터페이스를 사용해서 프락시 또는 게이트웨이 같은 네트워크 기반의 중간매체를 사용할 수 있어야 한다.

4) 캐시 처리(Cacheable) : 웹 서버가 응답 데이터마다 캐시 여부를 선언 할 수 있어야 한다.

5) 무상태(Stateless) : 웹 서버가 클라이언트의 상태를 관리할 필요가 없어야 한다.

6) 주문형 코드(Code-on-demand) : 선택 사항으로 스크립트나 플러그인 같은 실행 가능한 프로그램을 클라이언트에 전송하여 클라이언트가 실행할 수 있도록 해야 한다.



1.2 REST API

가. 정의

1)웹 서비스는 네트워크상에서 서로 다른 시스템간의 상호 작용을 위한기술.

2)주고받는 데이터 형식에 대한 표준을 정의함으로써 플랫폼과 프로그램 언어와는 독립된 방법으로 서로 연동 가능.

3)클라이언트가 웹 서버에서 제공하는 API이용하여 데이터와 기능을 제공 받을 수 있다.

*API(Application Programming Interface): 운영체제와 응용프로그램 사이의 통신에 사용되는 언어나 메시지 형식을 말한다.

4) 기존에는 SOAP(Simple Object Access Protocol)을 기반으로 웹서비스를 구현 했으나 처리 오버헤드 및 복잡성 때문에 요즘은 REST구조 스타일을 주로 사용.



1.3 REST에서의 Resource

가. 정의

1) REST API는 URI경로를 사용해서 자원을 나타내고 포인트 슬래시(/)로 경로 구문을 나눈다. 이 경로 구문은 자원 계층에서 유일한 자원을 나타낸다.

2) REST API에서는 CRUD 기능을 수핼 할 때는 URI(Uniform Resource Identifier)에 나타내지 않는다. 즉 URI는 자원을 식별 할때만 사용하고, CRUD 기능을 수행 할 때에는 HTTP Request Method를 사용한다.

 HTTP Method 

 의미 

 CRUD 

 예제 

 POST

 새로운 자원을 생성한다. 

 Create 

 POST /books 

 GET 

 자원을 조사한다.

 Read

 GET /books/1 

 PUT 

 기존에 존재하는 자원을 변경한다.

 Update

 PUT /books/1 

 DELETE 

 기존에 존재하는 자원을 삭제한다.

 Delete

 DELET /books/1 



1.4 Spring Web MVC

가. Modal 1 Pattern VS Modal 2 Pattern

1) Pattern : 수많은 시행착오를 통해서 좀더 효율적인 방법들을 체계화시키고 정리한 것.

■Model 1 

  1) 예전에 많이 사용하던 개발방식, 사용자에 요청을 서블릿이나 JSP가 받아서 필요한 자바빈을 효출후 결과값을 출력.

  2) 개발 속도가 빠르고 쉽다는 장점이 잇으나 로직이 섞여 있어서 디자인 영역과에 구분이 어려워지고 코드가 복잡해지는 단점이 있다.

■Model 2

  1) MVC 패턴을 이용함. MVC 패턴이란 Model,  View, Controller 세 영역으로 나누어지는 구조로 된 어플리케이션이다.

  2) 서로에 대한 역할이 명확하기 때문에 각가의 영역에 대한 독립성을 보장한다.

   Model 영역      : 어플리케이션에서 사용되는 데이터를 다루고너 비즈니스 로직을 다루는 영역.

   View 영역        : View영역을 통해서 사용자가 보는 웹페이지를 생성하는 영역. 

   Controller 영역 : Model 영역과 View영역 간의 흐름을 제어하는 역할. 클라이언트의 요청을 받아 이를 처리하기 위한 Model 영역을 호출하고 그결과를 View                            에게 전달.

   * MVC 패턴은 각각에 역할이 명확하게 나누어져 있기 때문에 오직 각 부분에서 담당하는 기능만 구현하면 된다.

나.  Spring Web MVC

      1) Spring에서 제공해주는 MVC 프레임워크

      2) Spring에 기능을 그대로 사용하면서 MVC 패턴에 기반을 둔 웹어플리케이션 개발 방법.


--임시 http://maven.apache.org/download.cgi 메이븐 저장

-- DB_LINK 확인

SELECT * FROM ALL_DB_LINKS;


-- DB_LINK 생성하는 방법

1. tnsora 파일에 연결하려는 DB_LINK 설정 정보 생성

2. db링크 적용할 오라클  계정 접속

3.DB_LINK 생성

-tnsora 파일에 등록되있는경우

 CREATE DATABASE LINK "DB_LINK명" --DB_LINK명

 CONNECT TO "USERID"

 IDENTIFIED BY "USERPW" 

 USING 'SERVICENAME' --HOST필드에 들어감

 

-tnsora 파일에 등록되지 않은 경우

 CREATE DATABASE LINK "DB_LINK명" --DB_LINK명

 CONNECT TO "USERID"

 IDENTIFIED BY "USERPW" 

 USING '(DESCRIPTION =

   (ADDRESS = (PROTOCOL= TCP)(Host=XXX.XXXX.XXXX.XXXX )(Port= XXXX))

    (CONNECT_DATA = (SID = XXXX))

  )' <<< tns 정보 입력 풀로

 

 

4.DB_LINK 삭제

DROP DATABASE LINK DB_LINK명

'Webservice > 연동' 카테고리의 다른 글

[SOAP] SOAP 특징/ 장단점  (0) 2017.03.10
[REST] REST 특징/장단점  (0) 2017.03.09
[SOAP / REST] SOAP과 REST ..1  (0) 2017.03.08

1.  SOAP 의 특징(Simple Object Access Protocol)

    ● https, http등을 사용하여 XML 기반의 메시지를 네트워크 상에서 교환하는 형태에 프로토콜. 웹 서비스에서  기본적인 메시지를 전달하는 기반.

    ● Client가 물리적으로 인접하지 않은 서버에게 객체나 함수를 호출하여 호출에 대한 결과 값을  받는 RPC중 하나.

    ● 표준화 된 HTTP를 사용하기때문에 모든 기종에서 호환성을 보장.

    ● 분산 웹서비스 환경에서 정보를 교환하는 간단한 통신 프로토콜 

      SOAP = XML+HTTP

1) 클라이언트에 요청과 서버측에 응답을 XML문자열로 포장한후 HTTP로 전송 하는방식

 

2.  SOAP의 장점

    ● 언어 , 플랫폼 , 통신에 중립적

    ● 분산 컴퓨팅 환경을 다루기위해 설계

     에러 처리에 대한 내용이 기본적으로 내장ㅈ

    ●  웹서비스를 위해 보급된 많은 표준과 벤더에 제공하는 도구.


3.  SOAP의 단점

    ●  REST 연동에 비해 복잡하고 무거움

    ●  개발이 어렵고 , 보통 도구(툴)이 필요함



'Webservice > 연동' 카테고리의 다른 글

DB_LINK 생성/삭제  (0) 2017.05.30
[REST] REST 특징/장단점  (0) 2017.03.09
[SOAP / REST] SOAP과 REST ..1  (0) 2017.03.08

1.  REST의 특징(Representational State Transfer)

    ● 클라이언트 / 서버 구조

    ● HTTP와 XML을 포함한 웹 기술/프로토콜으로 SOAP보다 사용이 간편.

    ● ROA의 4가지 속성(Addressability, Connectedness, Statelessness, Homogeneous(Uniform) Interface)과 깊은 관련이있다.

1) Addressability : URI 이용

  서버에 있 모든 Resource는 각 Resource당 클라이언트가 바로 접근 할 수 있는 고유 URI가 존재.


2) Statelessness  : stateless

  모든 요청은 클라이언트가 요청을 할때마다 필요한 정보를 주기때문에 서버에서는 세션정보를 보관할 필요가 없다,  그렇기 때문에 서비스에 자유도가 높아지고 유연한 아키텍처에 적응이 가능하다.

 

3) Homogeneous(Uniform) Interface : HTTP 메소드를 사용 

 모든 Resource는 일반적으로 httpd 인터페이스인 GET,POST,PUT,DELETE 4개의 매소드로 접근되어야함(추가로 HEAD나 OPTION을 추가하기도함).

 결국 4개 매소드로만 DB의 CRUD(Create:POST, Read:GET , Update:PUT , Delete:DELETE) 기능을 하기때문에 이 유형이 아닌경우 처리가 모호해짐.

 * 문자는 다음과 같이 표준 SQL문으로 대응 가능하다. 

          4) Connectedness(연결성)

  서비스내에 하나의 리소스가 주변에 연관된 리소스들과 연결되어 표현(Presentation)이 되어야한다.


2.  REST의 장점

    ●  언어 , 플랫폼에 독립적임(= 제한 되지않음)

    ●  SOAP보다 개발이 쉽고 단순함.

      REST가 지원하는 프레임 워크나 언어 등 도구들이 없어도 구현가능.

    ● 기존 웹 인프라를 사용가능 : 기존 HTTP를 그대로 사용하기 때문에 구현이가능


3.  REST의 단점

    ●  HTTP 프로토콜만 사용가능

    ●  P2P 통신 모델을 가정 했기 때문에 둘 이상을 대상으로 하는  분산 환경엔 유용하지 않음.

    ●  보안, 정책등에 대한 표준이 없기 때문에 관리가 어렵고 이러한 부분까지 고려해서 구현 할 경우 설계나 구현에서 좀 더 어려움.


'Webservice > 연동' 카테고리의 다른 글

DB_LINK 생성/삭제  (0) 2017.05.30
[SOAP] SOAP 특징/ 장단점  (0) 2017.03.10
[SOAP / REST] SOAP과 REST ..1  (0) 2017.03.08

아키텍처 [ Architecture ] (컴퓨터 시스템의 구성):

 하드웨어와 소프트웨어를 구성하는 요소들에 대한 전체의 설계 방식. 쉽게 말하면 소프트웨어에 구조같은 ..


RPC (Remote Procedure Call)  원격 절차 호출

한 프로그램이 다른 네트워크 상의 다른 컴퓨터에 위치하고 있는 프로그램에 서비스를 요청할때 서비스를 요청하는 프로그램이 네트워크에 상세 내용을 알지 못하더라도 요청이 되도록 해줄때 사용하는 Protocol


SOAP [Simple Object Access Protocol ]  : 

 플랫폼 ,프로그래밍  언어에   제한 받지않고 분산처리 환경에서 정보교환을 쉽게 할 수 잇도록 한 규약.


SMTP [ simple mail transfer protocol ]   :

 인터넷 상에서 전자 메일을 전송할 때 쓰이는 표준적인 프로토콜.


WSDL [web Services Description Language] : 

비즈니스 서비스를 기술하여 비즈니스들끼리 전자적으로 서로 접근하는 방법을 제공하기 위해 사용되는 xml기반의 언어.


WADL [Web Application Description Language] :

 HTTP 기반 웹 응용 프로그램에 대 한 컴퓨터 판독이 가능한 XML 기반의 파일 형식.


로드 밸런싱:

 분산처리 서비스 중 하나로, 네트워크 상단에 존재하는 L4 스위치에 있는 가상서버에서 들어오는 패킷을 리얼 서버로 균일하게 트래픽을 부하 분산하여 트래픽 부하 현상을 보안


Servlet(서블릿)(https://mangkyu.tistory.com/14)

웹프로그래밍에서 클라이언트의 요청을 처리하고 그 결과를 다시 클라이언트에게 전송하는 Servlet 클래스의 구현 규칙을 지킨 자바 프로그래밍 기술


라이브러리
자주 사용되는 로직을 재사용하기 편리하도록 잘 정리한 일련의 코드들의 집합을 의미합니다. (참고: 생활코딩)

프레임워크
기본적으로 구성하고 있는 뼈대.
"소프트웨어의 구체적인 부분에 해당하는 설계와 구현을 재사용이 가능하게끔 일련의 협업화된 형태로 클래스들을 제공하는 것"
프레임워크는 구체적이고 확장가능한 기반코드를 가지고 애플리케이션의 틀과 구조를 결정할 뿐만 아니라 개발자의 코드를 제어한다. 
구조에 대한 일종의 가이드라인이라고 생각하자. (이미 규칙이 정해진)
  • 확장 가능한 기반 코드 : 설계의 기반이 되는 부분을 기술 
  • 라이브러리 : 개발자가 코드를 확장하는 데 필요한 라이브러리

컴포넌트

프로그래밍의 한 부분을 의미하며 재사용이 가능한 최소 단위를 말한다. 

모듈(Module)과 혼동될 수 있는데 모듈은 특정 기능을 온전히 수행할 수 있도록 만들어 졌다면 그 모듈 내에서도 재사용이 가능한 단위가 컴포넌트라 수 있다

1. SOAP(Simple Object Acess Protocol)
    ● XML을 이용해서 분산처리 환경에서 플랫폼에 영향을 받지않고 정보교환을 할 수 있도록 도와주는 프로토콜.

    ● 요청자가 서버에서 객체나 함수를 호출하여 그값을 변환 받는 RPC(Remote procedure call) 방식중 하나.

    ● HTTP 프로토콜을 사용하기 때문에 거의 모든 기종에서 호환.

    ● 플랫폼에 독립적이며 포로그래밍 언어에도 독립적인 특성.

      



2. REST(Representational State Transfer)

 웹서비스 기존 전달 프로토콜인 SOAP(Simple Object Access Protocol)은  처리 시 원하던 기능에 비해 처리의 오버해드가 발생하는 문제가 있었는데 이러한 단점을 보안하기 위해 등장한 구현 기술이 RESTful 웹서비스.

클라이언트 / 서버 간의 구성요소를 엄격히 분리하여 구현시 단순하고 성능을 높일수 있는 아키텍처(설계방식).

기본적으로 HTTP 프로토콜로 데이터를 전송.


3. SOAP과 REST에 구조/비교

   





1) SOAP

● SOAP(Service Oriented Archiecture)은 SOA로 서비스 지향 구조.

● 서버측에서 UDDI에 레지스트리를 등록하면 요청자가 UDDI에서 제공 서비스 확인 후 서비스 요청 하게 되면 응답자가 그 서비스를 제공하는 형식.


2) RESTful

● ROA (Resource Oriented Archiecture), 리소스 지향 구조.

● 서비스 요청자가 *리소스로 요청하면 제공자가 직접 리소스로 제공해주는 방식.

● Rest구조에서는 리소스마다 고유한 URI를 갖고 있음.

*리소스(Resource):  웹에서 다른 이들과 공유하고자 개방된 모든 자원




참조 ) http://blog.naver.com/hoyeon0/50137172782

'Webservice > 연동' 카테고리의 다른 글

DB_LINK 생성/삭제  (0) 2017.05.30
[SOAP] SOAP 특징/ 장단점  (0) 2017.03.10
[REST] REST 특징/장단점  (0) 2017.03.09