프로젝트 목적
배경
인턴십 프로그램을 시작하면서 AI API를 다시 경험해보는 시간을 가졌다. 처음에는 단순히 OpenAI API를 사용하는 것으로 시작했지만, 공부를 하다보니 다른 AI 모델들은 어떤 특징이 있는지 궁금해졌다. 그래서 현재 가장 주목받는 세 가지 AI 모델(Gemini, Grok, OpenAI)을 비교하는 토이 프로젝트를 시작하게 되었다.
주요 목표
- AI API 실무 경험
- API 연동 및 구현 방법 학습
- 비동기 처리 및 에러 핸들링 실습
- 환경 변수 관리 및 보안 설정 경험
- 주요 AI 모델 비교 분석
- Google의 Gemini
- X(구 Twitter)의 Grok
- OpenAI의 GPT
- 실제 구현을 통한 특징 파악
- 각 모델의 장단점 분석
- 사용 제한 및 비용 구조 이해
- 응답 품질 및 성능 비교
개발 환경 및 사용 기술
- Node.js
- npm 패키지 (dotenv, readline 등)
- 각 AI API (Gemini, Grok, OpenAI)
AI 모델별 특징 비교
Gemini
- Google에서 제공하는 무료 API
- 매월 60회 무료 호출
- 신용카드 불필요
OpenAI (GPT)
- 산업 표준
- 유료 서비스 ($5 초기 크레딧)
- 다양한 모델 선택 가능
Grok
- X Premium+ 구독 필요
- 베타 서비스 상태
- Hitchhiker's Guide 스타일
구현 과정
공통 구현
초기 프로젝트 세팅
# 프로젝트 생성
npm init -y
# 필요한 패키지 설치
npm install dotenv readline @google/generative-ai openai
# .env 파일 생성
touch .env
환경변수 설정
GEMINI_API_KEY=your_gemini_api_key
GROK_API_KEY=your_grok_api_key
OPENAI_API_KEY=your_openai_api_key
히스토리 관리: messageHistory 배열로 대화 기록 유지
let messageHistory = [
{
role: 'system',
content: '초기 시스템 메시지',
}
];
사용자 인터페이스: readline으로 터미널 입출력 구현
// readline 인터페이스 설정
const rl = readline.createInterface({
input: process.stdin,
output: process.stdout,
});
비동기 처리: 모든 API 호출은 async/await 사용
async function sendMessage(userInput) {
// 채팅 입력 로직
}
차이점
- API 클라이언트 설정: 각 서비스별 다른 설정 필요
- 모델 파라미터
- Gemini: 단순한 설정
- Grok: 기본 설정만 제공
- OpenAI: temperature, max_tokens 등 다양한 옵션
결론 및 회고
프로젝트 성과
- API 통합 경험
- 세 가지 다른 AI 모델의 API 연동 경험
- 각 API의 특성과 구현 방식 차이점 이해
- 비동기 처리 및 에러 핸들링 실전 경험
- 모델별 특징 분석
- Gemini
- 무료 사용이 가능하여 테스트에 적합
- 한국어 응답이 자연스러움
- API 구현이 단순하고 직관적
- OpenAI
- 가장 안정적인 응답 품질
- 다양한 파라미터 조정 가능
- 비용 발생이 단점
- Grok
- 베타 서비스로 아직 제한적
- 구독 모델이라 접근성 낮음
- 향후 발전 가능성 있음
- Gemini
개선점
기능 개선
- 대화 내용 파일 저장 기능
- 웹 인터페이스 구현
- 프롬프트 템플릿 관리
코드 개선
- 타입스크립트 도입
- 테스트 코드 작성
- 모듈화 및 구조 개선
배운점
- AI API 구현의 실제 경험
- 각 모델의 장단점 파악
- Node.js 비동기 처리 이해
- 환경 변수 및 보안 관리 경험
참고 자료
[Grok API 문서] https://docs.x.ai/docs/overview
[Gemini Studio 문서] https://ai.google.dev/gemini-api/docs?hl=ko
[OpenAI API 문서] https://platform.openai.com/docs/overview
[프로젝트 Github] https://github.com/HolySSA/ai-chat-toy

'Side Projects' 카테고리의 다른 글
Node.js에서 OAuth 2.0으로 소셜 로그인 구현하기 (0) | 2025.03.10 |
---|---|
체스말 이동하기 로직 (0) | 2025.02.21 |
채팅 시스템 성능 향상시키기 (0) | 2025.02.18 |
Git Actions? (0) | 2025.02.16 |
DI(의존성 주입)? (0) | 2025.01.12 |