본문 바로가기

JPA3

JPA를 사용해야하는 이유 모락 프로젝트를 진행하면서 JPA를 사용했지만, 사용해야 하는 이유에 대해서 생각을 정리해보지 못했다. 단순히 SQL을 직접 작성하지 않아도 되기 때문에 사용했다고 생각해왔다. JPA를 왜 사용해야 할까? 여러 가지 이유들이 있다. 1. SQL을 직접 작성하지 않아도 된다. JPA는 실행 시점에 자동으로 SQL을 만들어서 실행하므로 직접 작성하지 않아도 된다. 그렇다면 SQL을 직접 작성한다면 어떤 문제가 발생할까? 첫 번째로 SQL에 의존적인 개발을 하게 된다. 현재 모락 테이블은 아래와 같다. 더보기 모락 테이블 스키마 CREATE TABLE member ( `id` BIGINT NOT NULL AUTO_INCREMENT, `oauth_id` VARCHAR(255) NOT NULL UNIQUE, `n.. 2022. 11. 8.
테스트를 통해 JPA Entity 영속성에 대해 알아보자 (1) 예시로 사용된 코드는 깃허브를 통해 확인할 수 있습니다. 모락 프로젝트를 진행하면서 다양한 상황에서 영속성이 어떻게 적용되는지에 대해 정확하게 알지 못하고 JPA를 사용해왔습니다. 따라서 테스트를 통해 영속성에 대한 학습을 진행해보았고 헷갈리는 부분에 대해 정리해볼 수 있었습니다. 1편에서는 EntityManager의 persist 메서드에 대해, 2편에서는 merge 메서드에 대해 다룰 예정입니다. 테스트는 아래의 Member Entity를 이용하여 진행하였습니다. 1. save 하려는 Entity 객체와 save 후 반환되는 Entity 객체는 동일한 객체일까? 다음의 테스트를 통해 살펴보겠습니다. 위의 테스트는 통과합니다. save 하려고 만든 멤버 객체와 save 후 반환되는 저장된_멤버 객체가 .. 2022. 8. 29.
JPA entity에 validation annotation을 붙인 이유 예시로 사용된 코드는 깃허브를 통해 확인할 수 있습니다. validation annotation을 붙인 이유와 생성자 검증의 맹점에 대해 작성한 글입니다. DB에 있는 데이터들을 100% 신뢰할 수 있다!라고 생각한다면 이 글은 읽지 않으셔도 좋습니다. 모락 프로젝트를 진행하면서, Entity 필드의 검증 로직이 존재해야 하는 곳에 대한 토론을 많이 진행했습니다. 우리는 토론의 결과로 검증을 위해 Entity 필드에 validation annotation을 붙이는 것을 택했습니다. 모락에서 사용되는 Entity에 대한 예시로는 다음과 같습니다. Entity 필드에 대해 올바른 값인지 확인하는 방법은 2가지가 있습니다. 1. 위와 같이 각 필드에 validation annotation을 붙이기 2. Ent.. 2022. 8. 28.