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] 에러 발생시
- 내 애플리케이션 > 제품 설정 > 보안 > Client Secret을 ‘사용 안함’으로 바꾸기
- application.yml 가서 오타 없는지 확인해보기
- 카카오 OAuth2 가입시 문제점
- ✅ 카카오톡 닉네임이 이름인 경우, 조치가 필요하다.
- random 이름 만들어주기
- 사용자 닉네임 받지 않고, 추후 정보 수정에서 수정하기
- ✅ 생년월일 안넘어옴 - 수정해서 넘어올 수 있도록 만들었음
- ✅ provider 저장 안됨
- ✅ 기존에 존재하는 회원인 경우, provider 체크해서 로그인 못하게 막아야함
- ✅ 카카오톡 닉네임이 이름인 경우, 조치가 필요하다.
- Admin Settings Issue (KOE006) 에러 발생 - postman
- Redirect URI 문제인데, 코드와 카카오 사이트에서 설정을 찾아봐야 할듯
느낀점
- 전부터 트리 문제를 어려워했었는데, 주변인들의 도움과 레퍼런스 폭풍 검색으로 풀었습니다.
- Quad Tree 문제는 다시 공부해야겠네요 ㅠㅠ
- OAuth2를 설정해보고 있는데, 잘 되지 않는 것도 많고 넘겨받을 수 있는 정보도 한정적이라서 어렵네요...
내일 할 일
- LeetCode 데일리 문제 풀기
- OAuth2 구현