코드를 작성할 때 생각하고 작성하기

황토소금·2024년 10월 15일

TIL

목록 보기
37/49

들어가며

나는 확실히 어떤 A라는 기능을 위해 코드를 작성하고 있다가 A와 연관이 있는 B라는 작업이 등장하면 나도 모르게 A를 냅두고 B를 하는 상황이 많이 있었다.

그래서 팀원이 피드백해줬는데 좋은 것 같아서 기록해둔다.
땡큐 팀원

비동기적으로 작업하기?

내 마음대로 말을 지어내봤는데 팀원에게 조언받은 내용이 비동기 작업처럼 다가와서 적어보았다.

어제 상황을 예로 들면 앱스토어에 앱을 제출하기 위해서 dev브랜치를 빌드하려고 하는데 dev 브랜치에서 일부 기능에 문제가 있었다.

생각해보면 dev 브랜치는 항상 문제가 없는 상태로 유지되어야 하는데 그러지 못한 점이 문제인듯
이것의 원인은 dev 브랜치에 머지를 했을 때 e2e로 기능을 테스트하지 않았기 때문

그래서 문제를 해결해 나가는데 A 기능에서 문제가 발생해서 고치는 도중에 문제의 원인이 B기능에도 영향을 미치는 것을 확인했다. 그래서 어느새 보니 B기능을 고치고 있었다. 이렇게 고구마 줄기 따라가듯 문제를 해결하고 있으니 커밋 단위도 애매해지는 것이다. 난 분명 A기능만 고치려고 했는데 B기능도 고치고 있게 되니까

그래서 팀원이 문제를 발견하면 그 즉시 해결하려고 하지 말고 어떤 기능에 문제가 있는지 탐색해서 문제를 다 파악하고 난 뒤에 하나하나 해결해 나가는게 어떻겠냐고 피드백해주었다!

그래서 실제로 해보니 좋았다.
실제로 나는 아래처럼 확인해야 할 기능들을 적어두고 문제가 생기면 바로바로 해결하려고 했다.

AS IS
확인 순서

  • 모든 기능이 잘 동작하는가
    데이터 모두 잘 받아오는가
    투데이투두데이터
    카테고리 데이터
    인박스투두데이터
    patch, post 기능 다 잘되는가
    투두 수정
    투두 생성
    투두 순서
    투데이투두데이터를 잘 받아오는지 확인하다가 정신 차리고 보니 카테고리 데이터 fetch 부분을 보고 있다!

TOBE
기능 확인은 위 순서대로 하되
문제를 파악해서 적으며 문제들을 종합했다.

  • api 함수에서 401 권한 에러 뜨는 문제
    • api에서 엑세스토큰을 반환하는 metadata함수에 비동기가 적용되지 않아 auth에러가 발생
  • 투두 생성이 안된다 - ERROR TypeError: Cannot read property 'format' of undefined, js engine: hermes
  • 서브투두 삭제 안댐
  • inbox에서 투두 생성할 때 invalid order
  • 카테고리 생성할 때 request content에 이상한 값 들어감

이런식으로 ASIS처럼 문제를 바로바로 해결하는게 아니라 문제를 파악하면서 테스크큐에 문제를 넣어두고 파악이 다 끝나면 하나씩 꺼내서 해결하는 방식인 거다.

의존성 줄이기?

그리고 해당 문제들을 전체적으로 분석했을 때 모두 엑세스토큰을 관리하는 함수가 변했기 때문에 생기는 문제였다.

그리고 이 과정에서 다른 모든 api 함수들이 metaData라는 request header를 관리하는 함수에 의존하는데 이 metaData함수를 수정하니까 모든 api 함수에 영향을 미치는 것이다.
그래서 모든 api함수를 찾아가며 거기서 호출되는 metaData에 넣어주는 인자를 수정해주었는데 수정하면서도 이런 관계로 작성된 코드는 좋지 않다는걸 느꼈다.

어떻게 해결해야할까

profile
안녕하세요, 반갑습니다.

0개의 댓글