* 목차 *

2025년 12월 4일 목요일

실시간 협업 보드 웹앱 프롬프트 (Padlet 스타일)

 

실시간 협업 보드 웹앱 프롬프트 (Padlet 스타일)

다음은 실시간 협업 보드 애플리케이션을 생성하기 위한 상세 프롬프트입니다.

1. 목표: Padlet 스타일의 실시간 공동 작업 보드 웹 애플리케이션을 생성합니다. 사용자들은 로그인 없이 접속하여 그룹별로 포스트를 작성하고 상호작용할 수 있어야 합니다.

2. 기술 스택 및 구조:

  • 파일: 단일 index.html 파일로 구성합니다.

  • 스타일링: Tailwind CSS를 사용하여 완전히 반응형(Responsive)이며 현대적인 UI를 구현합니다.

  • 언어: 순수 JavaScript를 사용하여 모든 로직을 구현합니다.

  • 데이터: Firebase Firestore를 사용하여 실시간 데이터 동기화를 구현합니다.

3. 디자인 요구 사항:

  • 배경: 밝은 녹색 계열의 'Funky' 그라데이션 배경 (linear-gradient(135deg, #10b981 0%, #34d399 30%, #a7f3d0 70%, #6ee7b7 100%) 유사)을 적용합니다.

  • 카드/포스트: 흰색 배경에 그림자가 있고 모서리가 둥근(Rounded) 카드를 사용합니다.

  • 레이아웃: 메인 콘텐츠는 가로 스크롤이 가능한 플렉스(Flex) 컨테이너 안에 컬럼(열) 형태로 배열되어야 합니다.

  • 폰트: Inter 폰트를 사용합니다.

4. 핵심 기능 요구 사항:

  • 인증 (Authentication): 사용자에게 별도의 로그인 절차를 요구하지 않아야 합니다. Firebase 익명 인증(Anonymous Authentication)을 사용하여 접속 즉시 고유한 User ID를 부여하고, 이를 기반으로 데이터에 접근해야 합니다.

  • 데이터 경로 (Firestore): 모든 컬럼 및 포스트 데이터는 /artifacts/{appId}/public/data/ 경로를 사용하여 공유 데이터로 저장해야 합니다.

  • 초기 설정 (Columns): 앱 로드 시 데이터베이스에 컬럼 데이터가 없으면, 자동으로 다음 네 개의 기본 컬럼을 생성해야 합니다: "1모둠", "2모둠", "3모둠", "4모둠".

  • 포스트 작성:

    • 각 컬럼 하단에 'Add Post' 버튼을 제공해야 합니다.

    • 버튼 클릭 시, 포스트 제목과 내용을 입력할 수 있는 모달(Modal) 창이 나타나야 합니다. (alert() 대신 사용).

    • 제목과 내용 중 하나라도 입력되면 포스트가 해당 컬럼에 추가되어야 합니다.

  • 상호작용 (Likes):

    • 각 포스트에 '좋아요' 버튼(하트 아이콘)을 제공해야 합니다.

    • 사용자가 클릭하면 해당 포스트의 '좋아요' 카운트가 실시간으로 증가/감소해야 합니다.

    • 사용자 본인이 '좋아요'를 누른 포스트는 하트 아이콘이 채워진 상태로 표시되어야 합니다.

  • 사용자 표시: 포스트 작성자의 User ID를 짧게 잘라서 표시하며, 페이지 상단 헤더에는 협업을 위해 전체 User ID를 표시해야 합니다.

5. 안정성 및 디버깅:

  • DOM 요소에 접근할 때는 반드시 null 여부를 확인하여 TypeError: Cannot read properties of null과 같은 런타임 오류를 방지해야 합니다. (예: loading-indicator 요소 처리 시)

  • Firestore 데이터가 변경될 때마다 renderBoard() 함수를 호출하여 UI가 즉시 업데이트되도록 해야 합니다.

요청 모델: gemini-2.5-flash-preview-09-2025 출력 파일: index.html (단일 파일)