수강생 프로젝트

수강생 프로젝트

KH정보교육원에서 진행된 프로젝트를 팀 단위로 보실 수 있습니다.

Focus On Meal (FOM)

프로젝트 발표날짜 : 2025. 12. 09

KH IEI PROJECT
 
Mealkit

(디지털컨버전스) React & Spring 활용 자바(Java) 개발자 양성과정(5) 1회차

팀장/팀원 김**(팀장) : 보안 / 인증 - Spring Security 및 JWT 기본 설정, 필터 구축 - 관리자 권한 체크 및 접근 제어 설정 - 관리자 권한 확인 및 라우팅 가드 공공 API 연동 - KAMIS 농산물 가격 API 연동 모듈 구축 - 식품안전정보 API 연동 모듈 구축 - API 수동 동기화 엔드포인트 구현 - API 관리 페이지 UI (동기화 버튼, 상태 표시) - API 동기화 실행 및 결과 표시 로직 - Spring Scheduler 기반 Batch Job 설정 AI 기반 식단 생성 / 분석 - AI API(Gemini) 클라이언트 구축 - 저장된 식단 히스토리 목록/상세 조회 - 식단 상세 모달 및 삭제 처리 - 채팅 메시지 수신 및 AI 응답 생성 로직 구현 - 채팅 상태 관리 및 공공 API 연동 - 식단 저장 테이블 설계 및 Mapper 정의 - 추천 식단 저장 로직 구현 - 알레르기 대체 식단 생성 로직 개발 - 식단 영양 성분 합계 계산 및 분석 로직 구현 가격 및 추천 로직 - 식단 가격 계산 로직 (DB가격 + AI예상가격) - AI 추천 결과와 가격 데이터를 병합하여 제공하는 API 개발 - 레시피 파악, 대체 추천 등 프롬프트 설계 및 고도화 식단 기능 확장 - 저장된 식단 조회 API 개발 - 식단 히스토리 카드 리스트 UI 구현 - 채팅 인터페이스 UI - 식단 결과 카드 및 저장 버튼 UI - 식단 저장 확인 모달 및 처리 로직 알림 기능 - 가격 변동 감지 시 알림 생성 로직 - 알림 드롭다운/페이지 UI
성** : 사용자 계정 기능 - 회원가입/로그인/로그아웃 API 구현 (bcrypt포함) - 이메일을 통한 아이디, 비밀번호 찾기 API 구현 - 회원가입/로그인 페이지 UI 구현 - 회원가입/로그인 폼 유효성 검사 및 API 연동 - 프로필 조회/수정 API 구현 - 프로필 수정 폼 및 API 연동 - 알레르기 정보 CRUD API 구현 - 알레르기 선택 체크박스 UI 구현 - 알레르기 정보 저장 로직 - 회원 탈퇴 API 구현 (관련 데이터 정리 포함) - 회원 탈퇴 확인 모달 및 처리 로직 관리자 기능 - 공지사항 테이블 설계 및 관리자용 공지 CRUD개발 사용자 공지 기능 - 공지 상세 조회 API (조회수 증가 포함) - 이전/다음 페이지 이동 API 메인페이지 설계 - 패럴랙스 효과를 통한 입체적 화면 구현 - 나뭇잎의 움직임을 통한 동적인 페이지 구현 - 푸터 UI - 가격 변동 랭킹 카드 UI
엄** : 마이페이지 / 사용자 설정 - 마이페이지 설정 탭 UI 구현 - 마이페이지 사이드바 구현 알림 기능 UI - 마이페이지 알림 내역 조회 화면 및 UX 흐름 구현 - 알림 기록 페이지 알림 설정 토글 스위치 UI 즐겨찾기 / 가격 정보 UI - 즐겨찾기 식재료 목록 UI 및 하트 아이콘 토글 관리자 UI - 관리자 사용자 목록 조회 UI 구성 - 관리자 회원 관리 UI - 회원 목록 조회 API (검색, 페이징) - 회원 상태 변경 API (활성/비활성) - 관리자 공지사항 조회·수정·삭제 UI - 사용자 공지사항 목록 및 상세 페이지 UI - 관리자 레이아웃 (사이드바, 헤더) 구현 사용자 공지 기능 - 사용자 공지사항 목록 조회 API 사이트 공통 기능 - 검색, 페이징, 정렬 상태 관리
이** : 보안 / 인증 - Spring Security 기반 인증·인가 구조 설계 - JWT 발급 및 인증 필터 구성 시스템 안정성 / 서버 운영 - Spring Actuator 설정 및 시스템 상태 모니터링 지표 수집 로직 구현 - 서버 로그 수집 및 저장 체계 구축 식재료 검색 기능 - 식재료 검색 API 구현 - 식재료 목록, 상세 정보 조회 API 구현 - 식재료 카테고리 필터링 로직 구현 - 식재료 검색/상세 UI 및 상태 관리 로직 구현 - 식재료 영양성분 CRUD, 차트 구현 즐겨찾기 - 식재료 즐겨찾기 조회 API - 즐겨찾기 상태 관리 및 API 연동 가격 변동 알림 설정 - 가격 변동 알림 설정 CRUD - 알림 조건 체크 로직 구현 관리자 기능 - 관리자 식재료 관리 UI - 관리자 식재료 CRUD API 구현
이** : 식단 관리 (회원 전용) - 마이페이지 프로필 섹션 UI 구현 - 식단 삭제 API 구현 - 식재료 즐겨찾기 추가/삭제/조회 API 물가 트래커 (핵심 기능) - 식재료 상세 페이지 및 가격 차트 UI - Chart.js 연동 및 시계열 데이터 시각화 식품 안전 위험 알림 - 안전정보 뉴스 목록/상세 조회 API - 안전정보 뉴스 목록 페이지 UI - 뉴스 상세 모달 및 페이징 처리 로직 알림 및 설정 - 알림 목록 조회/읽음 처리/삭제 API - 헤더 알림 아이콘 및 뱃지 UI - 알림 드롭다운/페이지 UI - 알림 상태 관리 및 갱신 로직 - 알림 설정 조회/변경 API 관리자 기능 - 대시보드 통계 조회 API (회원수/식재료수/식단수) - 대시보드 통계 카드 UI - 대시보드 데이터 로딩 및 표시 로직 - 안전정보 뉴스 관리 CRUD API - 안전정보 뉴스 관리 페이지 UI
개요 Focus On Meal(FOM)은 식재료 가격 변동 추적, 식품 안전 공표/리콜정보 제공, 개인 맞춤형 식단 추천,
그리고 사용자 중심의 알림 서비스를 통합한 스마트 식생활 관리 플랫폼이다.
최근 급격한 물가 변동, 식품 안전 이슈 증가, 영양 불균형 문제 등 복합적인 생활 문제를 해결하고자,
공공 데이터(Open API) 기반의 정확한 정보 제공 + AI 기반 분석 기능을 결합하였다.
사용자는 관심 식자재를 등록하고, 가격 변동·안전 공표 발생 시 실시간 알림을 받으며,
개인의 신체 정보·알레르기·식재료 취향에 맞춘 맞춤형 식단 제안을 받아 효율적인 소비와 건강한 식생활을 유지할 수 있다.
구현기능 1) 식재료 정보 & 가격 변동 관리
공공 농식품 가격 API(KAMIS) 연동
기간별 도매가격/소매가격 조회
가격 변동률 계산 및 그래프 시각화
사용자 관심 재료 즐겨찾기 등록/해제 및 알림 설정

2) 식품 안전 공표 & 리콜 정보 제공
정부 식품 안전 공표·위해식품 리콜 API 연동
관심 식자재의 안전 문제 발생 시 사용자에게 알림

3) 개인 맞춤형 식단 생성(AI 기반 Meal Planner)
신체 정보, 알레르기, 기피 재료 기반 필터링
Gemini AI 모델을 활용한 식단 추천
레시피 상세 모달 제공 및 사용자 저장 기능

4) 관리자 페이지
공지사항 CRUD (목록, 조회, 등록, 수정, 삭제)
공지 필독/NEW 뱃지 설정
회원 관리
검색(제목/내용/작성자), 정렬, 필터, 페이지네이션
각 API 동기화 수동 관리리
React + JWT 기반 관리자 접근 제어

5) 알림(Notification) 시스템
가격 급등/급락 알림
안전 공표 발생 시 알림
사용자 단위 알림 설정(가격/안전 개별 ON/OFF)
알림 읽음/삭제 처리, 전체 선택/일괄 처리

6) 회원 인증 및 계정 관리
Spring Security + JWT 로그인
회원가입 · 이메일 인증
랜덤 닉네임 생성 및 금칙어 필터링
마이페이지(개인정보 수정 / 식단 기록 / 알림 기록 / 즐겨찾는 식재료)
설계의 주안점 데이터 기반의 정확성 확보
- 공공 API(가격/안전) 데이터를 주기적으로 수집하여 최신 상태 유지
- 가격 변동률·위해 정보 발생 시 사용자 단위 알림 제공
- 이력 데이터 축적을 통한 가격 추세 분석 및 예측 정확도 향상

확장 가능한 DB 구조 설계
- PRICE_HISTORY, ALERT_HISTORY 등 도메인 분리
- 회원별 알림 설정 커스터마이징 가능
- 정규화된 테이블 구조로 데이터 중복 최소화 및 유지보수성 확보
- 인덱스 설계를 통한 대용량 데이터 조회 성능 최적화

권한/보안 강화 설계
- JWT 기반 인증
- 관리자 페이지 접근 제어
- 비밀번호 변경/이메일 인증/계정 활성 여부 관리
- Spring Security를 활용한 역할 기반 접근 제어
- API 요청 시 토큰 검증 및 권한 확인 프로세스 적용

사용자 중심 UI/UX
- React 상태 기반 렌더링과 직관적 알림 UI
- 검색 → 정렬 → 필터 → 페이징의 조합을 고려한 프론트 구조
- 반응형 디자인 적용으로 모바일/태블릿 환경 지원
- 로딩 상태 표시 및 에러 핸들링을 통한 사용자 경험 개선

AI 기반 기능 확장성
- Gemini API 사용
- 향후 식단 사진 분석, 식단 영양 자동 계산 기능 확장 가능
- 사용자 선호도 학습을 통한 맞춤형 식재료 추천 기능 구현 가능
- 프롬프트 엔지니어링을 통한 응답 품질 및 정확도 개선

API 연동 안정성 및 예외 처리
- 외부 API 장애 시 재시도 로직 및 폴백 메커니즘 구현
- API 호출 실패 이력 로깅 및 모니터링 체계 구축
- 타임아웃 설정을 통한 시스템 안정성 확보
사용기술 및
개발환경
Backend
- Java <17.x.x>
- Spring Boot <3.5.7>
- Spring Security <6.3.x> + JWT <0.11.5> 인증
- JPA <3.2.x> / MyBatis <3.0.5> 혼합 사용
- REST API 기반 설계
- Lombok <1.18.34>

Frontend
- React <^19.1.1> (Vite <^7.1.7>)
- Axios <^1.13.2>, React Router <^7.9.5>
- CSS Module

Database
- Oracle XE 21c
("Oracle Database 18c Express Edition Release 18.0.0.0.0
Production Version 18.4.0.0.0")
- SQL Developer

DevOps / Tools
- GitHub
- ERDCloud
- Maven
- IntelliJ IDEA / VS Code (IDE)

Open API
- KAMIS 농식품 가격 API
- 식품의약품안전처 위해식품/리콜 정보 API
- Google Gemini AI API
다음글ShapeUp
KH정보교육원
  • 고용노동부 선정
  • 5년 인증 우수훈련기관 선정
  • 대한민국 브랜드 어워즈 대상
  • IT교육부문 4년 연속 대상 수상
  • 고용노동부
  • 장관 표창

빠른 상담

KH임직원은 수강생 한 분 한 분의 성공적인 취업을 위해 최선을 다하겠습니다.

No.1 국내 최대의 취업 실적을 보유한 KH정보교육원에 오신 것을 환영 합니다.
KH의 전 과정은 NCS(국가교육표준화)기준을 준수하며 최대 100% 무료 국비지원을 받으실 수 있습니다.

교육희망 과정

희망과정 선택


세부 교육과정

전화 아이콘
  • 1544-9970
  • 전국대표문의전화(연중무휴)

교육희망 지점지점은 필수로 선택해주세요

신청자 정보

- -

기입 내용이 사실과 다를 시 상담 서비스가 원활하지 않을 수 있습니다.

1544
9970

대표문의
(연중무휴)

개강일정

개강일정

국비대상자 간편조회

국비대상자
간편조회

온라인 상담

온라인 상담

오시는길

오시는길

카톡 상담

카톡 상담

KH정보교육원
전국대표 문의전화
(연중무휴)

1544-9970

주말·공휴일에도 상담 및 접수 가능합니다.

  • 2023 당산지원

    5년 인증 우수
    훈련기관 선정

  • 2022 강남지원

    5년 인증 우수
    훈련기관 선정

  • 2022 종로지원

    5년 인증 우수
    훈련기관 선정

  • 2020 강남지원

    훈련 이수자 평가
    A등급 획득

  • 2020 종로지원

    훈련 이수자 평가
    A등급 획득

  • 2019 당산지원

    훈련 이수자 평가
    A등급 획득

  • 2019 IT교육부문

    브랜드 대상
    4년 연속 수상

  • 2018 당산지원

    4차 산업 선도
    훈련기관 선정

KH정보교육원 | 사업자등록번호 : 487-86-00763 | 사업자등록번호 : 851-87-00622 | 서울 강남 제2014-01호 | 대표자 : 양진선 | 책임자 : 양진선 |  개인정보관리책임자 : 양진선

강남점 1관 : 서울특별시 강남구 테헤란로14길 6 남도빌딩 2F, 3F, 4F, 5F, 6F
강남점 2관 : 서울특별시 강남구 테헤란로10길 9 그랑프리 빌딩 4F, 5F, 7F
강남점 3관 : 서울특별시 강남구 테헤란로 130 호산빌딩 5F, 6F
종로점 : 서울특별시 종로구 우정국로2길 21 대왕빌딩 3F, 5F (1호선 종각역 4번 출구 91m 도보 1분 거리)
논현점 : 서울특별시 강남구 논현로 132길 9 마루빌딩 1F, 2F, 3F
부산점 : 부산 부산진구 중앙대로 627 삼비빌딩 2F, 12F