학습 목표
- 추상화에 대해 설명할 수 있다.
- 추상화의 관점에서 고차 함수가 갖는 이점에 대해 설명할 수 있다.
- 고차 함수를 통해 사고 수준에서의 추상화를 달성할 수 있다.
가장 큰 이유는 코드 재사용성과 가독성을 높이기 위해서!
코드의 재사용성
코드의 높은 가독성
복잡한 어떤 것을 합축해서 핵심만 추출한 상태 : 추상화
고차 함수의 추상화는 함수를 일반화하고 추상화된 개념으로 변환하여, 함수의 재사용성과 유연성을 높이는 과정!
함수를 추상화하면, 함수가 받는 입력값과 반환값의 형태가 좀더 일반화가 되는데, 이렇게 추상화된 함수는 더 다양한 상황에서 사용될 수 있음
JavaScript를 비롯한 많은 프로그래밍 언어 역시, 추상화의 결과
함수는 사고(thought) 또는 논리(logic)의 묶음 : 추상화의 관점
class Person {
constructor(name, age, job) {
this.name = name;
this.age = age;
this.job = job;
} // 학생, 교수, 직원 등 학교에서 일하는 사람들을 일반화한 개념
study() {
console.log(`${this.name} is studying.`);
}
}
const student = new Person("Alice", 20, "Student");
const professor = new Person("Bob", 40, "Professor");
// student와 professor는 각각 학생과 교수를 나타냄
student.study(); // "Alice is studying."
professor.study(); // "Bob is studying."
// study 메서드는 학생이나 교수가 공통적으로 가지고 있는 특징으로, 두 인스턴스에서 모두 사용할 수 있음