본문 바로가기

전체 글

[Project] Lv_7 스케줄 프로젝트(심화) 목차요구사항요구 구현트러블 슈팅 요구사항생성한 일정에 댓글을 남길 수 있습니다.✅ 댓글과 일정은 연관관계를 가집니다.댓글을 저장, 조회, 수정, 삭제할 수 있습니다.댓글은 아래와 같은 필드를 가집니다.✅ 댓글 내용, 작성일, 수정일, 유저 고유 식별자, 일정 고유 식별자 필드✅ 작성일, 수정일 필드는 JPA Auditing을 활용하여 적용합니다.ERD와 schedule.sql에도 일정 엔티티에 대한 내용 추가합니다. 요구 구현요구 구현에 앞서 추가된 Comment에 대한 API 명세서와 ERD 변경더보기 API 명세서 ERD CommentService더보기@RestController@RequestMapping("/api/comments")@RequiredArgsConstructorpublic .. 더보기
[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_5 스케줄 프로젝트(심화) 목차요구사항요구 구현트러블 슈팅회고 요구사항Validation을 활용해 다양한 예외처리를 적용해 봅니다. → 1주차 Bean Validation 참고!정해진 예외처리 항목이 있는것이 아닌 프로젝트를 분석하고 예외사항을 지정해 봅니다.✅ Ex) 할일 제목은 10글자 이내, 유저명은 4글자 이내✅ @Pattern을 사용해서 회원 가입 Email 데이터 검증 등✅ 정규표현식을 적용하되, 정규표현식을 어떻게 쓰는지 몰두하지 말 것!✅ 검색해서 나오는 것을 적용하는 것으로 충분! 요구 구현User (Entity)더보기@Getter@Entity@Table(name = "user")public class User extends BaseEntity { @Id @GeneratedValue(strategy .. 더보기
[Project] Lv_4 스케줄 프로젝트(심화) 목차요구사항요구 구현회고 요구사항설명✅ Cookie/Session을 활용해 로그인 기능을 구현합니다. → 2주차 Servlet Filter 실습 참고!✅ 필터를 활용해 인증 처리를 할 수 있습니다.✅ @Configuration 을 활용해 필터를 등록할 수 있습니다.조건✅ 이메일과 비밀번호를 활용해 로그인 기능을 구현합니다.✅ 회원가입, 로그인 요청은 인증 처리에서 제외합니다.예외처리✅ 로그인 시 이메일과 비밀번호가 일치하지 않을 경우 HTTP Status code 401을 반환합니다. 요구 구현LoginController더보기@RestController@RequestMapping("/api/auth")@RequiredArgsConstructorpublic class LoginController { .. 더보기
[Project] Lv_3 스케줄 프로젝트(심화) 목차요구사항요구 구현 요구사항유저에 비밀번호 필드를 추가합니다.✅ 비밀번호 암호화는 도전 기능에서 수행합니다. 요구 구현요구 사항에 따른 ERD 수정더보기`password` column이 추가되었습니다. User더보기@Getter@Entity@Table(name = "user")public class User extends BaseEntity { @Id @GeneratedValue(strategy = GenerationType.IDENTITY) private Long id; @Column(nullable = false) private String username; @Column(nullable = false) private String password; p.. 더보기
[Project] Lv_2 스케줄 프로젝트(심화) 목차요구 사항요구 구현회고 요구 사항유저를 생성, 조회, 수정, 삭제할 수 있습니다.유저는 아래와 같은 필드를 가집니다.✅ 유저명, 이메일, 작성일 , 수정일 필드✅ 작성일, 수정일 필드는 JPA Auditing을 활용합니다.연관관계 구현✅ 일정은 이제 작성 유저명 필드 대신 유저 고유 식별자 필드를 가집니다. 요구 구현요구 사항의 추가에 따른 API 명세서, ERD 추가더보기 요구 사항의 변경에 따른 API 명세서, ERD 수정더보기 UserController더보기@RestController@RequestMapping("/api/users")public class UserController { private final UserService userService; .. 더보기
[Project] Lv_1 스케줄 프로젝트(심화) 목차요구 사항요구 구현회고 요구 사항일정을 생성, 조회, 수정, 삭제할 수 있습니다.일정은 아래 필드를 가집니다.✅ 작성 유저명, 할일 제목, 할일 내용, 작성일, 수정일 필드✅ 작성일, 수정일 필드는 JPA Auditing을 활용합니다. → 3주차 JPA Auditing 참고! 요구 구현ScheduleController더보기@RestController@RequestMapping("/api/schedules")public class SchedueController { private final ScheduleService scheduleService; public SchedueController(ScheduleService scheduleService) { this.schedul.. 더보기
[Project] Lv_0 스케줄 프로젝트(심화) 목차요구 사항요구 구현회고 요구 사항API 명세서 작성하기✅ API명세서는 프로젝트 root(최상위) 경로의 README.md 에 작성ERD 작성하기✅ ERD는 프로젝트 root(최상위) 경로의 README.md 에 첨부SQL 작성하기✅ 설치한 데이터베이스(Mysql)에 ERD를 따라 테이블을 생성 요구 구현 회고저번 프로젝트의 부족한 점을 발판 삼아 API 명세서를 자세히 작성하였습니다. 더보기