객체 지향 프로그래밍

프로그램을 단순히 데이터와 처리 방법으로 나누는 것이 아니라, 프로그램을 수많은 '객체'라는 기본 단위로 나누고 이 객체 들의 상호 작용으로 서술하는 방식이다.

객체란 하나의 역할을 수행하는 '메소드 와 변수(데이터)'의 묶음으로 봐야 한다.

객체 지향 프로그래밍이라고 하는 말 속에도 포함되어 있는 것처럼 객체 지향 프로그래밍의 핵심 키워드는

객체(Object)

객체가 무엇인지 에 대해 이해하는 것이 어떻게 보면 객체 지향 프로그래밍의 출발점이라고 할 수 있다

객체 지향 프로그래밍에서 얘기하는 객체를 조금 추상적이고, 어렵게 얘기하면

프로그램을 구성하고 있는 로직을 서로 연관되어 있는 상태(state)행위(behave)로 그룹핑 해 논 것을

일종의 객체라고 할 수 있다

그리고 그 객체는 일종의 레고 블럭 처럼 객체와 객체를 조합해서 하나의 완제품이라고 할 수 있는

소프트웨어를 만들어가는 그런 프로그래밍 기법이 객체 지향 프로그래밍이라고 할 수 있는 것이다

한 웹 사이트가 있다고 가정해보자.

https://s3-us-west-2.amazonaws.com/secure.notion-static.com/38ed7822-5718-441c-b204-1dfe7fe4df4e/_2020-10-28__11.30.43.png

이 사이트는 우리가 일반적으로 알고 있는 소프트웨어와는 다르지만

이런 웹 서비스 들도 우리가 웹 어플리케이션이라고 부르고, 분명히 소프트웨어 이다

이 사이트 같은 경우는 하나의 프로그램인데, 하나의 프로그램에는 글 목록을 출력 해주는 로직이 있을 것이고

글 본문을 출력 해주는 로직 이 있고, 또 댓글을 추가하고 출력하고 수정하고 삭제하는 로직 이 있을 것이다

하나의 프로그램은 하나의 취지를 가지고 있는 로직 으로 이루어진 것이 아니라

보다시피 여러 개의 목적성을 가진 로직 들의 집합이라고 할 수 있다