실시간 약국 재고 확인 애플리케이션

실시간 약국 재고 확인 애플리케이션


Android Spring OpenAPI

Demo

기간

  • 2022.04 ~ 2022.06

요약

  • 필요한 약이 지도에 표시된 약국에 재고가 있는 지 확인할 수 있는 애플리케이션
  • 구글 API 기반의 지도에 핀으로 약국 위치를 제공하고, 핀을 터치하면 해당 약국의 약 재고 목록과 재고 여부를 확인할 수 있도록 구현
  • 공공 데이터 API에서 식약처에 등록된 의약품 정보를 호출해 신뢰성 있는 데이터를 제공
  • 사용자는 약을 선택하여 장바구니에 넣을 수 있고, 해당 약국에 가서 장바구니를 보여주면 바로 해당 약을 구매할 수 있음
  • RESTful API를 구현하여 Android side - Server side를 연결
  • Java 기반의 Android 네이티브 애플리케이션이고, MySQL과 통신하기 위한 백엔드 애플리케이션을 Spring framework를 이용하여 구현

Database ERD

Spring Application Class Diagram

기획 의도

  • 필요한 의료 용품이나, 대학병원 등에서 처방 받은 약이 동네 약국에 재고가 없는 경우가 있어 이를 편리하게 조회할 수 있도록 하는 목적
  • 기존에 약국의 의약품 재고를 확인할 수 있는 애플리케이션이 없었기 때문에 해당 불만 사항을 가진 사용자들에게 유의미한 서비스를 제공할 것을 기대

개발 환경

  • IDE: Android Studio, Intelli J, eclipse
  • 프로그래밍 언어: Java
  • 데이터베이스: MySQL
  • 프레임워크: Spring
  • 라이브러리, API
    • Maven
    • MyBatis
    • Retrofit2
    • Gson
    • 구글 맵 API
    • 공공 데이터 API
  • 형상관리: GitHub

역할

  • 프로젝트 전체 인원: 4명
  • 나의 역할
    • Spring을 사용한 백엔드 애플리케이션 구현
      • RESTful API 개발
        • Controller
          • DrugApiController
          • PharmacyController
        • Mapper
          • DrugMapper
          • PharmacyMapper
        • Model
          • DrugVO
          • PharmacyVO
    • 공공 데이터 요청 및 파싱 로직 구현
    • MySQL을 사용한 데이터베이스 쿼리 작성
    • Android 구현
      • Server Interface
        • REST API를 호출하기 위한 Model 개발

회고

  • 타겟으로 정한 사용자의 성별과 연령대가 다양하므로 높은 연령대의 사용자를 고려하여 직관적이고 사용하기 쉽도록 인터페이스를 설계했습니다.
  • API에서 받아오는 정보가 방대하고 쓸모없는 것이 많아 서버 측에서 파싱을 하고, 데이터베이스 설계에 있어 정규화를 통해 간소화하였습니다.
  • 약 정보를 직접 입력하는 것은 매우 비효율적이고, 정확하지 않은 정보 제공 가능성 이슈가 있어 식약처가 제공하는 데이터를 Json으로 호출해 사용했습니다. 이를 통해 의약품 이름, 용법, 제조회사 등의 정보를 손쉽게 얻을 수 있었습니다.
  • 구글 지도 API를 받아오는 아이디어는 코로나 19 예방을 위해 네이버가 제공한 백신 접종 사전 예약 시스템을 레퍼런스로 하여 구현했습니다.
  • 약국은 일반 의약품 뿐만 아니라 전문 의약품, 마약 또한 취급하기 때문에 재고 수량을 보여주는 것은 위험하다고 판단하여 재고 유무만을 알 수 있게 하였습니다.
  • 약국에 대한 데이터를 받아오지 않고 임의 지역 약국을 데이터베이스에 삽입한 점이 아쉽습니다.
© 2024 Seungwon Bae 🇰🇷