왜 객체지향인가

froajnzd·2024년 7월 2일
0

java

목록 보기
1/11
post-thumbnail

프로그래밍 언어 혹은 프레임워크에는 절차 지향, 객체 지향, 관점 지향... 등등 여러가지 (요상하게 번역된) 단어가 등장한다.

그 중에서도 객체 지향에 대해서 토론해보고자 한다.


우리는 왜 객체 지향 프로그래밍을 할까?

세상에는 다양한 것들이 있다.
세상의 많은 것이 가지고 있는 특성을 생각해보자.
지금 타이핑을 치고 있는 노트북을 보면, 나는 velog 화면을 보면서 키보드로 내 생각을 적고 있다..
이 때 내가 컴퓨터가 어떻게 동작하는지 알고 velog에 글을 쓰는 것일까?
당연히 아니다. 나는 전자기학 원리도 모르고 노트북에 어떤 물질이 들어가 있고, 그것이 어떤 역할을 하는지 다 알지 못한다.
근데 나는 노트북의 원리, 요소를 다 알지 못해도, 노트북을 사용하고 있다!

객체를 사용할 때, 그 객체가 어떤 일을 할 수 있는지 알기만 한다면 우리는 모두 객체를 객체가 뜻하는 대로 사용할 수 있다.
이러한 관점에서 보았을 때, 우린 객체가 만들어지고 그 객체의 구체적인 원리는 생각하지 않은 채 어떤 행동을 하는지만 알고 객체에게 시키면 된다.

결론. .. . ... 객체 지향은 각각의 물체(사람, 사물, 노트북, 개미 등등..)가 서로 상호작용한다는 점에서 우리 세상과 닮았다!

우리는 이런 객체들의 상호작용을 지향하며 프로그래밍을 한다

그럼 객체란 무엇인가?

주어 자리에 뒀을 때 동사를 사용해서 문장을 완성시킬 수 있다면 객체다~라고 생각하면 쉬울 것 같다!

" [ 객체 ] 은/는/이/가 ~ 다"

절차 지향 vs 객체 지향

Q. 절차 지향은 객체를 무시한다?
Q. 객체 지향은 절차를 무시한다?

NOPE

로직/프로세스 등등을 어떤 관점에서 설계하고 개발할 것인지!

객체 & 클래스

클래스는 객체를 만드는 설계도이다

클래스는 메모리의 코드영역에 적재되는 부분이고,
객체는 힙 영역에 적재되어, 프로그램의 실행시간동안 생성/삭제될 수 있다. 즉, 만들어지고 없어질 수 있는 물체이다.

cf. 정확히 말하자면,, 힙 영역에 적재되는 것은 '인스턴스'이다. 인스턴스는 객체를 실체화한 것...!

profile
Hi I'm 열쯔엉

0개의 댓글