Spring Boot AOP
·
Spring/Spring Boot
관점 지향 프로그래밍(AOP)AOP란 프로그램 구조를 다른 방식으로 생각하게 함으로써 OOP를 보완한다.OOP에서 모듈화의 핵심단위는 클래스이지만 AOP에서 모듈화의 핵심단위는 관점(aspect)이다.관점은 다양한 타입과 객체에 걸친 트랜잭션 관리같은 관심(concern)을 모듈화할 수 있게 한다.crosscutting concerns: 횡단 관심사core concerns : 주요 관심사쉽게 말하면 Service에 덕지덕지 붙는 Logging, Exception Handling, Transaction등을 안붙이고 분리하여 관리한다는 얘기이다.  AOP 주요 용어 정리Aspect관심사를 모듈화한 클래스. 로깅, 트랜잭션 관리, 보안 등과 같은 애플리케이션의 횡단 관심사(cross-cutting concer..
Spring Boot 자동 구성과 조건(@EnableAutoConfiguration)
·
Spring/Spring Boot
@EnableAutoConfiguration이 어노테이션도 참 중요한 역할을 하는데, 역할은 현재가지고 있는 의존성을 체크해서 특정 클래스들을 로드하는 역할을 한다.쉽게 설명하자면 Servlet관련된 의존성이 있으면 Servlet.class를 불러오고, Web-starter가 있으면 DispatcherServlet.class, WebMvcConfgiurer.class를 불러오는 기능이다. WebFlux 의존성이 있으면 webflux 관련된 클래스를 불러온다. 그래서 참고로! webflux 의존성이랑 web-starter의존성이 겹치면 에러가 나는 이유기도하다. 구현은 @Conditional이라는 어노테이션으로 만들어져있다.구분내용비고@ConditionalOnWebApplication프로젝트가 웹 애플리..
Spring Boot Main 실행흐름
·
Spring/Spring Boot
Main 흐름Spring Boot에서 Main은 정말 큰 역할을 한다고 개인적으로 생각하고 있다. 따라서 오늘은 Main에 있는 코드를 좀 따라서 볼 생각이다. @SpringBootApplication@SpringBootConfigurationSpring Boot의 특수한 설정 클래스임을 나타내는 애너테이션 (@Component 를 포함)@ComponentScanSpring에게 지정된 패키지와 그 하위 패키지들을 스캔하도록 지시하는 어노테이션스프링이 컴포넌트를 자동으로 찾아서 스프링 애플리케이션 컨텍스트에 빈으로 등록할 위치를 지정한다.@EnableAutoConfigurationSpring Boot의 자동 구성 기능을 활성화Spring Boot main에 붙어있는 어노테이션은 이정도가 있으며 다음 게시글..
Spring DI(의존성 주입)
·
Spring/Spring Boot
Spring DI(Dependency Injection)객체가 필요로 하는 의존성을 외부에서 직접 주입 받는 것을 DI라고 한다.의존성 주입은 IoC(제어의 역전)을 구현하기 위한 수단이다.Dependency Inversion Principle(의존성 역전 원칙)상위 모듈이 하위 모듈에 의존 관계를 가지지 않도록 구현해야한다.추상 클래스는 그 구현체의 내용에 의존관계를 가지지 않는다.구현체가 추상 클래스에 의존관계를 가진다.말만 다르고 다 비슷한 말이긴한 것 같다. Spring DI 방법스프링에서는 의존성 주입하는 방법이 3가지있다.Constructor Injection(생성자 주입)Setter Injection(세터주입) : @Autowired 을 setter에 달아준다Field Injection(필드..
Spring IoC(제어의 역전)
·
Spring/Spring Boot
IoC (제어역전)제어권을 프레임워크가 갖는것 == 개발자는 제어권이 없다 == 제어(Control)가 역전(Inversion) 되었다.IoC : Inversion of Control제어프로그램의 흐름객체의 생성IoC 관점에서 각자의 역할개발자는 코드의 흐름이나 객체생성에 관련된 코드를 직접 작성하지 않는다.개발자는 프레임워크가 제공하는 정의 방법을 사용하여 코드를 정의만 한다.프레임워크는 이 정의을 보고 객체를 생성하고 코드가 동작하는 순서를 결정하여 실행한다. Spring은 IoC라는 디자인 패턴을 지원해주는 프레임워크 중 하나이다.Bean이라는 개념으로 이 디자인패턴을 따르고 있는데 그럼 누가 생성하며 빈의 생명주기는 어떻게 될까?그전에 알아둬야할 용어가 몇가지있다.1. Bean FactorySpr..
Spring Boot 소개
·
Spring/Spring Boot
Spring Boot의 시작Mike Youngstrom 의 요청 jira issue SPR-9888 라는 메인으로 바로 시작하고 싶다는 요청으로 시작되었다.Spring Boot?Spring Framework 를 사용하는데 불편함이 있어서 (각종 설정 작업 등등) 더 편하게 사용하기 위해서 나온 프로젝트이다. 내부적으로 Spring Framework 기반으로 동작한다. Spring Boot의 목표Java –jar 로 실행이 가능 Spring Boot의 기능단독으로 실행가능한 애플리케이션 생성 (프레임 워크도 5.0 부터 가능)실행형 jar, 실행형 war내장형 웹 애플리케이션 서버 지원 (프레임 워크도 5.0 부터 가능)Tomcat, Jetty, Undertow, Netty for WebFlux기본 설정된..
Spring Framework 소개
·
Spring/Spring Boot
Spring Boot? Spring Boot는 프레임워크이다.입장이 다르다고 생각하면된다. 라이브러리는 우리가 코드에서 라이브러리를 호출해 사용한다. 반대로 프레임워크의 입장에서는 우리가 적어 놓은 코드가 라이브러리이다. 왜 프레임워크를 써야할까?기능적 요구 사항과 비기능적 요구사항의 분리디자인 패턴의 형태로 수년간의 지혜를 초보자도 따라가기 쉽다.업계 및 규제 표준을 준수하는 데 도움.애플리케이션을 만들고 유지보수 하는 데 비용이 절감어떤 프레임워크를 써야 할까?표준신뢰성생태계Spring Framework는?자바 엔터프라이즈 개발을 편하게 해주는 오픈 소스 경량급 애플리케이션 프레임워크이다.표준Java 엔터프라이즈 개발에 있어 사실상의 표준. Java EE를 기반으로 하며, 많은 Java 개발자들이 익..
helloJosh
'Spring/Spring Boot' 카테고리의 글 목록