개발자취

TIL | OpenAPI data기반 WebApp Project (1) 본문

개발/Dev | 웹개발

TIL | OpenAPI data기반 WebApp Project (1)

hnhnhun 2023. 8. 6. 01:13

본 글은 OpenAPI 데이터를 기반으로 WebApp을 생성하는 프로젝트의 과정을 담았다. 프로젝트 진행 과정을 정리한 글은 총 세 개의 글인 계획 및 Data 핸들링, 1차 기능 구현, 2차 기능 구현 및 검토로 이루어져 있고, 그 중에서 본 글은 계획 및 Data 핸들링에 해당한다.

 

들어가며

온라인 백엔드 스쿨에서 본 과제를 부여받았다. 과제를 진행중에 있지만, 아주 간단하게 세워놓은 계획을 조금씩 구체화하며 진행중에 있었다. 그  내용을 메모장에 정리해놨는데, 글로 짜임새 있게 정리하고자 했고, 또한 다음주에 진행하는 2차 구현을 위해서도 리마인드 차원으로 본 글을 작성하게 되었다.

 

진행과정

1. 본 과정을 진행하는 데 앞서서 이걸 어떻게 해야하나 엄청 고민을 했던 것 같다. MariaDB를 사용해서 과제를 진행하려고 생각했다. 하지만 MariaDB보다는 SQLite가 실무에서 더 많이 쓰인다는 과제 출제자의 의도에 따라 MariaDB로 구현해놓고, 세부적인 기능을 모두 구현한 뒤 DB만 바꿀 생각이다.

 

2. 과제와 관련한 구체적인 요구사항을 여러차례 읽으면서 요구사항을 하나씩 분석했고, 요구사항과 관련한 과제 진행 계획을 대략적으로 세워서 8월 4일까지 진행하였고, 다음주부터 어떻게 진행할 지에 대해서도 본 포스팅을 작성하면서 고민해봤다. 

7월말부터 8월 중순까지 진행되는 OpenAPI 프로젝트 일정

 

3. 과제 해결을 위한 방법이 뚜렷하게 그려지지 않아서 데이터 핸들링 기간에 프로젝트를 위한 프로젝트로 다음 절차를 진행했다. 절차를 진행하기에 앞서 서울시 Public Wifi Signification Key 발급이 필요하므로 발급 후에 아래 과정을 진행했다.

  1) Wifi 정보를 API로 가져올 때, 데이터 형식이 어떻게 이루어져 있는가를 확인 > dump 데이터 형식으로 작성해봤음

CREATE DATABASE `SampleDB`;
USE `sample_table`;

DROP TABLE IF EXISTS `sample_table`;
CREATE TABLE `sample_table` (
  `mgr_no` varchar(30) NOT NULL COMMENT '관리번호',
  `wrdofc` varchar(20) DEFAULT NULL COMMENT '자치구',
  `main_nm` varchar(50) DEFAULT NULL COMMENT 'WIFI명',
  `address1` varchar(100) DEFAULT NULL COMMENT '도로명주소',
  `address2` varchar(100) DEFAULT NULL COMMENT '상세주소',
  `instl_floor` varchar(20) DEFAULT NULL COMMENT '설치위치(층)',
  `instl_ty` varchar(50) DEFAULT NULL COMMENT '설치유형',
  `instl_mby` varchar(50) DEFAULT NULL COMMENT '설치기관',
  `svc_se` varchar(50) DEFAULT NULL COMMENT '서비스구분',
  `cmcwr` varchar(50) DEFAULT NULL COMMENT '망종류',
  `cnstc_year` varchar(50) DEFAULT NULL COMMENT '설치년도',
  `in_out` varchar(100) DEFAULT NULL COMMENT '실내외구분',
  `remars3` varchar(100) DEFAULT NULL COMMENT 'wifi접속환경',
  `lat` varchar(100) DEFAULT NULL COMMENT 'y좌표',
  `lng` varchar(100) DEFAULT NULL COMMENT 'x좌표',
  `work_dttm` varchar(50) DEFAULT NULL COMMENT '작업일자',
  PRIMARY KEY (`mgr_no`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;

LOCK TABLES `sample_table` WRITE;
INSERT INTO `sample_table` VALUES
('---EP000001','은평구','갈현1동주민센터','갈현동 갈현로 301','갈현1동 1층','','7-1. 공공 - 행정','의견(자치)','공공WiFi','자가망_U무선망','2011','실내','','126.9167','37.62364','2023-07-27 10:58:30.0'),
.
.
.

  2) dump 데이터를 생성한 뒤, Wifi 데이터들을 DB에서 CRUD 해보기.

  3) OpenAPI를 사용해서 Gson library로 데이터 핸들링

      : 이때, github에서 gson library를 사용한 샘플코드를 찾아봤다. 또한 OpenAPI 샘플 가이드를 참고하면서 진행했다.

  4) dump data  > DB 에서 OpenAPI > DB로 데이터를 가져오는 구조 변경 완성하기

 

마치며

프로젝트를 위한 서브 프로젝트로 데이터 핸들링을 하면서 데이터가 어떤 구조로 이루어져있는지를 알게 되었고, 처음에 ERD를 그리기가 왜 어려웠었는지까지도 알게 되었다. 구현하는 과정이 뚜렷하게 그려지지 않으면 일단 한 번 다른 기술 블로그나 구현된 내용을 보며 따라서 만들어보고 나의 방식으로 전환하는 방법을 택하니, 빠르게 구현이 되는 것을 알 수 있었다. 

Comments