개발자와 소통하기 (feat. Unique key)

갓 회사에 입사했을 때였습니다. 아주 간단한 기능을 제안했는데, 개발자로부터 그 기능은 구현하기 쉽지 않다는 피드백을 받았어요. 그때 개발자와 이야기를 나누면서 저는 새로운 개념을 이해했는데요. 그건 바로 외부 스크래핑 데이터 에 대한 것입니다. 일반적인 데이터베이스에서 데이터들은 각 데이터마다 Key값을 갖습니다. 보통 Index라고도 불리는데 생성되는 시점에 따라 순차적으로 Index가 부여되어서 각 데이터들을 구분합니다. 따라서 이 데이터들은 언제 어디서든 붙잡을 수 있어요. Index가 있으니까요. 저희 회사 같은 경우는 외부 사이트에서 데이터를 스크래핑해서 서비스를 제공하는 곳이었어요. 그런데 외부 사이트에서는 Index를 제공해주지 않아서 데이터를 구분하기가 어려웠어요. 자연스럽게 적재한 순서대로 우리가 부여해주면 되지! 라고 생각했죠. 그런데 개발자로부터 그것 또한 불가한 일이라는 피드백을 받았어요. 데이터가 너무 유동적이었기 때문이예요. 여기서 유동적이라는 말의 의미는 기존의 것 이외에 새로운 데이터가 추가되는 것 이외에 기존 데이터들이 바뀌는 경우도 의미해요. 예를 들어, 카드 소비 데이터 같은 경우 오늘에는 1000원 승인 데이터였는데 내일에는 1000원 취소 데이터로 바뀔 수가 있습니다. 그래서 도대체 오늘의 1000원 승인 데이터와 내일의 취소 1000원 데이터를 같다고 봐야할지, 다르게 봐야할지조차 혼란스러웠습니다. 결국 외부 스크래핑 데이터를 가공해서 서비스 하기 위해서는 각 데이터들을 구분할 수 있도록 Unique한 Key를 정해주는 것이 가장 중요합니다. 보통은 스크래핑한 데이터를 조합해서 Unique한 Key를 생성하는데요. 여기서 Unique라는 것은 유일무이하다는 것을 의미합니다. Key값만 잘 만들어놓아도 정말 많은 것들을 해볼 수가 있습니다. 단적인 예로 이미 1번 스크래핑을 한 상태에서 추가적으로 데이터를 가져올 때 스크래핑 시간을 단축할 수 있습니다. Key값이 다른 데이터만 가져오면 되니까요. 또한 카드 소비 데이터와 고객이 입력한 사용처를 매칭해주면 간단한 가계부도 제공할 수 있어요. 데이터 이미 알만큼 알지! 라고 생각했던 저에게 스크래핑 데이터는 신선한 충격이었습니다. 데이터에 대한 이해도도 높아진 좋은 경험이었습니다.

다음 내용이 궁금하다면?

또는

이미 회원이신가요?

2022년 11월 10일 오후 1:33

조회 939

댓글 0