유레카엔터프라이즈
사업철학업무방식AI 워크플로우기술 스펙포트폴리오
유레카엔터프라이즈 주식회사

기술과 책임감으로 신뢰를 쌓아가는 소프트웨어 개발 파트너

대표
한장현
사업자등록번호
888-86-01529

Navigation

Home사업철학업무방식AI 워크플로우기술 스펙포트폴리오

Contact

andy@ureca.im02-6736-0701

#705, Pine Square Bldg. A,
22 Magokjungang 4-ro,
Gangseo-gu, Seoul, Korea

View on Map

© 2026 유레카엔터프라이즈. All rights reserved.

Building with purpose

포트폴리오 목록
웹사이트모바일 앱
2025.07 — 진행중

싹둑싹둑

식물 애호가를 위한 커뮤니티 플랫폼으로 가지치기 노하우 공유, 관리 일지 기록, 실시간 채팅 상담, 예약 발행을 제공합니다.

AWSFlutterNest.jsGitHub Actions

고객사의 요청으로 링크는 제공되지 않습니다

프로젝트 개요

싹둑(Ssakdook)은 식물 애호가들을 위한 통합 커뮤니티 및 관리 플랫폼입니다. 사용자들이 식물 가지치기(전정) 노하우를 공유하고, 일상 속 식물 관리 일지를 기록하며, 실시간 채팅을 통해 전문가 조언을 받을 수 있는 종합 서비스를 제공합니다. 관리자 대시보드를 통한 콘텐츠 예약 발행, 푸시 알림 관리, 회원 관리 등 운영 효율화 기능도 갖추고 있습니다.


서비스 흐름도


주요 기능

1. 커뮤니티 게시판

  • 식물 가지치기 노하우 공유 및 질의응답
  • 카테고리별 게시글 분류 (전정, 병충해, 식물추천 등)
  • 좋아요 및 댓글 기능
  • 인기글 자동 선정 (좋아요 10개 이상)
  • 조회수 추적 및 첨부파일 업로드

사용자들이 식물 관리 경험과 노하우를 자유롭게 공유할 수 있습니다. 카테고리를 통해 관심 주제를 빠르게 찾고, 좋아요 10개 이상 받은 게시글은 자동으로 인기글로 선정되어 더 많은 사람들에게 노출됩니다.

2. 식물 일지

  • 날짜별 식물 관리 기록 작성
  • 개인 히스토리 조회 및 캘린더 뷰 제공
  • 사진 첨부 및 메모 기능

내 식물의 물주기, 분갈이, 가지치기 등 모든 관리 이력을 날짜별로 기록하고 캘린더에서 한눈에 확인할 수 있습니다. 사진과 메모를 함께 남겨 나만의 식물 성장 일지를 만들어보세요.

3. 라이프 포스팅

  • 식물 관련 라이프스타일 콘텐츠 큐레이션
  • 외부 링크 연동 및 썸네일 이미지 제공
  • 관리자 전용 콘텐츠 발행

전문가가 선별한 식물 라이프스타일 콘텐츠를 제공합니다. 인테리어 팁, 식물 트렌드, 제품 추천 등 다양한 정보를 외부 링크와 함께 큐레이션하여 사용자에게 전달합니다.

4. 실시간 채팅

  • Stream Chat 기반 1:1 상담
  • 전문가 매칭 및 채팅방 생성
  • 메시지 히스토리 보관

식물 관리에 대한 고민이 생기면 전문가와 1:1 채팅으로 즉시 상담받을 수 있습니다. 모든 대화 내역은 보관되어 나중에 다시 확인할 수 있습니다.

5. 예약 발행 시스템

  • 게시글 및 댓글 예약 발행
  • 스케줄러를 통한 자동 발행
  • 초기 좋아요 수 보정 기능

관리자가 콘텐츠를 원하는 시간에 자동으로 발행되도록 예약할 수 있습니다. 스케줄러가 매 분마다 예약 시각을 확인하여 정확한 시간에 게시글이나 댓글을 자동 발행하며, 초기 좋아요 수를 설정하여 콘텐츠의 초기 노출을 조절할 수 있습니다.

6. 푸시 알림

  • Firebase Cloud Messaging 연동
  • 디바이스 토큰 관리
  • 알림 동의 관리 및 선택적 수신

새 댓글, 좋아요, 채팅 메시지 등 중요한 이벤트가 발생하면 푸시 알림으로 즉시 알려줍니다. 사용자는 알림 종류별로 수신 여부를 선택할 수 있습니다.

7. 관리자 대시보드

  • 회원 관리 및 게시글/댓글 모더레이션
  • 파일 업로드 (AWS S3)
  • 앱 설정 관리 (버전 정보, 서비스 약관 등)

커뮤니티 운영에 필요한 모든 기능을 웹 대시보드에서 관리할 수 있습니다. 부적절한 콘텐츠를 블라인드 처리하고, 회원 정보를 조회하며, 앱 버전과 약관 정보를 업데이트할 수 있습니다.


플랫폼 구성

구분기술 스택비고
백엔드NestJS, TypeScript, TypeORMLayered Architecture
데이터베이스MariaDBUTF-8MB4
인증JWT, Passport토큰 기반
파일 저장소AWS S3버킷 분리
실시간 채팅Stream ChatREST API
푸시 알림Firebase Cloud Messaging-
결제Iamport-
알림톡NCP SENS-
스케줄링@nestjs/scheduleCron
에러 모니터링Slack Webhook-

기술적 선택과 이유

NestJS 레이어드 아키텍처

도메인 주도 설계(DDD)를 적용하여 domain, application, presentation, infrastructure 레이어를 명확히 분리했습니다. 이를 통해 비즈니스 로직의 독립성을 확보하고 테스트 용이성을 높였습니다.

TypeORM + Custom Base Entity

공통 엔티티 클래스를 정의하여 createdAt, updatedAt, deletedAt 등의 필드를 재사용하고, 소프트 딜리트 및 블라인드 처리 로직을 일관되게 적용했습니다.

JWT 인증

stateless한 토큰 기반 인증을 통해 서버 확장성을 확보하고, Passport 전략 패턴으로 인증 로직을 모듈화하여 유지보수성을 높였습니다.

예약 발행 시스템

@nestjs/schedule의 Cron을 활용해 매 분마다 예약 이벤트를 검사하여 자동 발행합니다. 예약 데이터를 체계적으로 관리하며, 게시글과 댓글 모두 예약 발행을 지원합니다.

Stream Chat 연동

자체 채팅 서버 구축 대신 Stream Chat SaaS를 활용하여 개발 속도를 높이고, 안정적인 실시간 메시징 인프라를 확보했습니다. REST API를 통해 채널 생성 및 메시지 전송을 제어합니다.

AWS S3 파일 관리

Presigned URL을 활용한 안전한 파일 업로드/다운로드를 구현했으며, 클라이언트 버킷과 관리자 버킷을 분리하여 권한을 격리했습니다.

Firebase Cloud Messaging

크로스 플랫폼 푸시 알림을 위해 FCM을 채택했습니다. 디바이스 토큰을 DB에 저장하여 관리하고, 알림 동의 여부를 세밀하게 제어할 수 있습니다.


프로젝트 특징

확장 가능한 도메인 모델

명확히 분리된 도메인 엔티티를 통해 각 기능을 독립적으로 확장할 수 있습니다. 좋아요 기능은 별도 엔티티로 분리되어 추후 다른 도메인에도 재사용 가능합니다.

관리자 대시보드를 통한 운영 효율화

예약 발행, 초기 좋아요 수 보정, 블라인드 처리 등 운영에 필요한 기능을 관리자 전용 API로 제공하여 콘텐츠 품질 관리 및 커뮤니티 활성화를 지원합니다.

에러 모니터링 자동화

처리되지 않은 예외를 자동으로 Slack 채널에 전송하여 실시간 장애 대응이 가능합니다.

서비스 약관 및 푸시 알림 동의 관리

법적 요구사항을 충족하는 약관 동의 시스템을 구축했습니다.

커서 기반 페이지네이션

무한 스크롤을 위해 커서 기반 페이지네이션을 구현하여 대량 데이터에서도 일관된 성능을 제공합니다.

이벤트 기반 아키텍처

@nestjs/event-emitter를 활용하여 도메인 이벤트를 발행하고, 느슨하게 결합된 이벤트 핸들러로 부가 기능(알림 전송, 로깅 등)을 처리합니다.