바깥 this를 유지해야 한다
콜백, 타이머, Promise, 배열 메서드처럼 주변 문맥의 `this`를 그대로 쓰려면 화살표 함수가 자연스럽습니다.
화살표 함수와 일반 함수의 차이는 짧고 길고가 아니라 `this`가 선언 위치를 따르는지, 호출 주체를 따르는지에 있습니다.
콜백, 타이머, Promise, 배열 메서드처럼 주변 문맥의 `this`를 그대로 쓰려면 화살표 함수가 자연스럽습니다.
객체 메서드, 생성자, 이벤트 핸들러처럼 실행 시점의 호출 주체가 의미를 만들면 일반 함수가 안전합니다.
`map`과 `filter`는 짧은 화살표 함수로 값의 변환 의도를 드러냅니다.
`this.name`처럼 객체 자신을 읽어야 하면 메서드 축약형이나 일반 함수를 씁니다.
이벤트 대상의 `this`가 필요하면 일반 함수로 호출 주체를 보존합니다.
`new`로 인스턴스를 만들거나 `prototype`을 써야 하면 화살표 함수는 맞지 않습니다.