원티드 프리온보딩 백엔드 인턴십 7th : 231030 TIL

원티드 프리온보딩 백엔드 인턴십 7th : 231030 TIL

1️⃣ 할당된 업무에 대한 진행상황.

Done : 사용자 회원가입 API 코드 작성 완료
In Progress : 사용자 회원가입 API 코드 수정 및 프로젝트 마무리

  • 남아있는 repository 폴더 삭제
  • 사용자 회원가입 및 로그인 관련 기능 auth 모듈로 통일
  • auth 모듈 feature 폴더로 이동
  • getStatisticsByHour 메서드에 hour 변수 코드 수정
    const [hour, _] = time.split(':'); // 변경 전
    const hour = time.split(':')[0]; // 변경 후
    

2️⃣ 진행한 작업에 대한 리뷰 및 커밋한 내용 리뷰

  • PR을 통해 사용자 회원가입 API 코드를 개선하면서, 코드의 직관성을 향상시키는데 주력했었고, 코드를 수정하면서 좀 더 직관적인 코드 작성에 대해 생각해볼 수 있는 시간이었습니다. 🤔

    // 변경 전
    @Post('/signup')
    async signUpUser(@Body() createUserDto: CreateUserDto) {
        const { username, email, password } = createUserDto;
        const passwordValid =
            await this.userService.checkPasswordValidate(password);
        if (!passwordValid) {
            throw new BadRequestException(`적절하지 않은 패스워드 입니다.`);
        }
    
        await this.authService.createAuthCode(email);
        await this.userService.createUser(createUserDto);
    ...
    }
    
    // 변경 후, error throw는 service 내부에 진행하였다.
    @Post('/signup')
    async signUpUser(@Body() createUserDto: CreateUserDto) {
        await this.userService.checkUserExists(createUserDto.username);
        await this.userService.checkPasswordValidate(
            createUserDto.password,
            createUserDto.confirmPassword,
        );
        // 인증 코드와 사용자 생성 진행
        const authCode = await this.userService.createUser(createUserDto);
    ...
    }
    
  • 테스트 해보니 연속되는 특수문자 사용을 정규식에 포함하지 못해서 추가했습니다. 😅

      // 변경 전
      /(\w)\1\1/.test(password)   
    
    // 변경 후
    // 3회 이상 연속되는 문자 또는 특수문자 사용을 확인할 수 있다.
    /([!@#$%^&*()+\-=\[\]{}|;:'",.<>/?\w])\1\1/.test(password)
    

3️⃣ Today I Learned

📁 수행 기업 과제 Repository

이 글이 도움이 되었나요?

신고하기
0분 전
작성된 댓글이 없습니다. 첫 댓글을 달아보세요!
    댓글을 작성하려면 로그인이 필요합니다.