-
Notifications
You must be signed in to change notification settings - Fork 0
DOCS.유틸함수
negu63 edited this page Aug 31, 2021
·
4 revisions
우리 프로젝트의 백엔드는 아래 이미지와 같이 이루어져 있습니다.
우리 프로젝트의 에러 처리는 아래와 같이 하고 있습니다.
throw errorGenerator({
message: 'POST /api/auth - account not found',
code: 'auth/account-not-found',
});
아래와 같이 에러를 만들어서 throw 해주면,
function errorHandler(err: CustomError): ErrorType {
switch (err.code) {
case 'auth/account-not-found':
return { statusCode: 404, errorMessage: err.customMessage || '없는 계정입니다' };
default:
return { statusCode: 500, errorMessage: '다시 시도해주세요.' };
}
}
아래와 같이 받아서 응답 처리를 해줍니다.
errorGenerator
함수는 단순히 에러를 저 포맷에 맞게 Custom Error를 만들어주는 역할을 해서 utils
의 폴더에 넣었습니다. 하지만 과연 이 프로젝트에서만 사용되는 errorHandler
도 utils
폴더에 넣는게 맞는가?에 대한 의견차이가 나타났습니다.
-
유틸파 :
errorGenerator
가utils
폴더에 있으니, 에러를 관리하는errorHandler
도 같이utils
폴더에 있는게 맞다! -
분리파 :
utils
폴더라는 것은 어느 프로젝트에 들어가든 사용이 가능한 조그만 함수들이니, 이 프로젝트에 종속된errorHandler
는 따로 분리하는 것이 맞다!
이렇게 분리가 된 이유가 뭘까요? 분리파인 저의 생각으로는 유틸파와 분리파가 utils
폴더의 역할에 대해서 다르게 생각하고 있기 때문이 아닐까 싶습니다.
결국 utils
폴더 안에 모두 다 넣기로 했습니다. 크게 기능에 문제가 되는 상황도 아니었고, 웹 표준을 어기는 일도 아니었습니다. 단순히 파일의 위치가 어디에 있는게 옳은 가에 대한 문제였습니다. 중요한 문제도 아니었고, 합의만 된다면 어디에 들어가든 크게 상관 없는 문제였기 때문에 비교적 빠르게 결론을 내릴 수 있었습니다.
- 박기덕(분리파) : 아직도
utils
폴더의 의미는 어느 프로젝트에 들어가든 사용이 가능한 조그만 함수라고 생각한다. 하지만,utils
에 넣어서 해봐도 문제될 부분은 전혀 없었다. 다만 나중에 프로젝트가 커지고 유틸함수가 많아진다면,errorHandler
와 같이 프로젝트에 종속된 함수는 따로 분리하는 것이 더 통일성있지 않을까 생각한다. - 서그림 : 이 문제를 정할 당시에는 큰 의견이 없었다. 그리고 프로젝트를 진행하고 끝난 시점에서 이야기하자면
utils
에 넣은 것이 더 좋은 것 같다. 프로젝트 규모가 훨씬 커지면 모르겠지만, 지금의 규모에서는 그렇다. 백엔드에서 API를 만들기 위해 거쳐야 하는 계층과 파일이 너무 많았고, 에러 처리를utils
에 넣음으로서 그 계층을 한 단계 줄여준 것 같다는 것이 나의 개인적인 이유이다. - 손원우 :
utils
는 어느 프로젝트에 들어가든 사용이 가능한 것들의 집합이라고 생각한다. 그렇다고 해서 에러 처리를 하는 역할이 그렇지 않다고는 말할 수 없는 것 같아서 분리해도 좋고 넣어도 좋다고 생각했다. 확장성을 고려했을때 이후에도 구조의 일관성을 유지하기 위해서는 분리하는 것이 맞는 것 같다! - 윤민상(분리파) :
errorHanlder
는 유틸함수가 아니라고 생각한다. 실제로 아니고 error부분을 같이 관리하고 싶다면 차라리error-generator
를 error 폴더로 분리하는 게 맞다고 생각한다.