<aside> 📌
요약: 비밀번호를 DB에 저장할땐 평문(plain text)로 저장하면 안된다. hash값을 이용해 저장하고, 유저를 인증할때는 비밀번호 값이 들어왔을때 같은 해쉬함수를 적용하여 일치하는지 확인하면 된다. 해쉬는 one-way function이다. 원래의 값에서 결과를 알기는 매우 쉽지만 결과 값 으로부터 원래의 값을 알아내기는 매우 어려운 함수다.
passport.js는 Express.js 어플리케이션에 간단하게 사용자 인증 기능을 구현하게 도와주는 패키지다. 유저 세션관리 및 다양한 로그인 방식을 추가 가능하다.
Session은 웹 서버가 클라이언트의 정보를 서버에 저장하고 클라이언트 요청 시 Session ID를 사용하여 확인하는 기술이다. 서버가 세션을 생성하고 세션ID를 클라이언트에 전달한다. 클라이언트는 요청시 세션ID를 담아서 전송하고 서버는 세션ID로 DB에서 해당 세션을 찾아 클라이언트를 확인한다.
MongoDB는 검색을 위해 Document를 정렬하여 저장하는 기능을 제공한다. Index를 설정하면 주어진 쿼리를 효율적으로 수행하여 성능을 향상시킬 수 있다.
fetch를 이용하면 간단하게 JS로 HTTP 비동기 요청이 가능하다.
Aggregation은 MongoDB에서 Document들을 가공하고 연산하는 기능인데, RDBMS에서 SQL로 수행할 수 있는 기능들(GROUP BY, DISTINCT, COUNT, JOIN, etc…)을 유사하게 구현할 수 있다.
</aside>