오늘의 요리사
[Website] 오늘의 요리사
자신이 현재 가지고 있는 식재료 정보를 입력하여 만들 수 있는 요리의 레시피를 검색하거나 자신이 먹고 싶은 것의 단편적인 정보(조건)로 메뉴 추천을 받을 수 있는 사이트
또한 각 음식에 대한 상세 정보(칼로리 등)를 검색할 수 있음
Design
각 디자인 컴포넌트는 모두 포토샵을 활용해 제작함
Main Cover
Navbar
- Home logo: 메인 페이지로 이동
- Cooking search: 메인 페이지의 검색창으로 이동
- Recommend recipe: 레시피 검색 페이지로 이동
- Menu Recommendation: 메뉴 검색 페이지로 이동
- Design: CSS를 사용해 디자인 함
Main Page
Today's Recommend
- 오늘의 추천 메뉴 : 메뉴에서 임의로 하나를 선택하여 화면에 정보를 출력함
- 오늘의 추천 레시피 : 레시피에서 임의로 하나를 선택하여 화면에 정보를 출력함
메인 페이지 하부 버튼
- 메뉴 추천 버튼 : 메뉴 검색 페이지로 이동
- 레시피 추천 버튼 : 레시피 검색 페이지로 이동
- Design: Hover를 사용하여 반응형 버튼으로 구현함
메인 페이지 검색창
- 정확하게 검색하고자 하는 음식으ㅡㄹ 입력
- 음식 검색 결과 페이지로 이동하여 자세한 결과 출력
- 데이터베이스에서 해당 음식을 검색한 후 이름, 단위 칼로리, 섹션 정보를 사진과 표 형식으로 출력함
메뉴 검색
- 선택 조건은 라디오 박스로 구현함(단일 선택)
- Submit 버튼을 클릭하면 결과 페이지로 이동함
- 선택된 항목을 SQL문에 변수 값으로 삽입하고 데이터베이스에서 검색함
- 오늘의 추천 메뉴/레시피 항목은 우측에서도 출력됨
레시피 검색
- 체크 박스를 사용하여 선택 조건 구현(최대 8개 복수 선택 가능)
- Submit 버튼을 클릭하면 결과 페이지로 이동
- 선택된 항목을 SQL문에 변수 값으로 삽입하고 데이터베이스에서 검색함
- 오늘의 추천 메뉴/레시피 항목은 우측에서도 출력됨
음식 검색 결과
- 찾아낸 음식 상세 정보를 출력함
- 음식 이름, 단위 칼로리, 맛, 대분류에 대한 정보가 표시됨
- 정보는 표 형식으로 표현
- 시각적인 효과를 위해 사진과 함께 정보가 출력됨
- 오늘의 추천 메뉴/레시피 항목은 우측에서도 출력됨
메뉴 검색 결과
- 메뉴 검색 페이지에 입력한 조건을 사용하여 SQL 문을 통해 데이터베이스에서 검색
- 조건에 맞는 결과를 최대 3개까지 선택하여 카드 형태로 출력
- 하단의 메뉴 재검색 및 레시피 재검색 버튼을 통해 검색 페이지로 이동 가능
레시피 검색 결과
- 레시피 검색 페이지에 입력한 조건을 사용하여 SQL 문을 통해 데이터베이스에서 검색
- 조건에 맞는 결과를 최대 3개까지 선택하여 카드 형태로 출력
- 레시피 결과에서 결과를 클릭하여 요리와 관련된 레시피 사이트로 연결
- 하단의 메뉴 재검색 및 레시피 재검색 버튼을 통해 검색 페이지로 이동 가능
Backend
검색 기능
- 메인 페이지의 검색 창에 검색할 음식 이름을 입력하고 입력 또는 제출 버튼을 클릭
- 이벤트 발생 시 해당 결과 서블릿 호출
- 서블릿은 검색창에 입력된 음식의 이름을 데이터로 추출하여 서비스를 통해 DAO를 호출함
- 리콜된 DAO가 SQL 문에서 데이터로 수신한 식품의 이름을 데이터베이스에서 검색하도록 요청
- 만약 그 음식 이름의 데이터가 데이터베이스에 존재한다면, 데이터베이스는 DAO로 해당 정보를 전송함
- 수신된 데이터는 DAO의 ArrayList 목록에 저장되고 서블릿으로 반환
- 반환된 목록에 해당하는 함수를 호출하고 해당 함수에 대한 결과 화면 JSP를 호출하여 검색 결과 시각화
메뉴 검색 추천 기능
- 메뉴 추천 버튼 등을 통해 메뉴 추천 기준 선택 페이지로 이동
- 라디오 버튼을 통해 필터를 선택하고 검색 버튼을 클릭
- 이벤트 발생 시 해당 MenuResult 서블릿 호출
- 서블릿은 선택된 조건에서 데이터를 추출하고 서비스를 통해 DAO를 호출
- SQL 문에서 호출된 DAO가 수신한 조건을 검색하도록 데이터베이스 요청
- 조건 데이터에 해당하는 데이터가 데이터베이스에 있는 경우, 데이터베이스는 DAO로 데이터를 전송
- 수신된 데이터는 DAO의 ArrayList 목록에 저장되고 서블릿으로 반환
- 반환된 목록에 해당하는 함수를 호출하고 해당 함수에 대한 결과 화면 JSP를 호출하여 검색 결과 시각화
레시피 검색 추천 기능
- 레시피 추천 버튼 등을 통해 레시피 추천 기준 선택 페이지로 이동
- 체크 박스에 대해 중복 선택 항목(최대 8개)을 선택하고 검색 버튼을 클릭
- 이벤트가 발생하면 해당 RecipeResult 서블릿을 호출
- 서블릿은 선택된 조건에서 데이터를 추출하고 서비스를 통해 DAO를 호출
- SQL 문에서 호출된 DAO가 수신한 조건을 검색하도록 데이터베이스 요청
- 조건 데이터에 해당하는 데이터가 데이터베이스에 있는 경우, 데이터베이스는 DAO로 데이터를 전송
- 수신된 데이터는 DAO의 ArrayList 목록에 저장되고 서블릿으로 반환
- 반환된 목록에 해당하는 함수를 호출하고 해당 함수에 대한 결과 화면 JSP를 호출하여 검색 결과 시각화
오늘의 추천 기능
- 메인 페이지가 열리면 백엔드는 데이터베이스에서 하나의 메뉴/레시피 데이터에 대한 임의 검색 및 전송을 자동으로 요청
- 데이터베이스에서 백엔드로 메뉴/스크립션을 하나씩 전송e
- 전송된 데이터를 백엔드, ArrayList에 담을 수 있는 리스트 및 시간 추적 데이터로 저장
- 오늘의 추천 카드 측면이 있는 각 페이지에는 결과에 따라 목록에 저장된 데이터가 삽입되어 결과를 시각화할 수 있음
주요 기술
- 웹 개발 전반(페이지 이동, 이벤트 처리, 디자인 등)
- 데이터베이스 전반
- 실시간 이벤트 처리
- 실시간 변동
- LED 조작
- 기초 기술(조건, 반복 등)
Subscribe to An Sung-Hyun's Portfolio
Get the latest posts delivered right to your inbox