기술개발 초안 작성

2024년 2월 23일 금요일

Today I Learned

날짜

2024년 2월 23일 금요일

내용

내가 짤 코드 생각해보기

이전부터 항상 느끼던 갈증은 “내가 어떻게 코드를 작성할 것인가”를 미리 생각하지 못하는 것에서 발생했다. 직접 VS Code 에 입력할 때가 되어서야, ChatGPT에게 물어보고 나서야 내가 나아갈 방향을 안다는 것은 내가 개발자가 아닌 코드싸개에 불과하다는 걸 시사한다.

log240223.png

지난 1월 30일에 작성한 TIL에 있던 내용이다. 내가 뱉은 말을 지키기 위해, 실행에 옮겼다. 어제 개발자들끼리 회의도 있었기 때문에 충분히 가능하다고 생각했다.

데이터 구조 생각하기

필요한 데이터를 알고 있었기 떄문에, 테이블을 나누어보았다. 위젯에 관한 테이블에 디자인 설정값까지 넣으면 너무 많은 필드가 생성될 것 같아 디자인 값이 저장되는 별도의 테이블을 만들었다. 또한 이 기능의 성과를 측정하기 위해 위젯이 활성화 되어있는 시간을 알아야 했다. 위젯 설정값에 대한 레코드에 계속 접근하기 보단, 활성화 여부를 표시하는 로그 테이블을 하나 추가하는 아이디어를 조언으로 받았다.

  1. 위젯 전체에 대한 테이블
    1. 위젯의 id, 이름, 포함하는 상품들 등
  2. 위젯의 디자인에 대한 테이블
    1. 상품 간 간격, 행렬 값, 글자 크기 등
    2. 1번 테이블과 관계가 필요
  3. 위젯의 활성화 로그에 대한 테이블
    1. 위젯의 id, 활성화 여부, 변화 시간
    2. 1번 테이블과 관계 필요
  4. 위젯에 표시되는 데이터에 대한 테이블
    1. 조회수, 판매량, 재고 등
    2. 상품과 관계가 필요하다.

이를 바탕으로, ERD Cloud를 이용해 ERD를 작성했다.

기능 생각하기

이제 내가 구현해야 할 기능을 최대한 저수준에서 생각했다. 함수에 필요한 데이터를 어디서 가져올 것인지, 새롭게 필요해진 데이터가 있다면 어떻게 만들 것인지에 대한 계획을 적었다.

  1. 최근 구매 이력 데이터
  2. 최근 작성 리뷰
  3. 기준 점수 이상 리뷰 수
  4. 방문자수
  5. 판매량
  6. 잔여재고
  7. Best Seller 상품 선택
  8. Top Reviewed 상품 선택
  9. New Arrival 상품 선택

아직 위젯 템플릿에 대한 부분, 화면에 띄우는 것에 관한 고민이 부족하지만 많이 발전했다. 추가적인 구현이 필요한 데이터는 무엇인지 파악하니 문제가 명확히 정의됐다. 그만큼 고민에 대한 해결도 수월할 것이다. 앞으로도 습관을 들여놓으면 점차 머릿속에서 굴릴만큼 능숙해지지 않을까?

회고

다음 스프린트에 대한 막연한 걱정이 많았는데, 조금은 해결된 것 같아 다행이다.