원티드 프리온보딩 백엔드 코스 2주차 후기

Noah·2022년 7월 6일
0
post-thumbnail

기업 과제

  1. 기업명 - payhere
  2. 과제 레포지토리

맡은 역할

2주 차 기업 과제에서 내 담당은 유저 모델과 관련된 기능을 구현하는 것이었다. 기능은 요구사항에 나온 대로 필수적인 기능인 회원가입, 로그인, 로그아웃만을 만들었다.


비밀번호 해싱

요즘은 대부분 OAuth 프로토콜을 이용해 소셜 로그인(구글, 네이버, 카카오) 을 활용하지만 주어진 과제에선 회원 정보를 직접 관리하는 형태였기 때문에 비밀번호 유출을 방지하기 위해 비밀번호 해싱을 적용했다.

네이버 D2 기술 블로그에서 해당 을 발견했고 단방향 해싱의 문제점과 이를 극복하기 위한 salting과 key stretching에 대해 알 수 있었으며 실제 프로젝트에서도 bcrypt 라이브러리를 활용해 salting과 key stretching이 적용된 다이제스트를 만들 수 있었다.


후기

비밀번호 해싱에 대해 더 자세히 알 수 있었던 점은 좋았던 거 같다. 다만 유저가 여러 기기를 활용해 시스템을 이용할 수 있도록 하기 위해서 HTTP 프로토콜의 Header에 User-Agent 값을 받아와 유저의 현재 기기를 식별할 수 있도록 했는데 구현은 일단 했지만 완벽히 구현하진 못한 거 같다. 왜냐하면 다양한 상황이 있을 수 있기 때문이다. 데스크톱에서 브라우저를 통해 서버에 요청하는 경우도 있을 수 있고 모바일에서 브라우저를 통해 서버에 요청하는 경우도 있을 것이며 또 앱에서 서버에 요청하는 경우도 있을 것이다. 또 같은 기기에서 각기 다른 브라우저로 요청할 수도 있을 것이다. 실제로 내가 구현한 방법을 일일이 풀어놓진 않겠지만 해당 부분에 대해 좀 더 고민하고 공부해 봐야 할 거 같다.

profile
개발 공부는 🌳 구조다…

0개의 댓글