바이브코딩으로 채팅 기능을 쉽게 개발하기 위한 전문 프롬프트 오픈소스 프로젝트
오픈챗은 개발자들이 채팅 기능을 빠르고 효율적으로 구현할 수 있도록 돕는 오픈소스 프로젝트입니다. 바이브코딩과 AI 기반 개발 도구를 활용하여 복잡한 채팅 시스템을 쉽게 구축할 수 있도록 전문 프롬프트, 실용적인 코드 예제, 그리고 상세한 문서를 제공합니다.
WebSocket, Firebase Realtime Database를 활용한 실시간 메시지 전송
사용자 인증, 메시지 암호화, 접근 권한 관리
웹, iOS, Android를 아우르는 다양한 플랫폼 지원
메시지 페이지네이션, 캐싱, 리소스 관리
본 프로젝트에서는 Flutter와 Alpine.js로 예제 코드를 제공하지만, 각자의 프로젝트에 맞는 언어와 프레임워크를 선택하여 구현할 수 있습니다.
// Flutter 메시지 전송 예제
void sendMessage(String text) async {
final message = Message(
text: text,
senderId: currentUser.id,
roomId: currentRoom.id,
timestamp: DateTime.now(),
);
await FirebaseDatabase.instance
.ref('messages/${currentRoom.id}')
.push()
.set(message.toJson());
}
채팅 기능의 핵심 개념, 실시간 통신, 메시지 처리 로직, 사용 언어 및 프레임워크 설명
Firebase 프로젝트 생성 및 관리 방법
RTDB 선택 이유(비용 절감), 실시간 기능, 성능 최적화
회원가입, 로그인, 채팅 기능 연동
Alpine.js, Bootstrap, Firebase JS SDK를 사용하여 웹 기반 채팅 애플리케이션을 구축하기 위한 초기 설정 방법과 기본 구조를 설명합니다
Firebase Realtime Database의 데이터 구조, 사용자/채팅방/메시지 저장 방식, 보안 규칙, 성능 최적화
회원 정보, 채팅방, 메시지 저장 구조
Flutter와 JavaScript에서 사용하는 데이터 구조
푸시 알림 구현 및 API 사용법
API 호출 시 발생 가능한 에러 처리
Claude Code 작업 공간에서 llms.txt 를 내려받아 프롬프트 맥락으로 활용하는 기본 절차를 안내합니다
// Alpine.js 실시간 메시지 수신 예제
Alpine.data('chat', () => ({
messages: [],
init() {
// Firebase 실시간 리스너 설정
firebase.database()
.ref(`messages/${this.roomId}`)
.on('child_added', (snapshot) => {
this.messages.push(snapshot.val());
this.scrollToBottom();
});
}
}))
오픈챗은 오픈소스 프로젝트입니다. 여러분의 기여를 환영합니다!
자세한 내용은 GitHub 저장소를 참고해주세요.