Programming/Refactoring 3

JPA의 변경감지를 이용한 회원 수정 메소드 변경

🤍JPA의 '변경감지'란?영속성 컨텍스트에 의해서 관리되는 엔티티들은, 별도의 save 메소드를 호출하지 않고도 엔티티의 상태가 변경되면 자동으로 DB에 반영됩니다.또한 변경감지는 @Transactional 내에서 작동합니다. 🤍@Transactional 이 필요한 이유@Transactional은 트랜잭션의 시작과 종료를 관리하며, JPA의 변경 감지(Dirty Checking)가 제대로 작동하도록 보장합니다. 트랜잭션이란?- 여러 작업을 하나의 작업 단위로 묶음- ACID(Atomiciy, Cosistency, Isolation, Durability) 속성 보장- 작업 중 예외 발생시 롤백 처리 영속성 컨텍스트란?- JPA에서 엔티티를 관리하는 캐시 영역- 엔티티가 영속성 컨텍스트에 들어오면 영속상..

@AllArgsConstructor 와 @Builder

🤍 @AllArgsConstructor모든 필드를 파라미터로 받는 생성자를 자동으로 생성합니다.따라서, 모든 필드를 한 번에 초기화해야 합니다. @AllArgsConstructorpublic class SignupRequestDto { private String name; private LocalDate birth; private String email; private String firstAddress; private String secondAddress; private String password;}// 모든 필드를 한번에 초기화한 객체SignupRequestDto dto = new SignupRequestDto("레이지캣", LocalDate.of(1990, 1, ..

DTO와 엔티티의 역할, 비즈니스 로직의 위치

🤍DTO와 엔티티 역할의 차이1. DTO의 역할데이터 전달 객체: 주로 클라이언트와 서버 간, 계층 간 데이터를 전달하는데 사용됩니다.얇은 계층 객체: 데이터 전달과 유효성 검사만 담당하며, 비즈니스 로직은 포함하지 않습니다.2. 엔티티의 역할도메인 객체: 데이터베이스와 매핑되며, 비즈니스 로직과 데이터를 함께 포함합니다.상태와 행위 관리: 상태의 유효성을 보장하고, 필요한 상태 변경 로직을 포함합니다. 🤍프로젝트 코드 리팩토링 방향 회원가입 DTO에서 회원 Entity로의 변환을 돕는 비즈니스 로직이 포함되어있는 상태이다. 그러나 DTO에 toEntity()를 포함하게 된다면,단일 책임 원칙(SRP) 위반: 데이터 전달과 객체 변환이라는 두 가지 책임을 지게 된다.DTO와 엔티티의 강한 결합: DT..

반응형