NodeJS 기초: getter의 활용
카테고리
프로그래밍/소프트웨어 개발
서브카테고리
웹 개발
대상자
- 대상: 중급 이상 JavaScript 개발자, 복잡한 데이터 모델을 다루는 프론트엔드/백엔드 개발자
- 난이도: 중급 (아키텍처 설계 및 성능 최적화 이해 필요)
핵심 요약
- getter 활용:
Object.defineProperty
또는 ES6 클래스의get
메서드로 계산된 속성을 정의하여 코드 중복 방지 및 데이터 일관성 유지 가능 - 반응형 프로그래밍: 데이터 변경 시 자동으로 derived value 재계산 가능 →
currencyFormat
또는percentage
같은 파생 값 관리 효율화 - 성능 최적화: getter는 지연 평가(Lazy Evaluation)로 작동 → 불필요한 계산 방지
섹션별 세부 요약
1. 문제 상황: 직접 접근의 한계
- 중복 로직: 여러 컴포넌트에서
data.formatCurrency()
같은 메서드 반복 호출 - 불일치 위험: 데이터 변경 시
derived value
가 수동으로 업데이트되지 않음 - 성능 저하: 반복 계산으로 인한 bundle size 증가 및 불필요한 리렌더링
2. getter의 핵심 개념
- 데이터 분리:
rawData
와formattedData
를 분리하여 업데이트 시 일관성 보장 - 코드 예시:
class DataModel {
get formattedCurrency() {
return `$${this.rawValue.toFixed(2)}`;
}
}
rawValue
변경 시 formattedCurrency
가 자동 재계산3. 실무 적용 패턴
- 데이터 모델 분리:
rawData
와derivedData
를 별도 속성으로 관리 - 비동기 처리:
async/await
로getter
내부에서 비동기 계산 가능 - 캐싱 전략:
getter
결과를 메모이제이션하여 성능 개선
결론
- getter 사용 권장: 파생 값을 반복적으로 계산해야 할 경우
getter
로 코드 재사용성과 유지보수성 향상 - 리액티브 애플리케이션: Vue.js, React 등에서 state 관리와 결합하여 데이터 흐름 추적 가능
- 주의 사항:
getter
는 단순 접근자로, 복잡한 비즈니스 로직은 메서드로 분리해야 함