NestJS에서 Swagger 모듈을 사용하여 API테스트 및 문서화를 해보았습니다. NestJS 장점 자동 문서 생성: Swagger는 API 코드의 주석 및 메타 데이터를 기반으로 API 문서를 자동으로 생성합니다. 이로써 개발자는 API에 대한 문서를 수동으로 작성할 필요가 없으며, API가 변경될 때 문서를 업데이트하는 작업이 줄어듭니다. UI: Swagger UI를 통해 생성된 문서를 시각적으로 확인할 수 있습니다. 이 UI는 사용자 친화적이며 API 엔드포인트를 테스트하고 호출할 수 있는 기능을 제공합니다. 보안 및 인증 통합: Swagger를 사용하여 API에 보안 및 인증 기능을 추가할 수 있습니다. API 엔드포인트에 대한 액세스 권한 및 인증 메커니즘을 문서화하고 구현할 수 있습니다. ..
사용자가 로그인하면 JWT를 생성하고, 이를 사용하여 요청에 대한 인증을 수행하거나 특정 권한을 부여하여 API보안을 위하여 사용하고 이전 포스팅에 authGuard로 JWT를 확인하여 API를 사용할 수 있게끔 해봤습니다. JWT를 검사하는 authGuard 이전 포스팅 https://velog.io/@yth1122/NestJs-AuthGard%EB%A1%9C-Api-%ED%98%B8%EC%B6%9C%EC%8B%9C-%EC%9D%B8%EC%A6%9D%EC%A0%95%EB%B3%B4-%ED%99%95%EC%9D%B8%ED%95%98%EA%B8%B0 JWT설치 및 기본 세팅 설치 방법 아래 명령어를 통하여 설치를 진행해 줍니다. $ npm install --save @nestjs/jwt import { J..
GitHub Page는 무료로 사용할 수 있고 GitHub저장소에 코드 푸쉬만으로 자동으로 웹사이트를 빌드하고 배포할 수 있습니다. 주로 개인블로그나 포트폴리오, 문서 공유용으로 주로 사용합니다. GitHub 레퍼지토리 생성하기 깃허브에 접속하여 깃레퍼지토리를 public으로 생성한다. 주의점) .github.io 로 생성해주어야한다 이력서로 사용하기 위해 깃에 템플릿을 포크하여 사용 할 예정입니다. 직접 html 생성 하여 사용하여도 가능 함 https://github.com/sproogen/modern-resume-theme 에서 깃 포크 하여 레퍼지토리를 생성했습니다. 그 이후 명령어를 입력해 준다. $ git add -all $ git commit -m 'resume' $ git push -u o..
API 호출시 Header에 JWTtoken을 확인한 후 확인이 될시 request를 받아 로직을 처리하고 없을시 호출할수 없게끔 설게하여 보안을 강화해보기로 했다. NestJS 공식문서를 보고 구현해봤습니다. UseGuards 세팅 .controller.ts에 사용할때 jwtToken을 확인할 부분에 UseGuards를 사용해준다 api단위로도 사용할 수 있다. ex) login하는 api는 토큰이 없어도 사용가능 , mypage나 로그인을 해야만 볼 수 있는 로직의 api는 useguard 사용 JWT check 및 header에 인증정보 담기 import { CanActivate, ExecutionContext, Injectable, UnauthorizedException, } from '@nest..
stickPC(Ubuntu)에 mysql을 설치하기 위해 진행하였다 1. APT-GET 업데이트 sudo apt-get update 2. MySql 설치 sudo apt-get install mysql-server 3. MySql 기본 설정 서버 시작시 MySql 자동 시작하기 sudo systemctl enable mysql 4. 외부접속 설정 외부에서 접속하게 하기위하여 몇 가지 설정을 더 해주었습니다. 4-1 mysql의 설정이 되어있는 cnf파일을 수정해야 합니다 sudo vim /etc/mysql/mysql.conf.d/mysqld.cnf port 3306 포트로하면, 기존꺼에 충돌이 될 수있다는 글을보고 40040으로 임의 변경 하였고. 127.0.0.1 은 외부 접속이 안되기 때문에 주소를 ..
특정 프로그램을 실행하다가 다른 프로그램도 돌려야하는 경우 새로운 터미널을 켜서 작업을 하거나 의도치않은 터미널 종료로 인하여 프로그램이 중지된 경우가 있어 nohup을 이용하여 프로그램을 실행해 보았다. nohup 으로 프로그램 실행 nohup 실행 방식은 생각보다 엄청 단순하다. 아래 명령어에 친것처럼 nohup이후 실행스크립트 뒤에 & 만 붙여주면 된다. $ nohup 실행스크립트 & 실행시 아래 사진과 같이 실행된다 터미널에서 현재 프로세스를 확인시 출력한 넘버로 프로세스가 진행되는 것을 확인할수 있습니다. 실행되고 있는 프로세스를 종료하고 싶을시 아래 명령어를 통하여 종료 할 수 있다. $ kill -9 237293 nohup.out nohup 실행 패스에 자동적으로 nohup.out이라는 파일..
컨트롤러란? 컨트롤러의 목적은 애플리케이션에 대한 특정 요청을 수신하는 것입니다. 라우팅 매커니즘은 어떤 컨트롤러가 어떤 요청을 받는지 제어합니다. 기본 컨트롤러를 만들기 위해 클래스와 데코레이터를 사용합니다. 컨트롤러 생성시 커맨드 nest g co 다른것들을 생성할시 nest g 생성할네임 or alias 데코레이터 종류 공식사이트에 보면 이런 데코레이터들이 정리 되어있다. 왼쪽에서 사용되는 표기법은 Nest.js 데코레이터들이고 오른쪽은 노드에서 사용할때 자주 보던 문법 들이다. 데코레이터 사용해보기 @GET , @Param , @Query import { Controller, Get, Post , Param, Query } from '@nestjs/common'; @Controller('cats'..
회사에서 주로 Google Cloud 로 작업하여 매번 배포하기 번거로운 문제점이 있어 cloud build를 활용하여 자동화배포를 구현 해보았다. - 트리거 생성하기 cloud build 에서 트리거 생성하기를 들어가면 위화면과 같이 이름,지역,태그,이벤트등을 지정할 수 있다. 이벤트 같은 경우 테스트 하기 쉽게 브랜치에 push로 사용 했다. -git 레퍼지토리에 연결하기 깃 로그인을 할 시 로그인한 계정으로 생성된 깃 레퍼지토리가 나온다 여기서 배포를 위한 소스가 담긴 레퍼지토리를 선택했다. 선택 할 경우 어떤 브랜치의 명령이 있을시 선택하는 곳에서 나는 dev branch를 선택해 줬다. -배포코드 작성 자동감지 하여 git에 dockerfile과 cloudbuild.yaml을 사용하여 배포 할 ..