일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- 스프링부트공부
- 스프링
- JPA공부
- Axon framework
- DDD
- nestjs
- 기술면접공부
- Kafka
- 카프카
- 자료구조공부
- 스프링공부
- JPA스터디
- 플러터 공부
- 코테준비
- nestjs공부
- JPA
- querydsl
- 스프링부트
- Flutter
- JPA 공부
- 프로그래머스
- 플러터 개발
- 자바공부
- 기술공부
- 알고리즘공부
- K8S
- 스프링 공부
- JPA예제
- nestjs스터디
- 코테공부
- Today
- Total
목록분류 전체보기 (715)
DevBoi
어플리케이션컨텍스트는 빈 팩토리에 여러 기능을 추가한 것을 의미한다. 실질적으로 ApplicationContext는 BeanFactory 인터페이스를 상속 받고있다. BeanFactory는 빈을 사용할때 빈을 로딩시킨다. ApplicationContext는 실행시 모든 빈을 로딩한다.
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. 데이터 순서 있음 2. 연속적인 메모리 할당 3. LinkedList 보다 검색 빠름 4. LinkList 보다 데이터 추가 삭제 느림 5. list는 데이터 내 빈 객체를 허용하지 않는다. 6. list 크기를 동적으로 늘릴수있다. 설정한 저장용량을 넘어서면, 크기를 1.5배로 증가시킨다.(수치는 설정 가능) 7. 동적으로 크기가 늘어날때는 기존 배열에서 커진 배열이 생성되고, 기존 값을 복사하여,생성된 배열에 옮긴다. 8. list내에서는 빈갑을 허용하지 않기 때문에, 삭제 작업이 발생시에 원소 한개씩 땡기거나 미루는 작업이 발생된다.