이번 글을 단순 기록용으로 작성할 예정이다. 최근 가말다 프로젝트의 리펙토링을 하던 중 유저의 프로필 이미지가 불러오지 않는 오류를 발견했다. 처음에는 리펙토링 도중 새롭게 작성한 코드 때문인줄 알았다. 하지만 원인은 다른 곳에 있었다. 에러의 원인을 어떻게 찾았냐 하면.... 브라우저의 콘솔 창을 보고 알게 되었다. 최근 가말다 서비스의 도메인을 변경한 기록이 있다. 기존에 사용했던 도메인은 .site이었지만 새롭게 변경한 도메인은 .co.kr이다. 이미지 서버의 도메인도 당연히 변하게된다. 기존 http://gamalda.site:(이미지서버 포트)/(이미지 주소) 변경 http://gamalda.co.kr:(이미지서버 포트)/(이미지 주소) 그런데 이미지 서버에서 Client로 이미지 주소를 보내줄..
에러
jest를 이용해 api를 테스트하기 위해 코드를 작성하고 테스트를 돌려보다가 제목과 같은 에러를 만났다... 위의 에러는 jest 환경에서 ES6 문법을 이용해 import할 때 발생한다고 한다. 특히 axios의 버전이 업그레이드 되어 컴파일 과정에서 ES Commonjs로 컴파일 되지 않으며 발생하는 문제이다. 이러한 문제를 해결하기 위해 StackOverflow의 글을 참고해 해결했다. 우선 @babel/core, @babel/preset-env, @babel/preset-react, babel-jest 를 설치해주자 npm install @babel/core @babel/preset-env @babel/preset-react babel-jest --save-dev 그리고 babel.config...
자바스크립트에는 하위 에러 타입(TypeError, ReferenceError, SyntaxError 등)뿐만 아니라, 일부 에러는 컴파일 시점에 발생하도록 문법적으로 정의되어 있다. 자바스크립트에서는 컴파일 도중에 조기 에러로 붙잡아 던지게 되어있는, 여러가지 조건이 있다. 구문 에러( a = , 등과 같은) 는 물론, 자바스크립트 문법에는 구문상 오류는 아니지만 허용되는 것들도 정의되있다. 코드가 실행되기도 전에 발생하므로 이런 에러는 try ... catch로 잡을 수 없으며, 그저 프로그램 파싱/컴파일이 실패한다. 자바스크립트 구문상 아무 문제가 없지만 올바르지 않은 정규 표현식은 조기 에러를 던진다. var a = /+foo/; // 에러 할당 대상은 반드시 식별자여야 하므로 다음 예제에서 42..