TIL

TIL_20230227

번잔중 2023. 2. 27. 23:54

오늘 할 일

  • LeetCode 데일리 문제 풀기
  • OAuth2 구현

오늘 배운 것

LeetCode 데일리 문제 풀기

  • 오늘의 문제: 427. Construct Quad Tree(https://leetcode.com/problems/construct-quad-tree/)
  • 문제 조건
    • Quad Tree를 Divide And Conquer 방식으로 풀어내는 문제이다.
    • 4분할이 가능한 2차원 배열에서 값이 모두 일치하지 않으면 4개로 나눠 sub grid를 만들고, 다시 값을 비교해본다.
    • val가 true이면 1, false이면 0이고 isLeaf는 해당 노드가 맨 끝 노드인 경우 true, 아닌 경우 false이다.
  • 문제 해결
    • 배열을 나눠서 leaf 노드가 나올때까지 반복하는 메소드와 해당 배열의 값이 모두 같은지 판별하는 메소드를 작성해준다.
    • 재귀 호출 방식으로 알고리즘이 돌아가는데, 초기 값부터 하나씩 확인해서 각 사분면마다 검사하여 leaf 노드가 나올 때까지 반복한다.

OAuth2 적용해보기

  • 기존 Member 엔티티에 OAuth2 회원 정보를 저장하려고 한다.
    • OAuth2 회원의 이미지 url을 저장하려면 ✅ 필드를 추가하거나 아예 OAuth2 Attribute를 엔티티로 만들어야 한다.
    • 추후 MemberImage에 이미지 url을 저장하는 방법도 고려해볼 필요가 있다.
  • OAuth2 회원가입에 성공 후 로그인 했을 때 추가 입력이 필요한 정보를 작성하는 화면이 필요하다.
  • OAuth2SuccessHandler 의 line 41 - OAuth2User oAuth2User = provider.getPrincipal() 는 불가능한지 확인이 필요해보인다.
  • ✅ [invalid_token_response] An error occurred while attempting to retrieve the OAuth 2.0 Access Token Response: 401 Unauthorized: [no body] 에러 발생시
    1. 내 애플리케이션 > 제품 설정 > 보안 > Client Secret을 ‘사용 안함’으로 바꾸기
    2. application.yml 가서 오타 없는지 확인해보기
  • 카카오 OAuth2 가입시 문제점
    • ✅ 카카오톡 닉네임이 이름인 경우, 조치가 필요하다.
      1. random 이름 만들어주기
      2. 사용자 닉네임 받지 않고, 추후 정보 수정에서 수정하기
    • ✅ 생년월일 안넘어옴 - 수정해서 넘어올 수 있도록 만들었음
    • ✅ provider 저장 안됨
    • ✅ 기존에 존재하는 회원인 경우, provider 체크해서 로그인 못하게 막아야함
  • Admin Settings Issue (KOE006) 에러 발생 - postman
    • Redirect URI 문제인데, 코드와 카카오 사이트에서 설정을 찾아봐야 할듯

느낀점

  • 전부터 트리 문제를 어려워했었는데, 주변인들의 도움과 레퍼런스 폭풍 검색으로 풀었습니다.
  • Quad Tree 문제는 다시 공부해야겠네요 ㅠㅠ
  • OAuth2를 설정해보고 있는데, 잘 되지 않는 것도 많고 넘겨받을 수 있는 정보도 한정적이라서 어렵네요...

내일 할 일

  • LeetCode 데일리 문제 풀기
  • OAuth2 구현