본문 바로가기

분류 전체보기266

도메인 모델, 엔티티, DTO, VO 차이 정리 각 객체들의 의미를 살펴보고 어떤 차이가 있는지 알아보자. 각 객체들의 관계를 그림으로 나타내 보았다. 기본적으로 도메인 모델, 엔티티, DTO, VO는 객체(Object)이다. 일단 크게는 도메인 모델 객체, DTO, VO로 나눠 볼 수 있다. 도메인 모델 객체 도메인 모델 객체(domain model object)는 어떤 도메인에 속하는 모델 객체를 가리킨다. 도메인은 해결하고자 하는 문제가 속하는 "영역"을 의미하는데, 온라인 쇼핑몰이나 여행 예약 사이트 등 서비스 종류를 도메인으로 볼 수 있다. 이 도메인은 다시 회원, 상품, 주문, 예약 등 하위 도메인으로 분해될 수 있다. 이처럼 도메인 자체는 영역 또는 범위를 의미할 뿐이고 도메인 모델은 이러한 도메인에서 사용되는 모델을 말하는데, 모델이란 .. 2023. 12. 13.
primary key 필드 타입은 원시형과 래퍼 클래스 중 어느 것을 사용해야 할까? @Entity @NoArgsConstructor(access = AccessLevel.PROTECTED) @AllArgsConstructor @Builder @Data public class Board { @Id @GeneratedValue(strategy = GenerationType.IDENTITY) @Column(name = "board_no") private Long id; //... } 이번에 기존 프로젝트 코드 리팩터링을 진행하면서 PK(기본키) 필드 타입을 무엇으로 하는 것이 맞는 건지 생각해 보게 되었다. 원시형 타입과 래퍼 클래스, 두 가지 경우가 가능하지만, 하이버네이트 공식 문서에서 래퍼 클래스를 사용을 권장해서 래퍼 클래스를 주로 사용하는 것으로 알고 있었는데, null 가능성을 열.. 2023. 12. 3.
레거시 코드에서 테스트 코드 시작하기 무진장 긴 메서드, 알 수 없는 변수 이름, 텅 빈 테스트 코드 디렉터리...ㅠ 대다수의 기업의 경우, 기존에 개발되어 있는 프로젝트를 인계받거나 처음으로 유지 보수 업무를 맡게 되면 보게 되는 코드의 특징이다. 이런 코드를 이제 수정하거나 변경해야 한다. 이 코드들을 건드리기 시작하면 무수히 많은 오류와 버그에 부딪히게 될 것을 우리는 알고 있다. 손대지 않으면 안 되냐고? 안 된다. 기업이나 고객은 늘 새로운 요구사항을 가지고 온다. 요구사항에 맞추어 수정이 일어나지 않는다면 우리는 더 이상 돈을 받을 수 없다. 테스트 코드가 없는 상황에서 수정은 항상 잠재적인 문제를 가지고 있고 문제가 발생하면 쉽게 해결되지 않아 야근으로 이어진다. 즉 테스트 코드 개발 환경에서 테스트와 배포는 항상 불안하기만 하.. 2023. 12. 1.
우테코 프리코스 공통 피드백 정리 커밋 메시지를 의미 있게 작성한다. git을 통해 관리할 자원에 대해서도 고려 .idea, .metadata, .class 등의 파일을 굳이 관리하지 않아도 됨 PR을 한 번 작성했다면 닫지 말고 추가 커밋 이름을 통해 의도를 드러내기 연속된 숫자나 불용어(info, data, a, an, the) 사용 지양, 축약 금지 클래스와 메서드 이름을 한 두 단어로 유지하려고 노력하기 문맥을 중복하는 이름 자제 order.shipOrder()보다 order.ship이 더 적절 공백도 코딩 컨밴션 if, for, while문 사이의 공백도 코딩 컨벤션 공백 라인을 의미 있게 사용 문맥을 분리하는 부분에 사용 space와 tab을 혼용하지 않는다. 의미 없는 주석을 달지 않는다 주석 대신 변수명, 메서드 명을 통해.. 2023. 11. 17.
728x90