개발/JAVA 3

Java 개발자가 JPA 를 쓸 때 이정도는 알고 쓰자 - 엔티티 기본 설계3

엔티티를 설계하면서 필수라고 볼 수 있는 연관관계, 그리고 내 엔티티는 어떤 쿼리를 생산하는가?에 대한 글을 작성합니다.Java 에서 객체지향적 표현과 DB 테이블의 표현 방식의 차이로 인한 패러다임의 불일치가 발생하지만, JPA 를 사용함으로서 그 문제를 해결할 수 있다는 것은 다들 아실거에요. 하지만, 이런 편한 기능 뒤에 숨어있는 JPA 의 동작 원리를 아는 것은 매우 중요합니다.편하게 객체지향적으로 DB 테이블을 다룰 수 있지만, 실제로 우리가 짠 코드에서 어떤 쿼리가 나가게 하는지 아는것은 아무리 강조해도 지나치지 않습니다. 편하다고 무작정 사용하면 성능 이슈 및 장애 유발 등 낭패를 볼 수 있습니다. (작성중...)

개발/JAVA 2025.02.18

Java 개발자가 JPA 를 쓸 때 이정도는 알고 쓰자 - 엔티티 기본 설계2

Java 와 Spring 프레임워크 생태계를 실무에서 사용하는 웹 백엔드 개발자들이 JPA 를 사용할때 종종하는 실수들이 있습니다.백엔드 개발자라면 JPA 를 사용할 때 이정도는 알고 쓰자는 의미에서 글을 작성합니다.JPA 구현체로는 Hibernate 를 사용하고 DB 는 MySQL 을 사용하는 것을 전제로 합니다.값 객체 JPA 에서 사용하는 값 객체의 의미와 그 사용법에 대해 알기전에 참고 객체를 안짚을 수 없을 것 같습니다.Java 에서는 참조 객체(Reference Object)라는 개념이 있습니다. 참조 객체는 객체가 메모리에 위치하는 그 주소자체를 참조하는 객체를 말합니다.class Person { String name;}public class Main { public static ..

개발/JAVA 2025.02.13

Java 개발자가 JPA 를 쓸 때 이정도는 알고 쓰자 - 엔티티 기본 설계1

Java 와 Spring 프레임워크 생태계를 실무에서 사용하는 웹 백엔드 개발자들이 JPA 를 사용할때 종종하는 실수들이 있습니다.백엔드 개발자라면 JPA 를 사용할 때 이정도는 알고 쓰자는 의미에서 글을 작성합니다.JPA 구현체로는 Hibernate 를 사용하고 DB 는 MySQL 을 사용하는 것을 전제로 합니다. 엔티티 설계@Entity@Getter@NoArgsConstructor(access = AccessLevel.PROTECTED) // 기본 생성자 보호@AllArgsConstructor(access = AccessLevel.PRIVATE) // AllArgsConstructor도 보호@Builder@Table(name = "order")public class Order { @Id @Gen..

개발/JAVA 2025.02.09