Categories
Tags
8
16
32
![커버: [NESTJS] Swagger와 Decorator, Pipe, Guard 알아보기 커버 이미지](/assets/images/post/covers/TIL-nest2.png)
문서화와 미들웨어 문서화는 프로젝트를 구성하면서 절대 빠질 수 없는 요소 중 하나라고 생각합니다. 오늘은 성격이 다른 두 가지 주제를 다루려고 합니다. 문서화에 사용되는 `Swagger(이하 스웨거)`를 설정하는 과정과 미들웨어의 성격을 가진 `Pipe(이하 파이프)`와 `Guard(이하 가드)`는 어떻게 사용하고 어디에 적용할 수 있는지 알아봅니다. Swagger 설정 스웨거는 `OpenAPI`는 오픈소스 같은 공개된 API의 개념이 아닙니다. `OpenAPI Specification(OpenAPI 사양)`은 다른 사람에게 API를 정의하기 위한 표준화된 수단을 제공하는 HTTP API용 사양 언어입니다. 줄여서 `OAS`라고 합니다.
2023년 10월 25일![커버: [NESTJS] Nest.js 프로젝트 초기 설정하기 커버 이미지](/assets/images/post/covers/TIL-nest2.png)
Nest.js 프로젝트 다루기 Nest.js(이하 네스트)는 Spring boot(이하 스프링)와 아주 유사한 구조를 가지고 있다. 스프링의 어노테이션과 대응하는 데코레이터와 `IoC(제어의 역전)`와 `DI(의존성 주입)` 개념이 사용된다. 설치와 실행 네스트를 사용하면서 `fastify`나 `express`와 달리 좋았던 부분은 각 개발 단위의 폼(form)을 생성해주는 `CLI`의 기능을 꼽을 수 있다. 프로젝트를 구성하는데 필요한 모든 기능을 `CLI`가 떠먹여준다고 해도 과언이 아니다. 스프링으로 굳이 비교해보자면 `initializr`가 초기 프로젝트 세팅만 해주는 반면, 네스트는 초기 세팅은 물론 확장되는 앱과 서브앱, 모듈 등을 자동으로 디렉토리 생성 및 파일 내용을 작성하고 임포트해준다. 얼마나 효율적인가? 😮
2023년 10월 24일![커버: [REDIS] 레디스 맛보기 01 커버 이미지](/assets/images/post/covers/TIL-redis.png)
Redis란 요즘 NoSQL과 MQ(메세지큐)에 관심을 가지다보니 레디스를 지나쳐 갈 수 없어서 간단하게 알아보고 실무에 적용해보려 합니다. 현재 프로젝트에 새로운 기술을 도입하는데 제한적이지 않고, 새로운 좋은 기술을 장려하는 분위기라 제안 후 적용 예정입니다. 먼저, 레디스란 무엇일까요? 캐시 관련 기술을 적용하는데 자주 듣던 이름입니다. 레디스는 Remote Dictionary Server의 약자로 원격 사전 서버라고 직역할 수 있겠네요. 파이썬에 딕셔너리라는 타입이 있고, 자바스크립트로 치면 map, 자바로 치면 HashMap과 비교할 수 있을 것 같습니다. 레디스는 아주 단순한 구조로 데이터를 저장하는데요, NoSQL에 속하며, DB의 역할, 캐시, 메세지 브로커로 사용이 가능한 오픈 소스입니다. 다양한 타입이 제공됩니다. 해당 타입들에 대해서는 이야기를 진행하면서 하나 씩 기록해보겠습니다.
2023년 08월 23일![커버: [Jenkins] Jenkins + Fastify 프로젝트 빌드부터 실행까지02 커버 이미지](/assets/images/post/covers/TIL-jenkins.png)
Gihub Webhook + Jenkins 연동 이전 포스팅에서 Jenkins와 Fastify 프로젝트를 연동하여 서버에 배포, 빌드, 실행까지 다루어 봤습니다. 뭔가 조금 더 편했으면 하는 과정이 깃허브 저장소에 푸시 후 jenkins가 동작하는 과정입니다. 쉽게 개념도를 보자면 아래와 같습니다. 프로젝트 CI/CD 개념도 jenkins에서 원격 서버의 도커 컨테이너로 배포하는 형식으로 되어 있습니다. 이번 포스팅에서는 github webhook을 생성하고 저장소에 push할 때 jenkins를 실행하는 방법에 대하 다루겠습니다. Github Webhook 생성하기 Github Webhook 생성은 간단합니다. 먼저, 자신이 작업할 저장소로 이동하여 Setting탭을 클릭합니다. 계정의 Setting이 아닌 저장소의 Setting입니다.
2023년 08월 04일![커버: [Jenkins] Jenkins + Fastify 프로젝트 빌드부터 실행까지01 커버 이미지](/assets/images/post/covers/TIL-jenkins.png)
Jenkins 시작하기 이번에는 jenkins를 포스팅하게 되었습니다. jenkins는 소프트웨어 개발 시 지속적 통합(CI), 지속적 전달(CD), 자동화 빌드, 테스트, 배포 등이 있고 많은 플러그인이 지원되는 도구입니다. github와 연동하고 프로젝트를 빌드, 배포하며, 프로젝트를 실행까지 하는 단계를 기록하려합니다. 기존에는 shell script로 자동화해왔는데요, 매번 프로젝트가 있을 때마다 성격에 맞게 설정하는게 손이 많이 가기도 해서 jenkins를 선택하게 되었습니다. 아무래도 기존 방법 보다는 버튼 하나, 클릭 한 번 만으로 관리할 수 있는 GUI로 제어하는게 편하지요. 다행스럽게도 현재 프로젝트는 개발단계이고, 테스트 할 기간이 충분하기 때문에 기초적인 부분만 보고 익힐 수 있는 좋은 경험이었습니다. 이번에 적용하게 된 프로젝트의 이슈는 아래와 같습니다.
2023년 08월 03일![커버: [AdminJS] Fastify + AdminJS 프로젝트 환경 구축 01 커버 이미지](/assets/images/post/covers/TIL-fastify-adminjs.png)
Fastify와 AdminJS 프로젝트 환경 안녕하세요. 이번에는 Fastify와 AdminJS를 연동하는 방법과 겪었던 이슈를 정리하는 포스팅이 되겠습니다. 주요하게 다룰 부분은 프로젝트 환경 설정과 이슈 해결/적용에 대한 방법과 과정입니다. AdminJS는 무엇인가 AdminJS는 AdminBro의 rebrand된 모듈입니다. 초기 AdminBro는 fastify를 지원하지 않았고, 현재 AdminJS로 rebrand되면서 fastify와 커뮤니티 플러그인 등을 지원하며, ESM만을 지원하는 모듈로 점점 발전해나가고 있습니다. 참고로 AdminBro와 AdminJS는 모두 SoftWareBrothers 그룹에서 제작했습니다.
2023년 07월 19일![커버: [Node] Node 환경에서 프론트와 백엔드 같이 빌드하기 커버 이미지](/assets/images/post/covers/TIL-node.png)
프로젝트 결합 빌드 오랜만에 포스팅 합니다. 솔직히 방문자 수가 줄어들면 어쩌나 하는 생각도 들더라구요 😊 이번에는 조금 실험적인 주제를 다루려고 합니다. 그만큼 포스팅에서 이야기 할 거리도 좀 적은게 흠이네요. 아직 시도해 본 적이 없어서 실험적이라는 말을 썼는데요. 자바 진영에서 react를 같이 빌드했던 기억이 있습니다. 현재는 Node를 사용하고, 사용하면서 백단과 프론트를 같이 빌드해서 실행해본 경우는 없습니다. 현재 처한 상황에서 이런게 필요하겠다 싶어서 테스트 후 기록해봅니다. 우선 프로젝트 환경에 대해 설명하자면 다음과 같습니다.
2023년 07월 10일![커버: [WEBRTC] node.js express + React + WebRTC + WebSocket 환경 구축하기 01 커버 이미지](/assets/images/post/covers/TIL-center.png)
node.js express + React 환경 구축부터 해보자 이번에 WebRTC와 webSocket을 조사해야할 일이 생겨서 부랴부랴 이론을 보고, 테스트해보기 위해 여러 블로그와 문서를 찾아다녔습니다. 이미 어려운걸 지금부터 해야한다니... 복 받은건가 먼저 Next에서 진행하려고 했으나 WebRTC를 설정하는데 있어서 node.js도 공부해 볼 겸 node와 react를 결합한 환경에서 테스트 해보려합니다. webrtc_test라는 폴더를 만들고 이동합니다.
2022년 06월 28일