스프링부트3 백엔드 개발자되기(AWS)

API, 응답코드, 직렬화, 역직렬화

chojdsj 2023. 11. 30. 22:36
728x90

 

 

 

 

API

 

 

- 네트워크에서 API는 프로그램 간에 상호작용 하기 위한 매개체

 

- 클라이언트의 요청을 서버에 전달하고, 서버의 결과물을 클라이언트에게 돌려주는 역할

 

 

 

REST API

 

 

- 자원을 이름으로 구분해 자원의 상태를 주고받는 API 방식

 

- url의 설계 방식

 

- url에는 동사를 쓰지말고, 자원을 표시해야 한다.

 

 

 

- 장점 

- url만 보고도 무슨 행동을 하는 api인지 명확하게 알 수 있다

- http 표준을 사용하는 모든 플랫폼에서 사용할 수 있다

- 주소와 메서드만 보고 요청의 내용을 파악할 수 있다

 

- 단점

- http 메서드, get, post와 같은 방식의 개수에 제한이 있다.

- 공식적으로 제공되는 표준 규약이 없다, 

 

 

 

 

 

 

 

응답코드

 

 

200 OK 요청이 성공적으로 수행
201 Created 요청이 성공적으로 수행되었고, 새로운 리소스가 생성
400 Bad Request 요청 값이 잘못되어 요청에 실패
403 Forbidden 권한이 없어 요청에 실패
404 Not Found 요청 값으로 찾은 리소스가 없어 요청에 실패
500 Internal Server Error 서버 상에 문제가 있어 요청에 실패

 

 

 

 

 

 

직렬화, 역직렬화

 

 

- HTTP에서는 JSON을, 자바에서는 자바 객체를 사용한다. 하지만 서로 형식이 다르기 때문에 형식에 맞게 변환하는 작업이 필요한데 이런 작업들을 직렬화, 역직렬화 라고 한다.

 

 

직렬화

 

- 자바 시스템 내부에서 사용되는 객체를 외부에서 사용하도록 데이터를 변환하는 작업

-> 자바 객체 -> JSON형식으로 변환

 

 

 

역직렬화

- 직렬화의 반대로, 외부에서 사용하는 데이터를 자바의 객체 형태로 변환하는 작업을 말한다.

-> JSON형식의 값 -> 자바 객체

 

 

 

 

 

 

-> ObjectMapper 클래스는 직렬화, 역직렬화를 가능하게 해는 클래스이다.