백엔드 (Back-End)/스프링 (Spring)

<Spring> 백엔드 API 구조

xxvigrufv 2022. 10. 18. 23:08
반응형

이번 포스팅에서는 스프링의 백엔드 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 형태로 만들어 리턴한다.
예외 에러 리턴 사용자의 실수, 서버의 오류등으로 인해 요청이 실패한 경우 에러를 리턴한다.

 

반응형