티스토리

dev archive
검색하기

블로그 홈

dev archive

nahyeon.tistory.com/m

nahyeon 님의 블로그입니다.

구독자
0
방명록 방문하기

주요 글 목록

  • [Spring] @NotNull, @NotEmpty, @NotBlank, @Null 의 차이점 Springboot의 어노테이션을 이용한 validation을 하는 방법에 대해 알아보자. API의 parameter에 따라 별도의 오류 메시지와 조건이 필요하고, 이런 경우 쉽게 사용할 수 있는 것이 @NotNull, @NotEmpty, @NotBlank, @Null 이다. 위의 4가지 annotation은 Bean Validation에서 제공하는 표준 Validation 으로 사용하는 방법은 유사하지만 잘못 사용하면 완전히 다른 결과를 초래할 수 있기 때문에 차이를 알아두어야한다. public class MemberLoginRequestDto { @NotNull(message = "이름은 Null 일 수 없습니다.") @Size(min = 1, max = 10, message = "이름은 1-10자 .. 공감수 0 댓글수 0 2022. 8. 2.
  • [Spring] Spring boot와 JPA 활용 - 웹 계층 개발 홈 화면과 레이아웃 뷰 템플릿 변경사항을 서버 재시작 없이 즉시 반영할 때는 1. spring-boot-devtools 추가 2. html 파일을 build->recompile 디자인을 위해 bootstrap을 사용했다. css, js폴더를 resources/static 하위에 추가한다. 회원 등록 먼저 회원 가입 페이지를 만들기 위해서 폼 객체를 사용해서 화면 계층과 서비스 계층을 명확하게 분리한다. 회원 등록 폼 객체 controller/MemberForm.java @Getter @Setter public class MemberForm { @NotEmpty(message = "회원 이름은 필수입니다.") private String name; private String city; private Stri.. 공감수 0 댓글수 0 2022. 7. 5.
  • [Spring] Spring boot와 JPA 활용 - 주문 도메인 개발 가장 중요한 주문 도메인을 개발해볼 것이다. 중요한 이유는 비지니스 로직들이 얽혀서 돌아가는 걸 JPA나 entity를 가지고 어떻게 풀어내는지 알 수 있기 때문이다. 구현 기능 상품 주문 주문 내역 조회 주문 취소 주문, 주문 상품 엔티티 개발 domain/Order.java package jpabook2.jpashop2.domain; import lombok.Getter; import lombok.Setter; import javax.persistence.*; import java.time.LocalDate; import java.time.LocalDateTime; import java.util.ArrayList; import java.util.List; @Entity @Getter @Setter @.. 공감수 0 댓글수 0 2022. 6. 24.
  • [Spring] Spring boot와 JPA 활용 - 상품 도메인 개발 상품 엔티티 개발 domain/ item/Item.java package jpabook2.jpashop2.domain.item; import jpabook2.jpashop2.domain.Category; import jpabook2.jpashop2.exception.NotEnoughStockException; import lombok.Getter; import lombok.Setter; import javax.persistence.*; import java.util.ArrayList; import java.util.List; @Entity @Getter @Setter public abstract class Item { @Id @GeneratedValue @Column(name="item_id") priv.. 공감수 0 댓글수 0 2022. 6. 23.
  • [Spring] Spring boot와 JPA 활용 - 애플리케이션 구현 준비, 회원 도메인 개발 애플리케이션 아키텍처는 단방향으로 가져가되, Controller가 Repository에 접근할 수 있는 유연한 설계를 가져간다. 계층형 구조를 사용한다. - controller, web: 웹 계층 - service: 비지니스 로직, 트랜잭션 처리 - repository: JPA를 직접 사용하는 계층, 엔티티 매니저 사용 - domain: 엔티티가 모여 있는 계층, 모든 계층에서 사용 회원 도메인 개발 회원 리포지토리 개발 @Repository 는 @Component 로 컴포넌트 스캔의 대상이 되어서 스프링빈으로 자동 등록된다. @PersistentContext는 JPA의 entitymanager로 스프링이 entitymanager로 주입받을 수 있다. 멤버를 가입시키는 save() 메서드는 영속성컨텍스트.. 공감수 0 댓글수 0 2022. 6. 19.
  • [Spring] Spring boot와 JPA 활용 - 도메인 분석 설계 @Embedded JPA 에서는 임베디드 타입(embedded type)이란 것이 존재하며, 새로운 값 타입을 직접 정의해서 사용할 수 있다. 직접 정의한 임베디드 타입도 int, string 처럼 값 타입이다. 평범한 회원 엔티티에서 "회원 엔티티는 이름, 주소 도시, 주소 번지, 주소 우편 번호, 주문상품들 을 가진다." 보다는 "회원 엔티티는 이름, 주소, 주문상품들을 가진다." 라고 말 할 때 더 응집력이 높은 명확한 코드를 작성할 수 있다. 임베디드 타입을 사용하는 방법은 @Embeddable 값 타입을 정의하는 곳에 표시한다. @Embedded 값 타입을 사용하는 곳에 표시한다. - 임베디드 타입은 기본 생성자가 필수이다. public한 생성자를 사용하도록 유도하기 위해 기본 생성자는 JPA가.. 공감수 0 댓글수 0 2022. 6. 5.
  • [Spring] Spring boot와 JPA 활용 - 프로젝트 환경설정 Spring 프로젝트 생성을 하려면 GroupId, ArtifactId 를 적어야 한다. GroupId - 모든 프로젝트 중에서 나의 프로젝트를 식별하게 해주는 식별자이다. - Java의 패키지 네이밍 룰을 따른다. eg. naver.com -> GroupId: com.naver - 일반적으로 작성하는 회사의 도메인 명을 거꾸로 쓴다. ArtifactId - 프로젝트 진행 시 해당 프로젝트의 이름을 사용한다. - 이 이름으로 버전을 제외한 컴파일된 Jar 파일이 생성된다. - 소문자로만 작성 / 특수문자 사용 금지 eg. 아톰 프로젝트 ArtifactId: atom 스프링 부트 라이브러리 살펴보기 - spring-boot-starter-web - spring-boot-starter-tomcat: 톰캣(웹.. 공감수 0 댓글수 0 2022. 6. 5.
    문의안내
    • 티스토리
    • 로그인
    • 고객센터

    티스토리는 카카오에서 사랑을 담아 만듭니다.

    © Kakao Corp.