
@RestController=@Controller+@ResponseBody@RestController내부의 메서드에@ResponseBody를 붙인다고 동작에 문제가 생기지는 않지만 중복이다.
@Service,@Repository,@Controller는 모두 내부적으로@Component어느테이션을 포함하고 있다- 위 세 어노테이션을 모두
@Component의 sterotype이다. - 기능은 같지만 역할을 명확히 표현하기 위해 이름을 나눈 것이다.
- 위 세 어노테이션을 모두
- DI(Dependency Injection)는 Spring이 Bean 사이의 의존 관계를 파악하여 필요한 객체를 자동으로 주입하는 방식이다.
- Spring의 기본 Bean 스코프는 singleton이다.
- 하나의 객체를 만들어 컨테이너 전체에서 공유한다.
- 하나의 객체를 모든 요청이 공유하므로 인스턴스 변수에 사용자별 상태를 저장하면 동시 접근 시 다른 사용자의 데이터가 섞일 수 있다.
@Controller와@RestController의 차이점@Controller는 메서드 반환값을 뷰 이름으로 해석해서 HTML을 렌더링 한다. (예: "login" 반환 →login.html렌더링)@RestController는 반환값을 JSON 등으로 변환해 응답 본문에 직접 쓴다.
@Transactional은 프록시 패턴으로 동작한다. 같은 클래스 내부에서this.method()로 호출하면 프록ㄷ시를 거치지 않기 때문에 트랜잭션이 적용되지 않는다.@Repository는 빈 등록 외에 DB 기술별로 다른 예외를 Spring의 DataAccessException 계층으로 자동 변환하는 기능을 가지고 있다.- DispatcherServlet은 모든 요청을 하나의 입구에서 먼저 받아서 적절한 Controller를 찾아 연결하는 역할이다.
'내일배움캠프' 카테고리의 다른 글
| [내일배움캠프] Docker와 Docker Compose (0) | 2026.05.04 |
|---|---|
| [내일배움캠프] Controller와 Service를 분리해야 하는 이유 (0) | 2026.04.20 |
| [내일배움캠프] 개발 프로세스 가이드 (0) | 2026.04.16 |
| [내일배움캠프] MSA 마무리 (0) | 2026.04.15 |
| [내일배움캠프] Windows에서 Docker 설치하기 (1) | 2026.04.14 |