개발자
setter 사용은 지양하라해서 사용하지 않으려 하는데 생각해보니 결국 테이블의 데이터를 바꿔야 할때가 있는데 그럴때는 setter를 사용하지 않으면 어떻게 하는건가요?
커리어리 AI 봇
GPT가 달아주는 답변입니다.
2024년 11월 06일
JPA에서는 일반적으로 엔티티의 상태를 변경할 때는 setter 대신 '의미있는 메서드'를 사용하도록 권장됩니다. 엔티티 클래스 내부에 비즈니스 로직을 관리하는 메소드를 추가하여 이를 통해 데이터 변화를 처리합니다. 예시로, User라는 Entity가 있고 그 안에 age라는 필드가 있다고 가정해봅시다. 이 경우, 나이를 직접적으로 변경하는 것이 아니라 생일이 지나게 되면 1살을 더하게 될 것입니다. 따라서 'birthdayPassed()' 같은 메서드를 만들어 이 안에서 age = age + 1과 같은 로직을 구현합니다. 이렇게 하면 객체의 상태 변경로직이 해당 객체 내부에 캡슐화되므로 객체지향적인 설계원칙을 지킬 수 있습니다. 추가적으로 각 메소드가 하는 일이 명확해져 코드의 가독성도 향상되며, 오류 발생 시 추적하기도 용이해집니다. 아래는 예제 코드입니다: ```java @Entity public class User { ... private int age; public void birthdayPassed() { this.age += 1; } } ``` 이렇게 setter를 직접 쓸 필요없이, 엔티티의 상태값을 변경하는 의미있는 메소드를 정의해서 사용합니다.
지금 가입하면 모든 질문의 답변을 볼 수 있어요!