프로젝트 개요
SI Ssakdook은 반려식물을 키우는 사람들이 정보를 공유하고 소통할 수 있는 커뮤니티 앱의 백엔드 시스템입니다. 식물 관리 일기 작성, 카테고리별 게시판, 실시간 1:1 채팅, 예약 게시 등 커뮤니티 운영에 필요한 핵심 기능을 제공합니다.
NestJS 프레임워크 기반으로 도메인 중심의 클린 아키텍처를 적용하였으며, TypeORM과 MySQL을 활용한 데이터 계층, Firebase FCM 푸시 알림, Stream Chat 실시간 채팅, AWS S3 파일 업로드 등 다양한 외부 서비스를 체계적으로 통합했습니다. 관리자(Admin)와 클라이언트(Client)를 분리한 멀티 앱 구조로 역할별 API를 독립적으로 관리합니다.
기능 플로우
주요 기능
- 회원 관리 및 인증: 이메일 기반 회원가입과
Passport JWT인증을 지원합니다. 회원 프로필에는 닉네임, 생년월일, 프로필 이미지 등의 정보를 관리하며, 회원 유형(일반/관리자)에 따라 접근 권한을 구분합니다. - 카테고리별 커뮤니티 게시판: 게시글을 카테고리별로 분류하여 작성·조회할 수 있습니다. 좋아요, 댓글, 조회수 기능을 제공하며, 인기글 선정 기준(좋아요 10개 이상)에 따른 인기 게시글 필터링을 지원합니다. 이미지 첨부는
AWS S3Presigned URL 방식으로 처리합니다. - 식물 일기(Diary): 날짜별로 반려식물 관리 일기를 작성하고 조회할 수 있습니다. 날짜 기반 그룹 조회를 통해 월별·일별로 기록을 확인할 수 있습니다.
- 생활 정보 게시판: 관리자가 등록하는 식물 관련 생활 정보 콘텐츠를 제공합니다. 외부 링크 연동과 첨부파일을 지원하며, 조회수를 추적합니다.
- 실시간 1:1 채팅:
Stream ChatSDK를 연동하여 사용자 간 실시간 메시지 기능을 제공합니다. 새 메시지 수신 시 Webhook을 통해 푸시 알림을 자동 발송합니다. - 푸시 알림 시스템:
Firebase FCM을 통해 디바이스 토큰 기반 푸시 알림을 발송합니다. 채팅 알림, 댓글 알림 등 유형별로 사용자가 수신 동의를 관리할 수 있으며, 관리자가 전체/대상 푸시를 발송할 수 있습니다. - 예약 게시/댓글 시스템: 관리자가 게시글과 댓글을 예약 시간에 자동 등록할 수 있습니다.
@nestjs/schedule기반 스케줄러로 예약 이벤트를 처리하며, 좋아요 기본 보정값 설정으로 초기 콘텐츠 활성화를 지원합니다. - 관리자 대시보드 API: 회원 관리(블라인드 처리), 게시글·댓글 관리(블라인드), 푸시 알림 발송, 생활 정보 등록, 이용약관 관리 등 서비스 운영에 필요한 관리자 전용 API를 별도로 제공합니다.
- 알림톡 연동: NCP SENS를 통한 카카오 알림톡 발송을 지원하여 주요 이벤트 시 사용자에게 카카오톡 메시지를 전달합니다.



