분류 전체보기 (67) 썸네일형 리스트형 4. 회원 탈퇴 & 특정 기간동안 재가입 방지 작성중 입니다. @DeleteMapping("/{member-id}") @CheckUserPermission public ResponseEntity deleteMember(@PathVariable("member-id") @Positive long memberId, @Valid @RequestBody MemberDto.DeleteMember requestBody) { memberService.removeUser(requestBody.getMemberId()); return new ResponseEntity(HttpStatus.OK); } public void removeUser(long memberId) { Member member = findVerifiedMember(memberId); LocalDate.. 3. JwtVerificationFilter JwtVerificationFilter 의 역할 JwtVerificationFilter 클래스는 JWT 토큰의 유효성을 검사하고, 검증된 토큰에서 claim 정보를 추출해 사용자 인증 및 권한정보를 SecurityContextHolder에 저장하는 역할을 한다. JwtVerificationFilter(토큰 유효성 검증 로직) 에 대한 설명 커스텀필터에서 JwtAuthenticationFilter 다음으로 JwtVerificationFilter가 실행되도록 했다. JwtVerificationFilter는 OncePerRequestFilter를 상속하는데, 이런 경우 Spring Security는 JwtVerificationFilter를 실행하기 전, suouldNotFilter 메소드를 먼저 호출하여 Jw.. RDS 에서 20만원이 과금됐다. (feat. AWS 프리티어 요금) RDS 과금으로 미루고 미루다 공부해보는 AWS 서비스의 프리티어.. 당시에는 프로젝트 구현만으로도 버거워서 배포 쪽으로는 '일단 해보자' 식으로 했는데 20만원이 🤑🤑🤑🤑🤑 공중분해 되고 나서야 정신을 차렸다. 프리티어 서비스에 대한 개인적인 공부와 이해를 위해 '프리티어 공부' 부분은 아래 블로그의 글을 참고하여 그대로 작성했습니다! 티스토리 inpa Dev 🫱 상황 AWS 신규 고객에게 12개월 간의 프리티어를 제공하는데, 메인프로젝트 당시 '프리티어는 무료니까 이걸로 생성하자!' 라고만 생각하고 일단 생성했다가 매달 5만원 가량의 과금 요금이 나왔다. 사용한 만큼 나온거구나, 라고 생각했지만 사용하지 않은 달에도 나오길래 스냅샷만 남겨놓고 RDS를 삭제했다. 그리고 몇 개월 후, 본격적인 취준을.. 2. JwtAutenticationFilter를 사용한 로그인 ✅ 커밋 & 푸시 & 머지 완료 현재 로그인 로직에 대한 설명 SpringSecurity 필터 체인에 커스텀 필터를 추가하여 로그인한 사용자 정보를 인증하는 로직이다. 구현시 신경썼던 부분은 탈퇴한 회원은 로그인이 안되도록 설정한 부분이다. 왜냐하면 회원 탈퇴시 바로 회원정보를 삭제하지 않고, 회원의 상태를 '탈퇴' 로 표시하여 스케줄링을 이용해 30일간 보관되도록 구현했기때문에 추가 처리를 해주지 않으면 탈퇴한 회원의 정보로 로그인이 가능한 불상사가 일어나게 된다. 그래서 커스텀 필터를 구현할 때, 탈퇴 회원을 검사하는 로직을 집어넣어서 탈퇴 회원의 로그인이 불가하도록 했다. '.apply(new CustomFilterConfigurer())' 필터 체인을 보면 추가된 커스텀 필터를 확인할 수 있다. .. 1. 회원가입 로직 ✅ 커밋 & 푸시 & 머지 완료 개선 전 문제점1. 컨트롤러와 서비스로직에서 각각 email 존재여부 검사 문제점2. 존재하는 회원일 경우 DTO변환없이 return checkMember 를 하기에 의도치 않은 응답이 반환됨. 문제점3. vericyExistsCheck에서 이메일 존재여부 체크할 때 존재 회원일 경우 예외를 던지므로 문제점2 부분이 불필요함. 문제점4. BusinessLogicException이 전역예외처리기가 없어 던져지기만 함. 즉, 적절한 처리가 안돼서 의도한 응답이 아닌 500에러 응답이 감. @PostMapping("/add") public ResponseEntity postMember(@Valid @RequestBody MemberDto.Post requestBody) { Me.. 전역예외처리기가 없어 BusinessLosicException (사용자 정의 예외)의 처리가 이뤄지지 않을 때. 내가 구현한 모든 로직들을 하나씩 살펴보려고 마음 먹고 회원가입 로직부터 살펴보기 시작했다. 🤓 그러다 예외처리에서 의도한 응답이 오지 않는 문제를 발견했다! 문제발생 : 적용한 BusinessLogicException이 던져지지 않음 회원가입 로직을 뜯어가며 살펴보던 중, memberService.verifyExistsCheck 로직에서 이미 회원이 존재할 경우 던지게 설정해놓은 BusinessLogicException이 던져지지 않고 500 에러 코드가 응답으로 오는 것을 발견했다. @PostMapping("/add") public ResponseEntity postMember(@Valid @RequestBody MemberDto.Post requestBody) { Member member = map.. [PCCE 기출문제] 8번 / 창고 정리 https://school.programmers.co.kr/learn/courses/30/lessons/250126 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 문제풀이 및 코드해석 - 정리되기 전 창고의 물건이름이 담긴 문자열 리스트 storage - 각 물건의 개수가 담긴 정수리스트 num → 정리된 창고에서 개수가 가장 많은 물건의 이름을 return 하라. storage 길이 = num 길이 물건은 영어 대소문자를 구분 가장 개수가 많은 물건이 두 가지 이상인 경우는 없음 정리 후 창고의 물건이름을 담을 문자열 리스트 clean_storage 정.. [PCCP 기출문제] 2번 / 석유 시추 문제 https://school.programmers.co.kr/learn/courses/30/lessons/250136 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 풀이 참고 블로그 https://velog.io/@topqr123q/%ED%94%84%EB%A1%9C%EA%B7%B8%EB%9E%98%EB%A8%B8%EC%8A%A4-PCCP-%EA%B8%B0%EC%B6%9C%EB%AC%B8%EC%A0%9C-2%EB%B2%88%EC%84%9D%EC%9C%A0-%EC%8B%9C%EC%B6%94 프로그래머스-PCCP 기출문제 2번(석유 시추) 프로그래머스 PC.. 이전 1 2 3 4 ··· 9 다음