반응형
package kr.co.fastcampus.eatgo.domain;
import lombok.*;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.Id;
import javax.validation.constraints.Min;
import javax.validation.constraints.NotEmpty;
import javax.validation.constraints.NotNull;
@Entity
@Getter
@Builder
@NoArgsConstructor
@AllArgsConstructor
public class Reservation {
@Id
@GeneratedValue
private Long id;
private Long restaurantId;
private Long userId;
@Setter
private String name;
@Setter
@NotEmpty
private String date;
@Setter
@NotEmpty
private String time;
@Setter
@NotNull
private Integer partySize;
}
Spring Initializr
spring initializr를 이용해 간편하게 프로젝트를 생성할 수 있다.
1. 다음 사이트에 접속한다.
2. 옵션 설정 후 GENERATE를 눌러서 다운로드 해준다.
압축 해제 후 IntelliJ로 실행시킨다.
Test Driven Development
테스트 주도 개발= 목표 주도 개발= 사용자 중심 개발= 인터페이스 중심 개발
-> TDD를 하는 이유 : 목표를 달성하기 위해 올바르게 작동하는 깔끔한 코드를 만드는 것
1. 올바르게 작동하는 코드를 만든다.
2. 깔끔한 코드로 Refactoring한다.
TDD cycle
Red : 실패한 Test ex) 1 + 1을 계산해주는 method가 없음
Green : 부분 성공한 Test ex) 1 + 1 = 2 를 계산해주는 method를 만들어줬지만, 1 + 3은 계산하지 못함
Refactoring : 깔끔한 Code로 바꿔주는 과정 ex) x + y = x와 y를 더한 값을 계산해주는 method를 만들어줌
package kr.co.fastcampus.eatgo.domain;
import org.springframework.data.repository.CrudRepository;
import java.util.List;
public interface ReservationRepository
extends CrudRepository<Reservation, Long> {
List<Reservation> findAllByRestaurantId(Long restaurantId);
Reservation save(Reservation reservation);
}
package kr.co.fastcampus.eatgo.application;
import kr.co.fastcampus.eatgo.domain.Reservation;
import kr.co.fastcampus.eatgo.domain.ReservationRepository;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import javax.transaction.Transactional;
import java.util.List;
@Service
@Transactional
public class ReservationService {
private ReservationRepository reservationRepository;
@Autowired
public ReservationService(ReservationRepository reservationRepository) {
this.reservationRepository = reservationRepository;
}
public List<Reservation> getReservations(Long restaurantId) {
return reservationRepository.findAllByRestaurantId(restaurantId);
}
}
반응형
'스프링, 자바' 카테고리의 다른 글
스프링 캐쉬 사용법 (0) | 2020.10.03 |
---|---|
BaseEntity.java (0) | 2020.10.03 |
[패스트캠퍼스 수강 후기] 자바 인강 100% 환급 챌린지 49회차 미션 (0) | 2020.09.27 |
[패스트캠퍼스 수강 후기] 자바 인강 100% 환급 챌린지 48회차 미션 (0) | 2020.09.26 |
[패스트캠퍼스 수강 후기] 자바 인강 100% 환급 챌린지 47회차 미션 (0) | 2020.09.25 |