본문 바로가기
제로베이스 BE 21기/Mission

Public-Wifi 프로젝트 기록

by ♡˖GYURI˖♡ 2024. 4. 8.

프로젝트 주제

서울시 공공 와이파이 OPEN API를 이용해 사용자의 위치 혹은 특정 위치에서 가장 가까운 20개의 공공 와이파이 정보를 제공

 

열린데이터광장 메인

데이터분류,데이터검색,데이터활용

data.seoul.go.kr

 

 

Tech Stack

  • Language: Java
  • Build : Maven
  • Database : SQLITE
  • Server : Tomcat 8.5
  • JDK : JDK 1.8
  • Web : JSP, HTML5, CSS
  • Library : Lombok, Okhttp3, Gson
  • IDE : eclipse

 

프로젝트 작동 순서 및 기능

  • OPEN API를 활용하여 서울시의 모든 공공 와이파이 정보를 가져옵니다.
  • 사용자의 위치 좌표를 기반으로 가장 가까운 공공 와이파이 정보 20개를 보여줍니다.
  • 사용자가 조회한 위치 정보와 조회한 시점을 기준으로 DB에 정보를 저장하고, 저장된 위치 히스토리를 조회 및 삭제할 수 있습니다.
  • 특정 공공 와이파이의 상세 정보를 제공합니다.
  • 사용자는 북마크 그룹을 생성, 조회, 수정, 삭제할 수 있습니다.
  • 사용자는 공공 와이파이 정보를 북마크로 추가하거나 삭제할 수 있습니다.

 

 

ERD

 

 

시연영상

이미지를 클릭하면 유튜브 링크로 연결됩니다.

 

 

어려웠던 점

1. IDE로 eclipse 선택

원래 사용하던 IntelliJ가 아닌 eclipse를 사용해야 하였는데, 너무 IntelliJ의 편리함에 익숙해져 있었는지 자동완성이나 오류 찾기 등의 기능이 지원되지 않는다는 점이 어렵게 느껴졌다. 실제로 아주 사소한 오타인데 그 점을 발견하지 못해서 3시간 정도 고민하였던 적도 있다. 처음에는 허탈했지만 오히려 이런 경험들을 통해서 '생각보다 많은 오류는 오타로 인해 발생한다'는 점을 알게 되었다. 그리고 나는 타자를 빠르게 치려다 보니 오타가 잦은 편이니 주의해야겠다는 생각도 들었다.

 

2. ERD 구성

open api로부터 받아온 데이터는 테이블이 정해져 있지만, 서비스에 필요한 데이터들의 테이블을 직접 구성해야 했다. 하지만 어떤 데이터가 필요한지, 어떻게 서로 연결해야 할지가 어렵게 느껴졌다. 이를 중간에 하려다 보니 더 어려웠던 것 같아 앞으로는 구현 전에 미리 DB를 구상하고 시작해야겠다고 생각했다.

 

3. 기능 분리

dao와 서비스가 혼동되어 기능을 분리함에 있어 미숙했던 것 같다. 받은 피드백 중 하나가 '비즈니스 로직을 dao에서 처리하지 말 것'이어서 더욱 신경써야할 것 같은 부분이다. dao, dto, vo의 개념을 다시 한 번 정리해볼 예정이다.

 

4. 현재 위치와 와이파이 간의 거리 구하기

거리를 구하는 것까지는 구현했지만 이를 DB에 저장할 생각을 하지 못했다. 그 결과 다른 곳에서 거리를 불러와야 할 경우 다시 거리 계산을 해야했고, 로직을 짜는데 실패했는지 제대로 된 거리가 뜨지 않았다. 수정한다면 다음과 같이 할 계획이다.

  • 거리 계산 후 테이블을 따로 만들어 저장
  • 거리 테이블을 public_wifi와 연결
  • 거리와 wifi정보를 한 번에 보여줘야한다면 조인 등을 통해 한 번에 띄울 것

거리 테이블을 따로 만들어야겠다고 생각한 이유는 public_wifi가 open api를 그대로 받아오는 테이블이기 때문이다. 

테이블 칼럼들을 그대로 맞춰줘야 하기에 거리 칼럼을 집어넣기 보다는 따로 만들어 조인하는 방식이 좋을 것 같다고 생각하였다.

 

5. 명명규칙 지키기...^^

이 부분은 생각도 못하고 있었다가 지적받은 부분이었다. package명을 소문자와 점으로 표현해야한다는 것을 알고 있었음에도 Service라고 이름붙여버렸다. 다음부터는 꼭 주의할 것!