출처: 생활코딩
객체지향프로그래밍 (1/3) : 오리엔테이션
💡 객체지향 프로그래밍이란?
객체지향 프로그래밍 (Object-Oriented Programming, OOP)은 좀 더 나은 프로그램을 만들기 위한 프로그래밍의 패러다임으로 로직을 상태(State)와 행위(behave)로 이루어진 객체로 만드는 것이다.
이 객체들은 마치 레고를 조립하듯이 하나의 프로그램을 만드는 것을 객체지향 프로그래밍이라고 한다.
즉, 객체지향 프로그래밍은 객체를 만드는 것이다. 그러면 객체란 무엇일까?
객체는 상태와 행위인 로직을 카테고라이징 한 것을 의미한다. 다시 말하면 로직을 컨트롤 한다.는의미를 갖고있다.
객체지향 프로그래밍에서의 교육은 크게 2개로 나뉜다.
- 문법
- 설계
- 객체를 만드는 방법을 알아야한다. 객체를 만드는 것은 설계를 하는 것으로 이야기한다. 또한 좋은 설계는 현실을 반영해야 한다.
💡 객체지향의 특징
⭐️추상화⭐️
- 해결해야 하는 문제, 반영해야 하는 현실을 소프트웨어적으로 단순화 시키는 행위
⭐️부품화⭐️
- 로직을 만든다는 것은 부품화한다는 것이다. 즉 일시적인 코드로 끝내는 것이 아니라 이를 재활용할 수 있도록 부품화하는 것이 바로 객체지향의 특징이다. 자바 안에서는 method가 부품화의 예시라고 할 수 있다.
⭐️은닉화 & 캡슐화⭐️
- 하지만 부품화라는 것은 단순히 동일한 기능을 하는 메소드와 기능을 그룹핑한다고 하여 달성되는 것은 아니다.
- 제대로 된 부품이라면, 그것이 어떻게 만들어졌는지 모르더라도 사용하는 방법만 알면 쓸 수 있어야 한다.
- 즉, 내부의 동작방법은 단단한 케이스(가방)안으로 숨기고 사용자에게는 그 부품의 사용방법만 노출하고 있는 것이다.
- 결국 이러한 과정이 은닉화, 캡슐화 이며 사용자는 해당 부품의 사용방법이 가장 중요한 것이 된다.
⭐️Interface⭐️
- 또한 잘 만들어진 부품이라면, 부품과 부품을 서로 교환할 수 있어야 한다.
- 예로 집에 있는 A사의 모니터를 B사의 모니터로 연결할 수 있다. 연결점이 있는 것이다.
- HDMI의 경우 HDMI만의 포트 모양, 규격, 규칙 등이 있다. 즉, HDMI의 표준이 있는 것이다. 이 때 이러한 표준에 의한 연결점을 Interface라고 한다.