Search

SpaceFarm

시기
2025/07/31 → 2025/08/24
역할
백엔드
AI
기획
배포
개인/회사
동아리
설명
멋쟁이사자처럼 13기 중앙 해커톤 출품작 spacefarm
"도심 속 잊혀진 공간을 잇다, 스마트 텃밭 공유 플랫폼"
마포구의 유휴 공간(옥상, 공터)을 활용해 텃밭을 공유하고, AI 병해 진단으로 초보자도 쉽게 작물을 기를 수 있도록 돕는 서비스입니다.
hongik_BE
shinae1023

Tech Stack

Backend: Java 21, Spring Boot 3.5.3, Spring Data JPA
Database & Storage: MySQL, AWS S3, H2 (Test)
Security & Auth: Spring Security, JWT, OAuth 2.0 (Kakao)
Infra: AWS EC2, Nginx (SSL/HTTPS), Docker
External & AI: WebSocket (STOMP), WebClient (AI Model Integration)

My Contributions

1. WebSocket 기반 실시간 채팅 시스템
기능: 텃밭 소유자와 대여자 간의 즉각적인 소통을 위해 STOMP 프로토콜을 활용한 1:1 실시간 채팅 구현.
기술적 도전: 텍스트뿐만 아니라 S3와 연동하여 이미지 전송 기능을 채팅 내에 탑재, 거래 효율성 증대.
보안: Interceptor단에서 JWT 토큰을 검증하여 비인가 사용자의 소켓 접근 차단.
2. AI 작물 병해 진단 아키텍처 설계
기능: 사용자가 작물 사진을 업로드하면 AI가 질병을 분석하고 LLM이 해결책을 제시.
구현: 백엔드(Spring Boot)에서 WebClient 비동기 통신을 통해 자체 개발한 AI 모델 서버(Flask/TFLite)와 데이터를 교환하는 파이프라인 구축.
최적화: 배포 환경(Fly.io)의 리소스 제약을 극복하기 위해 모델을 .tflite로 경량화하여 적용.
3. 자체 경제 시스템 (EcoScore & Coin) 로직 구현
서비스 내 활동(커뮤니티 활동, 거래)에 따른 보상 체계와 결제/환전 로직을 설계하여 사용자 Lock-in 효과 유도.
4. 보안 강화 및 API 설계 최적화
Spring Security & @AuthenticationPrincipal: 컨트롤러에서 반복되는 유저 조회 로직을 제거하고, 어노테이션 기반으로 인증 객체를 안전하게 주입받도록 리팩토링.
API-First Design: 초기 기획 단계에서 Figma User Flow를 분석하여, 프론트엔드 연동 시 수정 소요를 최소화하는 데이터 필드 설계 주도.

Trouble Shooting & Growth

배포 환경의 제약 해결: AI 모델 서버 배포 중 발생한 저장 공간 부족 문제를 Keras 모델에서 TFLite 경량화 모델로 전환하여 해결했습니다.
동기 처리의 병목 개선: 외부 AI 진단 API 호출 시 발생하는 대기 시간을 고려하여, WebClient를 활용한 비동기 처리를 도입, 서버 자원 효율을 높였습니다.

Awards