kakao login

송민지·2022년 11월 18일
0

Upick

목록 보기
2/2

한달전 갑작스럽게 합류하게 된 프로젝트가 종료되었다.

나는 local login과 kakao login을 담당했다.

하지만 Express가 아닌 Nest.js로 개발했기 때문에, 시간 지나면 잊어버릴거 같으니 기록용으로 남긴다.

Express vs Nest.js

Express는 항해를 거치면서 가장 친숙한 프레임 워크가 되었다.
거기다가 쉽고 빠르게 개발이 가능하기 때문에 처음 합류할 당시 Express 이야기가 제일 먼저 나왔다.

하지만 백엔드 리더분이 이번 기회에 Nest.js를 이용해 개발해보자 말하셨고,
곧장 다음날부터 Nest.js 공식문서를 읽고 코드에 적용하는 날이 시작되었다.

처음으로 nest 공식문서를 읽으면서 숨이 턱 막혔다.
'Express는 자유로운데, nest.js는 전부 타입을 정해놓잖아? 이러면 개발 속도가 느려지지 않을까?' 부터 시작해서 '이걸 어떻게 하나하나 정해놓지?'까지 정말 오만 잡생각이 다 들기 시작했다.

거기에 Pipe를 이용한 설계까지 정말 쉬운게 하나 없었다.

Express에서 쓰던 코드들을 참고하면서, 팀장님께 물어물어 로컬 로그인은 완성되었다.

문제는 kakao login이였다.

문제의 원인은 크게 4가지였다.

  1. 프론트와의 소통이 원활하지 않았다.

나는 서울에 살고 있고 login담당 프론트분은 캐나다에 거주 하고 있다. 시차만 10시간이 나다보니 서로 대화 나눌 시간은 몇 시간 없었다.
그래서 주로 이야기 나눈게 아침 8시부터 오후 2시까지(;;)
눈은 조금 나빠지겠지만, 잠을 조금 덜 자고 소통하는게 더 낫지 않았을까 생각한다.

  1. 내가 kakao login개념을 잘못알고 있었다.

나는 카카오 로그인 redirect uri를 백엔드 kakao login controller api로 요청했다.

2틀동안 code 발급이 안되서 찾아보니 여긴 프론트가 설정하는 곳이라 해서 겁나 뻘쭘했다;;
프론트 담당자님께 죄송하다 하고 내가 찾은 링크를 보내드렸더니 바로 코드 보내주셨다
(역시 무식하면 용감해)

  1. 에러 찾는법을 알지 못했다.

프론트에서 코드를 보내줬는데, 백엔드 로직에서는 받지를 못했다.
왜 못받았나면 처음에 백엔드 로직을 설정할때, 코드는 dto로 받는것으로 설정했다. 하지만 서버에서는 code를 인식 못하고 있었다.

결국 dto는 삭제되었고 body로 받는것으로 코드가 수정되었다.

코드를 이렇게 인식을 시켜놨더니

요런 오류가 계속 뜨기 시작했다.
axios 버전도 낮춰보고, .default도 삭제해보고, data값에 {}를 씌워도 보았지만 어떻게 오류를 찾아야 되는지 알지 못했다.

그런데 백엔드 팀장님이

추가해주자 어떤오류인지 알게 되었다.

  1. 에러나는 코드만 볼게 아니라 그 위에서 부터 차근차근 살펴봐야 했다.

오류 원인은 client_id였다.
client_id가 [client_id] 이런 형태로 있었기 때문에 존재하지 않는다며 kakao에서 KOE101에러와 함께 돌려보냈고, 서버는 500에러를 출력했다.

결국 카카오에 토큰 요청하는 url이 잘못된것으로 판단하여 수정하였고 카카오 로그인은 성공했다.

결론

이번 프로젝트에서 로그인을 담당한게 정말 다행이였다.
항해 진행기간 내내 로그인 개발은 구경만 했었는데, 이번에 알차게 배운거 같아 기분이 좋다.
서버에서는 500에러만 보내서 어떤게 오류인지 몰라 답답했었는데,
에러 출력하는 법도 알게되어 좋았다.

Nest를 한달밖에 안썼지만, 너무 자유로운 Express 보다는 좀 더 엄격하게 규칙을 주며 개발하는것이 변수를 받을때나, 코드 작성할때 좀더 편하게 느껴졌다.

계발공부를 계속한다면, Nest.js를 사용하지 않을까 한다

profile
기록하는 일상

0개의 댓글