Controller, Service, Repository

Ryu·2022년 8월 7일
0

Controller, Service, Repository

🤔 기존 Controller 클래스에 응집해있던 코드를 Service, Repository 에 분배를 해준다. 대체 왜 이렇게 설계하는 것일까 ?

중복 코드를 제거할 수 있다.

  • Controller 안에서 사용하는 비즈니스 로직들이 다른 Controller 의 핸들러 메서드에 재사용될 수 있다. 즉, 재사용되는 코드를 따로 빼놓지 않으면 엄청나게 많은 중복이 발생할 수 있다.

객체 지향 설계, 각자의 역할에 충실하게

  • 각자의 역할에 충실하게 설계함으로써, 각 클래스가 어떤 부분을 맡고 있는지 쉽게 파악이 가능해 가독성이 올라가고 유지&보수 또한 쉬워진다.
  • Controller - 클라이언트 요청 받기, 기본적인 정보를 받아옴.
    Service - 사용자 요구를 처리한다.
    Repository - DB의 CRUD 작업 처리 (데이터를 관리한다.)
    - 각 계층은 다음 계층한테 작업을 토스한다. Controller → Service → Repository

✏ 오답노트

1. Repository 에서 , static 생성자 -> static { } 
- static 을 사용하는 이유 : **싱글톤**과 비슷한 기능을 구현하기 위해서. (객체 생성과 상관 없는 클래스 변수로 들어감.)
- tomcat 이 꺼지지 않는 이상, 요청을 아무리 많이 해도 딱 한 번만 생성하게 된다. 
2. private static Long lastId; 라고 선언해서, lastId = 0; 으로 초기화 시 오류가 발생함.
profile
Strengthen the core.

0개의 댓글