요번 지역 기반 맛집 추천 웹 서비스 프로젝트에서 수행한 기능은 CSV 파일 업로드 및 데이터 적재를 다루었습니다.

먼저 CSV 파일 업로드를 한번도 해보지 않았던 기능이었기에 더욱 새로웠습니다.

아래는 각 시 군구 에 대한 위도 경도 가 포함 된 CSV 파일 데이터 입니다.

스크린샷 2023-11-09 오후 4.50.23.png

위 데이터는 본 프로젝트 내 맛집 조회를 위해서 필요로 한 데이터 입니다. 프로젝트를 수행하면서 유저스토리를 간단하게 말씀드리면 사용자에 대한 위치를 기준으로 주변 근처 맛집 , 특정 지역 보기 등 을 위해 각 시군구에 대한 위도 경도가 필요하기 때문에 데이터가 필요로 하였습니다.

데이터의 총 개수는 294개 이며 제일 중요한 위도 경도 는 변할 일이 없다고 생각 하여 데이터를 서버 내 적재하는 걸 선택 하였습니다. 맨 처음에는 데이터를 데이터베이스에 저장을 선택 하였지만, 각 데이터가 필요로 할때마다 서버 비용도 증가 할 뿐더러, 불 필요한 자원의 낭비가 많이 생길거라 생각이 들었습니다.

이후 당장 필요로 하는 CSV 파일을 읽어오기 위하여 테스트 코드 를 작성하며 읽어오는 기능을 학습하고 만들었습니다.

CSV 파일 업로드 기능 구현

  1. CSV 파일을 읽어오기 위해 resouces/*.csv 안에 저장하였다.
    1. 처음에는 어디에 저장해야할지 감이 안왔는데, 어디 패키지에 저장하기 보단, 정적 파일이다보니, resources 패키지에 넣는게 맞다고 생각하여 저장하였습니다.

스크린샷 2023-11-09 오후 5.06.11.png

  1. CSV 파일을 IDE에 저장해 놓았을때 어떻게 보여지는지 확인 하기
@ParameterizedTest
  @CsvFileSource(resources = "/sgg_lat_lon.csv", numLinesToSkip = 1)
  void csv파일을_정상적으로_읽어온다(String dosi, String sgg, String lat, String lon) {
    Assertions.assertNotNull(dosi);
    Assertions.assertNotNull(sgg);
    Assertions.assertNotNull(lat);
    Assertions.assertNotNull(lon);
  }