본문 바로가기

웹개발/Spring

(4)
[Spring]Spring JPA의 1차 캐시는 얼마나 이득을 줄 수 있을까. Spring JPA는 1차 캐시를 사용한다. 1차 캐시는 EntityManager 단위로 생성되기 때문에 EntityManager와 함께 사라진다. 사용자의 Request마다 EntityManager가 생성되고, 그 요청을 수행하면 소멸되기 때문에 1차 캐시의 Life cycle은 Transaction과 일치한다. 즉 1차 캐시를 사용하면 하나의 Transaction 내에서만 이득을 볼 수 있다. 그 성능이 얼마나 좋은지 간단하게 테스트 해본다. 이런 식의 데이터가 약 500번까지 있다. 이번 실험에서 이 500개의 데이터를 조회함으로써 1차 캐시의 성능을 측정할 것이다 package hellojpa; import javax.persistence.EntityManager; import javax.pers..
[Spring] Annotation을 알아보자 - 2. Annotation은 어떻게 처리될까? 이번 글은 https://medium.com/@jintin/annotation-processing-in-java-3621cb05343a의 도움을 많이 받았습니다. 1. 우선 Class나 Methods, parameters 혹은 Annotation의 Annotation에 따라 Annotation Class를 만든다. 2. Annotation Parser Classes를 생성한다. 3. Project에 Annotation들을 추가한다. 4. Compile을 시작하고 Annotation parser가 Annotation을 관리한다. 5. 자동 생성된 클래스들이 build 폴더에 추가된다. 예를 들어봅시다. @Controller // Controller Annotation이 있으면 관련 객체를 생성해서 Spri..
[Spring] Annotation을 알아보자 - 1. 기본 개념과 직접 해보기 스프링에 입문한 Jay는 역시나 스프링 내부구조를 뜯어보는 것에 흥미가 생겼다. 이 글은 https://dzone.com/articles/how-annotations-work-java를 참고했다. DZone에 재밌는 글이 많다. (실력자 볼 때마다 두근거린다. 마치 2대 600치는 장미란 선수를 볼 때의 헬스 빌런의 마음이랄까) How Do Annotations Work in Java? - DZone Java Let's discuss what annotations are, how they work, how to write custom annotations (with example code), valid scenarios for annotations, and lastly, annotations and AD..
[Spring] 테스트 코드는 순서대로 실행되지 않는다. Member와 관련된 함수를 테스트하는 코드를 가볍게 작성해보았다. public class MemoryMemberRepositoryTest { MemoryMemberRepository repository = new MemoryMemberRepository(); @Test public void save() { Member member = new Member(); member.setName("Spring1"); repository.save(member); Member result = repository.findById(member.getId()).get(); assertThat(member).isEqualTo(result); } @Test public void findByName(){ Member membe..