Spring32 @Transactional에 대해서 알아보자 목차트랜잭션이란?스프링에서 @Transactional테스트 환경에서의 @Transactional결론1. 트랜잭션이란?우리말로 ‘거래’라는 뜻을 가지고 있으며 다음과 같다.단일한 논리적인 작업 단위논리적인 이유로 여러 SQL문들을 단일 작업으로 묶어서 나눠질 수 없게 만든 것이 트랜잭션이다.트랜잭션이 SQL문들 중에 일부만 성공해서 DB에 반영되는 일은 일어나지 않는다.A가 B에게 10000원 입금을 하는 상황을 가정해보자.A는 통장에서 10000원이 출금된다.B는 통장에서 10000원이 입금된다.이처럼 2가지 작업이 모두 정상적으로 성공해야만 하나의 상황으로 묶는 것을 트랜잭션이다.모든 작업들이 성공적으로 완료 되어야 결과를 적용하고, 어떤 작업에서 오류가 발생했을 때는 이전에 모든 작업들이 성공적이었더.. 2023. 12. 4. 스프링의 등장과 스프링 부트 목차개요스프링 프레임워크의 등장스프링의 역사스프링 프레임워크의 확대스프링 부트의 등장스프링 부트의 핵심 기능 5가지스프링 프레임워크와 스프링부트1. 개요초반에는 EJB(Enterprise Java Bean)라는 기술이 자바 진영의 표준 기술로 개발시장을 독점하고 있었다. EJB의 치명적인 단점으로 코드들이 EJB에 지나치게 의존적으로 개발을 진행해야한다는 것이다. EJB가 너무 복잡하면서 의존적으로 개발이 되다 보니 순수한 자바를 사용하자는 용도로 POJO(Plain Old Java Object)라는 용어가 나올 정도로 어렵고 제한적인 기술이다. 2. 스프링 프레임워크의 등장전설의 시작..2002년 로드 존슨이 EJB의 비즈니스 자체의 복잡함의 문제점을 지적하며 (J2EE Design and Develo.. 2023. 11. 30. 생성자주입을 선택해라! 목차개요다양한 의존성 주입방법2-1. 생성자 주입(Constructor Injection)2-2. 수정자 주입(Setter Injection)2-3. 필드 주입(Field Injection)생성자주입을 선택하는 이유3-1. 불변3-2. 누락 방지3-3. final 키워드결론1. 개요스프링에서 의존관계 주입에는 생성자 주입, 필드 주입, 수정자 주입이 존재한다.과거에는 수정자 주입과 필드 주입을 많이 사용했지만, 스프링을 비롯한 DI프레임워크 InteliJ 등등 대부분이 생성자 주입을 권장한다.왜 생성자 주입을 권장하는지 아래에서 살펴보자.2. 다양한 의존성 주입방법2-1. 생성자 주입(Constructor Injection)생성자 주입은 생성자를 통해 의존 관계를 주입하는 방법이다.@Service pub.. 2023. 11. 28. 스프링 AOP(Aspect Oriented Programming) 목차AOP(Aspect Oriented Programming)란?AOP 용어스프링 AOP 동작과정1. AOP(Aspect Oriented Programming)란?AOP는 관점지향프로그래밍을 의미한다.비즈니스 로직으로부터 중복된 관심사를 분리하는 것에 목적을 둔다. 애플리케이션에서 코드가 중복되고, 강력하게 결합되어 있어 다른 로직과 분리할 수 없는 애플리케이션 로직. ex) 로깅, 보안 트랜잭션 등등즉, AOP란 부가기능을 따로 관리하는 것을 의미한다.장점전체 코드 기반에 흩어져 있는 관심 사항이 하나의 장소로 응집한다.자신의 주요 관심사항에 대한 코드만 포함하고 있기에 코드가 깔끔해진다.결국, 객체지향적으로 코드를 짤 수 있게 도우며 유지보수가 용이해진다.2. AOP 용어Target : 부가기능을 부.. 2023. 11. 17. properties vs yml 목차개요propertiesymlproperties vs yml결론1. 개요우리는 데이터베이스와 관련된 설정이나 스프링과 관련 설정등을 할때 주로 저 두개를 많이 사용하게 된다.최근 프로젝트나 많은 오픈 소스에서는 properties보다 yml을 많이 사용하고 있는 추세이다. 어떠한 차이점으로 인해 많은 프로젝트들이 yml을 선호하는지 알아보려고 한다.2. properties스프링부트가 애플리케이션을 구동할때 자동으로 로딩하는 파일이다.key - value 형식으로 값을 정의하면 애플리케이션에 참조하여 사용할 수 있다.spring.h2.console.path=/h2-console spring.datasource.url=jdbc:h2:~/test spring.datasource.driverClassName=.. 2023. 11. 15. 필터(filter) vs 인터셉터(interceptor) 목차개요필터(filter)란?2-1. 필터 흐름2-2. 필터 체인2-3. 필터 인터페이스인터셉터(interceptor)란?3-1. 인터셉터 흐름3-2. 인터셉터 체인3-3. 인터셉터 인터페이스필터 vs 인터셉터4-1. 관리되는 컨테이너 영역4-2. 스프링의 예외 처리 여부4-3. Request/Response 객체 조작 가능 여부4-4. 필터(Filter)와 인터셉터(Interceptor)의 용도 및 예시결론1. 개요서블릿 필터와 스프링 인터셉터는 웹과 같이 공통 관심사항을 효과적으로 해결할 수 있는 기술이다.필터는 서블릿이 제공하는 기술이고, 인터셉터는 스프링 MVC가 제공하는 기술이다.둘다 웹과 관련된 공통 관심 사항을 처리하지만 적용되는 순서와 범위 그리고 사용범위는 다르다.2. 필터(filter).. 2023. 8. 1. 이전 1 2 3 4 5 6 다음