😞2022.11.06

일일 회고 82일차

할일 및 한일

경험 및 배움

오늘도 nest.js 프로젝트를 추가적으로 구현하였다.

우선 사용자 이름을 유니크하게 만드는 작업을 하고, 중복일 시에는 예외를 던지는 기능을 추가하였다. 또한 처음 사용해 보아서 재미있고, 또 흥미가 생기는 비밀번호를 암호화하는 bcryptjs라는 모듈이 있었다.

비밀번호를 Database에 저장할 때 암호화를 시킬 때는 여러 방법이 존재하는데, 보통 비밀 번호를 사용할 때는 해시 함수로 암호화된 비밀 번호를 DB에 저장하고, 로그인시 비밀 번호를 해시 함수로 암호화해 DB의 비밀번호와 비교하여 로그인여부를 따지는 방법을 사용한다.

하지만 위의 방법을 사용하면 해커들이 데이터를 해킹했을 때, 임의의 패스워드를 만들어봐서 해시를 적용하여 DB의 데이터와 대조를 해보면 해시의 원본 값을 알아낼 수 있는 위험성이 있다고 한다.

따라서 여기서는 Salt라는 추가적인 방법을 도입하여 해결하였다.

Salt무작위 문자열을 랜덤으로 생성해 비밀번호에 붙여넣어서, 해시함수를 적용하면 예측할 수 없는 비밀번호가 생겨서 위의 문제를 해결할 수 있다.

이런 과정들이 프레임워크를 사용하지 않았을 때는 상상조차 할 수 없는 것들이지만, 프레임워크를 사용하면 패키지를 설치하고, 또한 어노테이션을 사용하여 정말 여러 기능을 할 수 있다는 것에 대해 가끔 놀란다. 콘솔에서만 공부할 때와는 다른 정말 많은 즐거움들이 있는 것 같다.

개선 및 목표

  • 최소 이틀 안에 nest.js 프로젝트를 마무리하고, 다음 단계로 넘어가자.

Last updated