본문 바로가기

spring boot

(6)
실전! 스프링 부트와 JPA 활용2 - 1주차 저번 강의에 이어서 API개발을 한다. postman은 이미 설치가 되어 있음. 1. 회원 등록 API package jpabook.jpashop.api; @RestController @RequiredArgsConstructor public class MemberApiController { private final MemberService memberService; /** * 조회 V1: 응답 값으로 엔티티를 직접 외부에 노출한다. * 문제점 * - 엔티티에 프레젠테이션 계층을 위한 로직이 추가된다. * - 기본적으로 엔티티의 모든 값이 노출된다. * - 응답 스펙을 맞추기 위해 로직이 추가된다. (@JsonIgnore, 별도의 뷰 로직 등등) * - 실무에서는 같은 엔티티에 대해 API가 용도에 따라 ..
실전! 스프링 부트와 JPA 활용1 - 7주차 마지막! 7주차 1. 홈 화면과 레이아웃 home.html로 이동하는 HomeController 등록 html에는 타임리프 템플릿을 등록한다. html, css는 그닥 안중요하니까 패스 css가 적용이 안되는 문제가 있었는데 https://getbootstrap.com/docs/4.3/getting-started/download/ Download Download Bootstrap to get the compiled CSS and JavaScript, source code, or include it with your favorite package managers like npm, RubyGems, and more. getbootstrap.com 여기서 알맞은 버전(4.3.1) 설치하고 다시 실행시키니까 됐..
실전! 스프링 부트와 JPA 활용1 - 5,6주차 5주차 1. 상품 엔티티 개발(비즈니스 로직 추가) //==비즈니스 로직==// public void addStock(int quantity) { this.stockQuantity += quantity; } public void removeStock(int quantity) { int restStock = this.stockQuantity - quantity; if (restStock < 0) { throw new NotEnoughStockException("need more stock"); } this.stockQuantity = restStock; } 재고를 추가 혹은 감소시키는 비즈니스 로직 추가. removestock()은 재고가 부족하면 예외를 발생시킨다. 2. 상품 리포지토리 개발 public..
실전! 스프링 부트와 JPA 활용1 - 3,4주차 3주차 1&2. 구현 요구사항& 애플리케이션 아키텍쳐 패키지 구조 jpabook.jpashop 안에 domain : 엔티티가 모여있는 계층, 모든 계층에서 사용 exception :예외 처리 repository : jpa를 직접 사용하는 계층, 엔티티 매니저 사용 service : 비즈니스 로직, 트랜잭션 처리 web : 웹 계층 으로 나누어져 있다. 개발 순서는 service, repository -> 테스트 케이스를 작성하여 검증, 마지막에 web 계층을 적용한다. 4주차 1. 회원 리포지토리 개발 package jpabook.jpashop.repository; import jpabook.jpashop.domain.Member; import org.springframework.stereotype.Re..
실전! 스프링 부트와 JPA 활용1 - 2주차 1. 요구사항 분석 & 2. 도메인 모델과 테이블 설계 하나 이상의 속성을 가지며 서로 구별되는 하나의 개체를 엔티티라 한다. 단방향/양방향, 일대일/일대다/다대다 관계를 주목해야 한다. 또, Album, Book, Movie는 같은 속성을 가지므로 Item을 상속하는 구조로 표현했다. 3&4. 엔티티 클래스 개발 예제에서는 Getter와 Setter를 모두 열었지만, 실무에서는 Setter를 꼭 필요한 경우에만 사용한다. 이 둘은 안전을 위해 메소드를 통해 필드를 건드리게 해준다. @Getter : 메소드로 필드값을 가공한 후 외부로 전달 @Setter : 매개값을 검증해서 유효한 값만 객체의 필드로 저장 이게 없으면 public void~~this.a=a;~~이런거 다 작성해줘야 함. #주문 엔티티 ..
실전! 스프링 부트와 JPA 활용1 - 1주차 CEOS 팀프로젝트를 진행하면서 spring boot를 새롭게 배우기로 했다. 가장 유명한 김영한 강의를 사서 기초를 배우고 팀프로젝트에서 좀 더 심화로 들어갈 예정이다. 1. 프로젝트 생성 스프링 부트 스타터(Spring Initializr)에서 기본 환경과 라이브러리를 설정한 후 다운 받는다. 난 java version이 17이상이라 교재랑은 약간 다름. gradle파일을 열고 main 페이지가 제대로 실행되는지 확인한다. 처음 설정을 열거나 수정하면 옆에 코끼리 무늬가 뜬다. 이걸 눌러야 적용됨. Web server failed to start. Port 8080 was already in use 오류가 나면서 main 페이지가 제대로 실행이 되지 않았는데..8080 port를 이미 사용중이여서 그..