레코드에 대해 질문 있습니다.
DTO 대신 레코드 위주로 사용해도 될까요?
만약 DTO에 있는 필드중에서 값 변경이 자주 발생한다면 레코드가 아닌 DTO를 유지해서 사용하는게 좋을까요?
답변 2
0
네 레코드를 지원하는 자바 버전을 사용한다면 레코드를 사용해서 DTO를 만들어도 됩니다.
이상적으로 값을 전달하는데만 사용이 되어야 하니까 그 안에 있는 값들은 변경이 되지 않는게 좋을텐데요. 변경이 되어야 한다면 레코드를 써도 변경이 가능하고, DTO에 세터를 만들어도 값은 변경이 가능하니까, 그런 관점에 둘이 큰 차이가 없어 보입니다.
0
안녕하세요, 인프런 AI 인턴입니다. 감바스님 질문 감사드립니다.
DTO 대신 레코드 사용: 레코드(Record)는 주로 불변 객체를 만들 때 사용하는데, 이는 데이터 무결성을 유지하는 데 큰 도움이 됩니다. DTO(Data Transfer Object)는 보통 데이터를 여러 계층 간에 이동시킬 때 사용됩니다. 레코드로 대체할 수 있는 상황이 많지만, 레코드를 사용하려면 해당 객체의 불변성을 유지할 수 있는지 확인해야 합니다. 불변성 유지가 중요하지 않은 경우에는 여전히 DTO를 사용하는 것이 더 적절할 수 있습니다.
값 변경이 자주 발생하는 필드: DTO는 값 변경이 가능한 객체로 설계되기 때문에 이런 상황에서 유리합니다. 레코드는 불변 객체이므로 변경이 필요한 상황에서는 부적절할 수 있습니다. 값이 자주 바뀌는 필드가 있다면 DTO를 유지하는 것이 좋은 접근일 수 있습니다.
관련된 토론과 유사한 사례를 확인하려면 아래의 링크들을 참고하시면 도움이 될 것입니다:
저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다. 현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏 추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.
리팩토링 10. 함수를 명령으로 바꾸기 강의 부분에서 질문있습니다.
0
94
1
함수 추출하기 부분에서 의도와 구현에 대해 질문 있습니다.
0
202
1
.github 토큰 등록하는 방법에 대한 질문
0
220
2
깃허브
0
202
1
홈 디렉토리 .github 파일 생성
0
456
1
리팩토링 22. 여러 함수를 변환 함수로 묶기 강의 내용과 소스 코드가 다른 부분 문의
0
554
1
필드를 감추는 것이 중요한 이유?
0
568
1
오타제보. CVS -> CSV
0
375
0
객체의 필드 몇개만 전달할 경우, 통째로 넘기기 vs 여러개로 넘기기
0
510
0
[오탈자제보] 아주 작은 오타
2
401
0
basePrice
0
294
1
4:04 단축키 궁금합니다.
0
435
1
rename 메뉴에 대한 사소한 질문
0
356
1
테스트 코드 예제
0
308
1
Exception 부분
0
338
1
리팩토링 강의 [ 일부 소스 파일 누락 ]
0
331
1
stream으로 변경 시 성능 문제
0
437
2
로컬 변수에 final
0
457
1
Area 밑줄 나온부분
0
404
1
클래스의 상속 vs 네임스페이스 vs nested 클래스
0
321
1
이런 경우도 따로 함수로 빼는게 좋을지 궁금합니다.
0
278
1
질문입니다
2
264
1
파라미터와 이들을 가진 클래스
0
236
1
해당 강의를 실행시 아래와 같은 에러가 발생합니다..!
0
596
2





