Controller , Service , Repository 이해하기

2022. 5. 19. 01:44·스프링

스프링은 하나의 Layer가 여러가지 하는 일을 좋아하지 않는다.

따라서 각자 하나의 layer는 한 가지 일을 해야한다.

layer의 역할과 특징을 간단히 적어보면 이렇다.

  • controller (web)
    • 외부 요청과 응답에 대한 영역 
    • 요청 url에 따라 view, mapping 처리
    • @Autowired Service를 통해 service의 method를 이용
    • ResponseEntity(DTO)를 body에 담아 Client에 반환 ( Object type 일 경우 엔 ResponseController 를 사용해도 된다. )
  • Service
    • Controller 과 Repository 사이에 존재
    • @Service Annotation 사용 
    • @Autowired Repository를 통해 repository의 method를 이용
    • 적절한 Business Logic 처리
    • DAO로 DB에 접근 한 후 DTO로 데이터를 받은 다음 , Business Logic을 처리해 적절한 데이터를 반환
  • Repository(dao)
    • 실제로 DB에 접근하는 객체 ( Data Access)
    • Service와 DB를 연결하는 객체
    • SQL를 사용 , DB에 접근한 후 CRUD API를 제공
  • DTO
    • Client <-> Controller , Controller <-> Service , Service <-> Repository 간의 데이터를 주고 받을 때 사용하는 객체
    • Logic 은 선언되지 않고 객체만 선언된다.

 

'스프링' 카테고리의 다른 글

쿠폰 발급 동시성 제어하기, 성능테스트로 성능 개선하기  (0) 2023.11.29
Kafka 발행 DB 저장을 하나의 트랜잭션으로 묶기  (0) 2023.10.09
스케줄러와 Transactional 테스트 코드에서 생긴 문제 해결하기  (0) 2023.10.09
Spring WebSocket Ping / Pong  (2) 2023.03.27
WAS, Servlet 용어 정리  (0) 2023.01.04
'스프링' 카테고리의 다른 글
  • Kafka 발행 DB 저장을 하나의 트랜잭션으로 묶기
  • 스케줄러와 Transactional 테스트 코드에서 생긴 문제 해결하기
  • Spring WebSocket Ping / Pong
  • WAS, Servlet 용어 정리
Viper1
Viper1
  • Viper1
    생각의 흐름
    Viper1
  • 전체
    오늘
    어제
    • 분류 전체보기 (69)
      • 문제풀이 (40)
        • 백준 (25)
        • 프로그래머스 (15)
      • 딥러닝 공부 (6)
      • 스프링 (8)
      • 자바 (9)
      • DevOps (2)
      • DB (4)
      • 회고 (0)
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
  • 링크

  • 공지사항

  • 인기 글

  • 태그

  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.3
Viper1
Controller , Service , Repository 이해하기
상단으로

티스토리툴바