Repository 활용 Restaurant 정보를 List로 관리하는데 가게 목록 출력할 때, 가게 상세 정보 출력할 때 모두 List를 사용하기 때문에 중복이 된다. 이러한 Restaurant의 collection을 Repository로 옮겨주어 효율적으로 만들어준다. Repository는 UI Layer에 속하지 않고 domain Layer에 속한다. 따라서 domain package 안에 RestaurantRepository.java 파일을 생성해준다. 1. Controller에서는 Repository에 있는 restaurant 정보를 받아와서 쓸 수 있도록 list method를 다음과 같이 바꿔준다. repository라는 field도 추가해준다. findAll method를 Restauran..
가게 상세 가져오기 GET/restaurants/{id} 를 통해 가게 상세 정보를 가져온다. 1. 먼저 RestaurantCotroller.java 파일에 가게 상세 정보를 불러오는 detail method를 추가해준다. 예외를 처리하기 위해 throw Exception도 추가해주고 우선 id가 1인 것에 대해서만 불러온다. Test를 실행해보면 'restaurants/1' 이라는 URL에 매핑되는 것이 없으므로 실패하게 된다. 2. 매핑이 가능하게 하기 위해 RestaurantController.java 파일에 method를 추가한다. 3. 가게 상세 정보를 불러오게 하기 위해서 RestaurantControllerTest.java 파일에 list method에서와 같은 접근을 하게 만들어준다. Re..
가게 목록 만들기 GET/restaurants에 대해 JSON 포맷으로 응답해준다. 각 URL에 대해서 요청이 들어왔을 때 처리하는 Controller를 만들어본다. 1. Restaurant에 대한 Controller를 생성해준다. 먼저, main/java 안의 interfaces 패키지에 RestaurantController.java 파일을 생성해준다. 이후, Go To - Test 를 통해 RestaurantControllerTest.java 파일도 생성해준다. 2. RestaurantControllerTest.java 안에 /restaurant에 대해 get 요청을 해주는 class를 만든다. @WebMvcTest(RestaurantController.class) 라는 Annotation으로 Res..
REST REpresentational State Transfer의 약자이다. 상태를 전달하는 것을 의미한다. 다른 말로 resource를 처리하는 것이다 Resource를 처리하는 것에는 4가지 방식이 있고 흔히 CRUD라고 일컫는다. ( )는 HTTP에 표준으로 주어져있는 method이다. C : Create(POST) R : Read(GET) U : Update(PUT/PATCH) D : Delete(DELETE) Resource를 지정할 때는 URI 라고 불리는 식별자를 사용하고, URL이라는 지시자를 사용하기도 한다. Resource는 Collection과 Member 두 가지로 나눌 수 있다. Collection에 대해서는 Read(List)와 Create가 가능하다. Member에 대해서는 ..
Restaurant 모델 생성 1. src/main/java 안에 domain이라는 package를 생성해주고 Restaurant.java 파일을 생성해준다. 2. Restaurant를 우클릭하여 Test 파일을 생성해준다. Create new test를 누르고 다음과 같이 설정해주고 생성을 한다. tests 파일이 생성된 것을 확인할 수 있다. 3. RestaurantTests.java 파일에 객체 생성하는 함수를 추가해준다. @Test Annotation을 붙여주어 test할 수 있게 한다. run까지 해서 test가 제대로 passed 되는 것을 확인한다. 4. Bob zip이라는 이름의 Restaurant을 생성해주준다. 그리고 assertThat(~은 ~여야 한다)을 이용해 restaurant의..
Test Driven Development 테스트 주도 개발 = 목표 주도 개발 = 사용자 중심 개발 = 인터페이스 중심 개발 -> TDD를 하는 이유 : 목표를 달성하기 위해 올바르게 작동하는 깔끔한 코드를 만드는 것 1. 올바르게 작동하는 코드를 만든다. 2. 깔끔한 코드로 Refactoring한다. TDD의 핵심 IDEA : 올바르게 작동한다는 것을 보장해주는 Test Code가 필요하고, Test Code를 가장 먼저 작성하자. TDD cycle Red : 실패한 Test ex) 1 + 1을 계산해주는 method가 없음 Green : 부분 성공한 Test ex) 1 + 1 = 2 를 계산해주는 method를 만들어줬지만, 1 + 3은 계산하지 못함 Refactoring : 깔끔한 Code로 바꿔..
Spring Initializr spring initializr를 이용해 간편하게 프로젝트를 생성할 수 있다. 1. 다음 사이트에 접속한다. https://start.spring.io/ 불러오는 중입니다... 2. 옵션 설정 후 GENERATE를 눌러서 .zip 파일을 다운로드 해준다. 압축 해제 후 우클릭하여 IntelliJ로 실행시킨다. 3. 좌측 하단에 Build 버튼을 누르면 Build되고 있는 것을 확인할 수 있고, finished 될 때까지 기다린다. 우측 하단에 이러한 창이 뜰 경우, Import Gradle Project를 눌러준다. Sync가 제대로 이루어지지 않는다면, 우측에 위치한 Gradle버튼을 누르고 새로고침 버튼을 눌러준다. 제대로 로딩이 되었다면 디렉토리의 구성이 다음과 같다..
우리가 제공하는 서비스는 프로그램으로만 이루어져 있지 않다. 소프트웨어에 해당하는 프로그램, 프로그램을 구동하는 하드웨어, 여러 가지 인프라를 포함해서 '시스템'이라고 부른다. 이러한 시스템이 어떻게 구성되는지를 다루는 것이 시스템 아키텍쳐이다. 우리는 Web, Mobile 환경에서 클라이언트에게 서비스를 제공해준다. 이 둘은 각각 Web browser, Mobile App을 통해 접근한다는 점이 다르다. 서로 다른 부분들을 Front-end로 분리하고, 서로 공통인 부분들을 Back-end로 분리한다. Multi-tier Architecture 여러 개의 계층으로 구성된 시스템을 의미한다. 가장 흔히 쓰이는 것이 3-tier Architecture이다. 3-tier Architecture Present..
- Total
- Today
- Yesterday
- 알고리즘
- 최소공통조상
- python
- heapq
- MST
- 인프런
- 투포인터
- 에라토스테네스의체
- controller
- html
- 고차함수
- 다익스트라
- webpack
- js
- 1급객체
- 플로이드워셜
- 웹팩
- frontend
- 파이썬
- BFS
- CSS
- 위상정렬
- 자바스크립트
- springboot
- SCSS
- 최소스패닝트리
- 백준
- BOJ
- Java
- javascript
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |