[Spring] JPA 엔티티에 왜 기본 생성자가 필수일까?
·
Spring/JPA
안녕하세요. 글 쓰는 개발자 stark입니다! 오늘은 JPA를 사용하면서 "왜 엔티티에 기본 생성자가 필수적일까? 하는 궁금증을 해결하기 위해 공부한 내용을 정리해보려고 합니다. 어느 날, 제가 작성한 코드를 리뷰하며 피드백하던 중 엔티티 클래스가 너무 지저분하게 작성된 것이 아닌지 생각해 보게 되었습니다. 그래서 어떻게 해야 코드가 깔끔해질지 고민하며 매개변수가 없는 기본 생성자를 제거해 보았습니다.@AllArgsConstructor(access = AccessLevel.PRIVATE)@NoArgsConstructor // 이 코드를 제거했습니다.@Getter@Entity@Table(name = "member")public class MemberEntity { @Id @Genera..
[Java] List를 Optional로 처리할 때 고려해야 할 사항
·
JAVA
Optional에 List를 담았을 때 착각할 수 있는 점이 있다.📌 서론개발 작업을 하던 도중 외부 api를 호출하여 받은 응답 객체(DTO) 내부의 List 필드를 가져다 사용하는 경우가 있었다. 이때 NPE가 생기지 않도록 하기 위해 Optional로 List 필드를 한번 감싸게 되는 상황이 있었다. 이게 선호되는 방법은 아니지만 NPE를 방지하고자 로직을 이렇게 작성하게 되었다. 문제는 내가 착각을 해서 Optional로 감싼 리스트가 빈 리스트(Empty List) 일 때도 ifPresentOrElse() 메서드의 else에 잡힌다고 생각했다. 근데 빈 리스트는 null이 아니기 때문에 orElse에 잡히지 않는다. 그래서 로직을 또 바꾸게 되는 일이 생겼다. 바보 같은 실수일 수도 있지만 충..
왜 스프링인가? 프레임워크의 철학 가볍게 살펴보기
·
Spring/Spring 기초 지식
스프링 프레임워크란?스프링 프레임워크는 자바 엔터프라이즈 애플리케이션 개발의 복잡성을 줄이기 위해 설계된 강력한 오픈소스 프레임워크입니다. 주요 목표는 객체 지향 원칙을 준수하며 유연하고 테스트 가능한 코드를 작성하도록 돕는 것입니다. 스프링 프레임워크의 대표적인 특징으로는 POJO(Plain Old Java Object) 기반의 경량화 설계와 유연한 아키텍처가 있습니다. 이를 통해 기존 자바 기술(JDBC, JPA 등)과의 높은 호환성을 제공하며, 대규모 애플리케이션부터 소규모 프로젝트까지 다양한 범위에서 활용됩니다. 스프링의 탄생과 철학을 알아봅시다. 자바 엔터프라이즈 애플리케이션 개발은 2000년대 초반까지 매우 복잡하고 어려운 일이었습니다. EJB(Enterprise JavaBeans)라는 무거운..