Spring Configuration
@Configuration이란 @Configuration 어노테이션 안에는 @Component 어노테이션이 붙어있어서 @Configuration이 붙어있는 클래스 역시 스프링의 빈으로 등록이 된다. 그럼에도 불구하고 스프링이 @Configuration을 따로 만든 이유는 CGLib으로 프록시 패턴을 적용해 수동으로 등록하는 스프링 빈이 반드시 싱글...
@Configuration이란 @Configuration 어노테이션 안에는 @Component 어노테이션이 붙어있어서 @Configuration이 붙어있는 클래스 역시 스프링의 빈으로 등록이 된다. 그럼에도 불구하고 스프링이 @Configuration을 따로 만든 이유는 CGLib으로 프록시 패턴을 적용해 수동으로 등록하는 스프링 빈이 반드시 싱글...
Filter Filter란 Web Application에서 관리되는 영역으로써 Spring Boot Framework에서 Client로 부터 오는 요청/응답에 대해서 최초/최종 단계의 위치에 존재하며, 이를 통해서 요청/응답의 정보를 변경하거나, Spring에 의해서 데이터가 변환되기 전의 순수한 Client의 요청/응답 값을 확인 할 수 있다...
서블릿(Servlet)이란? 서블릿(Servlet)이란 동적 웹 페이지를 만들 때 사용되는 자바 기반의 웹 애플리케이션 프로그래밍 기술이다. 쉽게 말해, “웹 서버 프로그래밍을 하기 위한 사양을 갖춘 자바 코드” 라고 할 수 있다. public abstract class HttpServlet extends GenericServlet { //....
DI(Dependency Injection) DI(Dependency Injection)란 스프링이 다른 프레임워크와 차별화되어 제공하는 의존 관계 주입 기능으로,객체를 직접 생성하는 게 아니라 외부에서 생성한 후 주입 시켜주는 방식이다. DI(의존성 주입)를 통해서 모듈 간의 결합도가 낮아지고 유연성이 높아진다. 첫번째 방법은 A객체가 B와...
개발을 하며 @Transactional에 대해 잘못 사용하고 있는 경우가 있었다. @Transactional의 동작구조를 이해하기 위해서는 스프링의 AOP 를 다시 한번 생각해보는 것이 중요했다. 따라서 각 기술에 대해 공부해보았다. AOP란 무엇이며 왜 사용하는가 Spring AOP는 왜 프록시를 사용하는가 @Transactional...
범위지정함수(scope function)란? 범위지정함수는 특정 객체에 대한 작업을 블록 안에 넣어 실행할 수 있도록 하는 함수이다. 블록은 특정 객체에 대해 할 작업의 범위가 되며, 따라서 범위지정함수라 부른다. 특정 객체에 대한 작업을 블록안에 넣게 되면 가독성이 증가하여 유지 보수가 쉬워진다. 코틀린에서는 apply, run, with, let...
REST 아키텍처 원리 Client , Server : 클라이언트와 서버가 서로 독립적으로 분리되어져 있어야 한다. Stateless : 요청에 대해서 클라이언트의 상태가 서버에 저장을 하지 않는다. 캐시 : 클라이언트는 서버의 응답을 캐시 할 수 있어야 한다. 클라이언트가 캐시를 통해서 응답을 재사용할 수 있어야 하며, 이를 통해서 서...
이번에 이직한 회사에서는 Kotlin으로 개발을 진행하고 있었다. 따라서 기술에 대해 공부해보았다. 코틀린이란 무엇인가? 코틀린(Kotlin)이란 기존의 자바 플랫폼에서 돌아가는 새로운 프로그래밍 언어이다. 앞으로 함께 알아보겠지만 코틀린은 간결하고, 실용적이면서도 자바 코드와 상호운용성(interoperability)을 중요시한다. ...
JPA를 활용할 때, @Transactional의 각 옵션들에 대해 정확히 알고 사용하려고 한다. 따라서 각 기술에 대해 공부해보았다. @Transactional 의 옵션 Spring 에서 @Transactional 을 사용할 때 지정할 수 있는 옵션들은 아래와 같다. isolation propagation readOnly...
JPA를 활용할 때, @Transactional의 각 옵션들에 대해 정확히 알고 사용하려고 한다. 따라서 각 기술에 대해 공부해보았다. @Transactional(isolation= ?) Isolation(트랜잭션 격리수준)이란 동시에 실행되는 트랜잭션이 서로에게 영향을 미치지 않도록 지정하는 옵션이다. Propagation...