Java Reflection (3) 썸네일형 리스트형 [Java] TDD란? 실습을 통한 실천법 다음 주제는 채수원 저자님의 '테스트 주도 개발: TDD 실천법과 도구' 1장을 토대로 작성한 글이다. TDD란 무엇이고 개발 방식과 이에 따른 효과에 대한 내용이다. TDD 개요TDD의 정의일반적인 소프트웨어 개발 프로세스는 기능을 구현하고 테스트를 수행하는 형태이다. TDD(Test Driven Development)에서는 그와 반대로 진행된다. 기능을 구현하기 전에 테스트 케이스 작성부터 하는 개발 접근 방식이다.Test the program before you write it.켄트 벡(Kent Beck) 테스트 케이스는 테스트 할 경우의 수를 메서드 단위로 작성한 것이다. 이렇게 요구사항을 충족하는 기능을 구현하기에 앞서 테스트 케이스를 먼저 작성한다. 그리고나서 프로덕션 코드를 작성하고 테스트한.. [Spring] CGLIB로 트랜잭션 자동 관리 원리 구현 JDK Dynamic Proxy로 EntityManager 생명주기 자동 관리 원리 구현에서 프록시 객체를 통해 EntityManager 인터페이스의 메서드가 호출될때마다, 런타임에 EntityManager 구현체를 지연 생성 후 메서드 호출이 가능하도록 구현하였다. 이어서 트랜잭션 스코프를 나타내는 @Transactional 애노테이션을 붙인 메서드 내에서 EntityManager 구현체의 생명주기가 관리될수 있도록 구현할것이다.트랜잭션이 시작될 때 프록시 객체가 실제 EntityManager 구현체를 생성 후 트랜잭션을 마칠때 EntityManager 구현체를 닫히도록 로직을 작성하고, 트랜잭션 스코프 내에서 자동으로 트랜잭션이 처리되도록 구현하려고 한다.이를 통해, Spring과 JPA가 통합된 애.. [Spring] JDK Dynamic Proxy로 EntityManager 생명주기 자동 관리 원리 구현 이전에 EntityManger와 Persistence Context 내용에 이어서, JPA를 사용한 스프링 부트 애플리케이션(전반적인 Spring 생태계 이해 (9) - JPA)에서 트랜잭션을 시작하면, 런타임 시점에 어떻게 주입했던 EntityManager 구현체를 다시 생성해서 주입하는지 알아보기 위해서 작성한 내용이다. 그리하여 JPA에서는 이를 java로 어떻게 구현했는지 알아보았다.동적으로 객체 생성과 주입인터페이스로 동적으로 EntityManager 구현체 생성 및 주입웹 애플리케이션 계층구조에서 일반적으로 Service 클래스의 메서드를 트랜잭션 범위로 설정하며, Repository 객체 생성에 EntityManager 구현체를 주입한다. 이 트랜잭션 범위 마다 런타임 시점에 새로운 Enti.. 이전 1 다음