게시글 및 댓글
커뮤니티에서 게시글을 작성하고 댓글을 다는 방법을 설명합니다.
목차
커뮤니티 피드 소개
목적
커뮤니티 피드는 다음과 같은 목적을 가지고 있습니다:
- 학생들 간 소통 및 교류
- 한국어로 자유로운 표현 연습
- 질문하고 답변받기
- 학습 경험 공유
주요 기능
- 게시글 작성: 한국어로 글 작성
- 댓글 작성: 다른 학생의 글에 댓글
- 답글 작성: 댓글에 답글 (대화 스레드)
- 좋아요: 좋은 글에 좋아요
- 북마크: 나중에 다시 보고 싶은 글 저장
- 필터링: 타입별, 카테고리별 필터
게시글 작성하기
페이지 접근
/c/{community-slug}/community 페이지가 메인 피드입니다.
작성 시작
-
"새 게시글" 버튼 클릭
- 페이지 상단의 버튼 클릭
- 또는 플로팅 버튼 클릭
- 작성 모달/페이지 열림
-
게시글 유형 선택
- 질문 (Question)
- 자유 (Free)
- 공부 (Study)
-
제목 입력
- 간결하고 명확한 제목
- 한국어 또는 영어
-
내용 작성
- BlockNote 에디터 사용
- 마크다운 형식 지원
- 이미지 업로드 가능
-
카테고리 선택 (선택 사항)
- 문법, 어휘, 문화 등
- 게시글 분류에 유용
-
제출하기
- "게시" 버튼 클릭
- 피드에 즉시 표시
- +10P 획득
작성 가이드
좋은 게시글 제목:
- ✅ "'-었/았/였-' 과거형 사용법 질문있어요"
- ✅ "오늘 한국 드라마 봤어요!"
- ✅ "TOPIK 준비 어떻게 하시나요?"
나쁜 게시글 제목:
- ❌ "질문"
- ❌ "도움"
- ❌ "ㅋㅋㅋ"
게시글 유형
1. 질문 (Question)
용도: 한국어 학습 관련 질문
예시:
제목: 조사 '은/는'과 '이/가'의 차이가 뭔가요?
내용:
안녕하세요!
한국어를 공부하는데 조사 사용이 너무 헷갈려요.
'은/는'과 '이/가'의 차이를 설명해 주실 수 있나요?
예문도 함께 알려주시면 감사하겠습니다!
특징:
- 물음표(?) 권장
- 다른 학생이나 선생님이 답변
- 질문 배지 표시
- 해결됨 체크 기능 (향후)
2. 자유 (Free)
용도: 자유로운 주제로 소통
예시:
제목: 오늘 한국 식당에서 비빔밥 먹었어요!
내용:
오늘 처음으로 비빔밥을 먹어 봤는데 정말 맛있었어요!
고추장이 좀 매웠지만 괜찮았습니다 ㅎㅎ
여러분이 좋아하는 한국 음식은 뭐예요?
특징:
- 일상 이야기, 경험 공유
- 가볍게 소통
- 자유 배지 표시
3. 공부 (Study)
용도: 학습 자료, 팁, 경험 공유
예시:
제목: TOPIK 2급 합격 후기 공유합니다!
내용:
지난주에 TOPIK 2급 시험을 봤는데 합격했어요!
제가 공부한 방법을 공유하고 싶어요.
1. 매일 30분씩 한국 드라마 보기
2. 일기 쓰기 (이 앱 사용!)
3. 문법 책 하루 2페이지씩
4. 단어 암기 앱 사용
여러분도 화이팅!
특징:
- 학습 팁, 자료 공유
- 공부 방법 논의
- 공부 배지 표시
댓글 및 답글
댓글 작성
게시글에 댓글을 달려면:
-
게시글 클릭
- 상세 페이지로 이동
-
댓글 입력창
- 하단의 댓글 입력창에 작성
- 텍스트 또는 BlockNote 에디터 (설정에 따라)
-
댓글 제출
- "댓글 달기" 버튼 클릭
- +5P 획득
답글 작성
댓글에 답글을 달려면:
-
"답글" 버튼 클릭
- 댓글 아래의 "답글" 버튼
-
답글 입력
- 답글 입력창에 작성
- @멘션 자동 추가
-
답글 제출
- "답글 달기" 버튼 클릭
- +5P 획득
스레드 구조
댓글과 답글은 스레드 구조로 표시됩니다:
게시글
├─ 댓글 1
│ ├─ 답글 1-1
│ └─ 답글 1-2
├─ 댓글 2
└─ 댓글 3
└─ 답글 3-1
멘션 기능
댓글/답글에서 다른 사용자 멘션:
@사용자이름형식- 자동완성 지원
- 멘션된 사용자에게 알림
좋아요 및 북마크
좋아요
게시글이나 댓글에 좋아요를 누르려면:
-
하트 아이콘 클릭
- 게시글 하단의 하트 아이콘
- 또는 댓글 옆의 하트 아이콘
-
좋아요 취소
- 다시 클릭하면 취소
-
작성자 포인트
- 좋아요 받으면 +2P (게시글 작성자)
북마크
나중에 다시 보고 싶은 게시글 저장:
-
북마크 아이콘 클릭
- 게시글 하단의 북마크 아이콘
-
북마크 목록 확인
- 프로필 페이지에서 확인
- 또는 북마크 페이지 (향후)
-
북마크 취소
- 다시 클릭하면 취소
필터링 및 검색
타입별 필터
게시글을 타입별로 필터링:
- 전체: 모든 게시글
- 질문: 질문만
- 자유: 자유 게시글만
- 공부: 공부 게시글만
카테고리별 필터
카테고리별로 필터링:
- 문법
- 어휘
- 듣기
- 말하기
- 읽기
- 쓰기
- 문화
- 기타
검색 기능
키워드로 게시글 검색:
- 검색창에 키워드 입력
- 제목 및 내용에서 검색
- 결과 표시
정렬 옵션
게시글 정렬:
- 최신순: 최근 작성된 글
- 인기순: 좋아요 많은 글
- 댓글 많은 순: 댓글 활발한 글
관련 파일
페이지
-
/app/c/[slug]/community/page.tsx(라인 1-350)- 커뮤니티 피드 메인 페이지
- 게시글 목록
- 필터링 및 정렬
-
/app/c/[slug]/community/posts/[id]/page.tsx(라인 1-300)- 게시글 상세 페이지
- 댓글 및 답글
- 좋아요 및 북마크
API 라우트
-
/app/api/posts/create/route.ts(라인 1-150)- POST: 게시글 작성
- 포인트 부여
-
/app/api/posts/[id]/route.ts(라인 1-100)- GET: 게시글 조회
- PUT: 게시글 수정
- DELETE: 게시글 삭제
-
/app/api/comments/create/route.ts(라인 1-100)- POST: 댓글 작성
- 포인트 부여
-
/app/api/posts/[id]/like/route.ts(라인 1-80)- POST: 좋아요 토글
- 작성자 포인트 부여
-
/app/api/posts/[id]/bookmark/route.ts(라인 1-80)- POST: 북마크 토글
컴포넌트
-
/components/community/create-post.tsx(라인 1-250)- 게시글 작성 폼
- BlockNote 에디터 통합
-
/components/community/post-card.tsx(라인 1-200)- 게시글 카드 UI
- 좋아요, 댓글 수 표시
-
/components/community/comment-section.tsx(라인 1-300)- 댓글 섹션
- 댓글/답글 작성 및 표시
-
/components/community/post-filters.tsx(라인 1-150)- 타입 및 카테고리 필터
- 정렬 옵션
주요 기능
실시간 업데이트
새 게시글 및 댓글:
- 자동 업데이트 (폴링 또는 WebSocket)
- 새 글 알림 배너
- "새 게시글 보기" 버튼
작성자 표시
각 게시글/댓글에는:
- 프로필 사진
- 이름
- 레벨 및 칭호
- 작성 시간
선생님 배지
선생님이 작성한 글:
- "선생님" 배지 표시
- 다른 색상으로 강조
- 중요한 정보 구분
이미지 업로드
게시글 및 댓글에 이미지 추가:
- 드래그 앤 드롭
- 복사/붙여넣기
- 파일 선택
- 여러 이미지 가능
사용 예시
1. 질문 게시글 작성
학생: "새 게시글" 버튼 클릭
학생: 타입 선택 - "질문"
학생: 제목 입력 - "과거형 활용이 어려워요"
학생: 내용 작성 - "먹다를 과거형으로 바꾸면 먹었어요인가요?"
학생: "게시" 버튼 클릭
시스템: "게시글이 작성되었습니다. +10P"
2. 댓글 작성
학생: 질문 게시글 클릭
학생: 댓글 입력창에 작성
---
네, 맞아요! "먹다" → "먹었어요"
더 예시를 들면:
- 가다 → 갔어요
- 보다 → 봤어요
- 하다 → 했어요
---
학생: "댓글 달기" 버튼 클릭
시스템: "댓글이 작성되었습니다. +5P"
3. 좋아요 및 북마크
학생: 유용한 게시글 발견
학생: 하트 아이콘 클릭 (좋아요)
시스템: 좋아요 수 증가
게시글 작성자: +2P 획득
학생: 북마크 아이콘 클릭
시스템: "북마크에 추가되었습니다."
데이터베이스 스키마
posts 테이블
{
id: string,
communityId: string,
authorId: string,
title: string,
content: string, // BlockNote JSON
postType: 'question' | 'free' | 'study',
category: string | null,
likeCount: number,
commentCount: number,
createdAt: Date,
updatedAt: Date
}
comments 테이블
{
id: string,
postId: string,
authorId: string,
content: string,
parentId: string | null, // 답글인 경우
likeCount: number,
createdAt: Date,
updatedAt: Date
}
likes 테이블
{
id: string,
userId: string,
postId: string | null,
commentId: string | null,
createdAt: Date
}
bookmarks 테이블
{
id: string,
userId: string,
postId: string,
createdAt: Date
}
커뮤니티 가이드라인
권장 사항
- ✅ 한국어로 작성 (연습을 위해)
- ✅ 존중하는 태도
- ✅ 건설적인 피드백
- ✅ 도움이 되는 답변
- ✅ 관련 있는 내용
금지 사항
- ❌ 욕설 및 비방
- ❌ 스팸 및 광고
- ❌ 개인정보 노출
- ❌ 저작권 침해
- ❌ 부적절한 콘텐츠
신고 기능
부적절한 게시글/댓글 신고:
- 게시글/댓글의 "..." 메뉴 클릭
- "신고" 선택
- 신고 사유 선택
- 제출
- 선생님이 검토
알림 시스템
알림 받는 경우
- 내 게시글에 댓글
- 내 댓글에 답글
- 내 게시글에 좋아요
- 멘션됨 (@내이름)
- 선생님이 답변
알림 확인
- 상단 바의 벨 아이콘
- 알림 개수 표시
- 클릭하여 알림 목록 확인
알림 설정
프로필 설정에서:
- 알림 ON/OFF
- 이메일 알림 설정
- 특정 타입만 알림 받기
문제 해결
게시글이 작성되지 않는 경우
- 제목과 내용을 모두 입력했는지 확인
- 네트워크 연결 확인
- 로그인 상태 확인
댓글이 표시되지 않는 경우
- 페이지 새로고침
- 댓글 작성이 완료되었는지 확인
좋아요가 반영되지 않는 경우
- 네트워크 연결 확인
- 페이지 새로고침
- 다시 클릭 시도
이미지 업로드 실패
- 파일 크기 확인 (최대 5MB)
- 이미지 형식 확인 (JPG, PNG, GIF)
- 네트워크 연결 확인
모범 사례
효과적인 질문하기
- 구체적으로 질문하기
- 예시 문장 포함하기
- 이미 시도한 것 설명하기
- 감사 인사 잊지 않기
도움이 되는 답변하기
- 친절하고 명확하게
- 예시와 함께 설명
- 추가 자료 링크 제공
- 격려하는 말 추가
커뮤니티 참여
- 정기적으로 활동
- 다른 학생 돕기
- 피드백 주고받기
- 긍정적인 분위기 조성
포인트 최대화 팁
게시글 작성 (+10P)
- 하루 1개씩 작성
- 의미 있는 내용
- 다른 학생들에게 도움이 되는 주제
댓글 작성 (+5P)
- 활발히 댓글 달기
- 질문에 답변하기
- 다른 학생 격려하기
좋아요 받기 (+2P)
- 유용한 정보 공유
- 재미있는 경험 공유
- 도움이 되는 답변 작성
향후 기능
계획 중인 기능
-
질문 해결됨 체크
- 질문이 해결되면 체크
- 가장 도움된 답변 선택
- 답변자에게 추가 포인트
-
태그 시스템
- #문법, #TOPIK 등 태그
- 태그별 검색 및 필터
-
게시글 템플릿
- 질문 템플릿
- 후기 템플릿
- 학습 노트 템플릿
-
리액션 다양화
- 좋아요 외 다양한 리액션
- 👍 👏 ❤️ 😮 😢 등
-
공동 작성
- 여러 학생이 함께 글 작성
- 학습 자료 공동 제작
커뮤니티 활성화 팁
활발한 커뮤니티 만들기
선생님의 역할:
- 정기적으로 질문 게시
- 학생 게시글에 댓글
- 우수 게시글 칭찬
- 주간 베스트 게시글 선정
학생의 역할:
- 적극적으로 참여
- 다른 학생 돕기
- 긍정적인 피드백
- 경험과 지식 공유
함께 만드는 문화:
- 서로 존중하기
- 실수를 두려워하지 않기
- 함께 성장하기
- 즐겁게 배우기