스프링 Request 처리 순서, 스프링 트랜잭션(Transaction), 리플렉션(Reflection)

현정재·2024년 11월 8일
0

스프링 Request 처리 순서
1. 클라이언트의 요청이 들어오면 서블릿 컨테이너를 통해 DispatcherServlet으로 전달됩니다.
2. DispatcherServlet은 HandlerMapping을 사용해 요청에 맞는 적절한 컨트롤러(Controller)를 찾습니다.
3. 요청이 컨트롤러로 전달되면, 컨트롤러는 비즈니스 로직을 수행하고 결과 데이터를 DispatcherServlet에 반환합니다.
4. DispatcherServlet은 반환된 데이터를 기반으로 ViewResolver를 통해 적절한 뷰(View)를 찾습니다.
5. 찾아진 뷰(View)는 모델 데이터를 사용해 응답을 렌더링하고, 최종 응답을 서블릿 컨테이너를 통해 클라이언트에게 반환합니다.

스프링 트랜잭션 (Transaction)
데이터베이스에서 여러 작업을 하나의 단위로 묶어 모두 성공하거나 모두 실패하게 하여, 데이터의 일관성과 무결성을 보장하는 작업입니다.
이를 위해 트랜잭션은 원자성(Atomicity), 일관성(Consistency), 격리성(Isolation), 지속성(Durability)이라는 ACID 특성을 만족해야 하며, 이를 통해 데이터의 신뢰성과 정확성을 유지합니다.

리플렉션 (Reflection)
리플렉션은 클래스, 메서드, 필드 등의 정보를 런타임에 동적으로 탐색하고 접근할 수 있도록 해주는 기능입니다. 컴파일 시점에 알 수 없는 클래스와 메서드에 유연하게 대응할 수 있는 장점이 있지만,
성능 저하(일반적인 메서드 호출보다 속도가 느리다.)와
보안 문제(private 필드나 메서드에도 접근이 가능 -> 캡슐화가 깨진다.)나
안정성(컴파일 시점에 타입검사를 수행하지 않는다.)이 부족하다는 단점이 있습니다.

profile
wonttock

0개의 댓글