👉프로그래밍 패러다임으로 로직을 상태(state)와 행위(behave)로 이루어진 객체로 만드는 것이다.
객체 지향의 가장 큰 특징
⭐️재활용성⭐️
프로그래밍은 실체가 없고, 무한하고, 유연한다. 이러한 특성은 정신이 가진 장점이면서 소프트웨어의 극치이다. 이러한 문제점을 극복하기 위한 노력 중의 하나가 부품화라고 할 수 있다. 객체 지향과 부품화를 동일 시 할 수는 없지만 부품화라고 하는 소프트웨어의 큰 흐름은 객체 지향이 만들어지는데 지대한 공헌을 했다고 할 수 있다.
기능들을 부품화 시킨 덕분에 모니터가 고장나면 모니터만 교체하면 된다. 또한 문제가 생겼을 때 그 문제가 어디에서 발생한 것인지 파악하고 해결하기가 훨씬 쉬워진다.
모니터와 키보드 본체를 분리하는 기준은? 그 기준을 세우는 것이 추상화일 것이다. 기준에 정답은 없지만 적절함이 중요하다. 모니터, 키보드, 본체라는 개별 적인 완제품을 부품으로 조립하면 컴퓨터라는 하나의 완제품이 만들어진다.
객체 지향은 부품화의 정점이라고 할 수 있다. 메소드는 부품화의 예라고 할 수 있다.
메소들들을 부품으로 해서 하나의 완제품인 독립된 프로그램을 만드는 것이다. 메소드를 사용하면 코드의 양을 극적으로 줄일 수 있고, 메소드 별로 기능이 분류되어 있기 때문에 필요한 코드를 찾기도 쉽고 문제의 진단도 빨라진다.
그런데 프로그램이 커지면 엄청나게 많은 메소드들이 생겨난다. 메소드와 변수를 관리하는 것은 점점 어려운 일이 되기 시작한다. 인간이 다루기 힘들 정도로 프로그램이 거대하고 복잡해진다.
제대로 된 부품이라면 그것이 어떻게 만들어졌는지 모르는 사람도 그 부품을 사용하는 방법만 알면 쓸 수 있어야 한다.
은닉화, 캡슐화 : 내부의 동작 방법 (메소드)을 단단한 케이스 (객체) 안으로 숨기고 사용자에게는 그 부품의 사용방법만을 노출하고 있는 것이다.
잘 만들어진 부품이라면 부품과 부품을 서로 교환할 수 있어야 한다. 모니터를 바꿔 낄 수 있는 것은 모니터와 컴퓨터를 연결하는 케이블의 규격이 표준화 되어 있기 때문에 가능한 일이다.
각각의 부품은 미리 정해진 약속에 따라서 신호를 입, 출력하고, 연결점 모양을 표준에 맞게 만들면된다. 이러한 연결점을 인터페이스
라고 한다. 또한 인터페이스란 이질적인 것들이 결합하는 것을 막아주는 역할도 한다.