프레임워크/spring

스프링 Controller,Service,Repository 동작 구조 정리

sorecord 2026. 1. 16. 21:40

인프런 김영한의 강의를 듣고 코드를 다 작성한 후 코드가 어떤식으로 동작하는지 하나하나 분석해봄.

 

 

스프링의 계층 구조를 도형의 모양에 따라 구분해놓았다. 

 

 

전체 구조

 

 

 

정리한 구조를 보니 아주 복잡하다. 알아야 하는 부분이 한참 남았지만 시각적으로 표현해놓으니 머릿속으로 정리가 된다.

 

Member는 DB 테이블과 1:1로 매핑되는 자바 객체(Entity)

JPA가 이 객체를 기준으로 테이블과 매핑한다.

 

MemberRepository를 인터페이스로 두고 JpaMemberRepository나 SpringDataMemberRepository에서 implements를 받아서 다양하게 바꿀 수 있다.

구조를 그대로 두고 내가 사용할 기능이 JPA인지 SpringData JPA인지에 따라 바뀔 수 있다.

 

Repository가 DB와 크게 연관되어있다. Repository는 DB와 직접 소통하는 것처럼 보이지만,
실제로는 JPA(EntityManager) 또는 Spring Data JPA가 대신 처리한다.

 

Repository에서 읽은 데이터가 MemberService에 가서 내가 만든 비지니스 로직에 사용된다. 

 

Service에서 만든 비지니스 로직은 Controller와 관계가 있다.

단, 중요한 것은 Controller → Service → Repository 이런 형태의 의존관계 구조를 갖는다. 

 

  • Service는 Controller를 모른다
  • Controller만 Service를 호출한다

Service가 순수한 자바 로직으로 되어있다. 그렇기 때문에 재사용이 가능하다. 

 

 

 

Controller는 사용자에게 화면을 매핑시켜준다. get,post로 사용자에게 보여줄 수 있고 입력받은 값을 가져올 수도 있다.

여기서 Service 비지니스 로직이 사용된다. Controller가 화면을 보여주고 싶을때 Service에서 읽은 데이터를 가져오고 Controller가 form을 통해 값을 받아 왔을땐 Service에 받은 데이터를 보내기도 한다.  

 

 

 

https://www.inflearn.com/course/%EC%8A%A4%ED%94%84%EB%A7%81-%EC%9E%85%EB%AC%B8-%EC%8A%A4%ED%94%84%EB%A7%81%EB%B6%80%ED%8A%B8

 

[지금 무료]스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술| 김영한 - 인프런 강의

현재 평점 5.0점 수강생 119,801명인 강의를 만나보세요. 스프링 입문자가 예제를 만들어가면서 스프링 웹 애플리케이션 개발 전반을 빠르게 학습할 수 있습니다. 예제를 만들면서 자연스럽게 스

www.inflearn.com