Menu
Coddy logo textTech

정적 유틸리티 메서드

Coddy JavaScript 여정의 객체 지향 프로그래밍 섹션에 포함된 레슨 — 56개 중 33번째.

정적 메서드는 클래스의 인스턴스가 아닌 클래스 자체에 속하는 유틸리티 함수입니다. 인스턴스별 데이터에 접근할 필요가 없는 함수에 유용합니다.

정적 유틸리티 메서드를 가진 클래스를 만들어 보겠습니다:

class MathHelper {
  // 정적 메서드 정의
  static square(number) {
    return number * number;
  }
}

정적 메서드를 호출하려면 클래스 이름을 직접 사용합니다:

// 인스턴스를 생성하지 않고 정적 메서드 호출
const result = MathHelper.square(5);
console.log(result); // 25

new MathHelper()를 사용하여 새로운 인스턴스를 생성할 필요가 없었다는 점에 주목하세요. 정적 메서드는 인스턴스 데이터 없이 작업을 수행하는 유틸리티 함수에 적합합니다.

challenge icon

챌린지

문자열을 인자로 받아 첫 글자를 대문자로 변환한 동일한 문자열을 반환하는 capitalize라는 정적 메서드를 가진 StringUtils 클래스를 생성하세요. 예를 들어, 입력값이 "javascript"인 경우 메서드는 "Javascript"를 반환해야 합니다. 이 클래스를 export 하세요.

  1. 문자열이 비어 있는지 확인합니다: if (!str || str.length === 0) (이 확인 과정이 없으면 빈 문자열이 문제를 일으킬 수 있습니다).
    1. !strnull/undefined 여부를 확인합니다 (에러 방지)
    2. str.length === 0은 빈 문자열인지 확인합니다 (프로그램 중단 대신 ""을 반환)
  2. 첫 번째 문자를 가져옵니다: str.charAt(0)
  3. 대문자로 변환합니다: .toUpperCase()
  4. 나머지 문자열을 가져옵니다: str.slice(1) (인덱스 1부터 끝까지)
  5. 결합합니다: 대문자로 된 첫 번째 문자 + 나머지 문자열

치트 시트

정적 메서드(Static methods)는 인스턴스가 아닌 클래스 자체에 속하는 유틸리티 함수입니다. 이 메서드들은 인스턴스 고유의 데이터에 접근할 필요가 없습니다.

static 키워드를 사용하여 정적 메서드를 정의합니다:

class MathHelper {
  static square(number) {
    return number * number;
  }
}

인스턴스를 생성하지 않고 클래스에서 직접 정적 메서드를 호출합니다:

const result = MathHelper.square(5);
console.log(result); // 25

정적 유틸리티에 유용한 문자열 메서드들:

  • str.charAt(0) - 첫 번째 문자를 가져옵니다.
  • str.toUpperCase() - 대문자로 변환합니다.
  • str.slice(1) - 인덱스 1부터 끝까지의 부분 문자열을 가져옵니다.
  • !str || str.length === 0 - null/undefined 또는 빈 문자열인지 확인합니다.

직접 해보기

import { StringUtils } from './stringUtils.js';

// 아래 코드를 수정하지 마세요
console.log(StringUtils.capitalize("programming"));
quiz icon실력 점검

이 레슨에는 짧은 퀴즈가 포함되어 있습니다. 레슨을 시작해 문제를 풀고 진행 상황을 기록하세요.

객체 지향 프로그래밍의 모든 레슨