반응형

안녕하세요, 개발자 여러분! 😊
오늘은 제가 직접 React 프로젝트에 ChatGPT API 연결해서 채팅 기능 만들어본 경험을 공유해볼게요.
처음엔 ‘이거 어렵지 않을까?’ 했는데, 막상 해보니 생각보다 간단하더라고요.
아래에 단계별로 정리해봤으니 참고해보세요!
✅ 1️⃣ 준비물부터 체크
- ✔ OpenAI API 키 발급 (필수)
- ✔ React 프로젝트 생성
- ✔ axios 설치 (pnpm add axios 또는 npm install axios)
✅ 2️⃣ 컴포넌트 구조 잡기
파일명: ChatComponent.js
import React, { useState } from 'react';
import axios from 'axios';
✅ 3️⃣ 상태 관리 - 메시지와 입력값 관리
const [input, setInput] = useState('');
const [messages, setMessages] = useState([]);
✅ 4️⃣ ChatGPT API 호출 함수 작성
const API_KEY = 'YOUR_API_KEY_HERE'; // 실제 프로젝트에선 절대 클라이언트에 넣지 마세요
const callChatGPT = async (message) => {
try {
const response = await axios.post(
'https://api.openai.com/v1/chat/completions',
{
model: 'gpt-3.5-turbo',
messages: [{ role: 'user', content: message }],
},
{
headers: {
'Content-Type': 'application/json',
'Authorization': `Bearer ${API_KEY}`
}
}
);
return response.data.choices[0].message.content;
} catch (error) {
console.error('ChatGPT API 호출 에러:', error);
return '죄송합니다. 오류가 발생했어요.';
}
};
✅ 5️⃣ 메시지 전송 핸들러
const handleSend = async () => {
if (input.trim() === '') return;
const userMessage = { role: 'user', content: input };
setMessages([...messages, userMessage]);
setInput('');
const response = await callChatGPT(input);
const botMessage = { role: 'assistant', content: response };
setMessages(prev => [...prev, botMessage]);
};
✅ 6️⃣ 채팅 UI 작성
return (
<div className="chat-container">
<div className="chat-messages">
{messages.map((msg, index) => (
<div key={index} className={`message ${msg.role}`}>
{msg.content}
</div>
))}
</div>
<div className="chat-input">
<input
type="text"
value={input}
onChange={(e) => setInput(e.target.value)}
placeholder="메시지를 입력하세요..."
/>
<button onClick={handleSend}>전송</button>
</div>
</div>
);
✅ 7️⃣ 간단 스타일링 (체험해보세요)
.chat-container {
max-width: 500px;
margin: 0 auto;
padding: 20px;
}
.chat-messages {
height: 400px;
overflow-y: auto;
border: 1px solid #ccc;
padding: 10px;
margin-bottom: 10px;
}
.message {
margin-bottom: 10px;
padding: 5px;
border-radius: 5px;
}
.user { background-color: #e6f2ff; text-align: right; }
.assistant { background-color: #f0f0f0; }
.chat-input { display: flex; }
.chat-input input { flex-grow: 1; padding: 5px; }
.chat-input button { padding: 5px 10px; background-color: #007bff; color: white; border: none; cursor: pointer; }
✅ ⚠️ 실제 써보니 꼭 알아야 할 주의사항
- API Key 절대 클라이언트에 두면 안 됩니다!
- 실 서비스에선 백엔드 API 만들어서 호출해야 안전합니다.
- 요금 폭탄 조심 — OpenAI API는 사용량 따라 과금됩니다.
✅ 직접 써보니 좋았던 점
✔ 채팅 인터페이스 금방 만들 수 있음
✔ ChatGPT API 연결만 하면 자연스러운 대화 가능
✔ axios로 API 호출 구조도 심플해서 초보자도 쉽게 접근 가능
✅ 결론 - React에 ChatGPT 붙이는 거 생각보다 쉽습니다
이번에 만들어보면서 느꼈는데,
진짜 어렵게 생각할 필요 없어요.
기본적인 채팅 기능은 하루면 충분히 완성 가능했고,
생각보다 응답 속도도 괜찮아서 실 서비스에 붙이기도 좋겠더라고요.
💬 혹시 여러분은 ChatGPT API 붙여보신 적 있으신가요?
직접 해보신 분들 경험이나, 궁금한 점 있으시면 댓글로 남겨주시면
같이 얘기해보면 좋겠습니다 😊
반응형
'개발' 카테고리의 다른 글
Next.js에 GA4 붙여봤습니다 – 페이지뷰 & 이벤트 트래킹까지 실전 적용 가이드 (1) | 2025.01.24 |
---|---|
React 보안, 실무에서 진짜 중요한 포인트만 정리해봤습니다 🔒 (0) | 2025.01.20 |
TypeScript 써보니… 왜 다들 쓰는지 알겠더라고요 (0) | 2025.01.11 |
pnpm link 써보니… 로컬 패키지 개발이 이렇게 편해질 줄 몰랐습니다 🚀 (0) | 2025.01.10 |
React 19 써보니 확실히 다르더라… 진짜 바뀐 포인트만 정리해봅니다 ⚛️ (0) | 2025.01.10 |