로그 데이터와 테이블 관계

2024년 7월 12일 금요일

Today I Learned

날짜

2024년 7월 12일 금요일

내용

관계되지 않은 테이블

유저가 데이터를 가져오는 작업은 로그로 남기려고 한다. 다소 시간이 걸리는 작업이라 유저에게 임포팅 상태를 말해주기 위함이다. 로우데이터를 가져오기 떄문에, 로우데이터 테이블과 관계되어 NaverRawData 테이블의 하위 테이블로 NaverImportLog 를 만들었다. 문득 든 생각은, 이후 플랫폼이 추가될 떄마다 로그 테이블을 따로 둬야 하는게 맞는지에 대한 고민이다. 애초에 상태를 추적하기 위해서도 있지만, 동시에 다수의 임포팅작업이 진행될 경우 너무 많은 부하가 걸릴 수 있어 이를 제한하기 위한 목적도 있었다. 물론 이후 테스트를 통해 조절할 생각있지만.. 플랫폼(네이버, 메타, 카카오 등)별로 로그를 따로 두면 동시에 발생하는 임포팅 작업은 플랫폼 별 1개로 제한해야 하나? 그렇다면 제한하는 의미가 있나? 만약 통틀어서 1개만 동시에 진행되도록 해야한다면 현재 진행중인 작업이 있는지 확인하기 위해 모든 플랫폼의 로그 테이블을 탐색해야 한다. 그리고 새로운 플랫폼이 추가될 떄마다 이 부분에 대한 수정이 필요하다. 너무 불합리하다. 그래서 로그 테이블은 아에 독립되서 두기로 했다. 단, 탐색을 용이하게 하기 위해 플랫폼 필드를 추가하고, 로우 데이터 아이디도 추가했다. 두 값에 따라 연관된 로우데이터를 찾기 위해 향해야 할 테이블을 설정할 수 있다.

회고

어렵다 어려워