Controller, Service, Repository 분리 이유

bird.j·2021년 4월 10일
3

SpringBoot

목록 보기
2/22

💡 객체지향 프로그래밍 vs 절차적 프로그래밍(AllInOne)


  • 초기의 프로그래밍 방식은 코드를 쭉 나열해 놓는 코딩 방식인 절차적 프로그래밍이용.

  • 하지만 대부분의 사람들은 한 번에 여러가지 다른 생각을 하는데에 취약하기 때문에 우리가 하나의 사물(객체)에 하나의 의미를 부여하는 것처럼 프로그래밍하게 되었음.

    • 자를 것이 필요 -> 가위 떠올림,
      적을 필요가 있을 때 -> 연필 떠올림.
      => 한번에 하나의 역할을 하는 객체를 만들어 프로그래밍.

    • 생각나는대로 적기 => 절차적 프로그래밍,
      메모 양이 많아지면 주제별로 정리해둬야 검색이 용이하다 => 객체지향 프로그래밍

  • 객체 지향 프로그래밍은 역할별로 분리 하는 것!



💡 객체 지향 프로그래밍


서버에서의 처리 과정을 크게 3개로 분리함
=> Controller, Service, Repository

Controller

  • 클라이언트의 요청을 받음
  • 요청에 대한 처리는 서비스에게 전담
  • 클라이언트에게 응답

Service

  • 사용자의 요구사항 처리
  • DB 정보가 필요할 때는 Repository에게 전담

Repository

  • DB 관리(연결, 해제, 자원 관리)
  • DB CRUD 작업 처리



💡 Controller와 Service를 구분하는 이유


중복되는 코드가 생기기 때문이다. 비즈니스 로직 코드가 컨트롤러에 구현되어 있는 경우 다른 컨트롤러의 핸들러 메소드에서 똑같은 로직 코드를 구현해야 하므로 중복코드가 발생하고 재사용성이 줄어든다.
결론적으로, controller와 service를 구분하면 확장성과 재사용성이 좋아지고 중복코드를 제거할 수 있다는 장점이 있다.




출처 | 스프링 웹 계층이란?

0개의 댓글