본문 바로가기
반응형

Framework & Lib/스프링21

[서블릿과 스프링 디스패처 서블릿] 역할과 동작 과정 스프링의 디스패처 서블릿은 http 요청을 적절할 컨트롤러에 위임하는 역할을 한다. 디스패처 서블릿을 제대로 이해하기 위해서는 자바 서블릿, 서블릿 컨테이너, MVC에 대한 사전 지식을 필요로 한다.이에 대한 설명을 먼저 진행하고 디스패처 서블릿에 대해 알아보도록 하겠다.(이왕 하는거 REST 설명까지 넣었다. 물론 서블릿과 연관이 있는것은 아니다.) 자바 서블릿 (jaca docs)자바를 사용하여 웹페이지를 동적으로 생성하는 서버측 프로그래밍 기술을 서블릿이라고 한다.서블릿은 초기화 init 메서드, 종료 시 destroy 메서드, 클라이언트 요청 request를 처리하고 응답 response를 반환하는 service메서드로 이루어져있다. 서블릿의 주 역할이 클리이언트 요청에 대한 응답을 반환하는 것이.. 2025. 1. 27.
스프링 빈 생성 과정 분석 [4] - 디버깅 참고 자료 [스프링 빈 생성 과정 분석 시리즈]스프링 빈 생성 과정 분석 [1] - Application Context(BeanFactory)스프링 빈 생성 과정 분석 [2] - BeanDefinitionRegistry, SingletonBeanRegistry스프링 빈 생성 과정 분석 [3] - BeanFactoryPostProcessor, BeanPostProcessor스프링 빈 생성 과정 분석 [4] - 디버깅 참고 자료 1편부터 3편까지 하여 스프링 빈 생성 과정이 어떻게 이뤄지는지 알아보았다.이번 포스팅에서는 이 개념들을 찾아보기 위해 실제 디버깅한 소스 코드를 공유하기 위해 작성하였다.스프링 부트의 run 메서드를 통해 시간순으로 어떻게 흘러가는지 코드만 공유하겠다.이를 통해 디버깅한다면 1-3편에서 설명.. 2024. 8. 7.
[스프링] 스태틱 메서드가 아닌 스프링 싱글톤 빈을 사용해야하는 이유 스프링의 application context에 관리되는 빈들은 기본적으로 싱글톤으로 관리된다. 상태를 갖지 않는 객체의 메서드를 사용하기 위하여 매번 인스턴스화 하는 것은 효율적이지 않다.스프링에서는 이러한 이유로 싱글톤 타입이라는 것을 지원하고 싱글톤 타입으로 스프링 빈을 관리할 땐, 속성 없이 메서드만 구현하여 사용을 한다. 허나, 이렇게 메서드만 사용할 목적이라면 굳이 인스턴스화할 필요도 없고 static으로 만들어서 사용해도 되지 않나라는 의문이 들수 있다.static 메서드를 사용하는 것과 싱글톤 빈의 메서드를 사용하는 것의 차이는 클래스 메서드이냐, 인스턴스 메서드이냐의 차이이다.즉, 인스턴스를 사용하냐 하지 않냐의 차이이고, 이는 객체지향적인 프로그래밍을 할 수 있냐 없냐로 나타난다. sta.. 2024. 6. 29.
스프링의 트랜잭션 추상화 트랜잭션 추상화우리는 추상화가 "공통적인 것을 취하고 차이점을 배제하는 것"이라는걸 잘 알고 있다.추상화를 통해 공통적인 부분을 분리하여 처리하도록 한다면 차이점에 대해서만 집중하여 개발을 할 수 있다.트랜잭션 추상화에서 적용된  공통점은 트랜잭션 처리이고, 차이점은 비즈니스 로직이다.  아래 코드를 보자.override fun create(member: Member) {   val status = transactionManager.getTransaction(DefaultTransactionDefinition())   try {       // 비즈니스 로직       val id = memberRepo.create(member)       memberRepo.addRole(MemberRole(id, ".. 2024. 6. 25.
반응형