본문 바로가기

작업일지/안동버스 API 연동

#1) 안동버스 API 연동 계획

어느덧 입사한지 7개월이 지났다.

현재 유명 IT회사의 서비스의 고객센터에서 사용하는 솔루션을 개발 및 유지보수중인데

조만간 팀 프로젝트도 참여를 할 예정이다...(아마도)

지금 우리팀 프로젝트에서 사용되는 mongDB, Redis, ElasticSearch, Kafka, MSA 등등은

지금 내가 맡고있는 프로젝트에서는 사용하지 않아서 접해보지 못했다..

팀 프로젝트 참여 전 공부하기 위해 안동버스 open api를 이용해서 간단한 토이프로젝트를 만들어보고자 한다!

 

안동버스 open api 가이드 홈페이지

bus.andong.go.kr/m01/s04.do?c=20400&i=20440&tab=2

 

안동시 버스정보시스템

안동시 버스정보시스템

bus.andong.go.kr

개발환경

- IDE : intelliJ

- 프레임워크 : Springboot 2.1.6

- jdk1.8

- RDBMS : mysql (JPA)

- NOSQL : Mongo, Redis, ElasticSearch

- kafka

 

개발구상

크게 적재API / 조회API 개발예정(사실 이미 다 만듬..)

 

적재API는 안동 버스정류장 별 버스 도착정보를 DB에 적재하는 역할

  - 적재 프로세스 :

    1. 안동버스 open api 호출 response 원문을 elasticSearch에 적재

    2. http code 200이면 캐싱을 위해 redis에 적재 (타임아웃 10분)

    3. kafka를 이용해서 데이터를 컨슈머에 넘김

    4. 컨슈머는 kafka에 넣어진 데이터를 가져와서 JPA를 사용해 Mysql에 적재 

    5. 에러발생시, mongo에 exception 정보 적재

    

조회API는 적재된 버스 도착정보를 불러오는 역할

 - 조회 프로세스:

    1. Redis에 캐싱된 값이 있으면 redis에 적재되있는 값을 조회

    2. Redis에 캐싱된 값이 없다면 mysql에 적재되어있는 최신 데이터을 조회

    3. Redis, mysql 모두 적재된 값이 없다면 조회결과 없음을 표시

 

개발기간 : 일주일

 

간편하게 local에서 돌리기위해 도커를 사용함.

docker-compose를 이용해서 컨테이너 생성

 

docker-compose.yml
0.00MB

 

 

 

 

반응형