CoLabor : 병원 데이터 파싱 및 지도 표시 기능 구현

2024. 7. 19. 12:41코딩 도구/프로젝트 개발

반응형

병원 데이터 파싱 및 지도 표시

현재 사회적 약자를 위한 공모전을 준비중에 “외국인 근로자를 위한 웹사이트”를 만들기로 했습니다.

 

공공데이터 : https://www.data.go.kr/data/15000736/openapi.do

 

국립중앙의료원_전국 병·의원 찾기 서비스

전국 병‧의원 정보를 조회하기 위한 서비스로서 주소별, 기관별로 조회할 수 있다

www.data.go.kr

전체적인 작업 설계

  1. 공공데이터에서 불러올 수 있는 약 76000개의 병원 데이터를 DB에 저장하는 API.
  2. DB에 저장한 데이터를 조회하는 API
  • Hospital 엔티티 클래스 정의: 필요한 필드(dutyAddr, dutyName, dutyTel1, wgs84Lat, wgs84Lon) 포함
  • HospitalRepository 인터페이스 생성: JpaRepository 확장
  • HospitalService 클래스 구현:
    • 공공 API에서 병원 데이터 가져오기
    • XML 데이터를 파싱하여 Hospital 객체 리스트 생성
    • 데이터를 데이터베이스에 저장
    • 모든 페이지의 데이터를 순차적으로 가져오는 로직 구현
  • HospitalController 클래스 개발:
    • /api/hospitals/fetch 엔드포인트: 병원 데이터를 가져와 저장
    • /api/hospitals/all 엔드포인트: 저장된 모든 병원 데이터를 조회
  • XML 파싱에 대한 에러 처리 및 방어적 코딩 적용

관련 코드

깃허브 주소 : https://github.com/Co-Labor-Project/Co-Labor-BE

 

GitHub - Co-Labor-Project/Co-Labor-BE

Contribute to Co-Labor-Project/Co-Labor-BE development by creating an account on GitHub.

github.com

 

DB
Postman

이 과정에서 해결한 오류 중 하나
https://mkisos.tistory.com/entry/MySQL-SELECT-%EC%BF%BC%EB%A6%AC-%EA%B2%B0%EA%B3%BC%EC%9D%98-1000%EA%B0%9C-%ED%96%89-%EC%A0%9C%ED%95%9C%EC%9D%84-%ED%91%B8%EB%8A%94-%EB%B0%A9%EB%B2%95

 

MySQL : SELECT 쿼리 결과의 1000개 행 제한을 푸는 방법

MySQL에서 SELECT 쿼리 결과의 1000개 행 제한을 푸는 방법공모전 준비하면서 공공데이터 포털 API에서 병원 데이터를 가져와 DB에 저장하는 기능을 구현하고 있는데 병원 데이터가 약 76000개가 되는

mkisos.tistory.com

 

반응형