[SpringBoot] @Request, @Get, @Post, @Controller, @Service, @Repository, 비지니스 로직

임유빈·2022년 8월 21일
post-thumbnail

@RequestMapping과 @GetMapping, @PostMapping의 차이 : 방식 설정

Request : 이동 경로.

클라이언트의 요청이 들어오면 DispatcherServlet으로 도착한다. Handler Mapping이 컨트롤러를 검색하고, 찾은 Controller의 해당되는 메서드를 Handler Adapter가 URI를 기준으로 찾는다. Controller는 Service, DAO(개발자 작성)를 거쳐 DB에 접근해서 데이터를 가져오고 View까지 인도해준다.

@RequestMapping : value와 method를 매개변수로 설정해줘야 한다.

@GetPostMapping : 경로만 써주면 된다.

GET, POST 차이 :


같은 Controller 내 메서드도 같으면서 요청 처리방식만 GET, POST로 나타내기가 가능하다. 게시판을 예로 들면 GET은 게시판을 클라이언트에게 노출시키는 처리 담당, POST는 작성된 게시글을 DB에 저장하는 역할을 한다.


@Component :

객체를 만드는 가장 기본적인 어노테이션으로 이 어노테이션에서 세부적인 기능이 추가가 되고,
MVC 패턴에 특화된 형태가 아래 세개의 어노테이션이다. 세가지의 어노테이션 외에는 해당 어노테이션을 사용한다고 보면 된다.

@Cotroller :

클라이언트의 요청을 받는다, 요청에 대한 처리는 서비스가 전담한다, 클라이언트에게 응답한다.
(@RequestMapping은 해당 어노테이션 밑에서만 사용할 수 있다.)

@Service :

사용자의 요구사항을 처리한다, DB정보가 필요할 때 Repository에게 전담한다.
(@Controller는 Service에서 DAO를 호출하며 model에 값을 저장한다.)

@Repository :

IDB 관리 (연결, 해제, 자원 관리), DB CRUD 작업을 처리한다. (해당 어노테이션은 DAO 클래스에 붙인다.)

@Repository - DB에 접근하는 모든 코드가 모여있다.

@Service - DB에 접근하는 코드는 Repository에 위임하고, 비지니스 로직과 관련된 모든 코드가 모여있다.

위의 장점 : 비지니스 로직과 관련된 부분에 문제가 발생하였을 때는 Service패키지를 확인하고,
DB 접근과 관련된 문제가 발생하면 Repository 패키지를 확인하면 된다.

비지니스 로직(Business Logic) : 프로그램의 핵심 로직으로 데이터가 생성되고 저장되고 수정하는지 정의한 것을 비지니스 로직이라고 한다.

  • 예시 (아이디 중복 찾기)
    회원이 작성한 아이디 값 저장하기 > 회원정보가 있는 데이터베이스 연결 > 회원의 아이디가 이미 있는지 없는지 여부를 데이터화 하여 저장 > 데이터베이스 연결 끊기 > View영역에세 가공된 데이터 전달

비지니스 로직이 정리되지 않고 이곳 저것에 방치된다면 프로그래머는 코드 관리에 어려움을 느끼고 개발에도 영향을 끼친다.
이러하여 유지보수와 확장성을 고려하여 코딩을 하고, 코드를 작성할 때 비지니스로직이 중요한 이유이다.


JpaRepository : 페이징, 정렬검색 등 CRUD를 포함한다.

CrudRepository :

Create - 생성 / SQL > INSERT
Read (또는 Retrieve) - 읽기 또는 인출 / SQL > SELECT
Update - 갱신 / SQL > UPDATE
Delete (또는 Destory) - 삭제 또는 파괴 / SQL > DELETE

0개의 댓글