똑디는 개인 맞춤형 의약품 추천 및 복용 기록 관리를 제공하는 애플리케이션입니다. 사용자에게 최적의 건강 관리 솔루션을 제공하기 위해 AI 기술을 활용한 다양한 기능을 지원합니다.
이 프로젝트는 클라이언트(애플리케이션)와 서버로 나뉘며, 사용자가 데이터를 주고받기 위한 다양한 컴포넌트를 구현합니다. 서버는 일반적인 데이터 처리와 AI 모듈을 통한 데이터 처리를 분리하여 더욱 효율적으로 동작합니다.
각 모듈과 컴포넌트의 기능을 상세히 기술하여, 이 설계서를 바탕으로 충분한 기술 스택을 가진 개발자라면 문제없이 구현할 수 있도록 설계되었습니다.
- 🩺개인 맞춤형 의약품 추천: 사용자의 몸무게, 연령, 성별 등을 기반으로 최적의 의약품을 추천합니다. AI 기술을 활용하여 맞춤형 영양소, 약물, 처치법을 제안합니다.
- 🔍알약 검색 및 정보 제공: 사용자가 직접 촬영한 알약 이미지 또는 알약 특징을 입력하면 해당 약물의 상세 정보를 제공합니다. 복용법, 주의 사항 등 필수 정보를 포함한 데이터 제공.
- 💡복용 기록 관리: 복용 알림 기능을 통해 사용자가 약물을 올바르게 복용할 수 있도록 돕습니다.
- 📅진료 일정 및 기록 관리: 진료 일정 알림 기능을 통해 병원 방문 일정을 잊지 않도록 합니다.
- 📊효능 통계 데이터 제공: 사용자의 데이터를 기반으로 한 약물의 효능 통계를 제공하여, 약물 선택 시 참고할 수 있는 정보를 제공합니다.
- 클라이언트 (애플리케이션): 사용자와 데이터를 주고받는 컴포넌트로 구성됩니다.
- 서버:
- 일반 데이터 처리 및 AI 모듈을 통한 데이터 처리로 구분됩니다.
- 다양한 모듈 간의 협업과 외부 API와의 통신을 통해 클라이언트에 데이터를 전달합니다.
- AI 모듈: 사용되는 AI 모듈과 해당 모듈의 기능을 상세히 설명합니다. 각 모듈의 내부 Class 구성도와, 멤버 함수 및 데이터를 기술합니다.
AWS S3 관련 설정, JWT 필터 및 WebClient 설정을 포함하는 패키지입니다. API 응답 형식을 관리하는 설정도 포함되어, 전체 애플리케이션의 일관된 동작을 보장합니다. 이 패키지는 애플리케이션의 다양한 환경 설정을 중앙에서 관리하여 코드의 재사용성과 유지 보수성을 높입니다.
프론트엔드(FE)와 API 간의 통신을 담당하는 모듈입니다. 사용자의 요청을 받아 적절한 데이터를 처리하여 응답합니다. 또한, 백엔드(BE) 시스템 내에서 AI 모듈과의 상호작용을 관리하며, 외부 API와의 통신을 위한 클래스들이 포함됩니다. 이를 통해 사용자는 AI 기능을 쉽게 활용할 수 있습니다.
Data Transfer Object(DTO)와 Domain 객체 간의 변환을 담당하는 패키지입니다. 외부 API로부터 받은 데이터를 내부에서 사용할 수 있는 형식으로 변환하고, 반대로 내부 데이터를 외부로 전송하기 위한 형식으로 변환하는 역할을 합니다. 이로 인해 데이터 일관성과 정확성을 유지할 수 있습니다.
데이터베이스에 저장될 엔티티들을 정의한 클래스들이 포함된 패키지입니다. 각 클래스는 데이터베이스 테이블과 매핑되며, 애플리케이션의 핵심 비즈니스 로직을 반영합니다. 이 패키지는 데이터의 구조와 관계를 명확히 정의하여 데이터 처리의 효율성을 높입니다.
Data Transfer Object들이 모여 있는 패키지입니다. 외부 API와의 통신, 또는 내부 모듈 간 데이터 전송을 위해 사용되는 객체들을 포함합니다. 이 객체들은 데이터를 캡슐화하여, 필요할 때마다 쉽게 전달하고 사용할 수 있도록 합니다.
JWT(Json Web Token) 인증 및 발급을 관리하는 클래스들이 포함된 패키지입니다. 사용자 인증 과정에서 JWT를 생성하고 검증하는 로직이 포함되어 있으며, 보안성을 높이는 역할을 합니다. 이 패키지는 애플리케이션의 인증 관련 로직을 중앙에서 관리하여 코드의 일관성을 유지합니다.
JPA Repository를 사용하여 MySQL 데이터베이스와의 데이터 상호작용을 관리하는 인터페이스 패키지입니다. CRUD(Create, Read, Update, Delete) 작업을 수행할 수 있는 메서드들을 정의하여, 데이터 접근을 간편하게 합니다. 이 패키지는 데이터베이스와의 연결을 추상화하여 데이터 조작을 효율적으로 수행할 수 있도록 합니다.
챗봇, 회원가입 및 로그인, 리마인더 관리, 약물 검색, 효능 통계, 이메일 송신 등 다양한 내부 서비스를 처리하는 클래스들이 포함된 패키지입니다. 각 서비스는 특정 비즈니스 로직을 구현하며, 애플리케이션의 기능을 지원합니다. 이 패키지는 모듈화된 구조로 되어 있어 유지 보수 및 확장이 용이합니다.
알약 사진을 인식하고 분석하는 모듈입니다. 사용자가 업로드한 알약 이미지를 처리하여, 해당 알약의 정보를 식별하고 반환하는 기능을 수행합니다. 이 모듈은 사용자가 쉽게 알약을 인식하고 필요한 정보를 얻을 수 있도록 도와줍니다.
장치에 저장된 이미지 파일의 경로를 입력으로 받습니다. 입력 이미지에 포함된 모든 알약의 이름을 반환합니다.