Spring

[Spring] controller에서 repository를 참조하는 코드를 짜면?

parangofsky 2026. 2. 2. 23:30

controller에서 repository를 참조하는 코드를 짜면? 이라는 주제를 가지고 이야기 해보겠습니다. 

 

컨트롤러에서 레파지토리를 참조하는 코드를 짜는 것은 가능합니다. 하지만 실제로 그렇게 코드를 작성한다면 안정성이 떨어집니다.

 

컨트롤러의 역할을 살펴보겠습니다.

 

컨트롤러는 HTTP레이어입니다. 

 

  • 요청 파라미터 검증/변환
  • 인증/인가 결과 반영
  • 서비스 호출
  • 응답 형태로 변환 

 

등을 담당하게 됩니다.

 

Q. 그 곳에 비지니스 로직이 섞이면 어떻게 될까요?

 

1. 책임 분리가 깨진다.

2. 트랜잭션 경계가 애매해져서 버그가 생길 수 있다.

3. 도메인 규칙이 옅어져 일관성이 무너진다.

4. 테스트가 어려워진다.

5. 보안, 검증, 예외 처리를 한 곳에 모으기 어렵다.

6. 확장이 어렵다.

 

등의 문제가 발생합니다.

 

다시말하자면 영역이 다르다고 보면 됩니다. 레포지토리는 데이터 접근을 위한 레이어입니다. 목적 자체가 컨트롤러와 다르다고 보면 되겠습니다.

 

 

'Spring' 카테고리의 다른 글

[Spring] JPA - 1  (0) 2026.02.17
[Spring] Spring WebFlux와 Spring MVC - 1  (0) 2026.02.11
[Spring] 필터와 인터셉터  (0) 2026.01.31
[Spring] 컨테이너가 빈을 생성하는 과정  (0) 2026.01.29
[Spring] IoC, DI  (0) 2026.01.28