일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
- 플러터 공부
- 프로그래머스
- JPA
- 스프링공부
- Flutter
- 스프링부트
- 기술면접공부
- JPA예제
- 기술공부
- JPA스터디
- querydsl
- 스프링 공부
- 스프링
- JPA공부
- nestjs
- 스프링부트공부
- Axon framework
- 알고리즘공부
- 자바공부
- 코테준비
- K8S
- Kafka
- DDD
- 플러터 개발
- 자료구조공부
- nestjs스터디
- nestjs공부
- 코테공부
- 카프카
- JPA 공부
- Today
- Total
목록Develop/[Spring] (96)
DevBoi
Filter 필터는 J2EE 표준 스펙 기능으로 Dispather Servlet에 요청이 전달 되기 전/후에 url 패턴에 맞는 모든 요청에 대해 부가작업을 처리 할 수 있는 기능을 제공한다. 필터는 FrontController 보다 먼저, 스프링 범위 밖에서 처리가 되는 것이다. Web Container에 의해 관리가 된다. 스프링 빈으로 등록은 된다. web.xml 으로 적용한다. Interceptor 인터셉터는 J2EE 표준 스펙인 필터와 달리 Spring이 제공하는 기술로써, 디스패처 서블릿이 컨트롤러를 호출하기 전과 후에 요청과 응답을 참조하거나 가공할 수 있는 기능을 제공한다. AOP와 인터셉터의 차이는 파라미터 차이이다. 실행순서는 Interceptor -> aop인데, JoinPoint 나..
Controller * Presentation layer에서 Controller를 명시하기 위해 사용 * 클라이언트의 요청을 받음 * 요청에 대한 처리는 서비스에게 전담 * 클라이언트에게 응답 Service * Business Layer 에서 Service를 명시하기 위해 사용 * 사용자의 요구사항 처리 * DB정보가 필요할때는 Repository에게 전담 Repository * Persistence Layer에서 DAO를 명시하기 위해서 사용 * DB관리(연결,해제,자원관리) * DB CRUD 작업 처리 각각의 계층은 재사용성에 대한 용도를 높이기 위한 분리를 한다.
AutoWired란 의존관계 주입을 할 때 사용하는 어노테이션이며, 의존 객체의 타입에 해당하는 빈을 찾아 주입하는 역할을 한다. 즉 스프링 컨테이너에 등록된 빈 중에 해당 타입에 해당하는 빈의 의존관계를 주입해주는 역할을 한다. BeanPostProcessor는 스프링 컨테이너안에서 만든 빈 전/후처리에 대한 작업을 할 수 있는 인터페이스이다. AutowiredAnnotationBeanPostProcessor 는 해당 인터페이스를 구현한 구현체이다. 해당 구현체에서, 빈 초기화 라이프 사이클 이전, 즉 빈이 생성되기전에 @Autowired가 붙어있으면 해당 하는 빈을 찾아서 주입해주는 작업을 한다.
WebServlet 부분 서블릿만으로 구현한 코드를 짤수있다. 물론 불편하지만, 간단한 기능이나 크기가 작은 프레임워크에서는 Servlet을 직접 작성하는게 더 효율적인다. Controller는 Dispatcher Sevlet이 url을 분석해서 매핑해주는 기준이다. 즉 스프링이 DispatcherSevlet을 만들어 주고 이 서블릿이 컨트롤러를 찾아서 매핑을 해주는 한단계 작업이 추가된다. 이 작업은 한단계가 추가되지만 직접 request와 response처리 소스를 작성해야하는데 Controller를 사용하여 개발을 하게 되면, 이러한 중복된 소스 처리를 하지 않아도 된다. 결과적으로 보면 스프링이 서블릿 기능을 해주고 있다. 즉 프론트 컨트롤러 서블릿이 요청을 받고, 요청 받은 내용을 가공하여 해당..
클라이언트의 요청을 처리하고, 그 결과를 반환하는 Servlet 클래스의 구현 규칙을 지킨 자바의 웹 프로그래밍 기술 간단히 말해서, 자바를 사용하여 웹을 만들기 위해 필요한 기술이다. -클라이언트의 요청에 대해 동적으로 작동하는 웹 어플리케이션 컴포넌트 -html을 사용하여, 요청에 응답한다. -Java Thread를 이용하여 동작한다. -MVC 패턴에서 Controller로 이용된다. -HTTP 프로토콜 서비스를 지원하는 HttpSErvlet클래스를 상속 받는다. -UDP보다 처리 속도가 느리다. -HTML 변경시 Servlet을 재컴파일해야한다. 웹서버는 정적인 페이지만 제공하나, 동적인 페이지를 제공하기 위해서, 웹 서버는 동적인 페이지 작성 요청을 해야한다. 웹서버가 동적인 페이지를 제공할 수 ..
스프링은 개발의 제어권(객체의 생성,소멸 등 생명주기 관리)이 개발자가 아닌 IOC 컨테이너에게 있다. 따라서, 이런 컨테이너에 제어를 받기 위해서는 빈으로 등록을 해줘야 한다. 빈으로 등록하는 방법은 Bean과 Component가 있다. Bean 메소드 레벨에서 선언, 반환되는 객체를 개발자가 수동으로 빈으로 등록하는 애노테이션이다. 또한 개발자가 컨트롤이 불가능한 외부 라이브러리들을 Bean으로 등록하고 싶은 경우에 사용한다. 예를 들어, Spring Securtiy 개발자에 의해 생성된 메소드를 빈으로 등록할때 사용한다. Component 클래스 레벨에 선언함으로써 스프링이 런타임시에 컴포넌트 스캔을 하여 자동으로 빈을 찾고 등록하는 애노테이션이다. 개발자가 직접 컨트롤할수 있는 클래스에 사용한다...
AOP : Aspect Oriented Programming의 약자로 관점 지향 프로그래밍이라고 부른다. AOP는 어떤 로직을 기준으로 핵심적인 관점, 부가적인 관점으로 나누어 보고 관점을 모듈화 하겠다는 것이다. 대표적으로 공통으로 처리하는 로직을 관점화한다. ex.로깅,트랜잭션 등이 있다. Advice : 실질적으로 어떤 일을 해야할지에 대한 것, 실질적인 부가기능을 담은 구현체(Aspect의 메소드 전체라고 이해하면 편하다.) JointPoint : advice가 적용될 위치, 프로레스 완료, 생성자 생성, 필드에서 값을 꺼낼때 등등 사용가능(프로그램 실행중 특정지점) PointCut : JointPoint의 상세 스펙 (정규식이나 특정 패턴이 어떻게 일치해야 작동될지 정의) 스프링 AOP의 특징 ..
DI : 의존관계 주입이라는 의미로, IOC의 차별화된 특징 중 하나이다. DL : 의존관계 검색은 의존관계가 있는 객체를 외부에서 주입받는 것이 아닌 의존 관계가 필요한 객체에서 직접 탐색 하는 것을 의미한다. 즉 의존성 검색이며, 빈에 접근하기 위해 컨테이너가 제공하는 api를 이용하여, 빈을 lookup 하는 것이다.
1. xml Bean 태그 이용 , Xml 컴포넌트 스캔(ComponentScan은 자바로도 가능) 3.Config 파일을 통한 Bean등록 4.Config의 ComponentScan을 활용한 Bean등록
컨테이너란? 인스턴스의 생성, 생명주기, 사용관계를 관리하며, 생성된 빈에게 추가적인 기능을 제공한다. 1. 서블릿 컨테이너(ex.Tomcat) 웹서버와 통시하기 위해, 소켓을 생성하고 특정 포트에 리스닝하고 스트림을 생성하는 복잡한 일을 하지 않게 해준다. Servlet의 생성부터 소멸까지 사이클을 관리해준다. 2.스프링 컨테이너 (IOC컨테이너) 1. Bean Factory 스프링 설정파일에 등록된 빈의 생성하고 관리하는 기본적인 기능만한다. 컨테이너가 구동될때 빈을 생성하는 것이 아니라, 클라이언트 요청에 의해 빈이 사용되는 시점에 (Lazy loading) 빈이 생성된다. 일반적으로 사용을 잘 하지 않고, ApplicationContext는 이 빈 팩토리를 상속 받고있다 2.ApplicationC..