WIL(13주차)

김규현·2022년 11월 29일
0

💻 Weekly I Learned

이번 주는 팀 프로젝트를 했던 한 주였다.
그리고 이번 글은 한 주를 되돌아보며 스스로에 대한 반성과 회고를 하는 글이다.

팀 프로젝트는 크게 회원가입, 로그인, 메인, 게시글 작성(딥러닝), 게시글 상세, 프로필 페이지로 기획했고, 그 중 나는 유저 앱을 담당하기로 했다.

우선 백엔드에서 Serializer와 JWT를 사용하여 회원가입 및 로그인 로직을 완성했고, 프론트에서 JavaScript로 백엔드 서버에 fetch 요청을 보내 데이터를 보낼 수 있도록 연결해주었다.

이후 강의에서 다룬 경험은 없지만 소셜 로그인 기능도 구현해보고 싶어 drf에서 소셜 로그인을 구현하는 방법을 구글링을 했지만 관련 자료가 많이 없었다.

카카오 Developer 공식 문서를 읽어도 동작 원리는 알겠으나 어떻게 사용해야 할지 모르겠어서 막막함이 밀려왔고, 개발하겠다는 사람이 한글로 된 공식 문서를 읽고도 기능을 구현하지 못한다는 점에 좌절감이 많이 들었다.

그러던 중 구글링하다가 drf에서 소셜 로그인 기능을 구현한 블로그가 있어 코드를 적용해봤더니 백엔드에서 설정한 url로 요청을 보내면 소셜 로그인 API가 호출되고, 소셜 계정으로 로그인 시 DB에 등록되지 않은 계정이면 DB 등록 후 로그인(access token 발급) 그리고 DB에 등록된 계정이라면 바로 로그인이(access token 발급) 되었다.

하지만 문제점은 현재 프로젝트를 백엔드와 프론트를 분리하여 진행하고 있는데, 로그인 후 access token이 백엔드에서 발급된다는 점이다.

현재로서는 자바스크립트로 백엔드 서버의 해당 url로 요청을 보내어 소셜 API가 호출되고, 소셜 계정으로 로그인 후 발급되는 access token을 LocalStorage에 등록시킨 후 메인 페이지의 html을 띄워주어야 하는데 소셜 로그인 기능이 온전히 백엔드에서 이루어지고 있었다.

이 문제를 해결하기 위해 카카오 Developer 공식 문서도 많이 찾아보고 구글링도 수없이 많이 했지만 대부분 백엔드에서 소셜 로그인 기능을 구현한 블로그만 있어 끝내 해결하지 못했다.
만약 Django Template을 활용한 프로젝트라면 페이지를 redirect하여 간단하게 해결할 수 있었을 것 같지만 백엔드와 프론트를 분리한 상태에서 기능 구현을 하기 어려웠다.

📌 이번 프로젝트에 대한 스스로의 반성

그리고 이번 프로젝트에서 소셜 로그인에 집중하다 보니 프로젝트에서 기여도 부분에 소홀했다.
유저앱과 관련된 기능을 담당했으나 회원가입, 로그인 기능 구현 후 유저와 관련된 구현할 수 있는 기능이 무수히 많았음에도 불구하고 미쳐 생각하지 못했다.

예를 들어 아이디, 비밀번호 찾기/ 프로필 페이지에서 계정 정보 수정/ 팔로우 기능 등 구현할 수 있는 기능이 많지만 생각이 짧아 단편적으로 회원가입과 로그인, 프로필만 생각했던 것이다.

다음에 프로젝트를 할 때 유저를 담당하게 된다면 유저와 관련된 기능들을 먼저 생각해보고 기능을 구현해야겠다는 생각이 들었다.

그리고 소셜 로그인은 개인적으로라도 한 번 다시 도전해서 꼭 구현 해봐야겠다는 생각이 들었다.

profile
웹개발 회고록

0개의 댓글