javascript - 오류 우선 콜백패턴 (error-first callback pattern)

들어가기

오류 우선 콜백패턴(error-first callback pattern)은 자비스크립트에서 콜백을 사용할때, 콜백과 관련된 에러를 처리를 위한 일종의 코딩 약속과 같다.

오류 우선 콜백패턴 (error-first callback pattern) 규칙

  1. 콜백의 첫 번째 매개변수에 에러 객체를 사용한다.
  2. 에러가 null이나 undefined이면 정상이라고 판단한다.

1
2
3
4
5
6
7
8

const fs = require('fs');

const fname = "hanumoka_is_good.txt";
fs.readFile(fname, function(err, data){
if(err) return console.error(`error reading file ${fname} : ${err.message}`); // 반드시 return을 해야 한다.
console.log(`${fname} contents: ${data}`);
});

hanumoka_is_good.txt파일이 없는 상태에서 위 코드 실행결과

위 예제는 Node에서 파일을 읽어내는 소스이다. if 조건문에서 err를 판단하여, 에러내용을 콘솔에 찍고 return 한다. 중요한 점은 return을 해야 한다는 것이다.

예를 들어 hanumoka_is_good.txt 파일이 존재하지 않고, 위 소스를 동작시켰을때 err를 잡는 조건문에서 return을 하지 않는다면, hanumoka_is_good.txt파일이 있을경우 동작해야 할 다음 소스가 동작해 버리게 된다.

파일이 없는대도 아래 소스가 동작 한다는 것이다.

1
console.log(`${fname} contents: ${data}`);

hanumoka_is_good.txt파일이 없는 상태에서 return 하지 않는 경우 실행결과.

프로미스를 사용하지 않으면 오류 우선 콜백은 노드 개바의 표준이나 다름없다. 콜백을 사용하는 인터페이스를 만들 때는 오류 우선 콜백 패턴을 지키키면서 코딩을 해야 한다.