반응형
이번 포스팅에서는 스프링의 백엔드 API 구조에 대하여 알아보겠다.
먼저 객체 정보를 알아보겠습니다. 각각은 모두 클래스 들이며 아래와 같이 사용할 예정입니다.
1 | Json | 프론트와 백엔드 api는 JSON 형식으로 통신한다. |
2 | Spring Security | JWT 인증을 적용하여 인증 & 권한을 확인한다. |
3 | DTO(Data Transfer Object) | JSON으로 입력된 데이터를 JAVA 객체로 변경하고 유효성 체크를 한다. |
4 | Controller | 요청이 들어온 API 에서 어떤 동작을 할지 결정하고 리턴한다. |
5 | Service | 컨트롤러에서 받은 요청을 처리한다. (비지니스 로직) |
6 | Domain | JPA의 Entity입니다. DB의 컬럼과 일치한다. |
7 | Repository | Spring data jpa를 사용하여 DB에 접근하는 인터페이스이다. |
8 | MySQL | 데이터베이스 |
9 | JsonResponse | 컨트롤러에서 정상 응답시에 반환할 규격이다. (정상코드, 데이터 등) |
10 | ExceptionHandler | 컨트롤러, 서비스 레포지토리단에서 발생한 에러는 이곳으로 보내진다. |
11 | JsonErrorResponse | 비지니스 에러, 서비스 에러등을 반환할 규격입니다. (에러코드, 에러메시지 등) |
다음은 진행되는 순서입니다.
번호 | 이름 | 설명 |
1 | 프론트<->백엔드 호출 | RESTful로 프론트에서 백엔드를 호출합니다. 이때 json 으로 data를 넘긴다. |
2 | 인증 & 권한 | 요청을 한 유저가 해당 요청에 대한 권한이 있는지를 체크한다. |
3 | JSON -> DTO | data를 객체에 옮겨 담으면서 유효성(길이, 형식등)을 체크한다. |
4 | 컨트롤러 요청 처리 | 요청에 따라 컨트롤러에서 어떤 동작을 할지 결정한다. |
5 | 서비스 로직 처리 | 동작에 따른 서버단의 로직을 처리한다. |
6 | DB 정보 요청 | DB에 접근해야할 경우 Repository를 통해 결과를 받는다. |
7 | DB 접근 | DB에서 CRUD의 결과값을 넘겨준다. |
8 | 정상 리턴 | 정상적인 경로라면 백엔드에서 프론트로 결과값을 넘겨준다. |
9 | 요청값 반환 | 리턴한 값을 JSON 형태로 만들어 리턴한다. |
예외 | 에러 리턴 | 사용자의 실수, 서버의 오류등으로 인해 요청이 실패한 경우 에러를 리턴한다. |
반응형
'백엔드 (Back-End) > 스프링 (Spring)' 카테고리의 다른 글
<Spring> 로깅 프레임워크 (Log4j, Log4j2, Slf4j, Logback) (0) | 2022.10.13 |
---|---|
<Spring> @Nullable 어노테이션 (0) | 2022.09.05 |
<Spring>REST API 란? (0) | 2022.09.04 |