먹었으면 뇌를 쓰자

스프링 MVC, Annotation, API, JSON은 대체 뭘까? 본문

Framework/Spring boot

스프링 MVC, Annotation, API, JSON은 대체 뭘까?

뇌이비 2022. 10. 29. 14:17

스프링입문을 냅다 들어보면서

핵심 개념을 주워듣고 있다. 

 

정보처리기사 공부에서 잠깐 공부한

개념들이 나와서 반가우면서도...

 

역시 아직 잘 모르겠다~

 

그래서 정리를 해놓으려고 한다.

 

MVC(Model-View-Controller)

- 소프트웨어 아키텍처의 한 유형이다.

- 모델, 뷰, 컨트롤러라는 별도의 컴포넌트에서 개발 작업을 수행할 수 있다.

- 여러 개의 뷰를 만들 수 있어, 한 개의 모델에 여러 개의 뷰를 필요로 하는 대화형 어플리케이션에 적합하다.

(대화형 어플리케이션 : 온라인 쇼핑몰, 스마트폰 앱과 같이 사용자 요구 발생 시 시스템이 처리하는 소프트웨어)

 

 

모델(Model)

- 서브시스템의 핵심 기능과 데이터를 보관한다.

 

뷰(View)

- 사용자에게 정보를 표시하는 화면이다.

- 강의에서 봤던 viewResolver가 /template에서 해당 HTML을 찾아 변환하여 뷰를 만들어준다.

 

컨트롤러(Controller)

- 사용자로부터 받은 입력을 처리한다.

- 모델과 뷰의 상호작용을 관리한다.

 

 

 

어노테이션(Annotation, @)

- 영단어 annotation의 뜻은 '주석'이다. 

- 어노테이션은 데이터와 관련된 정보(메타 데이터)를 명시하는 것이다.

- 즉, 소스 코드에 추가 정보인 메타 코드를 작성하는 것이다.

 

- 여러 가지 어노테이션이 있지만, 우선 강의에서 사용한 4가지만 정리하려고 한다. 

 

@Controller : MVC 패턴의 컨트롤러 객체임을 명시한다.
@GetMapping : 해당 url을 어떤 메소드가 처리할지 매핑(mapping)한다. 컨트롤러에서 사용한다.
@ResponseBody : return 값이 뷰로 출력되지 않고, http 바디부에 직접 들어간다.
@RequestParam : 파라미터를 받을 때 사용한다.

 

 

 

 

API(Application Programming Interface)

- 응용 프로그램 개발 시 운영체제나 프로그래밍 언어 등에 있는 라이브러리를 이용할 수 있도록 규칙을 정해놓은 인터페이스를 말한다.

- API는 개발에 필요한 여러 도구를 제공하기 때문에 원하는 기능을 쉽고 효율적으로 구현할 수 있다.

- Windows API, Java API 등이 있으며, 누구나 무료로 사용할 수 있게 공개된 Open API도 있다.

- TV를 시청하려면 리모컨이 필요하다. 리모컨의 채널 변경 버튼을 누르거나, 음량 조절 버튼을 누르는 등 제조사가 미리 정해둔 방법을 이용해야 한다. API는 제조사가 정해둔 '리모컨 조작 방법'에 해당한다. 

- 강의에서 객체를 생성하고 데이터를 JSON 형식으로 만들어 http 쪽으로 반환하는 방법이 API라 할 수 있다. 

 

 

 

 

JSON(JavaScript Object Notation)

- 용량이 적은 데이터를 전달하기 위해 데이터 객체를 속성-값(attribute-value) 형식으로 만드는 것이다.

 

"name":  "brain"

 

- JSON의 사용 배경에는 XML이 있다.

- XML은 문자 기반 마크업 언어(text-based markup language)로서

데이터를 '프로그래밍'하는 것이 아닌, 데이터를 '표현'하는 언어이다. 

- XML은 데이터를 표기할 때마다 태그를 붙이고, 별도의 응용 프로그램으로 처리해서 아주 불편했다.

- 이를 보완해서 속성과 값만으로 표기한 것이 JSON이다.

 

 

 

 

 

 

Comments