객체지향프로그래밍

JavaScript

[JS] 객체프로그래밍 4가지 기둥 정리

1. 추상화(Abstraction) 객체를 만드는 과정은 현실 또는 가상의 존재를 프로그램 내에서 사용할 용도에 맞게 적절하게 설계하는 과정. 객체를 만들고 나면 그 객체를 사용하는 사람은 객체 내부에 존재하는 복잡한 원리를 모르더라도 객체 외부에 공개된 프로퍼티나 메소드만 가지고 객체를 문제없이 잘 사용할 수 있어야한다. 이를 위해 프로퍼티와 메소드의 이름을 누구나 이해하기 쉽게 잘 지어야하고, 필요한 경우 주석을 달아 그 내용을 문서화하여 공개해야한다. 이는 객체 뿐만 아니라 라이브러리나 프레임 워크의 경우에도 마찬가지이다. 2. 캡슐화 (Encapsulation) 캡슐화는 객체 외부에서 함부로 접근하면 안되는 프로퍼티나 메소드에 직접 접근할 수 없도록 하고, 필요한 경우 공개된 다른 메소드를 통해서..

JavaScript

[JS] 객체지향프로그래밍 - 4가지 기둥 (다형성)

다형성이란 객체지향프로그래밍 4가지 기둥 중 마지막 기둥 다형성은 많은 형태를 갖고 있는 성질을 말한다. 객체지향프로그래밍에서 다형성은 하나의 변수가 다양한 종류의 객체를 가리키는 것을 말한다. 다형성 예제 바로 예시를 보자. 프리미엄고객에게는 제품 구매 시 5% 할인이 들어간다고 가정해 보자. 고객이라는 객체와 프리미엄고객 객체가 있다. 프리미엄고객 객체는 고객객체의 자식클래스로 고객객체를 상속해서 사용하고 있다. class User{ constructor(email, birthdate) { this.email = email; this.birthdate = birthdate; } buy(itme) { console.log(`${this.email} buys ${item.name}`); } } class..

JavaScript

[JS] 객체지향 프로그래밍 - 4가지 기둥 ( 캡슐화 )

지난 글에서 객체지향 프로그래밍의 4가지 기둥 ( 추상화, 캡슐화, 상속, 다형성 ) 중 추상화에 대해 알아보았다. [JS] 객체지향 프로그래밍 - 4가지 기둥 ( 추상화 ) 항상 개발하면서 객체지향이라는 개념을 잊어버린다. 이렇게 새로운 언어를 공부할때 마다 상기된다. 이럴때라도 한번씩 확인하면 개발하면서 적용하는 순간이 오겠지. 객체지향 프로그래밍의 soso-dev-log.tistory.com 이번에는 캡슐화에 대해 알아보겠다. 1. 캡슐화란 객체의 특정 프로퍼티와 메소드에 직접 접근하지 못하도록 막는 것이다. 서로 연관있는 속성과 기능들을 하나의 캡슐로 만들어 데이터를 외부로 부터 보호하는 것을 말한다. 2. 왜 외부로 부터 보호해야 할까? 데이터 보호와 데이터 은닉의 이유 때문이다. 외부로 부터 ..

JavaScript

[JS] 객체지향 프로그래밍 - 4가지 기둥 ( 추상화 )

항상 개발하면서 객체지향이라는 개념을 잊어버린다. 이렇게 새로운 언어를 공부할때 마다 상기된다. 이럴때라도 한번씩 확인하면 개발하면서 적용하는 순간이 오겠지. 객체지향 프로그래밍의 4가지 기둥 : 추상화, 캡슐화, 상속, 다형성 1. 추상화 추상화의 의미 부터 파악해보자. 추상화란 사물이나 표상을 어떤 성질, 공통성, 본질에 착안하여 그것을 추출하여 파악하는 것 객체지향 프로그래밍에서 추상화는 각 객체의 공통적인 속성과 기능을 추출하여 정의하는 것을 의미한다. 공통적인 속성과 기능을 추출하면 다양한 사용자들이 파악하여 코드를 재사용성이 높아지고 반복코드를 활용하지 않음으로써 코드의 효율성도 높아지게 된다. 추상화를 잘하기 위해서는 객체, 프로퍼티와 메소드의 이름을 잘지어야한다. 누가 봐도 직관적으로 알 ..

JavaScript

[JS] 객체지향 프로그래밍 - 객체 생성

객체지향 프로그래밍이란 - 객체란? 상태를 나타내는 변수 (프로퍼티) 행동을 나타내는 함수를 가지고 있음 (메소드) - 객체지향 프로그래밍이란? 프로퍼티와 메소드로 이루어진 각 객체들의 상호작용을 중심으로 코드를 작성하는것. - 객체지향이 아닌 다른 프로그래밍인 절차 지향 프로그래밍이란? 변수와 함수를 가지고 작업의 순서에 맞게 코드를 작성하는 것 객체를 생성하는 방법들 1) object literal 객체를 문자열로 나타낸 표현 2) factory function 객체를 생성해주는 function을 생성해서 객체를 공장처럼 생성. 3) Constructor function 객체만 생성해주는 function 임. factory function은 return값으로 객체를 전달한다면, constructor ..

Soso_____Developer
'객체지향프로그래밍' 태그의 글 목록