전체 글 115

[NestJS] Pipe란? Pipe Validation Example

Pipe 들어오는 요청 데이터를 변환하거나, 유효성 검사를하여 컨트롤로러 전달하기전에 데이터를 가공하는 기능을 수행한다. 들어오는 데이터의 유효성을 미리 검사하여 컨트롤러에서 불필요한 작업을 방지할수있다. 컨트롤러에 반복되는 유혀성 코드를 줄이고, 유효성 검사와 데이터 변환등의 공통 작업을 한곳에서 처리할수있다. 파이프 사용 범위 Global Pipes: 애플리케이션 레벨의 파이프를 적용할떄 사용한다. 클라이언트에서 들어오는 모든 요청에 적용된다. Handler-level Pipes @usePipes()라는 데코레이터 사용 특정 핸들러 메서드에 적용할때 사용 핸들러 메소드에 적용되는 파이프로 매개변수에 적용하여 요청 데이터의 변환 또는 유혀성 검사를 수행한다. Parameter-level Pipes: @..

NestJS 2023.07.21

[NestJS] Module, Controller, Service, Provider 란? Example

Module 애플리케이션의 기능과 관련된 컴퍼넌트를 구조화 하는대 사용한다. '@Module' 데코레이터를 사용하여 정의한다. provider(service,repository), controller, module 등을 포함할 수있다. 모듈 만들기 nest g module [모듈명] nest g module vocas Controller 클라이언트의 요청을 처리하고 응답을 반환하는 역할을한다. '@Controller' 데코레이터에 경로를 지정하여 해당 컨트롤러의 라우팅 경로를 설정 Handler : @Get, @Post, @Delete등의 데코레이터를 사용하여 요청 메서드를 지정한다. 비지니스 로직을 구현하고 Service를 호출하여 데이터 조작 및 비지니스 로직을 처리한다. Module의 contro..

NestJS 2023.07.16

[Git 교과서] 11장 서브모듈

서브 모듈 저장소 하나가 다른 깃 저장소를 포함하는 형태를 의미한다. 규모가 큰 저장소를 여러 개로 분리하여 운영할 수 있도로 해준다. 공통되는 모듈을 분리하여 관리하여 생산성을 높이고 관리를 편하게 할 수 있다. 서브 모듈 추가 git submodule add 원격저장소URL 폴더이름 원격 저장소가 chlid 폴더로 복제된다. 서브 모듈의 설정 파일인. gitmodules에 추가됨 path : 폴더명 url : 자식 저장소의 원격 주소 url 부모 저장소 복제 부모 저장소를 clone을 할 경우 sub module 저장소까지 clone 되지 않는다. sub module 폴더로 이동후 서브 모듈 초기화 이후 업데이트를 진행해줘야 한다. git clone 부모 저장소 cd child git submodul..

Git 2023.07.12

[Tspec] TypeScrip 기반 OpenApi Spec,Swagger 만들기

Tspec TypeScript 타입과 JSDoc 기반으로 OpenApi를 자동으로 생성하게 해주는 라이브러리 https://ts-spec.github.io/tspec/ Tspec | Tspec Tspec Type-driven API Documentation Auto-generating REST API document based on TypeScript types ts-spec.github.io Tspec 사용 방법 1. 의존성 주입 npm install tspec yarn install tspec 2. 타입 지정하기 주의사항 never 등 특정 타입들 인식 못하는 버그 있음 알리아스로 import 하면 타입 인식 못하고 string으로 나오는 버그 있음 ex) type.ts /** 회원 종류 KEY */..

Typescript 2023.07.09

[Git 교과서] 10장 배포 관리와 태그

버전 프로그램을 수정하거나 개선할 때마다 코드를 구분하려고 부여된 식별자 첫 번째 자리 메이저 버전으로 큰 기능을 변경했을 때 변경 첫 자리가 0으로 시작하면 아직 초기 개발 중인 제품이라는 의 메이저 번호 변경 시 하위 버전과 호환성 낮아질 수 있음 두 번째 자리 마이너 번호 메이저 버전에서 기능 추가/ 변경 사항이 있을 때 수정 세 번째 자리 패치 버전. 버그 수정 등 미미한 변화가 있을 때 사용 태그 특정 커밋의 해시 값을 가리키는 꼬리표 코드 배포 관리를 위해 주로 사용 꼬리표 이름과 정보를 포함함 Lightweight 태그 가장 기본적인 태그. 버전 이름만 있음 annotated 태그 주석이 달린 태그 -a 태그 버전 태그 이름은 중복해서 생성할 수 없다. -m 메세지를 작성할 수 있다. -d ..

Git 2023.07.07

[DevOps] Jenkins Slave Node 추가 Example

Slave Node 추가하기 Jenkins 관리 -> Nodes and Clouds nodes 추가하기 Number of executors : 노드에서 동시에 수행할 수 있는 최대 빌드의 수 Remote root directory : 노드의 디렉터리 경로 Labels : 해당 노드를 라벨링할 키 값 Usage : Jenkins 마스터가 해당 노드를 선택하는 규칙 지정 Launch method : 노드의 접속 방법 Slave에 접속 가능하면 해당 서버의 정보들이 확인이 가능하다. ex) 결과 화면

DevOps 2023.07.02

[DevOps] gitHub Actions CICD - pipeline Example

Github Action GitHub에서 제공하는 지속적인 통합 (Continuous Integration) 및 지속적인 배포 (Continuous Deployment) 서비스 파이프 라인 만들기 .github/workflows 디렉토리에 저장된다. name : 파이프 라인 이름 설정 on : 파이프라인이 동작할 event Trigger 설정 jobs: WorkFlow의 job 목록 ex) build.yml # 파이프 라인 이름 설정 name: GUGBAB_GIT_FLOWER_CI # Event Trigger 설정 on: push: pull_request: # Action 탭에서 Workflow실행 가능 설정 workflow_dispatch: # WorkFlow의 job 목록 jobs: build: # ..

DevOps 2023.07.01

[DevOps] SonarQube - Jenkins + SonarQube 연동, Gradle Project 정적 분석 Example

https://www.sonarsource.com/products/sonarqube/ Code Quality Tool & Secure Analysis with SonarQube Empower development teams with a code quality & security solution that deeply integrates into your enterprise environment that enables you to deploy Clean Code securely, consistently and reliably. www.sonarsource.com SonarQube 정적 코드 분석과 코드 품질 관리를 지원하는 오픈 소스 플랫폼 이슈, 결함, 코드 복잡성등을 분석하여 코드의 품질을 평가하고 개선..

DevOps 2023.06.30

[Git 교과서] 9장 복귀

코드를 되돌리는 방법 reset revert reset 커밋을 기준으로 이전 코드로 되돌리는 방법 기록한 커밋을 취소한다. reset 명령어 git reset [option] [커밋ID] soft 스테이지 영역을 포함한 상태로 복원한다. add 명령어로 스테이지 영역에 올려 커밋을 실행하기 직전의 단계로 되돌린다. mixed 스테이지 영역을 포함하지 않은 상태로 복원합니다. Default 옵션 값이다. add 명령어로 스테이지 영역에 다시 올려서 커밋을 진행해야한다. hard 실제 파일이 삭제된 이전 상태로 복원합니다. 복귀 시작의 커밋 상태와 해당 커밋의 워킹 디렉터리까지 모두 되돌린다. 스테이지 reset 스테이지 영역 파일을 다시 unstage 상태로 만들때 사용 git reset [파일이름] re..

Git 2023.06.29