development/spring 13

JPA 참고사항 정리

※ 참고사항 정리 1. Entity와 Dto 매핑을 위한 MapStruct(Lombok) - @QueryProjection을 사용하여 DTO에 바인딩 할 수도 있고,Lombok에서 제공하는 MapStruct을 사용하여 엔티티가 아닌 원하는 DTO에 데이터를 바인딩하도록 설정 가능 (필드 이름이 상호 일치하지 않을 경우 @Mapping 어노테이션으로 매핑 규칙 정의) 참고: https://blog.naver.com/n_cloudplatform/222957490406 2. 대량 로우 업데이트의 경우 영속성 컨텍스트(EntityManager)에서 객체를 가져와 건건이 update를 할 수 있으나 (대상건을 먼저 영속성 컨텍스트에서 조회한 후 식별자로 객체를 찾아 for문으로 건건이 처리)   영속성 컨텍스트에..

development/spring 2023.09.15

JPA 정리본

*** JPA ***    ※ JPA의 핵심 내용      1. Persistence Context - 영속성 컨텍스트      2. ORM - 객체와 관계형 DB의 매핑 (Object Relational Mapping) -> JPA는 JAVA의 ORM 표준 명세이다.   1. JPA는 인터페이스, Hibernate는 구현체이다. (Spring-data-JPA는 Spring에서 JPA를 사용할 수 있도록 프레임워크에서 제공하는 JPA) 1-1. JAVA Persistence API - 자바 진영에서 제공하는 표준 ORM 기술이다. (객체와 RDB의 릴레이션 매핑) 1-2. JPA는 스레드가 생성될 때마다 EntityManagerFactory에서 EntityManager를 생성한다.      EntityM..

development/spring 2023.09.15

테스트 주도 개발 - TDD란?

안녕하세요. 이번 시간엔 테스트 주도 개발이라 불리는 TDD - Test Driven Development 에 대해서 다뤄보려고 합니다. 최근 많은 기업들이 TDD와 DDD 기반의 개발, 테스트 문화를 채택하고 있어 현재 개발 시장에서 트랜드라고 해도 무방하지만.. 제가 SI업무를 하다보니 실무에서 접할 기회가 없어 이렇게 따로 학습하여 정리해보고자 합니다. 부족한 점이 많으니, 교정은 언제든 환영입니다! 테스트 주도 개발(TDD) 는 크게 두 가지 범주로 나눌 수 있습니다. TDD(Test Driven Development) : 순수한 자바 기반의 테스트 코드를 작성하는 것 ATDD(Application Test Driven Development) : Spring과 같은 프레임워크와 결합된 어플리케이션..

development/spring 2023.08.01

Spring Boot 와 Spring Legacy

올해 들어 새 프로젝트를 진행하고자 인텔리제이에서 스프링부트 프로젝트를 하나 생성하였는데요. 부트 버전이 벌써 3. 대가 출시되었습니다. 이에 맞게 Spring Swagger와 Spring Security 등도 최신버전을 채택하여 설정을 진행하였는데, Security는 Lambda를 사용하게끔 바뀌었고 Swagger는 Builder패턴을 사용하여 설정할 수 있도록 바뀌었습니다. 레퍼런스를 찾아보며 프레임웍을 구성하다 문득 그런 생각이 들었습니다. Spring Boot를 쓰는 이유가 뭘까? 누군가 제게 Legacy Project와 Boot의 차이를 묻는다면 적절한 대답을 하지 못할 것 같다는 생각이 들었고, 이에 이번 글을 통해 간략하게나마 Legacy Project와 Spirng Boot의 차이점을 정리..

development/spring 2023.07.18

자주 사용하는 Spring annotation 정리

안녕하세요. 개발자란 주어진 환경을 그대로 수용하는 수동적 존재가 아니라 끊임없이 자신이 사용하는 프레임워크와 라이브러리에 대해 왜? 라는 의문을 제기하며 그 원리를 파악해나가는 능동적 존재라 생각합니다. 프레임워크와 환경의 동작원리를 알고 코딩을 하는 것과, 기계적으로 암기된 형태를 짜맞추는 것은 결과에 있어 큰 차이를 만듭니다. 또한 풍부한 기초지식은 그것을 바탕으로 응용을 할 수 있는 발판이 되기 때문에 코딩뿐만 아니라 이론과 동작원리에 대한 학습을 게을리하지 않을 생각입니다. 오늘은 그 학습의 일환으로서 Spring을 사용하여 웹 개발시 자주 사용하는 어노테이션에 대해 정리해보고자 합니다. 오늘 다룰 내용은 다음과 같습니다. 어노테이션이 제공하는 기능과 흔히 하는 실수들에 대해 살펴보도록 하겠습니..

development/spring 2023.06.05