함수(Function): 코드의 재사용성과 가독성을 높이는 비밀 무기
함수는 반복적으로 사용되는 코드를 효율적으로 관리하는 도구로, 개발자들이 생산성을 높이고 유지보수를 간편하게 만들 수 있도록 돕습니다. 한 번 정의하면 여러 곳에서 호출해 재사용할 수 있으며, 잘 작성된 함수는 코드의 가독성을 크게 향상시킵니다.
함수 선언 방식
함수는 function 키워드를 사용해 선언합니다. 이름, 매개변수, 그리고 실행될 코드를 작성하면 됩니다.
문법
function 함수명(매개변수1, 매개변수2) {
// 여기에서 매개변수를 사용해 작업을 수행합니다.
console.log("이 함수는 매우 쓸모있습니다!");
}
예시: 안부를 전하는 함수
function sayHello() {
console.log("안녕하세요, 코딩 세상!");
}
함수 호출: 함수를 실행하는 방법
함수를 호출하려면 함수 이름 뒤에 괄호를 붙이면 됩니다.
sayHello(); // 출력: 안녕하세요, 코딩 세상!
지역 변수: 함수 안에서만 활동하는 비밀 요원
함수 내부에서 선언된 변수는 지역 변수(local variable) 로, 함수 외부에서는 접근할 수 없습니다. 이는 코드의 안전성과 독립성을 유지하는 데 도움을 줍니다.
예시: 지역 변수 사용
function greetUser() {
let secretMessage = "이건 비밀 인사입니다!";
console.log(secretMessage);
}
greetUser(); // 출력: 이건 비밀 인사입니다!
console.log(secretMessage); // 에러: secretMessage는 함수 외부에서 접근할 수 없음
외부 변수: 함수 밖에서도 활동하는 글로벌 요원
함수는 외부에서 선언된 변수(외부 변수)에도 접근할 수 있습니다. 외부 변수를 읽거나 수정할 수 있지만, 주의 깊게 관리해야 합니다.
예시: 외부 변수 사용
let userName = "코딩냥이";
function introduceUser() {
console.log(`안녕하세요, 저는 ${userName}입니다.`);
}
introduceUser(); // 출력: 안녕하세요, 저는 코딩냥이입니다.
외부 변수 수정
let heroName = "슈퍼냥이";
function upgradeHero() {
heroName = "캡틴냥이"; // 외부 변수 수정
console.log(`영웅 이름이 ${heroName}로 업그레이드되었습니다!`);
}
console.log(heroName); // 출력: 슈퍼냥이
upgradeHero(); // 출력: 영웅 이름이 캡틴냥이로 업그레이드되었습니다!
console.log(heroName); // 출력: 캡틴냥이
매개변수와 인수: 데이터를 함수로 전달하는 방법
함수는 매개변수(parameter) 를 통해 외부 데이터를 입력받고, 함수 호출 시 전달된 값을 인수(argument) 라고 부릅니다.
예시: 매개변수와 인수 사용
function sendGreeting(from, message) {
console.log(`${from}님이 말합니다: "${message}"`);
}
sendGreeting("버그잡이", "안녕하세요!"); // 출력: 버그잡이님이 말합니다: "안녕하세요!"
sendGreeting("테스트마스터", "코드가 완벽합니다!"); // 출력: 테스트마스터님이 말합니다: "코드가 완벽합니다!"
매개변수의 기본값 설정
함수를 호출할 때 인수를 생략하면 해당 매개변수는 undefined가 됩니다. 이를 방지하기 위해 기본값을 설정할 수 있습니다.
예시: 기본값 설정
function welcomeUser(name = "방문자") {
console.log(`안녕하세요, ${name}님!`);
}
welcomeUser("프로그래밍 고수"); // 출력: 안녕하세요, 프로그래밍 고수님!
welcomeUser(); // 출력: 안녕하세요, 방문자님!
동적 기본값 설정
기본값을 함수로 설정할 수도 있습니다. 예를 들어 text가 undefined일 때 특정 함수를 호출하여 값을 할당할 수 있습니다.
function createMessage(from, text = defaultText()) {
console.log(`${from}: ${text}`);
}
function defaultText() {
return "기본 메시지입니다!";
}
createMessage("코딩냥이"); // 출력: 코딩냥이: 기본 메시지입니다!
반환 값: 함수의 결과를 돌려주는 방법
return 키워드를 사용해 함수에서 값을 반환할 수 있습니다. 반환 값은 함수 호출이 끝난 후 호출한 곳으로 전달됩니다.
예시: 합계 계산
function calculateSum(a, b) {
return a + b;
}
let total = calculateSum(7, 8);
console.log(`합계는 ${total}입니다!`); // 출력: 합계는 15입니다!
함수 이름 짓기: 읽기 쉬운 코드는 행복을 부른다
함수 이름은 역할을 명확히 나타내야 합니다. 다음과 같은 접두어를 사용해 이름을 짓는 것이 일반적입니다:
- get: 값을 가져오는 함수
- show: 무언가를 보여주는 함수
- calculate: 값을 계산하는 함수
- create: 무언가를 생성하는 함수
- check: 조건을 확인하는 함수
예시: 명확한 함수 이름
function calculateUserAge(birthYear) {
return new Date().getFullYear() - birthYear;
}
function displayUserProfile(name, age) {
console.log(`이름: ${name}, 나이: ${age}`);
}
const userAge = calculateUserAge(1992);
displayUserProfile("코딩냥이", userAge); // 출력: 이름: 코딩냥이, 나이: 32
함수는 주석이 된다: 잘 짜여진 함수는 자체적으로 주석 역할을 한다
함수는 코드의 가독성을 높이는 동시에 주석처럼 작동할 수 있습니다. 함수 이름과 매개변수 이름만으로도 그 역할을 파악할 수 있어야 합니다.
예시: 잘 설계된 함수
function isPrimeNumber(n) {
for (let i = 2; i < n; i++) {
if (n % i === 0) return false; // 소수가 아님
}
return true; // 소수임
}
function listPrimesUpTo(limit) {
for (let i = 2; i <= limit; i++) {
if (isPrimeNumber(i)) {
console.log(`${i}는 소수입니다.`);
}
}
}
listPrimesUpTo(15);
// 출력: 2는 소수입니다.
// 출력: 3는 소수입니다.
// 출력: 5는 소수입니다.
// 출력: 7는 소수입니다.
// 출력: 11는 소수입니다.
// 출력: 13는 소수입니다.
요약
- 함수 선언과 호출: 함수를 선언하고 호출하여 재사용성을 극대화할 수 있습니다.
- 매개변수와 기본값: 데이터를 전달받아 작업하고, 필요할 경우 기본값을 설정할 수 있습니다.
- 반환 값: return을 사용해 결과를 반환하고, 이를 다른 로직에서 활용할 수 있습니다.
- 명확한 이름과 단일 책임: 함수는 하나의 역할만 수행하도록 작성하며, 이름만으로도 역할이 드러나야 합니다.
'바닐라 코드 > Java Script' 카테고리의 다른 글
18. 화살표 함수 (Arrow Functions) (1) | 2024.12.30 |
---|---|
17. 함수 표현식 (1) | 2024.12.26 |
15. switch문 (0) | 2024.12.23 |
14. while, for 반복문 (0) | 2024.12.19 |
13. nullish 병합 연산자 (??) (0) | 2024.12.18 |