-
객체지향 프로그래밍 - 객체지향 | 생활코딩Javascript/ECMAScript 2009 (ES5) 2020. 2. 7. 16:58반응형
[출처 : https://opentutorials.org]
객체 지향 프로그래밍(OOP)
객체지향 프로그래밍(Object-Oriented Programming)은 좀 더 나은 프로그램을 만들기 위한 프로그래밍 패러다임으로 로직을 상태(state)와 행위(behave)로 이루어진 객체로 만드는 것이다.
이 객체들을 마치 레고 블럭처럼 조립해서 하나의 프로그램을 만드는 것이 객체지향 프로그래밍이라고 할 수 있다
※ 객체는 변수와 메소드를 그룹핑한 것이다.
문법과 설계
문법
첫 번째는 객체지향을 편하게 할 수 있도록 언어가 제공하는 기능을 익히는 것이다. 이러한 기능들은 if, for문처럼 문법적인 구성을 가지고 있다. 이 문법을 이해하고, 숙지해야 객체를 만들 수 있다.
설계
두 번째는 좋은 객체를 만드는 법이다. 다른 말로 설계를 잘하는 법. 프로그램을 만든다는 것은 소프트웨어의 추상화라고 할 수 있다.
객체 지향 프로그래밍은 좀 더 현실을 잘 반영하기 위한 노력의 산물이다. 이것은 단순히 객체 지향의 문법을 이용해서 객체를 만든다고 달성되는 것이 아니다. 고도의 추상화 능력이 필요하다.
부품화
객체 지향은 부품화의 정점이라 할 수 있으며, 메소드는 부품화의 예로 볼 수 있다. 메소드를 사용하는 기본 취지는 연관되어 있는 로직들을 결합해서 메소드라는 완제품을 만드는 것이다. 그리고 이 메소드들을 부품으로 해서 하나의 완제품인 독립된 프로그램을 만든다.
객체 지향 프로그래밍의 핵심은 연관된 메소드와 그 메소드가 사용하는 변수들을 분류하고 그룹핑하는 것이다. 바로 그렇게 그룹핑 한 대상이 객체(Object)다. 비유하자면 메소드나 변수가 파일이라면 이 파일을 그룹핑하는 디렉토리가 객체라고 할 수 있다.
은닉화, 캡슐화
제대로된 부품이라면 그것이 어떻게 만들어졌는지 모르는 사람도 그 부품을 사용하는 방법만 알면 쓸 수 있어야 한다.
즉 내부의 동작 방법을 단단한 케이스(객체) 안으로 숨기고 사용자에게는 그 부품의 사용방법(메소드)만을 노출하고 있는 것이다. 이러한 컨셉을 정보의 은닉화(Information Hiding), 또는 캡슐화(Encapsulation)라고 부른다.
인터페이스
인터페이스는 이질적인 것들이 결합하는 것을 막아주는 역할도 한다.
반응형'Javascript > ECMAScript 2009 (ES5)' 카테고리의 다른 글
전역객체 - 객체지향 | 생활코딩 (0) 2020.02.08 생성자와 new - 객체지향 | 생활코딩 (0) 2020.02.08 함수의 호출 - 함수지향 | 생활코딩 (0) 2020.02.04 arguments - 함수지향 | 생활코딩 (0) 2020.02.04 클로저 - 함수지향 | 생활코딩 (0) 2020.02.03