분류 전체보기 (180) 썸네일형 리스트형 #7. 싱글 프로젝트 일지 - Book 도메인 - Book 도메인 구조 - Book 도메인은 도서와 관련된 데이터를 다루는 곳이다. 실질적인 데이터는 .sql로 DB에 직접 넣을 것으로 Controller와 Entity 외에 다른 구조는 없다. 1. Controller A. 책 대여 메서드 도서관 별로 등록된 회원이 도서관에 보관중인 책을 대여하므로 libraryId, bookId, memberId 를 전달받음 - 로직 구성 - #1. libraryId와 memberId를 가지고, 해당 도서관에 등록된 회원 LibraryMember를 호출. #2. 호출된 LibraryMember가 null 이라면, Member의 Data가 없다고 예외 처리. #3. 호출한 LibraryMember 객체가 연체된 기록이 있는지 조회. #3-1. 최근 연체가 발생했던 .. #6. 싱글 프로젝트 일지 - Library 도메인 - Library 도메인 구조 - Library 도메인은 도서관 정보를 담당하는 곳이다. 도서관은 초기 .sql 데이터로 생성할 예정이라 실질적으로 필요한 메서드는 아래 2가지 뿐이다. 1. Controller A. 도서관에 등록된 전체 회원 조회 메서드 각 도서관에 등록된 전체 회원을 검색하기위함으로, libraryId를 전달받음. - 로직 구성 - #1. 도서관에 등록된 전체 회원 LibraryMember를 libraryId 기준으로 조회하여 Page 객체로 생성. #2. 전체 조회시 정보들이 나오는 페이지 옵션인 PageInfo 객체를 생성. #3. libraryId 기준으로 불러온 회원들을 담은 Page 객체를 List로 변환 .getContent() #4. List 타입으로 변환한 Library.. #5. 싱글 프로젝트 일지 - Member 도메인 - Member 도메인 구조 - Member 도메인은 회원 정보를 담당하는 곳이다. 1. controller A. 멤버 생성 메서드 도서관 별로 회원가입이 가능하므로, 파라미터로 도서관 Id 받음 - 로직 구성 - #1. 받은 도서관 Id를 mapper를 사용하여 Dto->Entity 객체 생성하여 set으로 지정함. #2. libraryId를 가진 Member 객체로 DB에 생성함. #3. 도서관의 회원이므로, LibraryMember 객체를 생성. #4. 생성한 libraryMember에 Member와 Library를 setter로 설정함. #5. 맨처음 mapper로 생성했던 member 객체에 #3에서 생성한 LibraryMember를 .add() 메서드로 추가. #6. 생성한 libraryMem.. #4. 싱글 프로젝트 일지 - Global 도메인 1. Security + JWT 도서관별로 회원이 존재하며, 도서 대여를 위해 memberId를 관리해야하므로 JWT를 활용한 로그인 기능. 2. Auditable 도서 대여가 시작될 때 기록되는 날짜 정보를 위한 필드 createdAt, 도서 반납이 될 때 기록되는 날짜 정보를 위한 필드 returnedAt 3. 예외 처리 로직 처리 중 정상 범위 외의 조건이 발생하였을 때 예외를 처리하는 역할 1. Security + JWT JWT 사용 이유 1. 서버에서 세션 상태를 유지할 필요가 없는 Stateless 인증 방식을 제공. > JWT를 사용하면 서버에서는 사용자에 대한 정보와 함께 JWT를 생성하여 클라이언트에게 보낸다. 클라이언트는 이후 JWT를 포함하여 요청을 전송하고, 서버에서는 JWT를 검증.. #3. 싱글 프로젝트 일지 - ERD 도메인 생성 1. ERD 대로 Domain을 생성 2. Spring Data JPA 매핑 관계를 설정 3. book, library 초기 데이터를 생성하여 MySQL과 연동 1. ERD 토대로 Domain 생성. 2. Spring Data JPA 매핑 설정 Member : Library // N:N 관계이므로 조인 테이블(Member_Library) 생성하여 1:N, N:1 매핑 진행. 1 의 관계에서는 N 도메인을 List 형태로 필드 생성. N 의 관계에서는 1 도메인을 단일 객체로 필드 생성. 3. book, library 초기 데이터 생성 후 MySQL과 연동 [초기 데이터 생성] A. .sql 파일로 초기 데이터 생성 [MySQL 연동 설정] A. application.yml에 설정 spring: datas.. #2. 싱글 프로젝트 일지 - Spring 생성 및 Github 연결 1. Spring Boot 생성 Dependency : Lombok, Spring Data JPA, Security를 추가하여 초기 Spring Boot 생성. 2. GitHub 연결 A. 인텔리제이와 Github 연동 #1. #2. B. Spring Boot를 Repository와 연결 #1. #2. #3. VCS가 Git으로 변경된 후 파일명들이 빨간색으로 변경됨. ( Git에 추가되지 않은 워크 스페이스라는 의미 ) 이제 미리 생성해둔 Repository와 연동해보자. #4. #5. 나의 Repository URL을 입력. 이후 연동된 Repository로 push 하면, Git에 등록되지 않은 Space가 사라지며 본격적인 프로젝트 진행 가능. #1. 싱글 프로젝트 일지 - 개요 #개요. #요구사항. #ERD. #컨벤션. feat: 새로운 기능 추가 fix: 버그 수정, 기능 수정 test: 테스트 코드 remove: 파일 또는 코드, 리소스 제거 # 도메인 1. Member 사용자 등록 도서관 별로 회원이 존재. (같은 도서관 내에서는 이름, 휴대 번호 X, 다른 도서관 가능) 사용자 삭제 사용자가 대여 중인 도서가 있을 경우, 삭제 불가 사용자의 대출 히스토리 조회 대여하는 순간 createdAt을 적용하여 날짜를 기록하고 조회 기간은 별도로 지정할 예정. 도서 대여 : 사용자당 최대 5권까지 대여 가능, 2. Book 도서는 .sql 파일 생성하여 MySQL과 연동하여 초기 데이터를 만들어둘 예정 도서 검색 제목, 저자, 출판사 필드로 가지며, 페이지당 10개의 항목이 나오.. #5 Mapper: Dto -> Entity 변환 시 Null 에러 사이드 프로젝트를 진행하던 중, 회원 가입 로직을 처리하던 중이었다. 내가 구현하는 회원 가입의 로직 순서는 다음과 같다. 1. Client 측으로부터 회원 가입을 위한 정보를 전달 받는다. 2. Server는 Client의 요청에 담긴 데이터를 DTO 객체로 받는다. 3. Mapper (Map Struct)를 활용하여 전달받은 DTO를 Entity 객체로 변경 후 DB에 저장. 4. DB에 저장 후 저장된 Entity객체를 response에 담기 위해 DTO 객체로 변경. 5. Response DTO 타입을 반환 [에러] application를 가동 후 Client 측에서 정보를 담아 Server측으로 전달하면, 전달받은 정보 중 password 필드가 null 이 되는 에러가 발생. 즉, Mapper.. 이전 1 ··· 5 6 7 8 9 10 11 ··· 23 다음