본문 바로가기

공부/TIL

23.11.21

팀프로젝트 시작!

내가 맡은 임무는 CRUD이다. 오늘 기본적인 틀은 다 만들어놓고 이제 인증/인가를 맡은 팀원을 도와줘야겠다.

어제 배웠던 몇가지 기술로 CRUD를 더 보기 좋게 만들었다.

1. ResponseEntity 사용

ResponseEntity를 사용하면 내가 원하는 상태코드를 줄 수도 있고, 바디에도 내가 넘기고 싶은 정보들을 넣어줄 수 있어서 좋다. 상태코드를 내가 주고 싶은대로 줄 수 있다는 것이 매력적이다.

return ResponseEntity.status(HttpStatus.OK.value()).body(menuResponseDto);

요런식!

2. 입력값을 validation 정규 표현식으로 제한하기

사용자 입력 제한을 request단에서 제어한다. validation은 보통 회원가입시에만 적용하고 있다.따라서 정규표현식을 검증하는 부분도 회원가입 파트에만 존재한다.

입력 제한을 받는 파트는 이렇게 작성했다.

    @NotBlank(message = "아이디는 필수 입력 값입니다.")
    @Pattern(regexp = "^[a-z0-9]{4,10}$", message = "사용자 아이디는 소문자와 숫자로만 이루어져있는 4~10글자로 입력해주세요.")
    private String username;

    @NotBlank(message = "비밀번호는 필수 입력 값입니다.")
    @Pattern(regexp = "^[a-zA-Z0-9]{8,15}$", message = "비밀번호는 소문자, 대문자, 숫자로만 이루어진 8~15글자로 입력해주세요.")
    private String pwd;

    @NotBlank(message = "이메일은 필수 입력 값입니다.")
    @Email(message = "email 형식과 맞지 않습니다.")
    private String email;

    @NotBlank(message = "닉네임은 필수 입력 값입니다.")
    @Size(min= 2, max= 5, message = "닉네임의 길이는 2~5글자 사이입니다.")
    private String nickname;

    @Size(min= 1, max= 15, message = "한줄 소개의 길이는 1~15글자 사이입니다.")
    private String profile;

내가 원하는 값들만, 그리고 내가 원하는 길이 만큼만 받기!

        List<FieldError> fieldErrors = bindingResult.getFieldErrors();
        if (fieldErrors.size() > 0) {
            for (FieldError fieldError : bindingResult.getFieldErrors()) {
                log.error(fieldError.getField() + " 필드 : " + fieldError.getDefaultMessage());
                return ResponseEntity.badRequest().body(
                        new CommonResponseDto(fieldError.getDefaultMessage(), HttpStatus.BAD_REQUEST.value()));
            }
        }

이렇게 정규표현식이 아닌 입력을 하면 해당 오류를 뱉도록 했다. 여기서 의문인점은 for문을 도면서 오류가 난 것을 모두 잡아야 하는게 아닌가? 싶은데 로그는 모두 안찍히는것 같다. 

 

아직 해야할 것: 메인페이지에서 게시글이 최신순으로 6개만 보여줘야 하는데 list를 사용해서 하다보니 add는 그냥 크기 제한 없이 넣어져서 자꾸 모든 글을 다 불러온다. 이걸 6개만 보여줄 수 있도록 다시 변경해보자.

 

아! 진짜 오늘 대박 큰 실수를 하나 했다. 바로 깃 푸시를 엉뚱하게 한 것..

깃에 내가 사용할 브랜치를 원격에서 만들고(우리는 기능단위로 브랜치를 만들기로 했다.), 원격에서 만든 브랜치에 체크아웃을 한 후 기능구현을 하고, 원격 dev 브랜치에 푸시를 하고 머지를 한다. 

그런데 내가 너무 오랜만에 하다보니 dev가 아닌 main에 푸시를 해버렸다... 팀원들이 괜찮다고는 했찌만 이런 바보같은 실수를 한게 너무 아쉽다. 그래도 이번에 진짜 git을 어떻게 쓰는지 더 체득을 많이 해서 다행이다.

'공부 > TIL' 카테고리의 다른 글

23.11.23  (1) 2023.11.23
23.11.22  (0) 2023.11.22
[팀프로젝트] 뉴스피드 API명세서  (1) 2023.11.21
23.11.20  (1) 2023.11.20
23.11.17  (0) 2023.11.17