삽질로그

· Study/WIL
들어가며 실전프로젝트 4주차도 막을 내렸다. 일주일동안 끝나지 않는 소셜로그인, JWT와의 싸움을 하기도 했고 에러 코드를 만들거나 예외처리, 응답값 통일 등등 여러가지 코드를 작성했다. 프로젝트가 점점 모습을 갖춰 갈 수록 욕심이 생기기도 하고 아쉬운 부분들이 눈에 보이기도 해서 남은 한 주동안 목표한 부분을 빨리 만들고 완성도를 높이는 작업을 하고 싶어진다. 오늘의 WIL은 지난 일주일 동안 작성한 삽질로그와 정리한 내용을 간단하게 되짚어보고, 한 주간의 회고록을 작성하고자 한다. OAuth2.0 [개발지식] OAuth2.0 [개발지식] OAuth2.0 들어가며 소셜 로그인을 구현하면서 OAuth2.0에 대해 공부를 하게 되었다. 사실 각 소셜로그인이 제공하는 API를 호출하기만 하면 간단하게 해결되..
문제상황 로그인 요청 후 cookie에 refresh token을 담아 보내주고 있는데, 로컬 서버에서 로컬 클라이언트로 테스트를 하면 정상적으로 cookie에 담겨서 보내지지만 배포 후 로컬 클라이언트로 테스트를 하면 보내지지 않는 문제가 있다. 해결과정 첫번째 시도 - SameSite 설정을 None으로 바꿔본다. same-site 옵션 csrf 공격을 방어하기 위한 옵션으로 같은 도메인에서만 쿠키를 전달하거나(strict) 안전한 요청인 get을 통하는 경우에만 쿠키를 전달(Lax)하자는 것이다. 이를 None으로 설정하면 보안 위협을 받을 수 있기 때문에 secure 옵션을 추가해주어야며, 실제로 사용하는 것이 아니라 개발 환경에서만 사용해야한다. 또, secure 옵션을 사용하기 위해서는 htt..
문제상황 회원가입한 유저의 권한을 DB에서 직접 ADMIN 으로 바꿔준 다음 ADMIN 권한을 가진 유저만 접근할 수 있는 api를 만들었는데, 여전히 유저의 권한이 USER 여서 접근할 수 없는 문제가 발생했다. 해결과정 디버깅을 돌려보니 DefaultOAuth2UserService 를 상속한 CustomOAuth2UserService 클래스의 loadUser 메소드에서 불러온 OAuth2User user = super.loadUser(userRequest); 의 user에서부터 이미 ROLE_TYPE 이미 USER 로 세팅되어 있었다. 해당 코드가 있는 전체 코드는 다음과 같다. CustomOAuth2UserService.java @Override public OAuth2User loadUser(OA..
문제상황 분명 CORS 정책을 허용해주는 코드를 잘 적용했다고 생각했는데 자꾸 똑같은 시뻘건 에러를 내뱉었다. 거의 3일동안 에러를 해결하기 위해 찾아 해맨거 같은데 서버 단독으로는 해당 문제를 테스트해볼 수가 없어서 고민하던 중에 다른 프론트 분의 도움으로 테스트를 해볼 수 있었다. 해결과정 구글의 바다에서 허우적대던 와중에 다음과 같은 글을 발견했다. Tomcat8.5 + SpringBoot CORS 문제 해결 Tomcat8.5 + SpringBoot CORS 문제 해결 환경은 SpringBoot의 내장톰캣을 이용하지 않고 톰캣 서버를 별도로 설치하여 그 안에서 스프링부트 앱을 올리는 구조였다. 프로젝트의 API를 프론트개발 쪽에서 호출해야 하는데 CORS 문제가 있어 S 12teamtoday.tis..
문제상황 소스트리가 계속해서 튕기는 현상이 나타났다. 전에는 간헐적으로 나타나더니 이번에는 아주 틈만 나면 예기치 못하게 종료되기 시작했다. 소스트리의 예기치 못하게 종료되는 이슈를 해결해보자. 해결과정 해결방법에는 두가지가 있다. 첫번째는 소스트리의 설정을 바꿔주는 방법이다. 1. 소스트리 설정 변경 방식 1) 소스트리 전역 사용자 설정 체크 해제 단축키 - (mac) command + , 해당 창에서 표시되어있는 부분 체크 해제 2) 저장소 창에서 설정 → 고급 → 전역 사용자 설정 사용 체크 해제 이러면 높은 확률로 예기치 않게 종료되는 이슈를 해결할 수 있다. 많은 사람들이 겪고 있는 문제같은데 정확한 원인은 파악된게 없고 다들 추측으로만 이렇다더라 하고 있는 듯하다. 무언가의 충돌 때문인거 같은..
· Study/TIL
들어가며 다른 수강생분 덕에 계속 머리싸매던 부분을 속시원하게 해결했다! 적용해보고 싶은게 많았지만 전부다 해보기는 수정해야할 부분이 너무 많아서 하나씩 적용할 수 있는 부분들만 하기로 했다. 따라서 오늘의 TIL은 과제 [나만의 블로그 만들기]에 적용한 예외처리 방법을 간단하게 소개하고 삽질로그를 올려보고자 한다 유효성검증 - @Valid @Valid는 JSR-303 표준 스펙으로써 제약 조건이 부여된 객체에 대해 빈 검증기(Bean Validator)를 이용해서 검증하도록 지시하는 어노테이션이다 출처 - 망나니 개발자님의 블로그 이 빈 검증기를 이용해서 RestController로 들어오는 값들을 편리하게 검증할 수 있다. 정말 편리하게도 DTO에 원하는 검증 어노테이션을 붙여주고 Controller..
문제상황 지난 삽질로그에서 계속 고민하던 문제인 '왜 지연로딩을 설정했는데도 참조하고 있는 객체를 통째로 들고다니지?' 라는 물음에 대한 이유를 어느정도 파악한 것 같다. PostRestController.java @GetMapping("") public List getPosts() { List postsList = postService.getPosts(); return postsList; } PostService.java public List getPosts() { List posts = postRepository.findAllByOrderByCreatedAtDesc(); return posts; } Post.java @Entity @Getter @NoArgsConstructor @JsonIdentit..
· Study/TIL
들어가며 과제를 하면서 '왜' 이렇게 사용하는지, 다른 방법은 없는지를 고민하면서 코드를 짜다보니까 알아야할 거랑 궁금한게 점점 많아진다. 그래서 뭐부터 정리해야할 지 고민이 된다. 일단 오늘의 TIL은 과제를 하면서 이용했던 부분과 삽질로그를 작성해보고자 한다. JPA findAll 정렬하기 요구사항 중 하나인, 작성 날짜 기준으로 내림차순 정렬을 하기 위해 JPA sort하는 방법을 찾아봤다. 물론 여러가지 방법이 있겠지만 맘에 드는 두가지만 소개해보도록 한다. 1. Sort 파라미터 사용하기 List posts = postRepository.findAll(Sort.by(Sort.Direction.DESC, "createdAt")); findAll을 해주고 Sort.by()를 사용하는 방식이다. 간단..
문제상황 06/06일 TIL로 작성한 2번째 문제가 아직 근본적으로 해결되지 않아서 쓰는 삽질로그. [TIL] 06/06 항해99 25일차 - 과제 [나만의 블로그 만들기] [TIL] 06/06 항해99 25일차 - 과제 [나만의 블로그 만들기] 들어가며 오늘부터는 달성 목표에 우선순위를 정해두고 하나씩 해결하는 방식으로 공부를 진행하고자한다. 확실히 하나씩 항목을 지워가면서 하니까 성취감도 들면서 내 페이스를 조절하기가 annajin.tistory.com 결국 stackoverflow 에러는 해결을 했지만 지연로딩으로 설정했을 때 해결이 되었어야하는게 아닌가? 라는 물음에서 시작된 순환참조 해결하는 삽질이다. + 지연로딩을 설정했음에도 참조하고 있는 객체를 전부 들고다니는 이유를 어느정도 파악한 것 같..
파이썬으로 코딩테스트 대비 알고리즘 공부하던 도중 TypeError: reverseList() missing 1 required positional argument: 'head’ 에러를 만났다. 연결리스트를 공부하던 부분이었는데, 코드가 맞다고 생각하고 있었는데 대체 뭐가 문제인지 전혀 모르겠더라... 에러로그를 보면 인자가 하나 부족하다고 하는데 대체 뭐가 부족한거지?? 구글링을 해봐도 관련 내용을 찾기가 굉장이 어려웠는데 다행히 항해99의 수강생분들 중 능력자이신 분에게 도움을 요청해서 간단하게 해결했고 앞으로의 실수를 방지하기 위해 삽질로그를 작성해보기로 했다. 문제 - missing 1 required positional argument: 에러 에러가 떳던 전체 코드는 다음과 같다 class Li..
반응형
Anna-Jin
'삽질로그' 태그의 글 목록