본문 바로가기
개발/script

[script] 캡슐화

by 밤즈라라2 2025. 1. 13.
728x90
반응형

 

 

약 캡슐처럼 생각해보기:


약 캡슐은 겉에 젤라틴 막이 있고, 안에 약이 들어있죠?
우리는 약의 내부 성분을 직접 만지지 않고, 캡슐 채로 사용합니다
캡슐이 내부 약을 보호하고 있는 거죠

 


코드에서의 캡슐화:

// 캡슐화 예시

      const createPaymentService = (processor) => {
    // 외부에서 직접 접근할 수 없는 processor
   
    return {
        // 외부에서 사용할 수 있는 인터페이스
        processPayment: (amount) => processor.process(amount)
    };
};

const creditCardService = createPaymentService(creditCardProcessor);


processor는 캡슐 안에 든 약처럼 외부에서 직접 접근할 수 없음
processPayment는 캡슐의 겉면처럼 외부에서 사용할 수 있는 인터페이스


캡슐화를 안 했다면:

// 캡슐화 하지 않은 예시


        const paymentService = {
    processor: creditCardProcessor,  // 누구나 직접 접근 가능
    processPayment: function(amount) {
        return this.processor.process(amount);
    }
};

// 외부에서 processor를 직접 수정할 수 있음
paymentService.processor = null;  // 😱 문제 발생!



캡슐화의 장점:

const creditCardService = createPaymentService(creditCardProcessor);

// 외부에서는 processPayment만 사용 가능
creditCardService.processPayment(50000);  // ✅ OK

// processor에는 직접 접근 불가능
creditCardService.processor  // undefined


즉, 캡슐화는:

중요한 데이터나 기능을 보호하고
외부에서는 필요한 인터페이스만 사용하도록 하는 것
마치 약 캡슐처럼 내부를 보호하면서 사용하기 쉽게 만드는 것입니다!









728x90
반응형