AI빅데이터소프트웨어공학과한국폴리텍대학 서울강서캠퍼스 입학 일정 확인 ↗

졸업작품

뭐먹을수있지?

뭐먹을수있지? · 졸업작품 시연영상 · 2026-06-22. 작품 설명 뭐 먹을 수 있지?는 사용자의 알레르기 정보를 기반으로 음식을 필터링하여, 식사 시 안전하게 먹을 수 있는 음식을 찾아주는 알레르기 인지 음식 검색 플랫폼입니다. 한국폴리텍대학 서울강서캠퍼스 빅데이터소프트웨어공학과 학생 작품입니다.

구분
졸업작품
게시일
재생시간
2:39

PROJECT NOTES

작품을 더 자세히
살펴보세요.

작품 설명
뭐 먹을 수 있지?는 사용자의 알레르기 정보를 기반으로 음식을 필터링하여, 식사 시 안전하게 먹을 수 있는 음식을 찾아주는 알레르기 인지 음식 검색 플랫폼입니다.

사용자는 회원가입 시 본인의 알레르기 항목을 등록할 수 있으며, 식품을 검색하면 식품안전처 식품영양성분 API(FoodNtrCpntDbInfo02)를 연동하여 해당 식품의 영양 정보와 알레르기 유발 성분을 조회합니다.

알레르기 판별은 ALLERGY_ITEMS 테이블의 KEYWORDS 컬럼을 기반으로 한 규칙 기반(rule-based) 매칭 방식으로 처리하며, 사용자가 등록한 알레르기 정보와 식품의 성분 키워드를 비교하여 위험 여부를 판단합니다.

식품안전처 API는 FOOD_CD 기준 필터링을 지원하지 않기 때문에, 키워드 검색 후 클라이언트 측에서 foodCode를 매칭하는 방식으로 상세 조회를 구현했습니다.

사용자가 특정 식품이 본인의 알레르기 항목과 겹쳐 위험하다고 판단되는 경우, 대체 가능한 식품을 추천하여 안전한 식사 선택을 돕습니다.

또한 Kakao Maps JavaScript API와 Kakao Local API를 연동하여 사용자 주변의 음식점 정보를 지도 위에 표시하고, 위치 기반으로 안전하게 식사할 수 있는 장소를 탐색할 수 있도록 구성했습니다.

인증/인가는 Spring Security와 BCrypt 비밀번호 암호화를 기반으로 구현했으며, CustomUserDetailsService를 통해 사용자 인증을 처리합니다.

세션 관리는 초기에 JWT 방식을 검토했으나, 최종적으로 Spring Session과 Redis를 연동하는 방식으로 전환하여 세션 기반 인증 구조를 채택했습니다.

사용자의 식품 검색 이력은 MongoDB의 search_logs 컬렉션(SearchLog/SearchLogRepository/SearchLogService)에 저장하여 비정형 검색 로그 데이터를 관리하고, 회원 정보·알레르기 정보 등 정형 데이터는 MariaDB에서 관리합니다.

본 서비스는 Spring Boot 기반 백엔드와 Thymeleaf 기반 서버 사이드 렌더링(SSR)으로 구성된 단일 애플리케이션 구조이며, 별도의 프론트엔드/백엔드 분리 없이 하나의 Spring Boot 애플리케이션에서 화면 렌더링과 비즈니스 로직을 함께 처리합니다.

배포 환경은 Naver Cloud Platform(NCP)의 Rocky Linux 8.10 서버에 구성했으며, Cafe24를 통해 도메인(foodallergy.store)을 등록하고 Nginx를 리버스 프록시로 사용했습니다.

Certbot과 Let's Encrypt를 통해 HTTPS를 적용하여 실제 운영 가능한 형태로 배포를 완료했습니다.

적용 기술

프레임워크 : Spring Boot, Spring Security

프론트엔드 : Thymeleaf(SSR), HTML5, CSS, JavaScript

백엔드 : Spring Boot, Spring Security, Spring Data JPA, WebClient(spring-boot-starter-webflux), CustomUserDetailsService

사용 언어 : Java

데이터베이스 : MariaDB(회원/알레르기 정보 등 정형 데이터), MongoDB(검색 로그 비정형 데이터 저장), Redis(Spring Session 기반 세션 관리)

클라우드 : Naver Cloud Platform(NCP, Rocky Linux 8.10)

외부 API : 식품안전처 식품영양성분 API(FoodNtrCpntDbInfo02), Kakao Maps JavaScript API, Kakao Local API

통신 프로토콜 : REST API, HTTPS

웹서버/배포 : Nginx(리버스 프록시), Certbot/Let's Encrypt(HTTPS), Cafe24(도메인), SCP 기반 JAR 배포

인증/보안 : Spring Security, BCrypt 비밀번호 암호화, Spring Session 기반 세션 관리

데이터 접근 기술 : Spring Data JPA

빌드/의존성 관리 : Gradle(Groovy)

기타 : PhysicalNamingStrategyStandardImpl(Hibernate 테이블명 매핑), 불변 객체 패턴(withNewPassword 등)
아키텍처 :

모놀리식(Monolithic) 구조, SSR(Server Side Rendering) 기반 단일 애플리케이션, Rule-based 알레르기 매칭 로직, 클라이언트 측 데이터 매칭(키워드 검색 + foodCode 매칭)

FROM LEARNING TO BUILDING

다음 작품의
주인공이 되어 보세요.

AI·데이터·클라우드를 배우고 실제로 작동하는 소프트웨어로 완성합니다.

입학 안내 · 공식 모집요강 확인

면접 공식 안내 확인 · 최초 합격 발표 공식 안내 확인