Back-End
[MVC] DTO 역할 구분, 프로젝트 흐름도 분석
서론 이전에 Entity와 Dto를 분리하고 사용하는 방법에 대해 확인해 보았다. 이후, Dto를 활용하는데 Dto는 역할과 책임을 명확히 하기 위해 requestDto와 responseDto로 나눌 수 있다는 사실을 알게 되었다. 여기서 Dto는 어디서 Entity가 치환이 되는 것이며, 어디서 반환되는 것일까? 이번 포스팅에는 DTO의 역할을 정리하고, Dto와 Entity가 사용되는 부분을 데이터 흐름도를 그려서 확인해 보며 정리하는 시간을 가지려고 한다. Dto의 역할 Dto (Data Transfer Object) 클래스는 주로 데이터 전송에 사용되는 객체이다. 보통 데이터베이스의 엔티티와 1:1로 매핑되는 경우가 많은데, 이 경우 DTO 클래스는 엔티티의 필드와 유사한 구조이다. 하지만 엔티티..
[JPA] Entity를 Dto로 변환(리턴)의 중요성
서론 엔티티를 Dto로 리턴해야 하는 이유는 무엇일까? 하나의 엔티티에서 여러 개의 Dto를 만들면 이름 짓기도 애매해지고 Dto가 여러 개여서 유지보수도 힘들어 보일 수 있다. 하지만 왜 Dto를 만들어서 코드를 작성하는 것이 더 좋은 것일까? 에 대해 이번 포스팅에서 그 이유를 정리해 보도록 하자. Entity 우선 Entity를 자세히 모르는 분은 JPA 도메인 설계, 엔티티에 관한 포스팅을 읽어보는 것을 추천드린다. https://cobi-98.tistory.com/57 [JPA] 도메인 설계, 엔티티 매핑 요구사항 분석 기능목록 회원 기능 회원 등록 회원 조회 상품 기능 상품 등록 상품 수정 상품 조회 주문 기능 상품 주문 주문 내역 조회 주문 취소 기타 요구사항 상품은 재고 관리가 필요하다. ..
[Java] 함수 파라미터의 final 키워드를 사용하는 이유
요청 데이터를 담고 있는 객체(requestDto) 인프런 jpa 강의에서 Entity를 dto로 변환하여 리턴하는 방식의 중요성을 배웠다. 이후 Dto를 요청 및 응답에 필요한 데이터만 포함시키도록 request, response로 구분하여 프로젝트를 진행하였다. 여기서 Dto를 관리하는 방식을 찾던 도중, Dto를 관리하는 클래스에서 변수명에 final을 사용하는 부분을 볼 수 있었다. 함수의 파라미터에 final을 사용하는 것은 이전 프로젝트를 하면서도 본적이 있지만 넘어갔던 부분이라 Dto에 대해 알아보는 김에 같이 알아보기로 하였다 ! final 키워드란? final 키워드를 사용하면 해당 변수는 값을 변경할 수 없다. 따라서 함수 내부에서 실수로 변수의 값을 변경하는 것을 방지할 수 있다. 또..
[JPA] 도메인 설계, 엔티티 매핑
요구사항 분석 기능목록 회원 기능 회원 등록 회원 조회 상품 기능 상품 등록 상품 수정 상품 조회 주문 기능 상품 주문 주문 내역 조회 주문 취소 기타 요구사항 상품은 재고 관리가 필요하다. 상품의 종류는 도서, 음반, 영화가 있다. 상품 카테고리로 구분할 수 있다. 상품 주문 시 배송 정보를 입력할 수 있다. 도메인 분석 설계 JPA 는 도메인 모델을 다루는 데에 있어서 Mybatis 보다 상당한 강점이 있다. 그 예시를 도메인과 테이블 분석, 엔티티설계로 순차적으로 요구사항을 적용시켜 보자. 회원은 여러 상품을 주문할 수 있다. 그리고 한 번 주문할 때 여러 상품을 선택할 수 있으므로 주문과 상품은 N:M 관계다. 하지만 이런 N:M 관계는 관계형 데이터베이스는 물론이고 엔티티에서도 거의 사용하지 않..
[JPA] JPA를 사용하는 이유와 JPA에 대하여
1. JPA 배경 JPA(Jakarta Persistence API)가 나타난 배경은 자바 기반의 애플리케이션 개발에서 객체-관계 매핑을 처리하는 과정에서 발생하는 문제들을 해결하고자 함에 있다. 기존에는 RDBS와 상호작용하기 위해 JDBC(Java Database Connectivity)를 사용했다. 하지만, JDBC를 사용하는 과정에서 생기는 문제가 있었다. 1. 반복적인 코드 : 직접 SQL 쿼리(CRUD)를 작성하며 객체-관계 매핑 2. 패러다임의 불일치 : 객체와 관계형 DB의 차이 -> 객체에서 필드 수정 시 SQL도 수정 필요 DB 패러다임의 불일치란? 더보기 객체 지향 프로그래밍 추상화, 캡슐화, 정보은닉, 상속, 다형성 등 시스템의 복잡성을 제어할 수 있는 다양한 장치들을 제공한다. 필..