전체 글 221

postman api DOCS 링크 공유

postman을 이용한 api명세를 작성하고 해당 api명세를 링크로 만들어 공유하는 방법 1. Collections 생성 2. 폴더 및 api요청 생성 3. api 요청 저장 4. 응답 값 저장 예외처리 상황 응답 값은 선택적으로 저장 5. Collection 및 폴더, api 명세 설명 작성 6. 작성한 api명세서 문서화 오른쪽 아래(Documentation) View complete collection documentation 클릭 7. 문서 내용 확인 및 링크 복사 오른쪽 위 Published 클릭 8. 링크 공유 및 api명세 확인 Documentation에 작성한 설명들도 볼 수 있음 요청한 api url 경로 확인 및 응답 값 확인 가능 여러 상황의 응답 값도 확인 가능 작성한 api 명세..

coding/IT, CS 2022.11.11

npm WARN config global

Nest JS를 공부하면서 전에 사용했었던 bcript 라이브러리를 사용했었다. 이번엔 bcriptjs를 설치해서 사용해야 하는데 처음 보는 에러와 마주했다. npm WARN config global라는 에러가 나왔고 구글링을 해보니 npm버전 때문이라는 말이 많았다. 블로그를 보면서 해결했는데 방법은 PowerShell [관리자 권한] 실행 후 Set-ExecutionPolicy Unrestricted -Scope CurrentUser -Force 입력 후 Enter npm install --global --production npm-windows-upgrade 입력 후 Enter npm-windows-upgrade 입력 후 Enter npm -v로 확인! 위와 같은 방법으로 npm을 최신 버전으로 새..

coding/Error 2022.11.04

PostgresSQL TypeORM

postgresSQL : 데이터베이스 pgAdmin : 데이터베이스를 보는 툴 ORM이란 Object Relational Mappong 객체와 관계형 데이터베이스의 데이터를 자동으로 변형 및 연결하는 작업 TypeORM이란 TypeORM은 node.js에서 실행되고 TypeScript로 작성된 객체 관계형 매퍼 라이브러리 TypeORM은 MySQL, PostgresSQL, MariaDB 등 여러 데이터베이스 지원 모델을 기반으로 데이터베이스 테이블 체계를 자동으로 생성 데이터베이스에서 객체를 쉽게 삽입, 업데이트 및 삭제 가능 테이블 간 매핑(일대일, 일대다, 다대다) 간단한 CLI 명령을 제공 TypeORM 설치 및 적용 npm i pg typeorm @nestjs/typeorm --save typeo..

coding/Nest JS 2022.11.03

Nest JS 파이프

Pipe란 @Injectable() 데코레이터로 주석이 달린 클래스로 data transformation, data validation을 위해 사용됨 Nest는 메서드가 호출되기 직전에 파이프를 삽입하고 파이프는 메서드로 향하는 인수를 수신하고 이데 대해 작동함 Data Transformation이란 입력 데이터를 원하는 형식으로 변환(ex. 문자열 -> 정수) Data Validation이란 입력 데이터를 평가하고 유효한 경우 변경되지 않는 상태로 전달, 그렇지 않으면 데이터가 올바르지 않다고 예외를 발생시킴 Pipe 사용 위치 - Handler-level Pipes 핸들러 레벨에서 @UserPipes() 데코레이터를 이용해 사용 모든 파라미터에 적용 @Post() @UsePipes(pipe) crea..

coding/Nest JS 2022.11.01

Nest JS CRUD

게시물 모델 정의하기 모델을 정의할땐 class, interface를 이용 interface = 변수의 타입만 체크 class = 변수의 타입 체크, 인스턴스 생성 가능 interface로 정의 // board.model.ts export interface Board{ id: string; tile: string; description: string; status: BoardStatus; } export enum BoardStatus{ PUBLC = "PUBLIC", PRIVATE = "PRIVATE", } CR 코드 // board.service.ts @Injectable() export class BoardsService { private boards: Board[] = []; // 게시물 모두 불러..

coding/Nest JS 2022.10.31

Nest JS 개념 및 설치

Nest JS란 효율적이고 확장 가능한 Node.js서버 측 애플리케이션을 구축하기 위한 프레임워크 JS를 사용하고, TypeScript로 빌드되고, 완벽하게 지원하며 OOP (Object Oriented Programming), FP (Functional Programming) 및 FRP (Functional Reactive Programming) 요소를 사용할 수 있게 해 줍니다. Nest JS 시작하기 npm i -g @nestjs/cli nest new project-name # project-name에 원하는 이름 설정 # nest new ./(현재 위치에 파일들 설치) Nest CLI를 이용하여 위 명령어 입력 시 새 프로젝트가 디렉터리에 생성되고, 초기 핵심 Nest 파일 및 지원 모듈로 디..

coding/Nest JS 2022.10.29

socket.io 정리

소켓이란 데이터를 주고받는 창구 역할이며, 떨어져 있는 두 호스트를 연결해주는 도구입니다. socket.io란 Websocket을 기반으로 클라이언트와 서버를 실시간 양방향 통신을 가능하게 해주는 Node.js의 모듈입니다. Websocket를 사용해 실시간 채팅을 구현할 수 있지만, socket.io를 사용하면 room이나 namespace 같은 편의 기능들을 사용할 수 있어 다양한 기능들을 보다 쉽게 구현할 수 있습니다. 이벤트 기반으로 동작하기 때문에 이벤트명을 맞추어 입장, 퇴장, 채팅 등을 정의하여 클라이언트와 서버가 통신이 가능합니다. emit으로 메시지를 보내고, on으로 메시지를 받습니다. Websocket이란 TCP 기반의 양방향 통신을 제공하는 프로토콜 HTTP통신은 단방향 방식으로 연..

쿠키, 세션, JWT 정리

JWT란 JSON Web Token의 약자로 JSON 객체로 사용자에 대한 정보를 안전하게 전송하기 위한 Web Token입니다. 헤더, 페이로드, 시그니처 3 부분으로 이루어져 있습니다. 각 부분은 Base64로 인코딩 되어있습니다. 헤더는 시그니처를 해싱하기 위한 알고리즘을 지정하는 곳입니다. 페이로드는 토큰 안에서 사용할 정보들이 담겨있습니다. 시그니처는 토큰을 인코딩하거나, 유효성 검증을 할 때 사용합니다. JWT 장단점 장점 사용자 인증에 필요한 모든 정보가 토큰에 포함되어있기 때문에 별도의 인증 저장소가 필요 없습니다. 단점 페이로드에 사용자들의 정보가 담겨 그대로 노출될 수 있기 때문에 중요한 정보를 담을 순 없습니다. 쿠키란 클라이언트 로컬 스토리지에 저장되는 키와 벨류 값이 들어있는 작은..

HTTP와 HTTPS 정리

HTTP란 Hyper Text Transfer Protocol로, 인터넷에서 데이터를 주고받을 수 있는 프로토콜, 규칙입니다. 클라이언트가 서버에 요청을 보내면 서버는 그에 대한 응답을 답하는 형태로 동작합니다. 클라이언트의 상태를 보존하지 않는 무상태 프로토콜 방식으로 서버 확장성이 높습니다. 요청을 주고받을 때만 연결을 유지하여 최소한의 자원으로 서버 유지하는 비연결성 특징이 있습니다. HTTPS란 HTTP 프로토콜보다 보안적으로 더 강화된 통신 규칙입니다. 정보를 암호화하여 제 3자가 중간에 가로채거나, 보는 것을 막아줍니다. 이용하는 사이트가 믿을 만한 곳인지 확인할 수 있습니다. 대칭키 방식이란 동일한 키로 암호화 복호화하여 정보를 주고받습니다. 비대칭키(공개키) 보다 빠르게 통신이 가능합니다...

REST API 정리

api란 소프트웨어가 다른 소프트웨어로부터 지정된 형식으로 통신하고, 데이터를 주고받게 하는 메커니즘입니다. REST란 각 요청이 어떤 동작이나 정보를 위한 것인지를 요청의 모습 자체로 추론이 가능한 형태입니다. REST api란 HTTP 규약에 따라 신호를 전송하는 방식으로 GET, POST, PUT, DELETE, PATCH 메서드를 사용하여 요청을 보내는 주소와 메서드를 통해 어떠한 기능을 하는지 파악이 가능한 형태입니다. URI란 자원을 구조와 함께 나타내는 형태로 리소스를 구분할 수 있는 식별자입니다. URL이란 URI에 포함되는 개념으로, 리소스의 경로를 의미. 일반적으로 사이트 도메인을 의미 URN이란 URI에 포함되는 개념으로, 리소스의 이름을 의미 CRUD란 create, read, up..