전체 글(206)
-
[내일배움캠프] TIL - 24.10.16(수)
과제 제출전 마지막(?) 리팩토링을 진행했다. 아래에 리팩토링에 대한 내용을 작성한 게시물을 링크해 두었다. Access Token 재발급 및 관리자 계정 생성일정 날짜 추가 및 일정 CRUD 수정댓글 CRUD 수정마지막 리팩토링을 하고 끝났다 생각했지만 아직 반영 못한 부분이 있다 바로 댓글 수정/삭제에 대한 인가를 비즈니스 로직에 작성해둔 것인데 이 부분을 필터에서 처리해야 한다는 것을 리팩토링이 끝나고 파악해 버렸다. 일단 좀 더 프로젝트를 검수한 뒤 이후 받을 피드백과 함꼐 반영해야 할 듯 하다... ※ 참고 : 나는 TIL 작성 방식을 내가 학습하며 정리한 다른 게시글들과 하이퍼링크를 거는 방식으로 작성하였다. 학습한 내용에 하이퍼링크를 걸어두었으니 해당 링크를 통해 학습을 정리한 내용에 접근..
2024.10.16 -
[일정 관리 앱] 리팩토링(5)
마지막으로 댓글 관련 CRUD 를 리팩토링을 진행해 보려 한다. 댓글의 경우 댓글에 관련된 모든 요청에 인증이 필요하다. 하지만 그 외 요구사항에 크게 없어 스스로 판단해 반영한 내용이 다수 존재한다. 이번에 리팩토링한 코드는 여기서 확인이 가능하다. 0. Comment 엔티티 필드 변경 기존에는 작성자명(String author)을 사용했지만 이제는 작성자 ID(Long authorId) 를 저장하도록 수정하였다. 이렇게 변경한 이유는 댓글 삭제 및 수정시 대상 댓글을 작성한 회원만이 해당 댓글을 삭제/수정 할 수 있게 구현하다 보니 작성 회원이 맞는지 '검증' 이 필요했다. '검증' 에는 댓글 작성자의 'id' 와 요청 회원의 'id' 를 비교하는 방식을 사용하는 것이 적절하다 생각 필드를 수정하게 ..
2024.10.16 -
[일정 관리 앱] 리팩토링(4)
이번에는 '일정' 에 해당하는 CRUD 에 해당하는 로직들을 리팩토링 해보려 한다. '도전 기능' 요구사항을 반영하였기에 '일정' 에 '날씨' 필드가 추가해야 하고, 필터에서 인증/인가가 수행되므로 더 이상 요청시 쿼리 파라미터로 작성자(회원)의 'id' 값을 전달 받을 필요가 없어졌다. 이번 리팩토링으로 수정된 코드는 여기서 확인이 가능하다. 참고로 일정에 관련된 모든 요청은 '인증' 이 필요하고, '일정 수정, 삭제' 요청의 경우 '인가' 가 필요하다. 요구사항에 "일정의 수정 및 삭제의 경우 관리자 권한이 필요합니다" 라는 내용이 명시되어 있기 때문이다. 1. 일정 생성 일정 생성시 더 이상 쿼리 파라미터로 작성자의 정보(id)를 전달 받을 필요가 없다. 필터에서 '인증/인가' 를 수행후 요청 사용..
2024.10.16 -
[일정 관리 앱] 리팩토링(3)
원래라면 JWT 를 프로젝트에 반영하면서 부터 구현했어야 하는 것이 맞지만 이후 요구사항 반영을 위해 미루어 왔던 'Access Token' 재발급에 대한 내용과 '관리자(ADMIN)' 권한을 가진 관리자 계정에 대한 부분을 해당 게시글에 기록하고자 한다. 이번에 프로젝트에 반영된 내용은 여기서 확인이 가능하다. 1. Access Token 재발급 이전 게시물에서도 몇 번 언급했지만 과제에 주어진 요구사항에는 'Access Token' 에 대한 내용만 있을 뿐 'Refresh Token' 에 대한 내용은 없다. 하지만 이번 기회에 'Refresh Token' 또한 활용해보고 싶었기에 개인적으로 추가한 상태이다. Access Token 의 사용목적은 '인증/인가' 이며, Refresh Token 의 사용목..
2024.10.15 -
[내일배움캠프] TIL - 24.10.15(화)
'도전 기능' 에 대한 요구사항까지 어제 다 반영을 하였다. 하지만 '도전 기능' 의 핵심 요구사항만 반영했기에 오늘은 리팩토링을 진행하며 동시에 반영하지 못한 세부 요구사항들을 함께 반영했다.필터 예외처리 반영Member CRUD 및 로그인/로그아웃 수정이후로는 Schedule CRUD 를 수정하고 JWT 재발급을 위한 RefreshToken CRUD 를 작성한 뒤 과제를 제출할 것 같다. ※ 참고 : 나는 TIL 작성 방식을 내가 학습하며 정리한 다른 게시글들과 하이퍼링크를 거는 방식으로 작성하였다. 학습한 내용에 하이퍼링크를 걸어두었으니 해당 링크를 통해 학습을 정리한 내용에 접근할 수 있다.
2024.10.15 -
[일정 관리 앱] 리팩토링(2)
이번에는 '유저(멤버)' 엔티티를 다루는 요청에 대한 모든 부분을 하나씩 확인하며 수정해 보려한다. 수정은 요청시 '인증 필요' 의 유무로 구분지어 나누어 진행했다. 이번 리팩토링을 통해 수정된 코드는 여기서 확인 가능하다.인증 불필요 : 회원 가입, 로그인인증 필요 : 그 외 모든 기능과제의 요구사항에 따라 위와 같이 구분짓게 되었다. 1. 인증이 불필요한 요청 아래의 요청들은 필터에서 인증/인가를 수행하지 않고 곧장 'MemberController' 에 'ServletRequest, ServletResponse' 를 전달하게 된다. 1-1. 회원 가입 '회원 가입' 에는 회원(유저)의 '이름, 이메일(계정 ID), 비밀번호(계정 비밀번호)' 정보를 전달 받아야 한다. 전달받은 정보로 새로운 회원에 대..
2024.10.15