오늘은 api 통신간에 유효성 검사를 추가하기로 했다. 게시글이나 댓글의 내용이 비어있으면 작성이 안되거나 회원가입 할 때 아이디가 몇자 이상, 비밀번호는 대소문자, 특수문자 해서 몇자 이상 이런것 말이다. 게시글과 댓글관련 유효성 검사들은 기존에 담당하던 팀원들이 추가해 주기로 했고 회원가입이나 비밀번호 수정할 때 유효성 검사는 내가 처리해줬다.
@Getter
@ToString
public class SignupRequestDto {
@Pattern(regexp = "^[a-z0-9]{4,10}$",
message = "아이디는 4자 이상 10자 이하의 영문(대문자 제외) + 숫자만을 허용합니다.")
private String userUid;
@Pattern(regexp = "^(?=.*[A-Z])(?=.*[a-z])(?=.*\\d)(?=.*[`~!@#$%^])[A-Za-z\\d`~!@#$%^]{8,15}$",
message = "비밀번호는 대소문자 포함 영문 + 숫자 + 특수문자를 최소 1글자씩 포함해서 8자 이상 15자여야 합니다.")
private String password;
@NotBlank
private String username;
private String intro;
private UserStatus role;
}
@Getter
@NoArgsConstructor
public class UpdatePasswordDto {
public String oldpassword;
@Pattern(regexp = "^(?=.*[A-Z])(?=.*[a-z])(?=.*\\d)(?=.*[`~!@#$%^])[A-Za-z\\d`~!@#$%^]{8,15}$",
message = "비밀번호는 대소문자 포함 영문 + 숫자 + 특수문자를 최소 1글자씩 포함해서 8자 이상 15자여야 합니다.")
public String newpassword;
}
그리고 게시글과 댓글에 익명으로 등록되도록 수정했다.
public Comment(Board board, CommentRequestDTO commentRequestDTO, User user){
this.board = board;
this.comment = commentRequestDTO.getComment();
this.generatedname = AnonymousNameGenerator.nameGenerate();
this.user = user;
this.like = 0L;
}
public Long createBoard(BoardCreateRequest request, User user) {
Board board = new Board();
board.setTitle(request.getTitle());
board.setContent(request.getContent());
board.setUser(user);
board.setGeneratedname(AnonymousNameGenerator.nameGenerate());
board.setLike(0L);
Board savedBoard = boardRepository.save(board);
return savedBoard.getId();
}
이제 게시글과 댓글에는 기존의 닉네임 대신 무작위로 정해진 uuid형태의 문자열이 입력된다.
public class AnonymousNameGenerator {
public static String nameGenerate() {
return "유동" + UUID.randomUUID().toString().substring(0, 7);
}
}
이제 다른 팀원들이 개발을 마무리하고 푸시할 때 까지 기다렸다. 개발 속도가 다들 달라서인 것도 있고 작업분량 때문에 역할을 잘못 배분해서 오히려 작업이 지연된 것도 있어서 예상보다 정말 오래걸렸다.
어찌저찌 다 마무리 하고나니 10시를 한참 넘겼었다. 일단 오늘부로 필수 기능은 마무리가 되었고 시간도 늦었고 팀원중 한명이 일정이 있어 일찍 들어간 관계로 어쩔 수 없이 주말에 약속을 잡아서 추가 기능에 관해 회의를 하기로 했다.
'내일배움캠프' 카테고리의 다른 글
아웃소싱 프로젝트 4일차 (0) | 2024.06.26 |
---|---|
아웃소싱 프로젝트 5일차(KPT회고) (0) | 2024.06.25 |
아웃소싱 프로젝트 2일차 (0) | 2024.06.21 |
아웃소싱 프로젝트 1일차 (0) | 2024.06.19 |
Spring 심화주차 Part3 (0) | 2024.06.19 |