
셀프 레퍼런스 https://flreauniverse.tistory.com/26 (세션과 토큰) 개요 유저 스키마와 모델 생성하기 유저 crud 구현하기 로그인 api를 연결하고 토큰 발급하기 토큰 검증하기 api 테스트하기 (번외) 비밀번호 암호화 유저 스키마와 모델 생성하기 스키마와 모델 생성은 지난 시간에 해본 적 있습니다. 실력을 더욱 키우고 싶다면 아래 코드를 보지 말고 한번 짜보는것도 좋은 방법입니다. 유저에 필요한 값은 생각보다 간단합니다. 이 두가지 값을 코드로 옮겨보겠습니다. model 폴더 아래에 user.js 파일을 만든 뒤 아래 코드를 작성해주세요. import mongoose from "mongoose"; const userSchema = new mongoose.Schema({ u..

개요 HTTP의 비상태성 세션 토큰 HTTP의 비상태성(Stateless) HTTP는 요청-응답 쌍으로 이루어진 통신 규약이라고 알고 있습니다. 그렇다면, 요청-응답이 올바르게 진행된 후 응답은 어떻게 흘러갈까요? 클라이언트는 응답받은 데이터를 갖고 있지만, 서버에선 응답한 내용을 일절 저장하지 않습니다. 클라이언트는 인증(Authentication)을 거쳐야 하는 경우처럼, 서버에서 제공하는 모든 api에 접근할 권한이 없습니다. 클라이언트가 서버에 인증 요청을 보냈고, 적절한 응답("인증되었습니다"와 같은 문구)를 받았다고 해봅시다. 후에 인증이 필요한 api에 접근할 때, 서버에선 응답을 했었는지 모르기 때문에 인증이 되지 않은 클라이언트라고 판단합니다. 그렇다고 인증이 필요한 api를 사용할 때 ..

클러스터 만들기 https://cloud.mongodb.com/ MongoDB Cloud MongoDB Cloud는 최신 애플리케이션을 위한 통합 데이터 플랫폼으로, 글로벌 클라우드 데이터베이스, 검색, 데이터레이크, 모바일 및 애플리케이션 서비스를 포함하고 있습니다. www.mongodb.com 들어가서 구글로 로그인하면 간단한 설문 창이 나옵니다. 설문 내용은 관계 없으므로, 아무렇게나 답변하셔도 무관합니다. 오른쪽 무료 플랜을 선택한 뒤 환경에 맞게 설정해주세요. 아무거나 선택하셔도 성능에 문제는 없어, 다음은 개인적으로 추천하는 설정입니다. 스스로 설정하신 분은 바로 다음으로 넘어가주세요. 한국 서버를 무료로 지원하는곳은 AWS의 서울과, Google Cloud의 서울 두 군데가 있습니다. 별이 ..

https://www.postman.com/downloads/ Download Postman | Get Started for Free Try Postman for free! Join 17 million developers who rely on Postman, the collaboration platform for API development. Create better APIs—faster. www.postman.com postman은 여기서 다운로드 할 수 있습니다. 회원가입하거나 스킵하여 바로 사용할 수 있습니다. 이런 화면에서 api 테스트를 진행합니다. New를 눌러 http request 외에도 많은 api 테스트 포맷을 지원하나 http request를 가장 많이 사용하게 될겁니다. 간단하게 a..
사용 라이브러리 "@nestjs/common": "^8.0.0", "@nestjs/core": "^8.0.0", 개요 데코레이터 구현 유저에 rules 추가 로그인과 토큰 발급 처리 구현 데코레이터 구현 먼저, 컨트롤러에 사용할 데코레이터를 구현할 필요가 있다. 그 전에, 서버 내에서 사용할 역할을 나타내는 역할의 열거형을 만들어야한다. src/modules 아래에 /roles 폴더를 만들고 다음을 작성한다. // roles.enum.ts export enum Role { User = 'user', Admin = 'admin', } 필요한 대로 추가해도 되지만, 일단은 예시니까 user와 admin만 추가한다. // roles.decorator.ts import { SetMetadata } from '@..
데미안: 에밀 싱클레어의 청년 시절 이야기 기본 정보 데미안의 초판은 1919년, 독일어로 저자 '헤르만 헤세'의 가명인 '에밀 싱클레어'로 발간되었다. 이에는 이미 작가로서 성공했던 헤르만 헤세가 본인의 작품성을 검증받기 위해 에밀 싱클레어로 발간했다는 설, 제 1차 세계대전 이후 작가로서 비난받아 본인의 이름으로 출간할 수 없었다는 두 가지 설이 있다. 두 가지 어느 쪽 설이 정설이든, 데미안은 당시 자아와 희망을 잃고 살아가던 청년들에게 엄청난 인기를 끌었고, 독자들은 신인 작가 '에밀 싱클레어'가 대체 누구인지 궁금해했다. 어느 평론가가 이 책이 헤르만 헤세의 문체와 같다는 것을 밝혀내고 나선, 1920년부터 '헤르만 헤세'저로 출간되었다. 이후 한국에선 많은 출판사가 번역하여 출간했는데, 필자는..

사용 라이브러리 "@nestjs/websockets": "^8.1.2", "socket.io": "^4.3.1" 소켓 개념의 이해 우리가 통신할때는 http라는 통신 방법을 사용한다. 이 방법은 클라이언트가 서버에 요청을 보내면 서버가 클라이언트에 응답을 보내주는 방식으로, 일련의 요청과 응답이 끝나면 서버는 더 이상 클라이언트에 정보를 보내지 못한다. 이 방식으로 채팅을 구현하기엔 한 가지 문제가 있다. 클라이언트에서 채팅이 왔는지 확인하는 요청을 1초에 한 번씩 보낼 순 없는 노릇이다. 그래서 등장한 통신 방식이 WebSocket이다. 이 방식은 http와 다르게 request와 response로 통신하는것이 아닌, open과 close의 여부로 통신한다. 클라이언트에서 서버에 Socket을 열어달라..

사용 라이브러리 "@koa/router": "^10.1.0", "@types/dotenv": "^8.2.0", "@types/mongoose": "^5.11.97", "koa": "^2.13.1", 개요 mongoose를 koa 프로젝트에서 사용하기 mongoose를 사용하여 User 모델 제작 restfulAPI로 라우터 구축 UserCRUD 제작 1. mongoose를 koa 프로젝트에서 사용하기 import mongoose from 'mongoose'; // 주로 사용하는 mongoose 연결 템플릿. mongoose.connect( process.env.DB_URI!, { user: process.env.DB_USER, pass: process.env.DB_PASSWORD, useNewUrlPar..