Back-End/Spring
[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] 도메인 설계, 엔티티 매핑 요구사항 분석 기능목록 회원 기능 회원 등록 회원 조회 상품 기능 상품 등록 상품 수정 상품 조회 주문 기능 상품 주문 주문 내역 조회 주문 취소 기타 요구사항 상품은 재고 관리가 필요하다. ..
[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 패러다임의 불일치란? 더보기 객체 지향 프로그래밍 추상화, 캡슐화, 정보은닉, 상속, 다형성 등 시스템의 복잡성을 제어할 수 있는 다양한 장치들을 제공한다. 필..
[Spring] 테스트 코드 작성, Mock
해당 포스팅은 인프런스프링 MVC2편 강의를 듣고 적은 강의 노트를 정리하며 기록하기 위한 글입니다. 강의를 시청하며, 프로젝트에 적용할 수 있는 부분들이나 궁금한 기능들을 정리하며 포스팅할 예정입니다. 제 개인적인 의견이 더해져 올바르지 않은 정보가 들어가 있다면, 피드백이나 댓글로 남겨주시면 감사하겠습니다. 자세한 강의 내용은 인프런 스프링 MVC에서 만나보실 수 있습니다. 스프링 MVC 2편 - 백엔드 웹 개발 활용 기술 - 인프런 | 강의 웹 애플리케이션 개발에 필요한 모든 웹 기술을 기초부터 이해하고, 완성할 수 있습니다. MVC 2편에서는 MVC 1편의 핵심 원리와 구조 위에 실무 웹 개발에 필요한 모든 활용 기술들을 학습할 수 있 www.inflearn.com 목표 세션을 직접 개발하여, 테..