API란?
API는 Application Programing Interface의 약자로
소프트웨어 애플리케이션이 서로 통신하여 데이터, 특징 및 기능들을 교환할 수 있도록 하는 일련의 규칙 또는 프로토콜을 말한다.
정의만 보았을 때는 상당히 이해하기 어려워서 구글링을 통해 여기저기 찾아보았다.
( 아래 두 가지 사이트를 참고하길 바랍니다.)
API란? 비개발자가 알기 쉽게 설명해드립니다! - wishket
여러분은 API가 무엇인지 알고 계신가요? 자주 듣지만 그 개념이 무엇인지 정확하게 알기 쉽지 않은데요. 이번 시간 위시켓이 API란 무엇인지 알기 쉽게 설명해드리고자 합니다.
blog.wishket.com
https://aws.amazon.com/ko/what-is/api/
API란 무엇인가요? - 애플리케이션 프로그래밍 인터페이스 설명 - AWS
GraphQL은 API용으로 특별히 개발된 쿼리 언어로서, 클라이언트에게 요청한 데이터만 제공하는 것을 우선으로 합니다. 또한 API를 빠르고 유연하며 개발자 친화적으로 만들도록 설계되었습니다. RES
aws.amazon.com
짧게 정리하자면 API는 프로그램과 프로그램이 서로 상호작용하도록 도와주는 매개체이며
이는 개발자 - 개발자, 앱 - 사용자, 개발자가 앱을 개발할 때 등등 다양하게 사용되며 이에 맞게
API의 종류, 보안도 세분화 되어있다.
우선 이 글을 API 설명 보다는 @ResponseBody에 더 초점을 맞추고 있으니 다음 내용으로 넘어가겠다.
2. @ResponseBody
@ResponseBody 특징
- HTTP의 BODY 부분에 문자 내용을 직접 반환
- viewResolver가 아닌 HttpMessageConverter가 동작
- 기본 문자처리 : StringHttpMessageConverter
- 기본 객체처리 : MappingJackson2HttpMessageConverter
(객체처리가 주로 많이 쓰인다.)
문자처리 방식
위와 같은 코드를 실행하면 아래와 같은 화면이 나오게 된다.
동작 원리
1. 웹 브라우저로부터 내장 톰캣 서버가 URL을 요청 받는다.
2. hello-string이 Spring 컨트롤러 내부에 @GetMapping으로 있으므로 해당 메서드를 실행한다.
3. return 값인 hello + name을 반환한다.
4. 이 때 기본 문자처리 방식이므로 viewResolver가 아닌 StringHttpMessageConverter를 이용하여
웹 브라우저로 전달한다.
객체처리 방식
Spring에서 많이 사용하는 객체 처리 방식은 JSON 방식이다.
JSON은 javaScript Object Notation의 약자로
데이터를 저장하고 교환하기 위한 텍스트 기반의 데이터 교환 표준이다.
JSON은 기본적으로 KEY : VALUE의 형태를 가지고 있다.
이제 위의 코드를 실행시켜 보자.
위에서 작성한 문자처리 방식과 객체처리 방식 코드의 차이점은 객체처리 방식은 Hello 객체를 만들어서 처리했다는 점이다.
Spring에서는 객체를 반환 받았을 때 기본적으로 JSON 방식으로 처리한다는 것을 알아두면 되고
위의 결과 화면처럼 {"name" : "Today"}처럼 key : value 형태가 출력됨을 알아놓자.
'Spring > Spring' 카테고리의 다른 글
[Spring] 빈 조회하기 - 상속 관계 (1) | 2024.08.30 |
---|---|
[Spring] 컨테이너에 등록된 빈 조회하기 (0) | 2024.08.29 |
[Spring] 스프링 컨테이너 (0) | 2024.08.29 |
[Spring] 정적 컨텐츠, MVC, 템플릿 엔진 (0) | 2024.08.24 |
[Spring] 라이브러리 살펴보기 (gradle, library, dependencies) (0) | 2024.08.23 |