항해99 개발일지

03 - 13 ~ 03 - 15 일지

카로루딘 2023. 3. 16. 01:59

03 - 13
카카오톡 로그인 구현 준비

믿음직한 백엔드 친구(부팀장)하고의 연계작업이었다. 카카오톡 소셜 로그인을 구현하는 것이었는데, 이것에 대한 접근을 잘못해서 시간을 아주 많이 썼다. 우리의 회원가입 로직은 이메일을 ID로 사용하는 것이었기에, 카카오톡 소셜 로그인을 할 것이면 카카오 계정이메일을 필수로 받아와야한다고 판단했었다. 이것이 힘든 일이라는 것을 알게 된 것은 그날 오후였다.

카카오톡 소셜 로그인을 하면 권한 요청을 하는데, 닉네임까지는 필수 지정이 가능하지만 이메일은 선택 사항인 것이다. 가장 중요한 것을 선택사항으로 넣으면 예외처리가 수도없이 많아지기에 우리는 어떻게든 이메일을 받아오는 방법을 찾아야했다. 일단 찾아본 것은 카카오 소셜 로그인 기능을 위해 우리 앱을 상업용으로 등록하고 검사를 받는 것이었다. 돈은 안 받는 것 같고, 어차피 출시 목적이니 상업용도 뭐.....맞는 말이긴 하지만 심사에 얼마나 걸릴지 모르고, 무조건 된다는 보장이 없으니 어떻게든 방법을 찾아야했다.

 

03 - 14

카카오톡 소셜 로그인 구현완료

아침에 일어나서 생각의 전환을 시도해보았다. 닉네임 받아오는 것은 필수지만 중복 가능한 것이라 고유한 유니크키값으로 못쓰고, 이메일은 선택이라면, 그냥 카카오 소셜 로그인에 성공하면 제공하는 토큰을 갖다 쓰자는 것이었다. 이 결과가 나오기 전까지 비밀값으로 제공되는 유저 UID 값도 써볼가 고민했다만, JWT 토큰을 이미 갖다 주고 있는데 이것을 쓰지 않을 수가 없었다. 아니 이것이 원래 목적이었는데 이메일에 정신이 꽂혀 삽질한 것이었다! 결과를 알고나니 쉬웠다.

리팩토링은 나중으로 미루고, 일단 기능 구현에 집중했다. 그 결과 저녁 늦게 연결에 성공했다. 이제 나랑 같이 작업하는 프론트 팀원이 내가 구현한 코드를 리팩토링 작업에 들어갔다. 코드 좀 잘 짜라고 잔소리하며 어떻게 리팩토링이 잘 되었는데, 나중에 내가 다시 살펴보니 useEffect를 2번 썼던 걸 1번으로 줄여놨었다. 연산 하나 줄이는 건 좋은데 안전성 면에서 괜찮을까......

 

03 - 15

메인페이지 출력 및 등록

이제 작업에 들어갈 건 기본적인 CRUD 작업 중 C와 R이었다. 이번엔 페이지네이션 구현을 시도했는데, 파라미터값을 보내는 방식에서 백엔드 친구하고 약간의 마찰이 있을 뻔 했다. 결론은 내 능지 이슈인 것으로 결론났고, 해당 구조를 살펴보고 이와 연관된 라이브러리를 제공받아 쓸까 싶었지만 내가 스스로 구현하기로 했다. 관련 코드야 여러 곳에 다 퍼져있으니 찾아보길 권한다. 사실 그냥 GET 받아오는 일상적인 부분이라고 생각한다면쉽다. 그렇다고 GPT에 물어보지는 마라. 이상한 걸 가르쳐준다.

불러오는 작업을 끝내고, POST 작업도 끝내고, 페이지네이션도 진행했는데, 솔직히 이건 왜 가능한 것인지 모르겠다. 나는 버튼을 누를 때 마다 refetch시켜올 거라 생각했는데, 그냥 버튼을 누르면 해당 버튼에 맞는 Page State값을 바꿔주니 알아서 착착 다시 GET해오는 것이 아닌가! 진짜 어떻게 된거지....

코드를 다시 살펴보니 GET으로 가져온 Data를 UseEffect의 의존성 배열에서 체크하고 있었다. 그러니 작동하지! 

'항해99 개발일지' 카테고리의 다른 글

04 - 16 일지  (1) 2023.04.17
04 - 03 일지  (0) 2023.04.03
03-06 ~ 03-11 정리  (0) 2023.03.13
02 - 27 ~ 03 - 04 일지  (0) 2023.03.05
02 - 20 ~ 02 - 26 정리  (0) 2023.02.27