Web Programming

REST, 디자인 패턴, JSON Parsing

안녕하세요 씨앤텍 시스템즈 김준형입니다.

이번 포스트는 REST, 디자인 패턴, JSON Parsing에 대해서 정리해 보았습니다. 

 

먼저 목차 입니다.


1. REST

2. 디자인 패턴

3. JSON Parsing


 

1. REST (Representational State Transfer)

 

* Rest 란?

 Rest 란 HTTP URI를 통해 자원(Resource)을 명시하고, HTTP Method(POST, GET, PUT, DELETE)를 통해 해당 자원에 대한 CRUD Operation을 적용하는 것을 의미 합니다.

 

* Rest의 특징

 

1. 인터페이스 : URI로 지정한 리소스에 대한 조작을 한정적인 인터페이스로 수행
2. 무상태성 : 작업을 위한 상태정보를 따로 저장하고 관리하지 않음
3. 자체표현구조 : Rest API 메시지만 보고도 이해할 수 있는 구조
4. 캐시기능 : HTTP 라는 기존 웹표준을 사용하기 때문에 HTTP의 캐시 기능 적용 가능

 

 

METHOD

역할

POST

POST를 통해 해당 URI를 요청하면 리소스를 생성

GET

GET을 통해 해당 리소스를 조회

PUT

PUT을 통해 해당 리소스를 수정

DELETE

DELETE를 통해 리소스를 삭제

 

이름

조작

SQL

Create

생성

INSERT

Read

읽기

SELECT

Update

갱신

UPDATE

Delete

삭제

DELETE

 

2. 디자인 패턴

 

* 디자인 패턴이란?

 • 디자인 패턴은 건축으로 보면 공법에 해당하는 것으로 소프트웨어의 개발 방법을 공식화 한 것입니다.

 • 과거의 소프트웨어 개발 과정에서 발견한 설계의 노하우를 일종의 패턴으로 정리 한 것입니다.

 

* 디자인 패턴을 정의 하는 이유

 • 복잡한 구조를 한 단어로 정의하면서 개발자들이 협업을 할 때에 의사소통을 효율적으로 가능합니다.

 • 기존 코드의 문제점에 대해서 검증된 방법으로 해결 방안을 찾을 수 있어서 효율적으로 코드 개선이 가능합니다.

 

 MVC란 Model View Controller의 약자로 어플리케이션을 세가지의 역할로 구분한 개발 방법론입니다.

 

Model           : 프로그램에서 사용되는 실제 데이터 및 데이터 조작

                          로직을 처리하는 부분입니다.

View              : 사용자에게 제공되어 보여지는 UI 부분입니다.

Controller  : 사용자의 입력을 받고 처리하는 부분입니다.

 

- 동작 -

1. 사용자의 Action이 Controller에 입력합니다.
2. Controller는 사용자의 Action을 확인하고 Model을 업데이트

     합니다.

2. Controller는 Model을 나타내 줄 View를 선택합니다.

3. View는 Model을 이용하여 화면에 출력합니다.

 

• 특징 : Controller는 여러 개의 View를 선택할 수 있는 1:n 구조입니다.
             Controller는 View를 선택할 뿐 직접 업데이트 하지 않습니다.

• 장점 : 단순하다 보니 보편적으로 많이 사용되는 디자인패턴입니다.

• 단점 : View 와 Model 사이의 의존성이 높습니다. ( 높은 의존성은 복잡해지고 유지보수가 어려움 )

 

 

MVP 패턴은 Model + View + Presenter를 합친 용어. Model과 View는 MVC 패턴과 동일하고, Controller대신

Presenter가 존재합니다.

Model          : 프로그램에서 사용되는 실제 데이터 및 데이터 조작

                         로직을 처리하는 부분입니다.

View             : 사용자에게 제공되어 보여지는 UI 부분입니다.

Presenter   : View에서 요청한 정보를 Model로 부터 가공해서

                         View로 전달하는 부분입니다.

- 동작 -

1. 사용자의 Action이 View를 통해 입력합니다.
2. View는 데이터를 Presenter에 요청합니다.

3. Presenter는 Model에게 데이터를 요청합니다.

4. Model은 Presenter에서 요청 받은 데이터를 응답합니다.

5. Presenter는 View에게 데이터를 응답합니다.

6. View는 Presenter가 응답한 데이터를 이용하여 화면에 출력됩니다.

 

• 특징 : Presenter는 View와 Model의 인스턴스를 가지고 있어 둘을 연결하는 접착제 역할을 합니다.
              Presenter와 View는 1:1관계입니다.

• 장점 : MVP 패턴의 장점은 View와 Model의 의존성이 없다는 것입니다.

• 단점 : View와 Presenter 사이의 의존성이 높게 되는 점입니다.

 

 

MVVM 패턴은 Model + View + View Model을 합친 용어입니다. Model과 View는 다른 패턴과 동일하고, View Model이 존재합니다.

Model            :  프로그램에서 사용되는 실제 데이터 및 데이터 조작

                            로직을 처리하는 부분입니다.

View               :  사용자에게 제공되어 보여지는 UI 부분입니다.

View Model :  View를 표현하기 위해 만든 View를 위한 Model입니다.

 

- 동작 -

1. 사용자의 Action들은 View를 통해 입력합니다.
2. View에 Action이 들어오면, Command 패턴으로 View Model에

     Action을 전달합니다.

3. View Model은 Model에게 데이터를 요청합니다.
4. Model은 View Model에게 요청 받은 데이터를 응답합니다.

5. View Model은 응답 받은 데이터를 가공하여 저장합니다.

6. View는 View Model과 Data Binding하여 화면에 출력합니다.

 

 

• 특징 : Command 패턴과 Data Binding 두가지 패턴을 사용하여 구현합니다.
              Command 패턴과 Data Binding을 이용하여 View와 View Model 사이의 의존성 제거합니다.
              View Model과 View는 1:n 관계입니다.

• 장점 : View와 Model 사이의 의존성 제거. 또한 Command 패턴과 Data Binding을 사용하여,
              View와 View Model 사이의 의존성 또한 없앤 디자인패턴입니다.
              각각의 부분은 독립적이기 때문에 모듈화 하여 개발 가능합니다.

• 단점 : View Model의 설계가 쉽지 않다는 점입니다.

 

 

3. JSON Parsing

 

* Parsing 이란?

 

1. 구문분석이라고도 하며 문장의 구성 성분을 분해하고 분해된 성분의 위계 관계를
   분석하여 구조를 결정

2. 데이터를 분해 분석하여 원하는 형태로 조립하고 다시 빼내는 기술
3. Ex. XML parsing, JSON parsing

 

* JAVA JSON Parsing

언어

메소드

JAVA

JsonParser(), JsonObject(), JsonArray()

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

* JSON 문자열 -> String 문자열

 

 

감사합니다.

728x90