개발자인데 데이터 정리를 하라고요?

브런치에 기록했던 글을 가지고 왔다. 


회사에서 하기 싫은 일이 주어질 때 그것을 해야 할까 아니면 하지 말아야 할까?

만약 계속해서 그 일이 나에게 주어진다면? 그리고 그 일의 역할과 책임이 나로 굳어지게 된다면?

나에게 데이터 일이 그랬다.  


개발자로 근무하던 회사의 초기 시절 데이터 부서가 따로 있지 않아서 상용, 개발 상관없이 모든 데이터에 접근이 가능했다.

언제부턴가 사업부서에 필요한 데이터를 작성하는 일을 해주게 되었고 하나씩 하다 보니 개발뿐만 아니라 데이터 작성하는 일 또한 내 일이 되었다.


맞지 않는 데이터들, 쿼리마다 달라지는 데이터 수치들, 돌릴 때마다 원인을 알 수 없는 변화들이 많은 데이터 안에서 제출한 데이터에 대해 신뢰가 가지 않았던 적도 있었다.


 요청 온 데이터의 원본 크기가 엄청나게 클 때는 쿼리를 돌리는데도 시간이 오래 걸렸고 내 책상 앞 유리에 밤이 가득 찬 채로 작은 글씨의 숫자들을 바라보고 있다 보면 개발자인지 쿼리 돌리는 사람인지 헷갈릴 때도 있었다.


개발 공부를 처음 시작했을 때 학원 수업에서 진행했던 SQL 수업은 정말 재밌었고 공부 중에 치른 입문자용인 SQLD 자격증도 공부한 만큼 점수가 잘 나왔고 그렇게 SQL 쿼리를 짜는 것도 좋아했으나

나는 개발을 하는 일이 재미있는데 이렇게 반복적인 쿼리를 돌리고 오래 걸리는 DB를 언제까지 이렇게 해야 하는 것일까 생각하며 씁쓸한 커피를 마셨던 적도 있었다.  


데이터를 작은 우리 회사 개발팀에서 가장 많이 만지게 되다 보니 블록체인상의 거래들, 지갑들의 값들도 데이터로 정리하고 거래소의 자산 수치와 차이가 없는지 비교해가면서 오차의 차이를 밝혀내는 일들 또한 재밌게 하게 되었고 우리 회사가 관리하고 있는 DB의 테이블들의 각각의 역할들을 많이 알게 된 시점이 되었다.

개발하면서 알게 된 많은 칼럼들의 역할들, 요청 에러 처리를 하면서 알게 된 역할들, 입출금, 거래, 회원들의 수치들을 제출하면서 알게 된 테이블의 쓰임을 알게 되면서 운영하는 데에도 많은 도움이 된다는 것을 느꼈다.


여전히 변화하는 데이터 테이블 안에서 고군분투하고 있지만 요즘 나는 데이터들을 가까이에 두고 항상 주의 깊게 보며 늘 의문을 품는 태도가 얼마나 중요한지 깨닫게 되는 사건 2가지를 만나게 되었다.


첫 번째는 수수료 관련된 오래된 코드의 문제를 발견한 일이었다.

거래 수수료의 판매, 구입 수수료가 동일해야 하는데 두 개가 오차가 나는 것이 아닌가 이상하다고 생각하고 최종적으로 거래 체결 후 자산을 반영해주는 코드를 찾아봤는데, 원화 마켓에서 비트코인마켓으로 변경이 되어 사용하고 있는 코드가 판매와 구입 수수료 계산식이 다르게 들어가고 있는 것이 아닌가

이 코드는 무려 4년 전인 2019년에 만들어져 있었다.

코드를 고치고 그날 나는 팀장님께 오늘은 밥값은 했다고 말씀드리며 퇴근했다.


두 번째는 모바일 세션에 관련한 문제였는데 우선 기본적으로 많은 유저들이 있는 곳은 아니라 이 문제가 조금은 늦게 발견된 것 같다.

모바일로 사용하면 1년의 쿠키를 생성해서 로그아웃이 되지 않게 사용을 하고 있기 때문에

회원 거래 등을 하기 위한 인증절차 A에 관련된 데이터를 보고 있는데, 아무래도 이상한 것이었다. 현재 상태는 휴면이고 기록을 봤을 때 휴면 해제가 되어 있는 기록은 없었다. 그런데 인증절차 A를 한 시점은 휴면이 된 이후의 최근이었다.

로그인한 기기가 모바일로만 되어 있는지 히스토리 데이터를 확인하고 로그인 기록과 인증절차 A를 한 시점 등을 살펴보면서 또 휴면 테이블과 일반 테이블의 데이터의 차이를 비교하면서 이 사람의 아이디가 휴면이 되었으나, 1년 쿠키가 유지되고 있기 때문에 휴면 해제가 되지 않은 상태에서 인증절차 A가 진행되었던 것을 알아내었다.
이 문제를 해결하기 위해 세션을 끊어주는 인터셉터 코드를 확인해 볼 수 있었다.


두 가지 모두 아주 중요한 일이나 데이터가 없었다면 쉽게 발견할 수 없었을 것이고 궁금증을 가지고 분석하는 노력이 없었다면 문제점을 찾지 못하고 문제가 더 커졌을 것이다.


반복적인 작업이 많아서 하고 싶지 않았을 때도 있었으나 데이터를 조사하고 생각하고 자료를 만들며 열심히 했던 일들이 이렇게 실제 개발 운영 시에도 큰 도움이 된다는 것을 발견하고 데이터를 가지고 크게 보는 시각이 얼마나 중요한지 알 수 있었던 사건들이었다.


그래 여전히 데이터는 나의 일이다. 그러나 나는 조금 태도가 바뀌었다. 필요한 데이터를 드리기만 하는 것이 아닌 이유나 차이를 발견하고 그 속의 의미를 찾으려 노력하고 있다는 점이다.  

댓글