Cookease에 오신 것을 환영합니다! 유니드 2024 해커톤에서 9팀이 개발한 이 프로젝트는 1인 가구를 위한 혁신적인 요리 솔루션입니다. 이 애플리케이션은 주로 혼자 생활하는 사람들에게 식재료 관리와 요리의 편의성을 제공하며, 재료 낭비 문제를 해결하는 것을 목표로 하고 있습니다.
Cookease는 1인 가구가 주로 겪는 식재료 관리와 요리의 어려움을 돕기 위해 설계된 통합 솔루션입니다. 한국에서 1인 가구가 식재료를 대량으로 구매하다 보면 남는 재료가 많아지게 되고, 이는 식재료의 유통기한이 지나면서 자원의 낭비와 경제적 부담을 초래할 수 있습니다. Cookease는 이러한 문제를 해결하기 위해 다양한 기능을 제공합니다.
- 레시피 추천: 사용자가 보유하고 있는 재료를 바탕으로 만들 수 있는 요리를 추천하여 식재료 낭비를 줄일 수 있습니다.
- 유통기한 알림: 식재료의 소비기한이 다가오면 알림을 제공하여 재료를 최대한 활용할 수 있도록 돕습니다.
- 재료 교환 커뮤니티: 남는 식재료를 다른 사용자와 공유할 수 있는 커뮤니티 기능을 통해 재료 낭비를 줄이고 지속 가능한 문화를 형성합니다.
- 보관 분류: 냉장, 냉동, 실온 보관이 필요한 재료를 명확히 구분하여 보관법을 안내합니다.
- OCR 기반 식재료 추가: Tesseract.js를 사용하여 OCR 기능을 구현, 사용자가 영수증이나 제품 라벨을 통해 식재료 정보를 자동으로 등록할 수 있습니다.
Cookease는 최신 웹 개발 기술을 사용하여 구축된 1인 가구를 위한 요리 솔루션 서비스입니다. 프론트엔드와 백엔드가 서로 통신하며, 효율적인 데이터 관리를 위해 다양한 라이브러리와 API를 활용합니다.
백엔드는 Java와 Spring Framework를 사용하여 구축되었습니다. 이를 통해 안정성과 확장성을 갖춘 서버 환경을 구성하였으며, 주요 기능은 다음과 같습니다.
- Spring Framework: 엔터프라이즈급 애플리케이션을 위해 사용되는 프레임워크로, RESTful API 구축, 의존성 주입, 그리고 데이터 관리 기능을 간편하게 제공합니다.
- Java: 높은 안정성과 성능을 갖춘 프로그래밍 언어로, 백엔드의 주요 로직과 데이터 처리를 수행합니다.
- 데이터베이스: 관계형 데이터베이스 시스템(RDBMS)을 사용하여 사용자 정보, 레시피 데이터, 식재료 정보, 커뮤니티 게시글 등을 저장하고 관리합니다.
- Kakao API: 카카오 계정 연동을 통해 사용자 인증 기능을 구현하여 사용자가 간편하게 Cookease에 접근할 수 있도록 지원합니다.
프론트엔드는 Next.js를 사용하여 구성되었으며, 서버 사이드 렌더링(SSR)과 정적 사이트 생성(SSG) 기능을 통해 빠른 로딩 속도와 SEO 최적화를 도모하였습니다.
- Next.js: React 기반의 프레임워크로, 서버 사이드 렌더링과 정적 파일 생성을 통해 최적화된 사용자 경험을 제공합니다.
- Tesseract.js: OCR 기능을 통해 영수증, 라벨 등에서 텍스트 정보를 추출하여 식재료를 자동으로 추가하는 기능을 구현하였습니다.
- Axios: API 요청을 처리하는 HTTP 클라이언트 라이브러리로, Cookease의 백엔드와 통신하여 사용자 데이터를 가져오고 전송하는 역할을 담당합니다.
- Redux: 전역 상태 관리를 위해 Redux를 사용하여, 레시피 데이터, 사용자 로그인 정보 등 애플리케이션의 전반적인 상태를 효율적으로 관리합니다.
- Styled-Components: CSS-in-JS 라이브러리로, 컴포넌트 스타일을 코드 내에서 관리하여 유지보수성을 높이고, 컴포넌트별 스타일링을 효율적으로 처리합니다.
- JWT (JSON Web Token): 사용자 인증 및 보안 처리를 위해 JWT를 사용하여, 사용자의 로그인 세션을 안전하게 관리합니다.
- 환경 변수 관리:
dotenv를 활용하여 중요한 API 키와 환경 설정 값을.env파일에 보관함으로써 보안을 강화합니다.
- RESTful API: 백엔드는 RESTful API를 통해 프론트엔드와 데이터를 주고받습니다. 클라이언트 요청에 맞춘 계층형 데이터 전송 방식을 통해 유지보수성을 높이고 확장성을 확보하였습니다.
- 비동기 처리: 비동기 요청을 통해 서버에서 데이터를 가져올 때, 사용자 경험을 저해하지 않고 자연스럽게 데이터를 로드합니다. 이 과정에서 Promise와 async/await 문법을 활용하여 API 응답을 처리하고 오류를 관리합니다.
- GitHub: 프로젝트 소스 코드는 GitHub를 통해 관리되며, 백엔드 레포지토리 링크와 프론트엔드 레포지토리 링크를 통해 소스 코드와 업데이트를 확인할 수 있습니다.
- 배포: 현재는 웹 애플리케이션 형태로 배포되었으며, 향후 iOS 및 Android 앱 개발을 통해 모바일 사용자층으로 확장할 계획입니다.
—
이와 같이 다양한 최신 기술이 유기적으로 결합하여 Cookease의 기능을 지원합니다.