2021.05.15 데일리 회고

천영석·2021년 5월 15일
1

학습로그 프로젝트를 위해 루터를 나갔다. 오늘 해야하는 것은 디자인대로 버튼과 카드, 카탈로그 메뉴 그리고 로그인이었다. 로그인은 깃허브 아이디로 하기 위해서 oauth를 사용하는데, 처음 해보는 것이라서 공부를 했다.

생각보다 엄청나게 어렵지는 않았고, 사실 프론트엔드에서는 보내줄 것이 사용자가 로그인을 했을 때 받을 수 있는 code뿐이었다. 그러면 이제 백엔드에서는 github에 access token 요청을 하고, 받은 access token으로 사용자 정보도 요청해서 서비스에 가입되어 있는 사용자인지 체크하고, 가입되어 있지 않다면 가입을 시키고, 가입이 되어 있다면 refresh token을 프론트에게 주는 정도를 한다. 로그인 처리 과정에서는 백엔드가 해야 하는 일이 많다는 생각이 들었다.

협업을 처음 해보면서 느끼는 것은 백엔드에 대한 지식도 어느 정도 있어야 대화가 되겠다는 것이었다. 백엔드에 대한 지식이 많지 않기 때문에 백엔드가 어떤 요청을 했을 때, 이해하지 못하는 것들이 있었다. 그리고 서로가 만족할 수 있는 합의점을 도출하는 것이 어려울 수도 있겠다는 것을 느꼈다. 아직은 대규모의 서비스를 만드는 것이 아니라서 원활하게 진행되었지만, 나중에는 프론트가 고생하면 백엔드가 살짝 편할 수 있고, 백엔드가 고생하면 프론트가 살짝 편할 수 있겠다는 생각이 들었다. 커뮤니케이션 능력이 점점 더 중요해지는 것 같다.

백엔드와 소통할 때 내 생각을 잘 전달하지 못해서 아쉬웠다. 생각을 말로 잘 표현하지 못하는 내 문제점이 원망스러웠다.

어떤 생각을 했는지 적어보자면, 사용자가 로그인 버튼을 누르고, 로그인을 하게 되면 프론트로 code가 넘어오게 되고, 그 code를 백엔드로 보내게 되면 백엔드에서 access token과 사용자 정보 요청을 github에 하게 되는데, 프론트에게 넘겨주는 데이터는 access token이다. 그러면 프론트에서는 사용자의 프로필과 닉네임을 표시하기 위해서 사용자 정보를 요청해야 한다. 요청하게 되면 다시 백엔드가 github에 사용자 정보를 달라는 요청을 하게 될 것 같은데, 그러면 결과적으로 로그인 시 한 flow에서 사용자 정보를 받아오는 것을 2번 요청하게 되는 것 같아서 처음에 access token과 사용자 정보를 모두 body에 담아서 주는 것이 어떨까라는 의견이었다.

말이 잘 정리가 되지 않아서 횡설수설했지만 한 크루가 기가막히게 알아들었다. 하지만 oauth의 흐름도 잘 모르겠고, 이전에 사용하던 방식대로 로그인을 하면 access token을 받고, 사용자 정보 요청을 따로 하는 것으로 결론이 났다.

그리고 access token이 만료되었을 때 백엔드에서 401번과 같은 상태 코드를 주기로 해서, 해당 상태 코드가 오면 로그인 페이지로 이동시키도록 하기로 했다. 백엔드와 협업을 아직 코드로 직접적으로 하지는 않았지만 엄청 재미있는 경험이었다.

그리고 github도 fork를 하지 않고 하나의 저장소에서 브랜치로 모두 작업을 하고 있는데, 이것도 색다른 경험이다. 모르고 main에 pr을 보내서 reset하느라 힘들었다. 좋은 경험이었고, 3단계가 되기 전에 체험했다는 것에 대해서 만족하고 있다. 학습로그 프로젝트를 신청한 과거의 나에게 칭찬한다.

profile
느려도 꾸준히 발전하려고 노력하는 사람입니다.

0개의 댓글