2026 SOFTWARE EXHIBITION
Seeding
AI 이미지 분석 및 생성형 AI 기반 지능형 꽃 정보·원예 가이드 플랫폼 Seeding은 사용자가 업로드한 꽃 사진을 AI 모델로 분석하여 상세 정보를 제공하고, 생성형 AI를 활용한 맞춤형 원예 방법부터 위치 기반의 주변 꽃집 탐색까지 식물 관리의 전 과정을 돕는 풀스택 웹 서비스입니다. 사용자가 꽃 사진을 업로드하면 프론트엔드에서 이를 클라우드 스토리지(AWS S3)에 저장하고, AWS S3에 업로드된 이미지 URL을 기반으로 Flask 환경의 TensorFlow 모델이 꽃의 종류와 정확도를 판독합니다. 이후 판독 결과를 키워드로 MariaDB를 조회하여, DTO 패턴을 통해 안전하게 가공된 식물 상세 정보(꽃말, 크기, 서식지 등)를 화면에 렌더링하며, 다중 조건(크기, 서식지)을 통한 필터 검색 기능을 지원합니다. Google Gemini API를 연동해 백엔드에서 꽃의 특성에 맞춘 시스템 프롬프트를 동적으로 생성·호출하여, 물 주기, 햇빛, 토양 조건 등 해당 꽃에 최적화된 맞춤형 원예 가이드를 실시간으로 받아와 사용자에게 제공합니다. 또한, 카카오지도 API를 활용하여 위치 기반 서비스를 구현했습니다. 안정적인 테스트를 위해 기준 좌표를 설정하고, 폴리곤(Polygon)을 활용하여 행정구역의 경계를 시각적으로 시각화했습니다. 카카오 장소 검색 API를 통해 기준점 반경의 꽃집을 조회하고 다중 마커로 띄우며, 마커 클릭 시 카카오맵 공식 상세 페이지로 연동되도록 사용자 경험(UX)을 확장했습니다. 보안 및 회원 관리 측면에서는 아이디 중복 체크, 이메일 중복 체크 기능을 포함한 회원가입 시스템을 구축했습니다. 사용자의 비밀번호는 SHA-256으로 단방향 암호화하고, 개인정보인 이메일은 AES-128-CBC 방식으로 양방향 암호화하여 데이터베이스 무결성을 확보했습니다. 비밀번호 분실 시에는 난수 기반의 임시 비밀번호를 생성하고, JavaMailSender를 활용해 사용자 이메일(SMTP)로 안전하게 발송하는 로직을 구현했습니다. 인증은 Spring의 세션(Session) 기반 로그인 아키텍처를 적용했습니다. 백엔드 아키텍처는 Spring Boot와 MariaDB를 기반으로 하며, Controller-Service-Repository 간의 완벽한 계층 분리(Layered Architecture)를 달성했습니다. 특히 데이터베이스와 1:1로 매핑되는 Entity 객체의 무결성을 보호하기 위해, 조회된 Entity 리스트를 비즈니스 로직(Service) 계층에서 DTO(Data Transfer Object)로 안전하게 변환(get/set 매핑 및 반복문 활용)하여 뷰 템플릿(Thymeleaf)으로 전달하는 엄격한 구조를 채택했습니다. 배포 환경은 AWS EC2 기반으로 구축되었습니다.