일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- 스프링부트공부
- nestjs공부
- DDD
- Flutter
- 스프링공부
- 스프링
- JPA공부
- 코테준비
- 프로그래머스
- 플러터 개발
- Axon framework
- 기술공부
- 코테공부
- 스프링부트
- Kafka
- nestjs
- JPA예제
- querydsl
- 자바공부
- 플러터 공부
- 기술면접공부
- K8S
- JPA스터디
- 카프카
- 자료구조공부
- 알고리즘공부
- nestjs스터디
- 스프링 공부
- JPA
- JPA 공부
- Today
- Total
목록Develop/[Spring] (96)
DevBoi
MVC1은, JSP에서 view와 controller의 로직을 모두 담당한다. 즉 JSP에서 컨트롤러의 역핟도 하고 view의 역할도 한다. 중소형 프로젝트에 적합하고, 유지보수성이 많이 떨어진다. 코드 재사용성이 줄고, 운영을 해갈수록 점점 더 복잡해져서, 관리가 힘들다 MVC2는 컨트롤러가 서블릿으로 구현되어, 뷰와 컨트롤러가 나눠진 것이다. 가장많이 보이는 설계이고 뷰와 컨트롤러가 나눠져 있어서, 유지보수가 뛰어나고 추후에, 수정이 필요한 부분만 수정하면 되기 때문에 변경 및 관리에도 편하다
1. 웹 어플리케이션이 시작되면 web.xml이 로딩된다. 2. web.xml 에 등록되어있는 ContextLoaderListener가 생성 3.ContextLoadListener는 ServletContextListener를 구현, ApplicationContext를 생성한다. (ApplicationContext는 Ioc 엔진이며, 빈의 생명주기를 담당한다.) 3.ContextLoadLinstener가 ApplicationContext를 생성하면서, root-context를 로딩 ContextLoaderListener : 서블릿을 초기화하는 용도로 사용된다. 4.root-context에 등록되어있는 설정에 따라 Spring container가 구동 5.클라이언트로부터 Web Application에 요청 ..
1) Embed Tomcat을 사용 내장형 톰캣을 사용하기 때문에, 따로 Tomcat을 설치하거나 매번 버전관리를 하지 않아도 된다. 2) starter를 통한 dependency 자동화(의존 라이브러리 버전 관리) Spring Framework에서는 각각의 dependency 들의 호환되는 버전을 일일히 맞추어야 했다. 또한 각 dependency들의 버전을 일일히 맞춰야해서 힘이 들었다. 하지만 이제 starter가 대부분의 dependency를 관리해주기 때문에, 이러한 걱정이 없어졌다. 3) XML 설정을 하지 않고, 자바로 설정이 가능하다. 4) jar file을 이용해 자바 옵션만으로 쉽게 배포가 가능하다 +Spring Actuaor를 이용한 애플리케이션의 모니터링과 관리를 제공한다. 5) A..
1. 웹 애플리케이션이 실행되면 Tomcat에 의해 web.xml이 loading 된다. 2. web.xml에 등록되어있는 ContextLoaderListener가 생성이 된다. (ServletContextListener 구현) ,ApplicationContext를 생성하는 역할을 수행한다. 3. 생성된 ContextLoaderListener는 root-context.xml 을 로딩한다. 4. root-context.xml에 등록되어있는 Spring Container가 구동된다. 이 때 개발자가 작성한 비즈니스 로직에 대한 부분과 DAO, VO 객체들이 생성된다. 5. 클라이언트에게서 웹 애플리케이션 요청이 온다.(web.xml에 등록한 url 패턴과 맞다면) 6. DispatcherServlet이 생성..
스프링 프레임워크란? - 자바 플랫폼을 위한 오픈소스 애플리케이션 프레임워크이다. - 자바 엔터프라이즈 개발을 편하게 해주는 오픈소스 경량급 애플리케이션 프레임워크이다. - 자바 개발을 위한 프레임워크로 종속 개체를 생성 조립해준다. 스프링 특징 - 경량 컨테이너로서 자바 객체를 직접 관리 * 각각의 개체 생성, 소멸 과 같은 라이프사이클을 관리하며 스프링으로부터 필요한 객체를 얻어올 수 있다. - 스프링은 POJO방식의 프레임워크 * 일반적인 J2EE 프레임워크에 비해 구현을 위해 특정한 인터페이스를 구현하거나 상속받을 필요가 없어, 기존에 존재하는 라이브러리 등을 지원하기에 용이하고 객체가 가볍다. - 스프링은 제어의 역행을 지원 * 컨트롤의 제어권이 사용자가 아니라 프레임워크에 있어 필요에 따라 스..
@Configuration 스프링에서 설정 클래스를 선언하는 어노테이션이다. 우선 스프링 빈을 만드는 방법은 @Bean, @Configurtaion, @Component 3가지 어노테이션을 사용하면 된다. Configuration을 클래스 파일에 달게 되면, 이 클래스는 빈등록하기 위한 파일이라는 것을 가시적으로 알려준다. @Configuration을 붙인 class를 java config파일이라고 생각한다면 @Configuration에 대한 클래스 파일 하위에 객체에 대한 return을 해주는 메소드에 빈을 해주면, ApplicationContext 중, AnnotationConfigApplicationContext는 JavaConfig클래스를 읽어 IOC와 DI를 적용하게 된다. 쉽게말하면, Conf..
스프링 관련 주요 어노테이션을 정리하면서 스프링 전반적인 개념을 좀더 쌓아보자 1. @Configuration 스프링에서 설정 클래스를 선언하는 어노테이션이다. 우선 스프링 빈을 만드는 방법은 @Bean, @Configurtaion, @Component 3가지 어노테이션을 사용하면 된다. Configuration을 클래스 파일에 달게 되면, 이 클래스는 빈등록하기 위한 파일이라는 것을 가시적으로 알려준다. @Configuration을 붙인 class를 java config파일이라고 생각한다면 @Configuration에 대한 클래스 파일 하위에 객체에 대한 return을 해주는 메소드에 빈을 해주면, ApplicationContext 중, AnnotationConfigApplicationContext는 ..
Pointcut : JoinPoint : 조인포인트는, 특정 aop가 발생되는 지점을 이야기한다. 이전 포스팅에서, 조인포인트를 지정하지 않아, 모든 메소드가 자동으로 걸렸던걸 이해하면 편하다, 이 조인포인트는 advice별로 적용이 가능하다. weaving : 위빙은 뜨개질하다라는 의미이기도 하다, 실제로 메소드나 특정 클래스가 호출될때 프록시를 통하게 되는데 해당 위빙은 프록시와, 이 타겟에 대한 동작과정을 엮는것을 의미한다. 이러한 Pointcut과 advice를 연결해주는 것을 advisor라고 한다. 시점, pointcut과 advice (행위) 를 서로 연결해 주는 중간 매개체라고 하면된다. 요런식으로 해당 매핑되는 메소드를 리스트 형태로, 세팅 할수도있다. 추가로 property name으로..
before advice는 생각 보다 단순하다. 해당 과 같이 생성하고, xml 파일에서 빈을 불러와서 로드한다. 단순히 클래스에 대한 빈등록을 하고, 해당 인터셉터 리스트에 추가해준다. 참고로 beforeAdvice는, MethodBeforeAdvice를 구현한다. AfterReturningAdvice, returnValue로, 해당 파라미터에 대한 사용도 가능하다 추가로 예외에 대한 핸들러도 등록이 가능하다. 강제로 쓰로우를 시키고 해당 쓰로우때, 빈을 등록하면, 해당 쓰로우 이후에는, 해당 인터셉터가 돈다 advice_throwing이라는 것을 볼수 있다. 여러가지의 advice를 활용하여 인터셉터를 구현해봤다. beforeAdvice,afterReturning,afterThrowing,around..
AOP 관련된 지식에 대해서 공부해보자 주 업무 비즈니스 로직의 전, 후, 전+후에 필요한 개발자 관점, 운영자 관점에서 필요한 업무가 있다 (로깅, 사용자 체크 등등) 해당 비즈니스 로직에 대한 처리 이후에 이런 공통된 작업을 해주는 것을 하는 행위를 AOP라고 한다. 이제 스프링 관련 AOP의 소스코딩을 해보자 우선 스프링 AOP를 사용하지 않았을때의 코딩 방법이다. 결과를 출력해주기 전에, 해당 과같이 작업을 해준다고 생각해보자 아니면 클래스 내에서 해당 소스를 나눴다고 생각해보자, 해당 AOP는 좋은 예로, 테스트에 대한 수행시간이다. 해당 과 같이 AOP적인 로직을 수행한다고 하면 모든 함수에, 작성해야한다. 소스를 나눈다고해도, 시점, 범위에 대한 일일히 설정하는 건 운영자로써 말도안되는 짓이..