추천 서비스용 학습 데이터셋 설계

추천 서비스에 올릴 데이터셋 세 가지의 스키마와 정리·추출 SQL을 3일 동안 설계했습니다.

기간
2021.01 (3일)

문제와 배경

추천 서비스에 올릴 학습용 데이터가 필요했습니다. 추천 서비스는 상호작용, 사용자, 상품의 세 데이터셋을 CSV로 받았고, 운영 중인 서비스의 회원·주문·상품 표에서 이를 만들어야 했습니다.

원본에는 값이 비어 있거나 정해진 범주 밖인 경우가 있어 먼저 정리해야 했습니다. 원본 표를 로컬 DB로 옮겨 작업하는 절차도 필요했습니다.

데이터가 추천 서비스에 닿기까지

운영 DB의 표 7개를 로컬로 옮겨 정리하고 추출하는 데까지 썼고, CSV 생성과 업로드는 코드가 없다.

  1. 운영 DB 표 7개외부

    회원·주문·상품 원본

  2. 내보내기 · 로컬 적재사람

    원본 표를 로컬 DB로 옮겨 작업하는 절차

  3. 정리 SQL시스템

    빈 값과 범주 밖 값을 null로 바꾼다. 2개

  4. 추출 SQL시스템

    사용자·상품 2개를 썼고, 상호작용은 TODO

  5. CSV 3개시스템

    생성 코드 없음

  6. 추천 서비스 업로드외부

    기록 없음

만든 것

  • 데이터셋 스키마 3개를 설계했습니다. 상호작용, 사용자, 상품이며 범주형 항목을 표시했습니다.
  • 빈 값과 범주 밖 값을 null로 바꾸는 정리 SQL 2개를 썼습니다.
  • 사용자용과 상품용 추출 SQL 2개를 썼습니다. 상호작용 쿼리는 TODO로 남았습니다.
  • 원본 표를 로컬 DB로 옮겨 작업하는 절차를 문서로 정리했습니다.
  • 처음에는 ORM과 테스트 도구로 시작했다가, 단순하게 가려고 SQL과 DB 클라이언트만 남기고 걷어 냈습니다.
프로젝트 개요
기간
2021.01 (3일)
역할
단독 개발 (설계·SQL)
팀
본인 1명 (본인 커밋 8개)
플랫폼
SQL과 Node.js 스크립트, 설계 문서
스택
SQL · Node.js · MySQL client
배경
운영 중인 서비스의 DB에서 추천 서비스용 학습 데이터셋을 만드는 작업

결과

스키마 3개와 사용자·상품 추출 쿼리까지 썼고, 상호작용 쿼리와 CSV 생성은 만들지 않았습니다.

  • 데이터셋 스키마 3개와 사용자·상품 추출 쿼리까지 3일 동안 썼습니다.
  • 상호작용 쿼리는 작성하지 못했습니다. 실행 코드는 DB 연결을 확인하는 한 줄뿐이고, 실제 CSV를 만들었거나 추천 서비스에 올렸다는 기록은 없습니다.

설계 문서와 골격까지의 짧은 작업입니다. 결과로 내세울 수치는 없어 적지 않았습니다.

3일 동안의 설계 작업

첫날 설계 문서와 스키마를 쓰고, 둘째 날 ORM을 걷어 냈으며, 셋째 날 스키마를 바로잡아 3일 만에 마쳤다.

1–3시작 → 마지막 커밋 · 2일
  1. 시작

    설계 문서와 스키마

  2. ORM 걷어 냄

    DB 클라이언트와 SQL만 남김

  3. 스키마 정정

    문서 링크 정리