책장/Javascript

[JavaScript] 객체지향

TERAJOO 2020. 8. 28. 16:30

객체 지향이라는 말은 코딩에 입문한 이후로 끊임없이 들었던 단어였다. 허나 정확한 개념에 대해 설명하라는 질문을 들었을 때 얼타기 일쑤인 말이기도 하다. 때문에 간단하게나마 정리하고자 한다.

 

* 객체지향 프로그래밍 

 좀 더 나은 프로그램을 만들기 위한 프로그래밍 패러다임으로 로직을 상태(state)와 행위(behave)로 이루어진 객체로 만드는 것이라고 할 수 있다.

 

 이 객체들을 마치 레고블럭처럼 조립해서 하나의 프로그램을 만드는 것이 객체지향 프로그래밍이라고 할 수 있다. 다시 말해서 객체지향 프로그래밍은 객체(레고블럭 조각) 를 만드는 것이다. 따라서 객체지향 프로그래밍의 시작은 객체가 무엇인가를 이해하는 것이라고 할 수 있다.

 또한 객체지향을 비슷한 관점에서 부품화의 정점이라고도 할 수 있다. 즉, 여러 로직들을 결합해 메소드라는 완제품을 만들고 이러한 메소드를 부품으로 해서 하나의 완제품인 독립된 프로그램을 만드는 것이라고 할 수 있다.

 이 때 서로 연관된 메소드와 그 메소드가 사용하는 변수들을 분류하고 그룹핑한 대상이 객체이고 이 과정에서 information hiding, Encapsulation 이라는 컨셉이 생겨난다.

cf) 객체란 변수와 메소드를 그룹핑한 것이라고 일단 생각하자.

 

* 인터페이스

잘 만들어진 부품이라면 부품과 부품을 서로 교환할 수 있어야 한다. 예를 들어 컴퓨터와 모니터는 서로가 교환관계에 있다. 이 이유는 모니터와 컴퓨터를 연결하는 케이블의 규격이 표준화 되어있기 때문이다. 이 때의 표준을 인터페이스라고 한다.