본문 바로가기

TIL/내배캠 과제18

23.07.14 어제 확인해본 내용과 상이한 글을 확인해 Refresh토큰에 대해 다시 알아보려 한다. 어제 확인한 글에서는 random string이나 uuid로 만들어야 서버측에서 탈취단한 토큰을 삭제할 수 있다고 했는데, 서버에 저장하는(stateful) 방식만 취한다면 JWT토큰이여도 삭제할 수 있다고 한다. 또한 refresh 토큰을 저장하는 위치도 cookie, session, local storage 등 다양하던데, 튜터님은 셋 모두 각자의 장단점이 있을 뿐 어디에 저장하든 탈취당하지 않도록 관리하는 방법 자체가 중요하니 당장은 구현하기 쉬운 곳에 구현하는 것이 좋다고 말씀하셨다. 저장 위치에 따른 장단점은 아래 블로그를 참고하자. https://velog.io/@jisu2281l/TIL-Refresh-To.. 2023. 7. 14.
23.07.13 기존에 만들어놨던 blog에 글 좋아요와 댓글 좋아요 기능, 예외처리를 추가해보기로 하자. 우선 좋아요 기능을 추가하기 전에 erd와 api 부터 수정한다. 기본 필수 구현사항은 강의를 따라했더니 큰 어려움 없이 구현에 성공했다. 추가 기능을 구현하기 위해 제안 추가 기능 목록을 보던 중, 대부분이 이미 강의에서 진행하거나 이전 프로젝트에서 진행한 사항이라 당장 공부에 큰 도움이 되지 않을 것 같은 것들은 넘기고, Refresh Token과 swagger는 생소한 개념이라 따로 검색해서 공부해보고 적용을 생각해보려 한다. Refresh Token은 Access Token의 단점을 커버하기 위한 개념인데, Access 토큰은 만료 기간을 짧게 하면 사용자의 잦은 로그아웃을 유발하고, 길게 하면 탈취 당했을.. 2023. 7. 13.
23.06.29 OneToMany mappedby를 comment로 해서 매핑에 문제가 생긴거였다. comment에서 comment를 조회할 순 없으므로 참조하고 있는 blog를 통해 매핑했어야 했다. 삭제는 해결이 됐으나 조회에서 문제가 발생했다. 댓글이 없을 때는 조회가 제대로 작동하나 댓글이 있다면 InvalidDefinitionException오류가 발생한다. LAZY로 설정되어 있어서 Jackson으로 Serialize할 때 비어있는 객체를 Serialize하려고 해서 생기는 오류라고 한다. Hibernate.initialize(blog.getComments());를 추가해 봤으나 같은 에러 발생 // Blog 엔티티 @OneToMany(mappedBy = "blog", cascade = CascadeType... 2023. 6. 29.
23.06.28 lv3을 해결하기위해 강의를 듣던 중 강사님이 User의 PK를 username으로 두는 것을 보고 좋은 방법이라 생각해 이 부분을 수정해 보았다. 내가 만든 서비스를 전 세계에 보일 때는 타임존을 통일해야 해서 글로벌 런칭을 한다면 꼭 필요한 과정이라고 알려주셔서 한 번 추가해 봤다. @EnableJpaAuditing @SpringBootApplication public class MyBlogBackendApplication { @PostConstruct public void setDefaultTimeZone() { TimeZone.setDefault(TimeZone.getTimeZone(ZoneId.of("UTC"))); } public static void main(String[] args) { S.. 2023. 6. 28.