음식점, 카페, 공방 같은 동네 소상공인은 SNS 마케팅이나 디지털 홍보를 할 시간과 여력이 부족해, 여전히 입소문·현수막·쿠폰에 의존하고 있습니다. 반대로 기획·광고·디자인·마케팅에 관심 있는 대학생은 실제 프로젝트 경험과 포트폴리오가 부족합니다.
서로 도움을 줄 수 있는 두 집단을 연결하는 체계가 없다는 점에 주목해, 멋쟁이사자처럼 중앙 해커톤에서 대학생과 우리 동네 소상공인을 잇는 마케팅 매칭 플랫폼을 기획·개발했습니다. 기획 단계에서는 AI 기반 상권 분석, 학생–가게 추천, SNS 성과 분석까지 서비스 방향으로 구상했습니다.
| Domain | User, Student, Store, Portfolio, Recruiting, Application, ProjectRequest, Matching, ChatRoom, Review 등 |
| Controller | Auth, Student, Store, Portfolio, Recruiting, Application, ProjectRequest, Matching, Chat, Review 등 |
| Layer | Controller → Model(유스케이스 조합) → Service → Repository |
| Security | OAuth2 소셜 로그인, JWT 인증 필터, Spring Security |
| Realtime | WebSocket 기반 채팅 |
| File | 포트폴리오 이미지 · 의뢰서 첨부파일 multipart 업로드 |
학생이 자신의 작업물을 올리는 포트폴리오의 생성·조회·수정·삭제 API를 개발했습니다. PortfolioImage로 작업물 이미지를 함께 업로드할 수 있게 하고, 공개/비공개 여부를 설정할 수 있도록 했습니다.
가게가 학생을 찾을 수 있도록 공개 포트폴리오만 최신순으로 조회하는 검색 기능을 만들고, 학생별 공개 포트폴리오 목록과 개수를 조회하는 쿼리를 추가했습니다.
가게가 학생에게 보내는 프로젝트 의뢰서(개요, 기간, 업무 내용, 예산, 근무 조건, 학생 요구 조건)의 작성·조회·수정·삭제 API를 개발했습니다. 의뢰서를 보내는 사용자가 실제 가게 소유자인지, 본인이 작성한 의뢰서인지 검증하고, 마감일이 시작일보다 빠르지 않도록 입력값을 검증했습니다.
ProjectRequestFile 엔티티로 의뢰서에 여러 파일을 순서대로 첨부할 수 있게 하고, 수정 시 파일을 추가하거나 전체 교체할 수 있도록 multipart 처리를 구현했습니다.