-
2019-08-22 개발일지개발일지 2019. 8. 22. 16:19
오늘 작업한 내용은 꽤 재밌는 부분이었다.
나는 지금까지 자바로 타입을 명시해서 에러처리를 해왔어서 자바스크립트의 에러처리는 항상 모호한 문제가 있었는데, 오늘 Error 객체를 extend해서 커스텀 에러 클래스를 만들어서 사용하니 이렇게 편할 수가 없다.
Class CustomError extends Error { constructor(errCode, errName, errMessage, ...params) { super(...params) // 인자 배열을 부모 생성자에게 전달 // 오류가 발생한 위치에 대한 스택 추적 (V8 에진에서만 적용됨) if (Error.captureStackTrace) { Error.captureStackTrace(this, CustomError); } // 디버깅 정보 this.errorCode = errCode; this.name = errName; this.message = errMessage; this.errorDate = new Date(); } } module.exports = CustomError; const CustomError = require('~~/CustomError'); try { throw new CustomError(1, 'testError', '테스트용 에러 발생'); } catch (error) { if (error instanceof CustomError) { ~~~ } }
참고: https://developer.mozilla.org/ko/docs/Web/JavaScript/Reference/Global_Objects/Error
위의 커스텀 에러 모듈을 만들고 로그인, 공지사항, FAQ, 1:1문의의 모든 if else 에러 처리를 try/catch로 변경했다.
그리고 이후 1:1 문의 답변 작성, 수정, 삭제 API를 만들었다.
노드로 개발하니 생산성이 훨씬 오른 것이 느껴진다.
현재 진행하는 프로젝트는 이전 Spring Boot로 개발한 프로젝트와 비슷한 성향을 띄는 기능들이 많은데, 해당 프로젝트를 개발한 기간보다 현재 이 프로젝트를 개발하는 기간이 훨씬 단축되고 있음을 느끼고 있다.
재밌으며 생산적이다!
'개발일지' 카테고리의 다른 글
2019-08-26 개발일지 (0) 2019.08.26 2019-08-23 개발일지 (0) 2019.08.23 2019-08-21 개발일지 (0) 2019.08.21 2019-08-20 개발일지 (0) 2019.08.20 2019-08-19 개발일지 (0) 2019.08.19