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 |