EJB는 비즈니스 객체들을 관리하는 컨테이너 기술과 트랜잭션 처리 기술, 퍼시스턴스 관리 기능 등을 지원하는 서버측 컴포넌트 모델이다.사람들은 EJB가 획기적인 기술이라며 놀라워했고 스프링이 나오기 이전에는 EJB를 사용하는 대부분의 기업들은 EJB를 사용하고 있었다
Java와 OOP 자바 언어의 장점중에 가장 큰 장점은 객체지향적 설계로 코드를 짤 수 있다는 것이다. 스프링은 개발자가 좋은 객체지향 애플리케이션을 개발할 수 있는 프레임워크이다. 그래서 좋은 객체지향이 뭔데? 객체지향의 가장 중요한 핵심은 다형성(Polymorp
IoC (Inversion of Control) 아래와 같은 코드는 클라이언트가 필요한 서버 구현 객체를 스스로 생성하고, 연결하고, 실행하였다. 즉 구현 객체가 프로그램의 제어 흐름을 스스로 조종하였다. 또한 아래 주석에 있는 문제가 일어난다. 여기서 IoC를 적용
전 포스트에서 설명했던 DI 컨테이너(IoC 컨테이너)를 스프링에서도 가지고 있는데 그것이 바로 스프링 컨테이너이다.스프링 컨테이너에서 관리하는 객체들을 빈(bean)이라고 부른다.스프링 컨테이너는 빈의 생명주기, DI를 관리해준다.스프링에서는 ApplicationCo
싱글톤 패턴 (Singleton Pattern) >싱글톤 패턴: 클래스의 인스턴스가 단 1개만 생성되는 것을 보장하는 디자인 패턴 아래는 싱글톤 패턴을 적용한 코드다. 위의 코드를 테스트하는 코드는 아래와 같다. 하지만 위의 코드는 문제가 있다. 싱글톤 패턴을
스프링 컨테이너에 직접 빈을 등록하려면 아래와 같은 방식으로 등록한다.위와 같이 설정 클래스에 @Configuration 어노테이션을 붙힌다.설정 클래스에 있는 함수들에 일일이 @Bean 어노테이션을 붙히고 의존관계까지 설정해야 했어야 한다.컴포넌트 스캔은 위에 @Be
데이터베이스 커넥션 풀이나, 네트워크 소켓처럼 애플리케이션 시작 시점에 필요한 연결을 미리 해두고, 애플리케이션 종료 시점에 연결을 모두 종료하는 작업을 진행하려면, 객체의 초기화와 종료 작업이 필요하다.스프링을 통해 이러한 초기화 작업과 종료 작업을 어떻게 진행하는지
빈 스코프 빈 스코프는 빈이 존재할 수 있는 범위를 뜻한다. 스프링에서는 다양한 스코프를 지원한다. 싱글톤 스코프 스프링 컨테이너의 시작과 종료까지 유지되는 가장 넓은 범위의 스코프이다. 싱글톤 스코프의 빈을 조회하면 스프링 컨테이너는 항상 같은 인스턴스의 스프링 빈
웹 서버: 웹 브라우저와 같은 클라이언트로부터 HTTP 요청을 받아들이고, HTML 문서와 같은 웹 페이지를 반환하는 서버HTTP 기반으로 동작정적(파일) HTML, CSS, JS, 이미지, 영상과 같은 정적 리소스 제공기타 부가기능예) Nginx, ApacheWAS:
서블릿 > 서블릿: 동적 웹 페이지를 만들 때 사용되는 자바 기반의 웹 애플리케이션 프로그래밍 기술. WAS에서 서버가 처리해야하는 업무는 다음과 같다. 서버 TCP/IP 대기, 소켓 연결 HTTP 요청을 파싱해서 읽기 POST 방식, /save URL 인지 Con
클라이언트가 WAS에 요청을 하면 WAS는 서블릿을 호출하고 응답한다. 여기서 서블릿을 호출하는 것이 쓰레드이다.쓰레드란 무엇일까?쓰레드: 쓰레드는 어떠한 프로그램 내에서, 특히 프로세스 내에서 실행되는 흐름의 단위를 말한다.애플리케이션 코드를 하나하나 실행하는 것이
클라이언트가 html 요청을 보내면 WAS가 HTML을 동적으로 생성해서 반환한다.ex) 클라이언트가 주문요청 페이지를 요청하면 WAS가 DB에 고객의 정보를 조회해서 사용자에 맞게 HTML을 생성해서 반환JSON형식으로 데이터를 주고 받는다.클라이언트가 서버에 요청을
자바 백엔드 기술의 역사 서블릿 (Servlet) - 1997 이전에 포스팅했던 멀티쓰레드와 같은 복잡한 문제들을 해결해주는 기술이다. 이 기술덕분에 개발자들은 비즈니스 로직을 집중하여 개발할 수 있게 되었다. 하지만 서블릿은 HTML 동적으로 생성하는것이 어렵다는
프론트 컨트롤러 패턴 (Front Controller Pattern) MVC 패턴은 다음과 같은 문제가 있다. 하나의 View마다 하나의 컨트롤러가 매핑되어서 컨트롤러마다 일일이 서블릿이 JSP에 forward하는 코드가 중복이 된다. 뷰 템플릿을 다른 뷰 템플릿
스프링 MVC도 프론트 컨트롤러 패턴으로 구현되어 있다.스프링 MVC의 프론트 컨트롤러가 바로 디스패처 서블릿(DispatcherServlet)이다.디스패처 서블릿에서의 해심은 doDispatch라는 메서드이다.핸들러 조회: HTTP 요청이 오면 핸들러 매핑을 통해 요
핸들러를 조회하는 역할을 한다. 디스패쳐 서블릿이 제일 먼저 수행하는 핸핸들러 매핑이 어떻게 동작하는지 알아보자.핸들러 매핑을 순서대로 실행해서 핸들러를 조회한다.제일 우선순위가 높은 RequestMappingHandlerMapping이 먼저 실행되고 애노테이션 기반
뷰 리졸버는 뷰를 찾아서 디스패처 서블릿에 뷰를 반환하는 역할을 한다. 1\. 핸들러 어댑터 호출: 핸들러 어댑터를 통해서 뷰 이름 획득2\. BeanNameViewResolver 호출: BeanNameViewResolver가 뷰 이름과 같은 스프링 빈으로 등록된 뷰를
특정 URL로 요청이 올때 특정 메서드를 동작시킬 수 있다. 바로 @RequestMapping 애노테이션을 사용하면 된다.@RequestMapping(value="URL 설정", 사용할 HTTP 메서드)사용할 HTTP 메서드를 비워둔다면 모든 HTTP 메서드 요청을 허