JavaScript:
코드를 함수로 구성하기
어떻게 하나요:
// 직사각형의 면적을 계산하는 함수 정의하기
function calculateArea(width, height) {
return width * height;
}
// 함수를 호출하고 결과 출력하기
let area = calculateArea(5, 3);
console.log(area); // 출력: 15
// 관련 기능을 함수를 사용해 그룹화하기
function greet(name) {
console.log(`안녕, ${name}!`);
}
function farewell(name) {
console.log(`안녕히 가세요, ${name}!`);
}
greet('Alice'); // 출력: 안녕, Alice!
farewell('Bob'); // 출력: 안녕히 가세요, Bob!
심층 탐구
역사적으로 기본적인 버전의 BASIC이나 어셈블리와 같은 명령형 프로그래밍 언어는 함수가 제공하는 추상화가 부족했습니다. 시간이 지남에 따라 C 언어와 같은 언어에서 모듈식 코드의 개념이 도입되었고, 코드를 단위(함수나 절차)로 나누는 것이 더 나은 조직화와 명확한 논리로 이어진다는 생각이 나왔습니다.
자바스크립트에서는 단순 함수 외에도 ES6(2015)부터 화살표 함수가 도입되어 보다 간결한 문법을 제공하며 메소드가 아닌 함수에 적합합니다.
자바스크립트에서 코드를 구성하는 데 있어 클래스를 사용하는 객체 지향적 접근 방법이나 함수를 일급 객체로 취급하는 함수형 프로그래밍 패러다임 등 다른 대안 및 향상된 방법들이 있습니다.
구현 측면에서 자바스크립트 함수는 실행 후에도 함수의 스코프에 대한 접근을 유지할 수 있는 클로저를 지원하는데, 캡슐화와 팩토리 함수 생성 등 다양한 패턴에 있어 강력한 기능을 제공합니다.
참고자료
- MDN 웹 문서, 함수에 관하여: https://developer.mozilla.org/ko/docs/Web/JavaScript/Guide/Functions
- 자바스크립트 디자인 패턴: https://addyosmani.com/resources/essentialjsdesignpatterns/book/
- 클린 코드 자바스크립트: https://github.com/ryanmcdermott/clean-code-javascript