알 수 없는 문제

Published at 2025-05-28

TIL

날짜: 2025년 5월 28일

알 수 없는 문제를 만났다.

antd를 사용하는 리액트 백오피스 프로젝트가 있는데, 테이블 컬럼 중 날짜 형식을 바꿔달라는 요청이 있었다.

이미 다른 컬럼에서 같은식으로 날짜 형식을 보여주고 있어서 동일하게 코드를 추가하였다.

아래 코드의 render 부분을 추가했다.

        {
          dataIndex: 'cashbillNtsResultDate',
          title: '발행일자',
          align: 'center',
          render: (cashbillNtsResultDate: string) =>
            cashbillNtsResultDate
              ? dayjs(cashbillNtsResultDate).format('YYYY-MM-DD HH:mm:ss')
              : '-',
        },

그 후, 스테이징 환경까지 적용하고 확인 완료되어 prod에 배포하려는데 젠킨스에서 빌드 실패가 떴다.

일시적인 에러인가 싶어 재시도 해도 똑같길래 이것저것 알아봤는데, 정확한 원인을 알 수가 없었다.

의문점은 staging 환경은 문제없이 빌드되었는데 왜 prod에서는 안되냐는것과 이미 다른 컬럼들에도 똑같이 dayjs().format()으로 사용중인데 왜 이번에 추가한 부분만 실패가 뜨냐는 점이다.

테이블의 다른 날짜 컬럼과 다른 부분은 그냥 코드가 길어서 여러줄로 나뉘었다는것 뿐.

그래서 이유는 잘 모르겠지만 다른 컬럼들처럼 한줄로 써봤다.

        {
          dataIndex: 'cashbillNtsResultDate',
          title: '발행일자',
          align: 'center',
          render: (cashbillNtsResultDate: string) =>
            cashbillNtsResultDate ? dayjs(cashbillNtsResultDate).format('YYYY-MM-DD HH:mm:ss') : '-',
        },

이렇게 수정하니까 prod 빌드가 되었다.

도저히 원인을 모르겠다ㅠ.ㅠ

  • 로컬에서 prod 환경으로 빌드 시도할때는 문제 없었음. (yarn build:prod)
  • 운영 환경일때 따로 적용되는 빌드 옵션 없음. (tsconfig.json는 하나만 사용)
  • 시간이 지난 후 다시 빌드해봐도 똑같이 스테이징은 성공하고 운영에서만 실패함.

TIL로 올리는게 맞나.. 싶기도 했지만 원인을 찾아보면서 이것저것 잡지식을 얻기도 했고, 나중에 원인을 알아내서 크게 배운점이 생길수도 있으니 기록해둔다.