Project 썸네일형 리스트형 [Project] Lv_6 스케줄 프로젝트(심화) 목차요구사항요구 구현회고 요구사항Lv.3에서 추가한 비밀번호 필드에 들어가는 비밀번호를 암호화합니다.✅ 암호화를 위한 PasswordEncoder를 직접 만들어 사용합니다. 요구 구현build.gradle더보기dependencies { implementation 'at.favre.lib:bcrypt:0.10.2'}`at.favre.lib`라는 그룹에서 제공하는 `bcrypt` 라이브러리의 `버전 0.10.2`를 프로젝트에 추가합니다.Bcrypt 해시 함수를 Java에서 사용할 수 있게해주는 라이브러리입니다.평문 비밀번호를 안전하게 해싱합니다. (암호화)해시된 비밀번호와 사용자가 입력한 비밀번호를 비교하여 검증 PasswordEncoder더보기@Componentpublic class Passw.. 더보기 [Project] Lv_4 스케줄 프로젝트(심화) 목차요구사항요구 구현회고 요구사항설명✅ Cookie/Session을 활용해 로그인 기능을 구현합니다. → 2주차 Servlet Filter 실습 참고!✅ 필터를 활용해 인증 처리를 할 수 있습니다.✅ @Configuration 을 활용해 필터를 등록할 수 있습니다.조건✅ 이메일과 비밀번호를 활용해 로그인 기능을 구현합니다.✅ 회원가입, 로그인 요청은 인증 처리에서 제외합니다.예외처리✅ 로그인 시 이메일과 비밀번호가 일치하지 않을 경우 HTTP Status code 401을 반환합니다. 요구 구현LoginController더보기@RestController@RequestMapping("/api/auth")@RequiredArgsConstructorpublic class LoginController { .. 더보기 [Project] Lv_2 스케줄 프로젝트(심화) 목차요구 사항요구 구현회고 요구 사항유저를 생성, 조회, 수정, 삭제할 수 있습니다.유저는 아래와 같은 필드를 가집니다.✅ 유저명, 이메일, 작성일 , 수정일 필드✅ 작성일, 수정일 필드는 JPA Auditing을 활용합니다.연관관계 구현✅ 일정은 이제 작성 유저명 필드 대신 유저 고유 식별자 필드를 가집니다. 요구 구현요구 사항의 추가에 따른 API 명세서, ERD 추가더보기 요구 사항의 변경에 따른 API 명세서, ERD 수정더보기 UserController더보기@RestController@RequestMapping("/api/users")public class UserController { private final UserService userService; .. 더보기 [Project] Lv_0 스케줄 프로젝트(심화) 목차요구 사항요구 구현회고 요구 사항API 명세서 작성하기✅ API명세서는 프로젝트 root(최상위) 경로의 README.md 에 작성ERD 작성하기✅ ERD는 프로젝트 root(최상위) 경로의 README.md 에 첨부SQL 작성하기✅ 설치한 데이터베이스(Mysql)에 ERD를 따라 테이블을 생성 요구 구현 회고저번 프로젝트의 부족한 점을 발판 삼아 API 명세서를 자세히 작성하였습니다. 더보기 [Project] Lv_6 스케줄 프로젝트 목차요구사항요구 구현회고트러블 슈팅 요구사항설명✅ 유효성 검사잘못된 입력이나 요청을 미리 방지할 수 있습니다.데이터의 무결성을 보장하고 애플리케이션의 예측 가능성을 높여줍니다.Spring에서 제공하는 @Valid 어노테이션을 이용할 수 있습니다.조건✅ 할일은 최대 200자 이내로 제한, 필수값 처리✅ 비밀번호는 필수값 처리✅ 담당자의 이메일 정보가 형식에 맞는지 확인 요구 구현ScheduleController더보기@RestController@RequestMapping("/schedules")public class ScheduleController { private final ScheduleService scheduleService; public ScheduleController(Schedu.. 더보기 [Project] Lv_5 스케줄 프로젝트 목차요구사항요구 구현회고 요구사항설명✅ 예외 상황에 대한 처리를 위해 HTTP 상태 코드(링크)와 에러 메시지를 포함한 정보를 사용하여 예외를 관리할 수 있습니다.필요에 따라 사용자 정의 예외 클래스를 생성하여 예외 처리를 수행할 수 있습니다.@ExceptionHandler를 활용하여 공통 예외 처리를 구현할 수도 있습니다.예외가 발생할 경우 적절한 HTTP 상태 코드와 함께 사용자에게 메시지를 전달하여 상황을 관리합니다.조건✅ 수정, 삭제 시 요청할 때 보내는 비밀번호가 일치하지 않을 때 예외가 발생합니다.✅ 선택한 일정 정보를 조회할 수 없을 때 예외가 발생합니다.잘못된 정보로 조회하려고 할 때이미 삭제된 정보를 조회하려고 할 때 요구 구현❗예외처리가 포함되지 않는 클래스, 메서드 등 로직은 넣지.. 더보기 [Project] Lv_4 스케줄 프로젝트 목차요구사항요구 구현트러블 슈팅 요구사항설명✅ 많은 양의 데이터를 효율적으로 표시하기 위해 데이터를 여러 페이지로 나눕니다.✅ 페이지 번호와 페이지 크기를 쿼리 파라미터로 전달하여 요청하는 항목을 나타냅니다.✅ 전달받은 페이지 번호와 크기를 기준으로 쿼리를 작성하여 필요한 데이터만을 조회하고 반환조건✅ 등록된 일정 목록을 페이지 번호와 크기를 기준으로 모두 조회✅ 조회한 일정 목록에는 작성자 이름이 포함✅ 범위를 넘어선 페이지를 요청하는 경우 빈 배열을 반환✅ Paging 객체를 활용할 수 있음 요구 구현가독성을 위해 다른 구현 코드는 넣지 않고 페이지네이션 기능을하는 코드만 넣었습니다. ScheduleController더보기@GetMapping("/pages")@ResponseBodypublic .. 더보기 [Project] Lv_3 스케줄 프로젝트 목차요구사항문제풀이트러블 슈팅 요구사항작성자와 일정의 연결설명✅ 동명이인의 작성자가 있어 어떤 작성자가 등록한 ‘할 일’인지 구별할 수 없음✅ 작성자를 식별하기 위해 이름으로만 관리하던 작성자에게 고유 식별자를 부여합니다.✅ 작성자를 할 일과 분리해서 관리합니다.✅ 작성자 테이블을 생성하고 일정 테이블에 FK를 생성해 연관관계를 설정해 봅니다.조건✅ 작성자는 이름 외에 이메일, 등록일, 수정일 정보를 가지고 있습니다.✅ 작성자의 정보는 추가로 받을 수 있습니다.(조건만 만족한다면 다른 데이터 추가 가능)✅ 작성자의 고유 식별자를 통해 일정이 검색이 될 수 있도록 전체 일정 조회 코드 수정.✅ 작성자의 고유 식별자가 일정 테이블의 외래키가 될 수 있도록 합니다. ✨ 요구사항에 따른 ERD를 재설계하였습니.. 더보기 이전 1 2 다음