1. 추상화(Abstraction) 객체를 만드는 과정은 현실 또는 가상의 존재를 프로그램 내에서 사용할 용도에 맞게 적절하게 설계하는 과정. 객체를 만들고 나면 그 객체를 사용하는 사람은 객체 내부에 존재하는 복잡한 원리를 모르더라도 객체 외부에 공개된 프로퍼티나 메소드만 가지고 객체를 문제없이 잘 사용할 수 있어야한다. 이를 위해 프로퍼티와 메소드의 이름을 누구나 이해하기 쉽게 잘 지어야하고, 필요한 경우 주석을 달아 그 내용을 문서화하여 공개해야한다. 이는 객체 뿐만 아니라 라이브러리나 프레임 워크의 경우에도 마찬가지이다. 2. 캡슐화 (Encapsulation) 캡슐화는 객체 외부에서 함부로 접근하면 안되는 프로퍼티나 메소드에 직접 접근할 수 없도록 하고, 필요한 경우 공개된 다른 메소드를 통해서..
다형성이란 객체지향프로그래밍 4가지 기둥 중 마지막 기둥 다형성은 많은 형태를 갖고 있는 성질을 말한다. 객체지향프로그래밍에서 다형성은 하나의 변수가 다양한 종류의 객체를 가리키는 것을 말한다. 다형성 예제 바로 예시를 보자. 프리미엄고객에게는 제품 구매 시 5% 할인이 들어간다고 가정해 보자. 고객이라는 객체와 프리미엄고객 객체가 있다. 프리미엄고객 객체는 고객객체의 자식클래스로 고객객체를 상속해서 사용하고 있다. class User{ constructor(email, birthdate) { this.email = email; this.birthdate = birthdate; } buy(itme) { console.log(`${this.email} buys ${item.name}`); } } class..
지난 글에서 객체지향 프로그래밍의 4가지 기둥 ( 추상화, 캡슐화, 상속, 다형성 ) 중 추상화에 대해 알아보았다. [JS] 객체지향 프로그래밍 - 4가지 기둥 ( 추상화 ) 항상 개발하면서 객체지향이라는 개념을 잊어버린다. 이렇게 새로운 언어를 공부할때 마다 상기된다. 이럴때라도 한번씩 확인하면 개발하면서 적용하는 순간이 오겠지. 객체지향 프로그래밍의 soso-dev-log.tistory.com 이번에는 캡슐화에 대해 알아보겠다. 1. 캡슐화란 객체의 특정 프로퍼티와 메소드에 직접 접근하지 못하도록 막는 것이다. 서로 연관있는 속성과 기능들을 하나의 캡슐로 만들어 데이터를 외부로 부터 보호하는 것을 말한다. 2. 왜 외부로 부터 보호해야 할까? 데이터 보호와 데이터 은닉의 이유 때문이다. 외부로 부터 ..