본문 바로가기
슬기로운 인턴생활

[슬기로운 인턴생활] 세 번째 Task - DB에서 불러온 데이터로 TAT 고도화

by 배써니 2024. 3. 4.

세 번째 Task - DB에서 불러온 데이터로 TAT 고도화


01. 개요

엑스프레소로 가져오는 실시간 위치 데이터를 참고하여, 20개 정도의 터미널에 들어왔다 나가는 차량 파악 후 리스트업. (날자 별로 차량이 어느 터미널에서 어느 정도의 시간이 소요되었는지 파악)
- tat: 차량이 각 터미널에 들어왔다가 나가는 시간
- 엑스프레소(Expresso): Gpans smartlo 기업에서 개발한 화물 운송 주문 및 수락, 실적관리 등을 담당하는 운송 전용 어플. (https://play.google.com/store/apps/details?id=net.smartlo.expresso&hl=ko&gl=US&pli=1)


02. 사용 tool

- PostgreSQL, MongoDB, Python
(각각의 DBMS 정보는 [DataBase] 카테고리에 업로드 해두었습니다.)


03. 사용 데이터

1) PostgreSQL
- RDB (속성이 비슷한 애들을 테이블 단위로 데이터 저장)
- id와 같은 고유의 key값 별로 데이터 존재
- 서로 다른 테이블에 저장된 데이터의 관계성을 파악하여 일치하는 데이터 수집.
- join 해서 데이터 정리 후에 정보 파악하기에 좋음.
- 지오팬스 데이터  (각 터미널 별 지오팬스 정보를 가져옴, 터미널 코드랑 곡지점 좌표)

수업시간에 했던 MySQL과 쿼리문 구조가 비슷하다. 실제 DB에 접속해서 데이터를 확인하니 참 신기했다.


2) MongoDB

- NoSQL (하나의 뭉탱이로 저장된 데이터. document 도큐먼트 형태)
- ex: id:~~~ / name: ~~~ / terminal: ~~~ ==> 이러한 형태로 각각이 collection 단위로 묶임. (폴더 느낌?)
- 파이썬에서 판다스로 하는 게 편할 수도 있을듯.
- 데이터의 양이 방대한 경우(빅데이터)에 good!
- 차량 위치 실시간 데이터 (차량별 위치 데이터 뽑아내서)
- 데이터 예시

데이터 형태가 뭉탱이(?)로 저장되어 있어서 전처리하는 게 생각보다 번거로웠다.
몽고디비.. 이름이 증말 귀엽다


팀장님 Tip!

1. 프로젝트 별 기한 보고할 때, 내가 일을 할 수 있는 시간에 플러스 알파로 기한 보고할 것.
(ex: 3일 내에 가능할 것 같으면 5일로 보고) why?? 내가 생각한 것 외의 변수가 발생할 수 있기에!

그래서 아싸리 2주로 잡아버렸다

2. 무작정 빨리하는 것이 좋은 건 아님.

3. DB에 저장된 데이터 사본 만들어서 local 환경에서 DB 조작해보고 공부해도 좋음. 단, 원본 데이터만 건드리지 말 것!

4. 일반적으로 모든 기업에서 DB로 데이터를 관리하지는 않음. 크롤링 등의 방식으로 데이터 수집 하는 경우도 은근 많음. 그래도 DB 다뤄본 경험이 있으면 나중에 좋을 듯!