SpringBoot

스프링부트 3 지식

카르노도 2023. 7. 13. 15:52

API

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

-> 예를 들어 손님과 요리사 사이에서 일하는 점원의 역할

Rest API

- 웹의 장점을 최대한 활용하는 API

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

-> 즉, 이해하기 쉬운 API

- URL 설계 방식을 말한다

특징

- 서버/클라이언트 구조, 무상태, 캐시 처리 가능, 계층화, 인터페이스 일관성

장점

- URL만 보고도 무슨 행동을 하는 API인지 알 수 있다.

- 상태가 없어서 클라이언트와 서버의 역할이 명확하게 분리된다.

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

단점

- HTTP 개수에 제한이 있다.

- 설계를 하기 위해 공식적으로 제공되는 표준 규약이 없다.

 

-> 이와 같은 단점이 있어도 결국 주소와 메서드를 보고 내용을 파악할 수 있다는 장점이 있어 많은 개발자들이 사용한다.

 

사용방법

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

  -> ex) /articles/1 : 동사가 없다. 1번 글을 가져온다는 의미 명확

             /articles/show/1 : 동사가 있다.

- 규칙 2. 동사는 HTTP 메서드로 작성

  -> 주로 사용하는 메서드는 POST, GET, PUT, DELETE이다. 각각 만들고, 읽고, 업데이트하고, 삭제하는 역할 담당

       이것들을 묶어서 크루드 라고 부른다.

  -> ex) id가 1인 블로그 글을 조회 : GET/articles/1

 


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

직렬화

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

역직렬화

외부에서 사용하는 데이터를 자바의 객체 형태로 변환하는 작업


@Transactional

트랜잭션이란 데이터베이스의 데이터를 바꾸기 위해 묶은 작업의 단위이다.

예를 들어 택배를 주문하면

1. 택배가 배송

2. 택배가 도착

이런 과정을 거친다고 했을 때, 배송은 됐지만 도착하는 과정에서 실패하면 받는 사람 입장에선 심각한 상황이다.

이런 상황이 발생하지 않도록 배송과 도착을 하나의 단위로 묶는 것인데, 이것이 트랜잭션이다.

문제가 생긴다면 트랜잭션의 처음 상태로 모두 되돌리면 된다.

스프링에서는 트랜잭션을 적용할 때 다른 작업 없이 @Transactional 애너테이션만 사용하면 된다.

 

 

 

 

 

 

참고 자료

"스프링 부트 3 백엔드 개발자 되기[신선영]"