springboot

    쇼핑몰 만들기 3. 상품 등록 기능 구현 - 1 (SpringBoot)

    쇼핑몰 만들기 3. 상품 등록 기능 구현 - 1 (SpringBoot)

    ❗ TDD를 적용해 개발했습니다. [ 요구사항 ] 상품 등록 시 상품 정보, 상품 이미지 정보 등록 상품 이미지 파일의 경우 로컬 환경에 저장 상품의 이미지는 최대 5개 저장. 선택한 파일이 없더라도 상품 이미지 row 자체는 저장하고, 이미지 파일명, 원본 이미지 파일명, 이미지 조회 경로는 null로 저장 상품 등록 후 상품 수정 페이지로 이동 [ Repository 계층 개발 ] 먼저 ItemRepository라는 빈이 잘 띄워지는지부터 테스트를 합니다. @DataJpaTest public class ItemRepositoryTest { @Autowired private ItemRepository itemRepository; @Test public void ItemRepository가Null이아님(..

    쇼핑몰 만들기 0. 프로젝트 생성 및 환경 설정

    쇼핑몰 만들기 0. 프로젝트 생성 및 환경 설정

    프로젝트 생성 패키지 구조 최근 봤던 책에서 도메인 주도 설계 방법을 알게되어 이번 프로젝트에 적용하고자 한다. 도메인 주도 설계(DDD : Domain Driven Design)이란 도메인을 중심으로 설계하는 방법이다. https://happycloud-lee.tistory.com/94 DDD 핵심만 빠르게 이해하기 마이크로서비스의 설계 방법론인 DDD(Domain Driven Design)에 대해 제가 가진 지식과 그간의 경험을 기반으로 정리하였습니다. 이 글을 읽기 전에 먼저 일하는 방식 변화를 이끌고 있는 애자일, 마이 happycloud-lee.tistory.com 더 자세한 설명은 이 글을 참고하면 좋을 것 같다. 프로젝트 설정 application.yml server: port: 8080 s..

    [SpringBoot] lombok

    [SpringBoot] lombok

    롬복 롬복은 자바 개발할 때 자주 사용하는 Getter, Setter, 기본 생성자, toString 등을 어노테이션으로 자동 생성해 줍니다. DTO와 같이 자주 변경되는 클래스의 경우 멤버 변수가 추가되거나 없어질 때마다 Getter, Setter, 생성자 등을 수정해줘야 하는 경우가 발생합니다. 이러한 경우에도 Lombok을 이용하면 단순히 프로퍼티를 추가하고 삭제하는 것만으로도 충분합니다. 더 자세한 설명을 원한다면 https://www.korecmblog.com/lombok/ 를 참고해주세요. 프로젝트에 lombok을 추가해보겠습니다. build.gradle에 다음과 같은 코드를 추가해 줍니다. gradle 5 이상인 분들은 저와 같이 작성해주시면 됩니다. Refresh 해 주는 것도 잊지 맙시다..

    [JPA] 영속성 관리

    [JPA] 영속성 관리

    JPA에서 가장 중요한 두 가지는 1. 객체와 관계형 데이터베이스 매핑하기 2. 영속성 컨텍스트 라고 할 수 있다. 이번 글에서는 영속성 컨텍스트에 대해 다룬다. 1. 영속성 컨텍스트 영속성 컨텍스트는 JPA를 이해하는데 가장 중요한 용어라고 할 수 있다. 직역해보면 "엔티티를 영구 저장하는 환경"이라는 뜻이다. EntityManager.persist(entity);라는 코드를 보고 초반에는 entity 멤버나 객체를 데이터베이스에 저장하는 것이라고 생각할 수도 있다. 하지만 실제로는 데이터베이스에 저장하는 것이 아니라 entity를 영속성 컨텍스트에 저장하는 것이다. 영속성 컨텍스트는 논리적인 개념으로 눈에 보이지 않는다. 따라서 엔티티 매니저를 통해서 영속성 컨텍스트에 접근한다. 엔티티 매니저와 영속..