단지톡은 아파트 주민들을 위한 커뮤니티 채팅 서비스입니다. 1:1 채팅과 단체 채팅을 통해 이웃 주민들과 소통할 수 있습니다.
- React + TypeScript + Vite
- SCSS Modules (스타일링)
- React Query (서버 상태 관리)
- Zustand (클라이언트 상태 관리)
- 게시글 목록
- 제목, 내용 미리보기
- 작성자, 작성 시간
- 조회수, 좋아요, 북마크, 댓글 수 표시
- 썸네일 이미지 표시
- 게시글 상세
- 게시글 내용 및 이미지
- 좋아요/북마크 기능
- 댓글/대댓글 기능
- 게시글 작성
- 제목, 내용 입력
- 다중 이미지 업로드
- 회원가입
- 이메일 인증
- 비밀번호 설정
- 프로필 정보 입력
- 로그인
- 이메일 로그인
- 소셜 로그인 (카카오, 구글, 네이버)
- 로그인 상태 유지
- 계정 찾기
- 아이디 찾기
- 비밀번호 재설정
- 회원 탈퇴
- 비밀번호 확인
- 탈퇴 전 주의사항 안내
- 채팅방 목록
- 1:1 채팅방과 단체 채팅방 탭 구분
- 채팅방 이름/상대방 이름 표시
- 최근 메시지 및 시간 표시
- 읽지 않은 메시지 수 배지 표시
- 참여자 프로필 이미지 표시
- 채팅 요청
- 받은 요청/보낸 요청 관리
- 프로필 정보
- 프로필 이미지
- 닉네임
- 이메일
- 상태 메시지
- 계정 관리
- 개인정보 수정
- 회원 탈퇴
- 반응형 UI (모바일/태블릿 지원)
- 에러 처리 및 사용자 피드백
- 로딩 상태 표시
# 패키지 설치
npm install
# 개발 서버 실행 (http://localhost:5173)
npm run dev
# 빌드
npm run build
# 린트 검사
npm run lint
# 보안 취약점 업데이트
npm run security-update
# 의존성 보안 취약점 확인
npm audit
# 보안 취약점 자동 업데이트
npm run security-update
취약점 알림이 발생했을 때:
- Dependabot 알림을 확인하고 PR 승인
- GitHub Actions 워크플로우를 통한 자동 업데이트 확인
- 필요시
npm run security-update
명령어로 수동 업데이트
이 프로젝트는 다음과 같은 자동 보안 관리 시스템을 갖추고 있습니다:
- 자동 취약점 감지: Dependabot이 매주 의존성을 검사하고 보안 취약점 발견 시 PR 생성
- 자동 패치 적용: 중요하지 않은 패치 및 마이너 업데이트는 자동으로 병합됨
- 고위험 취약점 자동 해결: 높은 심각도의 보안 취약점은 자동으로 승인 및 병합됨
- 일별 보안 스캔: 매일 새로운 취약점을 확인하고 자동으로 업데이트 적용
필요한 경우 GitHub Actions 탭에서 '자동 보안 업데이트' 워크플로우를 수동으로 실행할 수 있습니다.
릴리스는 GitHub Actions를 통해 자동화되어 있습니다.
- PR을 master 또는 develop 브랜치에 머지하면 자동으로 버전이 업데이트됩니다.
- PR에 다음 라벨 중 하나를 추가하여 버전 업데이트 타입을 지정할 수 있습니다:
major
: 메이저 버전 업데이트 (1.0.0 → 2.0.0)feature
: 마이너 버전 업데이트 (1.0.0 → 1.1.0)bug
,bugfix
,fix
: 패치 버전 업데이트 (1.0.0 → 1.0.1)
- 수동으로 버전을 업데이트하려면 GitHub Actions의 "버전 업데이트" 워크플로우를 실행하세요.
- 새로운 버전 태그가 생성되면 자동으로 릴리스가 생성됩니다.
- 릴리스가 생성되면 자동으로 배포 워크플로우가 실행됩니다.
- 수동으로 배포하려면 GitHub Actions의 "배포" 워크플로우를 실행하세요.
src/
├── components/ # 재사용 가능한 컴포넌트
├── pages/ # 페이지 컴포넌트
├── services/ # API 통신 관련 로직
├── stores/ # 상태 관리
├── styles/ # 전역 스타일
└── types/ # TypeScript 타입 정의
- 컴포넌트: PascalCase
- 함수/변수: camelCase
- 스타일: CSS Module + SCSS
- 커밋 메시지: Conventional Commits 준수
- Chrome (latest)
- Firefox (latest)
- Safari (latest)
- Edge (latest)
- 이슈 등록: GitHub Issues 사용
- PR 리뷰: 최소 1명 이상의 승인 필요
- 브랜치 전략: Git Flow
- master: 프로덕션 브랜치
- develop: 개발 브랜치
- feature/*: 기능 개발
- hotfix/*: 긴급 수정
- API 문서: [링크]
- 웹소켓 이벤트 문서: [링크]