데이터의 소스를 찾아서

2024년 2월 27일 화요일

Today I Learned

날짜

2024년 2월 27일 화요일

내용

Underscore(_)

기존의 코드들을 살펴보다가 한 가지를 발견했다.

def test():def _test(): 의 차이는 무엇인가? 어떤 함수들은 정의 앞에 밑줄이 그어져 있었다. 저번에 한번 봤을 떈 오타겠거니 넘어갔는데 그런 함수가 많다! 관련된 부분을 찾아봤다. 클린 아키텍처나 클린코드 등의 책을 읽으면 수 없이 많이 나오는 이야기지만, 정의된 함수를 다른 곳에서 알 수 있게 할 것인가 말 것인가는 중요한 고민이다. 이에 대한 정답은 아직 나도 공부중이라 답변은 힘들고.. javascript에는 public, private, protected 등 접근을 제어하는 설정들이 존재한다. 반면 이 개념이 python에는 없다. 대신 표시하기 위해 관습적으로 _나 __(2개)를 사용한다. 1개인 def _test(): 는 내부적으로 사용되는 것이라 는 뜻이고, 2개는 클래스 내부에서만 사용되는 메서드나 속성에 사용된다. 결론은 여기 말고 다른곳에서 쓰지말라는 뜻.

원피스가 존재하지 않는 걸 확인한 루피는 빡칠까? 후련할까?

계속해서 다음 스프린트과 관련된 로직들을 공부하고 있다. 내 현재 상황에 대해 정리해봤다.

내가 파악한 것

  1. 세일즈 팝업 안에 뜨는 문구는 metric 테이블의 content 필드 안에 있다.
  2. 세일즈 팝업에 필요한 데이터는 스토어의 메타필드에 저장해둔다.

내가 모르는 것

  1. 메타필드에 저장할 데이터는 우리 서버에 있는 데이터를 탐색하여 만든다. 예를 들어, 고객이 특정 상품 상세 페이지에 접속한 내용을 저장하는 테이블이 있다. 그럼 애초에 이 테이블에 있는 데이터는 누가 어디서 어떻게 보낸건가?
  2. 세일즈 팝업이 출력될 떄, “메타필드에 있는 A 데이터를 포함해라”라는 스크립트는 어디에 작성되어 있는가?

모르는 것을 정말 열심히 곳곳을 뒤져봤지만 해결하지 못했다. 당연하게도, 고객이 스토어에 접속했을 때의 일이니 Shopify 쪽에 관련된 설정이 되어있지 않을까? 따라서 나는 Shopify 테마 에디터에서 추가되는 corescript나 sales popup과 관련된 스크립트에 있을 것이라고 예상했다. 추가되는 이 스크립트는 어디서 확인할 수 있는가… 는 도저히 찾을 수 없어서 팀원분들에게 질문했다. 예상은 맞았고, 구체적인 코드는 다른 repository에서 찾을 수 있었다. 내가 죽었다 깨어나도 찾을 수 없는 곳에 있었다. 질문하길 다행이다..

내가 확인하고 싶은 부분은, “고객이 상품 상세정보 페이지에 진입했을 때 우리 데이터베이스까지 해당 사실이 전달되는 과정” 이었는데, 도저히 없었다. 1시간의 사투 끝에 도움을 얻어 그게 없다는 사실을 깨달았다….

  1. 세일즈 팝업 작업 당시 고객의 방문 사실을 shop 서버로 전송하도록 설계
  2. 위젯 개선작업 중 app proxy로 설정할 수 있는 subpath가 1곳이여서 이를 review서버로 수정
  3. 이 과정에서 의사소통 문제로 고객 방문 데이터 발송이 수정되지 않고 각주처리

까지가 현 상황이었다. 난 리뷰서버로 보내는 엔드포인트만 열심히 찾고 있었으니 못찾지.. 이번 스프린트 떄 포함되는 부분이라 자연스레 해결될 부분이니 다행이다. 얻은 교훈은, 문서화와 의사소통은 정말 중요하다. 만약 당시 작업 인원이 지금 없었다면 난 아직도 찾고 있었겠지..?

회고

고민이 해결되어 후련하다!