Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
Tags
- 래퍼타입
- Git사용법
- 자바 스트링
- 자바 최소공배수
- 자바 최대공약수
- isuppercase()
- 최대공약수
- 스프링뼈대
- sql 데이터형 변환
- 유클리드호제법
- string과 stringbuilder
- addDoc
- 스프링환경설정
- string
- 동일성과 동등성
- 스프링
- 프로그래머스 레벨1
- islowercase()
- StringBuilder
- 최대공약수와 최소공배수
- 자바 유클리드
- 최소공배수
- stringbuilder의 reverse()
- 베주계수
- git 컨벤션
- 모던자바
- ineer join
- toLowerCase()
- while과 two-pointer
- replaceAll()
Archives
- Today
- Total
주노 님의 블로그
20240904 본캠프 38일차 TIL 본문
본캠프 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 : 프로젝트 테스트
오늘 해야할 일 ✔️ 🔺 ❌
✔️ 프로젝트 구현 마무리
✔️ 프로젝트 테스트
회의
더보기
회의안건
- 튜터님 서면 피드백 관련
- PR 체크
- 프로필 조회 관련 설계 문제
회의 내용
- api 명세에 상태코드 추가, 포스트와 댓글에 soft-delete처리 관련 회의
- PR을 확인하며 서로 리뷰하는 시간을 가짐
- 프로필 조회에서 본인일 경우 모든 정보를, 본인이 아닐 경우 요약된 정보만 출력하게 됨, 어떻게 구현할것인가? dto 설계를 두개로 하면 api도 두개가 된다, responseDto의 생성자만 다르게 받으면 api 하나로 구현가능하다.
의결사항
- 튜터님 서면 피드백에따라 API명세는 오후중 수정 및 포스트와 댓글에 softDelete로 구현하기로함
- PR을 확인하며 누락된 부분인 `본인이 작성한 게시물과 댓글에 좋아요를 남길 수 없습니다` 문제를 식별.
- 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 (0) | 2024.09.06 |
---|---|
20240905 본캠프 39일차 TIL (0) | 2024.09.06 |
20240903 본캠프 37일차 TIL (0) | 2024.09.03 |
20240902 본캠프 36일차 TIL (0) | 2024.09.02 |
20240830 본캠프 35일차 TIL (0) | 2024.08.31 |