개요최근 TypeScript를 공부하면서 SOLID 원칙을 실습해볼 수 있는 간단한 프로젝트를 만들어봤다. 도서관 관리 시스템을 구현하면서 각각의 SOLID 원칙이 어떻게 적용되는지 살펴보자.SOLID 원칙이란?객체 지향 프로그래밍의 5가지 기본 원칙을 나타내는 약자.Single Responsibility Principle (단일 책임 원칙)Open/Closed Principle (개방/폐쇄 원칙)Liskov Substitution Principle (리스코프 치환 원칙)Interface Segregation Principle (인터페이스 분리 원칙)Dependency Inversion Principle (의존성 역전 원칙)SOLID 원칙 적용 사례단일 책임 원칙 (SRP)// models/Book.ts..
프로젝트 개요NestJS를 기반으로 한 AI 챗봇 프로젝트Grok AI를 활용한 자연스러운 대화 처리Warudo를 통한 실시간 동작 제어WebSocket을 활용한 양방향 통신기술 스택NestJS: Node.js 기반의 서버 프레임워크Grok AI: x.ai에서 제공하는 대화형 AI 모델Warudo: WebSocket 기반의 실시간 동작 제어 시스템WebSocket: 실시간 양방향 통신 프로토콜AI API 설정constructor( private configService: ConfigService, private warudoService: WarudoService,) { const grokApiKey = this.configService.get('GROK_API_KEY'); this.grokClie..
Warudo란 무엇인가?Warudo는 3D VTuber 라이브 스트리밍을 위해 특별히 설계된 아바타 애니메이션 소프트웨어다. Warudo는 WebSocket을 통해 실시간으로 데이터를 주고받을 수 있는 시스템인데, 주로 실시간 통신이 필요한 애플리케이션에서 사용되며 빠르고 효율적인 데이터 전송을 지원한다. 특히 대화형 애플리케이션이나 실시간 업데이트가 필요한 시스템에서 유용하게 사용될 수 있다. 왜 Warudo여야 하는가?Warudo는 캐주얼 사용자와 전문 사용자 모두를 위해 설계된 종합적이고 기능이 풍부한 3D VTubing 소프트웨어로써, 다양한 모션 캡쳐 시스템을 지원하므로 집에서 스트리밍하거나 전문 모션 캡처 스튜디오에서도 사용할 수 있다. 또한, 500개 이상의 기본 애니메이션으로 캐릭터를 포즈..
OAuth 2.0이란?OAuth 2.0은 사용자 인증을 위한 개방형 표준 프로토콜로, 사용자가 다른 웹사이트에 자신의 정보를 제공할 때 비밀번호와 같은 민감한 정보를 직접 전달하지 않고도 안전하게 인증할 수 있는 방법이다. 예를 들어, 1. 당신이 새로운 서비스에 가입하려고 할 때 2. "Google로 계속하기" 버튼을 클릭하면 3. Google 로그인 창이 뜨고 4. 승인하면 새로운 서비스는 당신의 Google 계정 정보 중 필요한 부분만 안전하게 전달받아 사용 이러한 과정이 바로 OAuth 2.0 프로토콜을 통해 이루어진다. 왜 소셜 로그인인가?사용자 측면새로운 계정 생성 불필요비밀번호 기억/관리 부담 감소신뢰할 수 있는 플랫폼을 통한 안전한 인증개발자 측면보안 인증 로직 구현 부담 감소신뢰할 수 있..
프로젝트 목적배경인턴십 프로그램을 시작하면서 AI API를 다시 경험해보는 시간을 가졌다. 처음에는 단순히 OpenAI API를 사용하는 것으로 시작했지만, 공부를 하다보니 다른 AI 모델들은 어떤 특징이 있는지 궁금해졌다. 그래서 현재 가장 주목받는 세 가지 AI 모델(Gemini, Grok, OpenAI)을 비교하는 토이 프로젝트를 시작하게 되었다.주요 목표AI API 실무 경험API 연동 및 구현 방법 학습비동기 처리 및 에러 핸들링 실습환경 변수 관리 및 보안 설정 경험주요 AI 모델 비교 분석Google의 GeminiX(구 Twitter)의 GrokOpenAI의 GPT실제 구현을 통한 특징 파악각 모델의 장단점 분석사용 제한 및 비용 구조 이해응답 품질 및 성능 비교개발 환경 및 사용 기술Nod..
Node.js 프로젝트 생성일단 빠르게 Node.js 프로젝트를 생성해보자. 먼저 새 터미널창을 연다.npm init -y터미널 창에 위 명령어를 입력하면 생성 끝! TypeScript 프로젝트로 변환이제 TypeScript 프로젝트로 변환할 차례다.tsc --initNode.js 프로젝트를 생성할 때처럼 터미널에 위 명령어를 입력하고 실행한다. 그러면 tsconfig.json가 생성되고, TypeScript 프로젝트로 변환되게 된다. 이제 tsconfig.json 파일을 열어서 수많은 주석 중 필요한 옵션을 선택하여 주석 처리를 해제하면 된다. 내가 주석 해제한 옵션들은 아래와 같다."allowJs": true // TypeScript 프로젝트에 JavaScript 파일 허용 여부"checkJs": t..