일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |
- 그래프
- programmers
- 자바
- 코틀린
- baekjoon
- DP
- algorithm
- back-end
- 스프링
- LEVEL2
- 백트래킹
- backtracking
- 자료구조
- TDD
- lambda
- 백준
- java
- kotlin
- BFS
- 프로젝트
- 네트워크
- Brute-force
- 모던자바
- 운영체제
- OS
- Java8
- 프로그래머스
- 알고리즘
- DFS
- Spring
- Today
- Total
목록웹 개발/스프링 부트 프로젝트(레스토랑 예약) (8)
요깨비's LAB
1. 가게 추가 이번에는 가게 추가 API를 만들어 보겠습니다. POST 메소드를 이용, /restaurants라는 리소스에 생성 HTTP Status는 201(Created)을 리턴 Header Location이라는 정보에 레스토랑에 대한 Resource를 담아서 보낼 거임 Epmty{} HTTPie 2. UI Layer(Controller) Application Layer(Service) #1 Controller 만들기 RestaurantControllerTest로 먼저 가서 생성 기능에 대한 테스트 코드를 먼저 작성하겠습니다. @Test public void create()throws Exception { Restaurant restaurant = new Restaurant(1234L,"BeRyon..
지난번에 ControllerTest를 만들면서 우리가 테스트하고자 하는 것 외에 여러개의 객체가 동시에 주입되는 것을 확인했습니다. 이 경우에는 우리가 테스트하고자 하는 대상 외에 것들에 대한 의존성이 커서 우리가 테스트에 집중하기가 어려웠습니다. 그리고 하나의 테스트를 통과시키기 위해 의존하는 부분들을 모두 만들어줘야 했습니다. 이러한 어려움을 해결하기 위해 사용하는 것이 바로 MockObject입니다. 1. Mokito 스프링은 기본적으로 POJO 방식의 자바 오브젝트를 권장합니다. 그래서 Mokito와 같은 라이브러리를 제공합니다. 코드를 통해 살펴보도록 하겠습니다. @RunWith(SpringRunner.class) @WebMvcTest(RestaurantController.class) // Re..
1. 의존 관계: 둘 이상의 객체가 서로 협력하는 방법 A는 B에 의존 = A는 B를 사용 (하지만 이것은 문제가 됨!) -> B의 변화가 A에 영향을 끼치기 때문 조금 더 구체적인 사례를 위해 저희가 지금 개발하고 있는 프로젝트에 비유하겠습니다. 저희는 현재 RestaurantController를 개발했습니다. RestaurantController는 RestaurantRepository를 사용합니다. 즉, Controller는 Repository에 의존하고 있다는 뜻이기도 합니다. @RestController public class RestaurantController { private RestaurantRepository repository = new RestaurantRepository(); // ..
1. 가게 상세 GET방식 /restaurants/{id} { "id":2019, "name":"식당", "address":"골목" } 형태의 JSON값 반환 2. Code 구현 I. 컨트롤러 단 구현 1. RestaurantControllerTest 작성 @RunWith(SpringRunner.class) @WebMvcTest(RestaurantController.class) // Restaurant 컨트롤러를 테스트하겠다는 어노테이션 public class RestaurantControllerTest { @Autowired private MockMvc mvc; // 이전 내용 @Test public void list() throws Exception { ... } @Test public void de..
1. RestaurantController Class/Test Class 작성 RestaurantController 클래스와 이를 테스트하기 위한 RestaurantControllerTests junit 클래스를 작성합니다. public class RestaurantController { } import static org.junit.Assert.*; import static org.springframework.test.web.servlet.request.MockMvcRequestBuilders.get; import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.status; import org.junit.Test; im..
1. TDD(테스트 주도 개발/목표 주도 개발) 우리가 목표를 달성했는지 어떻게 알수 있죠? 네. 바로 테스트를 해보는 겁니다. 이 테스트를 통과하면 목표를 달성한 것이고, 통과하지 못하면 목표를 달성하지 못한 것이죠. 그리고 우리가 테스트를 하려면 어떻게 해야하죠? 개발자가 아닌 사용자의 입장에서 사용해봐야 하죠? 그래서 사용자 중심 개발이기도 합니다. 우리가 TDD를 하는 이유는 "올바르게 작동하는 깔끔한 코드를 만들기 위해" 입니다. 그렇다면 이것을 어떻게 실천할 수 있을까요? 우선 올바르게 작동하도록 코드를 만듭니다. 그리고 이거를 깔끔하게 작동하는 코드가 되도록 Refactoring을 해줍니다. 리펙토링은 작동하는 로직은 그대로 두면서 내부 구현을 바꾸는 것을 의미합니다. 이것을 위해 올바르게 ..
1. 프로젝트 생성 JDK: JAVA8 Group/Package: com.yosep.restaurant Dependencies: WEB, DevTools, Lombok(의존성은 저는 그동안의 학습으로 기능을 알지만 이 글을 읽으시는 분들을 위해 추후에 강의를 들으면서 강사님의 더욱 확실한 설명을 정리하여 적어 나가도록 하겠습니다.)
본 강의는 아샬님의 강의를 정리한 것입니다. 1. Domain Modeling Restaurant(가게 이름, 주소, 취급하는 음식 종류) Menu Item(음식/음료 리스트) User(고객, 관리자, 사장님) Favorite(즐겨찾기 정보) Review(리뷰 정보) Reservation(예약 정보) 2. System Architecture 서비스는 프로그램으로만 이루어진 것이 아니죠. (소프트웨어 + 하드웨어 + 인프라) = 시스템이라고 부름 이러한 시스템이 어떻게 구성되는 지를 다루는 것이 System Architecture라고 합니다. System Architecture를 올바르게 구성하기 위해 제약조건을 먼저 생각해 보아야 합니다. 2-1) 제약 조건 이 서비스는 홈페이지를 통해 제공될 것이기 때..