테이블명을 잘 지어야 하는 이유

2024년 9월 12일 목요일

Today I Learned

날짜

2024년 9월 12일 목요일

내용

이름을 처음부터 잘 짓기

기존 인스타그램 코멘트의 기능을 떼오고, 새로 개발한 기능을 합쳐 새로운 서비스를 만들고 있다. 만들면서 계속 느끼는건, 처음 지을때 이름을 잘짓는 거다. 예를 들어 인스타그램에서 가져온 게시글을 저장하는 테이블은 최초에 InstagramCommentMedia 라고 지었다.

근데 두 서비스를 Instagram Comment와 Instagram Feed라는 이름을 가지긴 했지만, 변수명으로 사용하기엔 부적절하지 않나 생각이 들었다. 결국 인스타그램 코멘트는 인스타그램 비즈니스 계정과 연관된 서비스고, 인스타그램 피드는 인스타그램 일반 계정과 연관된 서비스니까. 서버쪽에선 이 뉘앙스를 풍기는게 유지보수에 유리할거라 생각했다. 그래서 InstagramBusinessAccountMedia라고 지었다. 인스타그램 비즈니스 계정에 속한 미디어라는 의미다.

실제 인스타그램에선, 게시글을 미디어라는 이름으로 부른다. 근데 쇼피파이에서 미디어는 이미지나 비디오 등 그래픽 데이터를 의미한다. 이 부분이 상당히 헷갈릴 수 있겠다는 생각이 들었다. 나는 기본적으로, 데이터를 받아온 곳의 원본 이름을 그대로 유지하는게 좋다고 생각했었는데 꼭 그런게 좋은 건 아니라는 생각으로 바뀌었다. 각 플랫폼마다 사용하는 단어의 적확한 의미에 차이가 있을 수 있기 떄문이다. 위에서 말한 Media를 대하는 메타와 쇼피파이의 입장 차이처럼.. 그래서 바꿔주었다. InstagramBusinessAccountPost 로..

로그인 로직이 페이스북은 삭제되고 인스타그램으로만 통일되기로 바뀌었다. 더이상 일반 계정에 관한 API를 지원하지 않는 메타의 정책때문이다. 그래서 InstagramBasicACcountPost 라는 테이블은 사라졌다. 따라서 더이상 테이블이름이 Business 가 들어갈 필요가 없어졌다. 테이블 이름은 InstagramAccountPost 가 되었다.

개발을 하다 생각이 들었다. 도대체 저기에 Account는 왜 들어가야 하지..? 계속 쓰면서 거슬렸다. 그래서 또 바꿨다. InstagramPost 가 되었다.

이렇게 바뀌는게 단순 마이그레이션에서 끝나는 문제가 아니다. 내부 필드의 이름도 바꿔주어야 한다. 그럼 각종 함수에서 사용하는 곳을 모두 찾아 바꿔주어야 한다. 혹시나 프론트에서 사용하는 필드라면 API도 어긋나니 다시 점검해야 한다. 팀이 두명이라 큰 문제 없이 넘어가고 있는 것 같다.

처음부터 잘 짓자.

회고

팀의 변수명을 통일하는 문서를 하나 써볼까.