생각보다 빨랐던 대답.
이슈를 생성한 시간 9시, 사실 나는 대답이 빨라도 내일이나 다음주쯤 올것이라 생각했었다. 하지만 예상과 다르게 메인테이너인 선배님께서 문제 상황을 물으시는 댓글로 칼답을 해주셨다. 사실 생각도 못했었다. 이 챗봇은 2016년에 처음 개발 되었는데 운영된 시간만보면 자그마치 8년이다. 8년된 프로젝트의 이슈 댓글이 8시간도 8일도 아닌 8분만에 달릴줄은 몰랐다.
상황설명
우선 메인테이너님이 확인한 이슈 상황 통해 문제점을 자세하게 듣고 추가적으로 상황을 설명하였다. 이를통해 문제현황을 정확히 파악하였다.
차량조회를 조회하자(부제: 헤이딜러는 신이야)
우선 어떤 버스가 어떤 기종으로 변경 된 것인지 살펴봐야했다. 육안으로는 확인 할 수 없으니 차량조회 서비스를 이용하여야했다.
그런데 자동차365 포털의 차량번호 조회는 5회에 100원대로 유료로 형성 되어있었다. 기여를 위해 돈을 쓰거나 학교 앞 정류장에서 하염없이 기다려야해야하나 라고 생각하며 이마를 만지던 중 문득 돌파구로 헤이딜러가 생각났다.
헤이딜러가 생각나고 딱 이거다 싶었다. 헤이딜러는 무료로 차량조회 서비스를 제공한다. 이를 통해 하나하나씩 용산03의 6대의 버스들의 차종을 조회하였다.
근데 API에서 제공하는 차량고유번호와 차량번호는 달랐다.
위는 메인 로직에서 api를 리퀘스트 한 뒤 리스폰스 받은 데이터를 인자값으로 받아와 데이터에 있는 큰버스와 작은 버스의 버스고유번호와 대조 한뒤 리턴 값으로 큰버스인지 작은 버스인지를 리턴하는 함수이다.
잘 보면 버스고유번호는 우리가 익히 아는 서울75사1234 같은 구조가 아닌 숫자값이다.
기다리는 것 보단 내가 직접 찾는게 나에게 더 좋은 경험이 될 것이라 생각하였다. 하지만 버스 API를 호출하려면 승인 후 권한부여까지 시간기 걸리는 API key가 필요했지만 다행히 친구들을 다 뒤져서 API key를 발급 받았던 친구에게 key를 빌렸다.
차량고유번호를 대조해 어떤 큰버스가 문제인지 알아보자
어떤 버스가 큰버스에서 작은버스인지는 금방 나왔다. 용산03 봇 프로덕션 환경에서 조회되는 큰버스와 버스API에 있는 차량번호와 차량 고유번호를 대조하여 정리하였다.
이로서 문제가 있는 버스는 작은버스이지만 큰버스로 인식되는 75사5720버스였음을 알았다.
코드를 바꾸자
기존코드를 문제가 됐던 75사5720 버스의 고유번호인 102025102가 BigSize 배열에 있는 걸 알 수 있다.
문제가 됐던 버스의 고유번호를 SmallSize로 옮겨주었다.
신나는 머지시간
점심시간 쯤 풀리퀘를 보내고 몇분 뒤 풀리퀘가 메인 브랜치에 머지 됐다.
소감
사실 기여를 처음해본건 아니다. 나의 오픈소스 첫 기여는 Ghost라는 CMS 블로그 서비스의 테마인 eddiesigner/liebling의 가볍고 부담 없는 번역기여였다. 그에 비해 이번엔 짧지만 로직 코드에 기여하였다. 확실히 번역기여와는 사뭇다른 느낌이였다. 전체적인 로직을 훑어보고 고쳐야하는 부분이 어느 부분인지 파악하였고 문제 파악 후 문제가 되는 코드를 수정하였다. 물론 현역 업무나 다른 오픈소스 프로젝트는 이것과는 다르고 쉽지 않을 것이다. 하지만 이슈를 해결하고 나의 코드가 프로덕션 코드에 반영되어 사용자와 교감한다고 느낄 때의 쾌감만은 비슷할 것이라 감히 예상해본다.
마지막으로 나의 첫 코드기여를 도와주신 개발자 정상현 a.k.a Resten1497 선배님에게 감사를 표한다.
Special Thanks to
메인테이너: Resten1497
정상현님의 용산03봇에 대한 글도 읽어보세용
'개발' 카테고리의 다른 글
Vitepress로 마크다운 기반 TIL 저장소를 만들자. (0) | 2024.07.10 |
---|---|
2024년, 중학생이 개발자를 꿈꾼다면 특성화고는 아직 할만한 선택지다. (1) | 2024.06.14 |
랜덤 한국어 명언 API 개발 (1) | 2024.04.30 |
1. 8살짜리 버스_봇에 오픈소스 기여를 해보자. 프젝 설명 및 이슈 생성 (1) | 2024.04.19 |
개발 블로그, 왜 해야 하고 절대로 쓰면 안되는 글 알려드림 (1) | 2024.03.30 |