[요구 사항] - 사용자가 책을 반납할 수 있다. [API 스펙] - HTTP Method : PUT - HTTP Path : /book/return - HTTP Body(JSON) : { "userName" : String, "bookName" : String } - 결과 반환 X, HTTP Code 200이면 OK - 대출(/book/loan)과 반납(/book/return)을 위한 HTTP Body(DTO)가 완전히 동일하다. - 이때 반납을 위한 DTO를 새로 만드는게 좋을까? or 재활용하는게 좋을까? cf) 대출을 위한 DTO(BookLoanRequest)는 이전 글에서 이미 만들어져 있는 상태 - 이 경우 강사는 (개인적으로) 새로 만드는 것을 선호한다. - why? 나중에 대출과 반납 중 ..
[요구사항] - 사용자가 책을 빌릴 수 있다. - 다른 사람이 빌린 책은 또 다른 사람이 빌릴 수 없다. [API 스펙] - HTTP Method : POST - HTTP Path : /book/loan - HTTP Body(JSON) : { "userName" : String, "bookName" : String } - 결과 반환 X, HTTP Code 200이면 OK 1. Book Table - 사용자의 대출 기록을 저장하는 새로운 테이블이 필요하다. CREATE TABLE USER_LOAN_HISTORY ( ID BIGINT AUTO_INCREMENT, // 대출 기록 id USER_ID BIGINT, // 책을 빌린 유저 id BOOK_NAME VARCHAR(255), // 빌린 책 이름 IS_R..
- 다음 글 부터는 먼저 코드를 작성한 다음에 강의를 들어보자 ● 도서관에 책을 등록하는 기능 [API 스펙] - HTTP Method : POST - HTTP Path : /book - HTTP Body(JSON) : {"name" : String // 책 이름} → name은 필수 - 결과 반환 X, HTTP Code 200이면 OK - 이러한 구조로 만들어야 한다. 1. Book Table CREATE TABLE BOOK ( ID BIGINT AUTO_INCREMENT, NAME VARCHAR(255) NOT NULL, PRIMARY KEY(ID) ); - VARCHAR(255)라고 설정한 이유 1. JPA를 사용할 때 @Column Annotation의 length 속성의 기본값이 255이다. →..
1. 삭제 1. name을 기준으로 User가 있는지 확인 2. User가 있다면 DELETE 쿼리를 날린다. // JpaRepository를 상속하는 것만으로도 UserRepository는 Spring bean으로 등록된다. public interface UserRepository extends JpaRepository { // name을 기준으로 조회 // 데이터가 있으면 User 객체 반환, 없으면 null 반환 User findByName(String name); } public void deleteUser(String name) { // findByName 같은 기본 내장 함수는 없다. 따라서 이런 함수를 직접 만들어줘야 한다. // 어디에? UserRepository interface User..
- SQL 없이 유저 생성, 조회, 수정 기능을 만들어 보자 - 이전 글에서 User Entity와 User table을 미리 매핑했기 때문에 아래의 작업들이 가능한 것이다. 1. 저장(INSERT) - UserRepository interface를 User class와 같은 경로에 만들자 - JpaRepository를 상속하는 것만으로도 UserRepository는 Spring bean으로 등록된다. - 따라서 UserRepository interface에는 @Repository Annotation을 따로 붙여줄 필요가 없다. public void saveUser(UserCreateRequest request) { // save는 원래 내장돼 있는 method // INSERT 후에는 User 객체를 ..
- JPA를 이용해 User class와 User table을 매핑 즉, Java 객체와 MySQL Table을 매핑해보자 - 현재 User 객체와 User 테이블의 속성은 아래와 같다. ● 매핑하기 (1). User class에 @Entity Annotation을 붙여준다. @Entity 1. Spring이 User 객체와 User 테이블을 같은 것으로 바라보게(생각하게) 해준다. 2. Entity = 저장되고 관리되어야 하는 데이터 (2). 현재 User class에 빠져있는 id를 추가해줘야한다.(객체와 테이블을 일치시켜야하니까) - 단순히 class에 id 필드만 추가해서는 안 되고 아래와 같이 Annotation을 몇 개 붙여줘야한다. @Id : 해당 필드를 PK로 간주한다. @Generated..
- Total
- Today
- Yesterday
- 알고리즘
- node.js
- 운영체제
- SQL
- git
- Spring Boot
- 코테
- Java8
- java
- DART
- OS
- spring
- 프로그래머스
- SpringBoot
- API
- 빅데이터
- MongoDB
- jpa
- Stream
- 빅데이터 분석기사
- 코딩테스트
- 메모리
- Phaser3
- 프로세스
- Phaser
- db
- 자료구조
- Advanced Stream
- MySQL
- nosql
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |