주노 님의 블로그

20240904 본캠프 38일차 TIL 본문

TIL

20240904 본캠프 38일차 TIL

juno0432 2024. 9. 6. 01:44

본캠프 38일차 내용 간단요약

  • 09:00 ~ 10:00 : 코드카타
  • 10:00 ~ 11:00 : 회의
  • 11:00 ~ 12:00 : 프로젝트 리팩토링
  • 12:00 ~ 13:00 : 점심시간
  • 13:00 ~ 18:00 : 프로젝트 구현 및 테스트 준비 및 튜터님 서면 피드백 수정
  • 18:00 ~ 19:00 : 저녁시간
  • 19:00 ~ 21:00 : 프로젝트 테스트

오늘 해야할 일 ✔️ 🔺 ❌

✔️ 프로젝트 구현 마무리

✔️ 프로젝트 테스트


회의

더보기

회의안건

  1. 튜터님 서면 피드백 관련
  2. PR 체크
  3. 프로필 조회 관련 설계 문제

회의 내용

  1. api 명세에 상태코드 추가, 포스트와 댓글에 soft-delete처리 관련 회의
  2. PR을 확인하며 서로 리뷰하는 시간을 가짐
  3. 프로필 조회에서 본인일 경우 모든 정보를, 본인이 아닐 경우 요약된 정보만 출력하게 됨, 어떻게 구현할것인가? dto 설계를 두개로 하면 api도 두개가 된다, responseDto의 생성자만 다르게 받으면 api 하나로 구현가능하다.

의결사항

  1. 튜터님 서면 피드백에따라 API명세는 오후중 수정 및 포스트와 댓글에 softDelete로 구현하기로함
  2. PR을 확인하며 누락된 부분인 `본인이 작성한 게시물과 댓글에 좋아요를 남길 수 없습니다` 문제를 식별.
  3. user를 식별하여 dto 생성자를 다르게하여 출력하게 한다.

프로젝트 구현

더보기

에러코드 추가

토큰없음 예외처리를 커스텀으로 보강

    TOKEN_INVALID(401, "토큰이 유효하지 않습니다."),
    FOLLOW_NOT_FOUND(404, "팔로우 관계가 존재하지 않습니다."),
    PASSWORD_NOT_MATCH(404, "비밀번호가 일치하지 않습니다"),
    ALREADY_USER_EXIST(409, "이미 존재하는 회원입니다");

 

유저 삭제 시 비밀번호 수정 및 검증로직을 추가하였다

if (!passwordEncoder.matches(request.getPassword(), user.getPassword())) {
            throw new ApplicationException(ErrorCode.PASSWORD_NOT_MATCH);
        }

 

UserService 메서드 분리

servlet에서 받아온 user아이디와 입력받은 suerid가 동일한지 check를 하는 로직이다.

//servlet에서 받아온 user아이디와 입력받은 userid 가 동일한지, check를 하는 로직입니다.
    private User userCheck(HttpServletRequest request, Long userId) {
        Long currentUserId = getUserId(request);

        User currentUser = userRepository.findById(currentUserId)
            .orElseThrow(() -> new ApplicationException(ErrorCode.USER_NOT_FOUND));

        if(currentUser.isEnabled())
        {
            throw new ApplicationException(ErrorCode.USER_NOT_FOUND);
        }

        if (!userId.equals(currentUserId)) {
            throw new ApplicationException(ErrorCode.USER_FORBIDDEN);
        }

        return userRepository.findById(userId)
            .orElseThrow(() -> new ApplicationException(ErrorCode.USER_NOT_FOUND));
    }

프로젝트 테스트

더보기

프로젝트 테스트를 팀원들이랑 하면서 문제사항을 점검했다

 

follow : follow 중복 추가 문제 발생

post : token에서 받은 user와 삭제할 게시물의 userid가 다른경우

comment : url변경 및 soft delete를 구현했다

commentLike : pathvariable 수정

 

필요를 했다.


오늘의 회고 & 12시간 몰입했는가? 

구현이 완료되어가니 살짝 집중력이 떨어지는 느낌...!

'TIL' 카테고리의 다른 글

20240906 본캠프 40일차 TIL  (1) 2024.09.06
20240905 본캠프 39일차 TIL  (0) 2024.09.06
20240903 본캠프 37일차 TIL  (0) 2024.09.03
20240902 본캠프 36일차 TIL  (2) 2024.09.02
20240830 본캠프 35일차 TIL  (0) 2024.08.31