[Java] Section3 - 정리

코드 속의 "진돌"·2024년 2월 2일
1
post-thumbnail

✅ 객체 지향 프로그래밍 vs 절차 지향 프로그래밍


객체 지향 프로그래밍과 절차 지향 프로그래밍은 서로 대치되는 개념이 아니다. 객체 지향이라도 프로그램의 작동 순서는 중요하다. 다만 어디에 더 초점을 맞추는가에 둘의 차이가 있다.
객체 지향의 경우 객체의 설계와 관계를 중시한다. 반만 절차 지향의 경우 데이터와 기능이 분리되어 있고, 프로그램이 어떻게 작동하는지 그 순서에 초점을 맞춘다.

✏️ 절차 지향 프로그래밍

  • 절차 지향 프로그래밍은 이름 그대로 절차를 지향한다. 쉽게 이야기해서 실행 순서를 중요하게 생각하는 방식이다.
  • 절차 지향 프로그래밍은 프로그램의 흐름을 순차적으로 따르며 처리하는 방식이다. 즉 어떻게를 중심으로 프로그래밍 한다.



✏️ 객체 지향 프로그래밍

  • 객체 지향 프로그래밍은 이름 그대로 객체를 지향한다. 쉽게 이야기해서 객체를 중요하게 생각하는 방식이다.
  • 객체 지향 프로그래밍은 실제 세계의 사물이나 사건을 객체로 보고, 이러한 객체들 간의 상호작용을 중심으로 프로그래밍하는 방식이다. 즉, “무엇을” 중심으로 프로그래밍 한다.



✏️ 차이

  • 절차 지향은 데이터와 해당 데이터에 대한 처리 방식이 분리되어 있다. 반면 객체 지향에서는 데이터와 그 데이터에 대한 행동(메서드)이 하나의 ‘객체’ 안에 포함되어 있다.




✅ 객체란?


세상의 모든 사물을 단순하게 추상화해보면 속성(데이터)과 기능 딱 2가지로 설명할 수 있다.



1️⃣ 자동차

  • 속성 : 차량 색상, 현재 속도
  • 기능 : 엑셀, 브레이크, 문 열기, 문 닫기

2️⃣ 동물

  • 속성 : 색상, 키, 온도
  • 기능 : 먹는다, 걷는다

3️⃣ 게임 캐릭터

  • 속성 : 레벨, 경험치, 소유한 아이템
  • 기능 : 이동, 공격, 아이템 획득



객체 지향 프로그래밍은 모든 사물을 속성과 기능을 가진 객체로 생각하는 것이다. 객체에는 속성과 기능만 존재한다. 이렇게 단순화하면 세상에 있는 객체들을 컴퓨터 프로그램으로 쉽게 설계할 수 있다.
이런 장점들 덕분에 지금은 객체 지향 프로그래밍이 가장 많이 사용된다.
참고로 실세계와 객체가 항상 1 : 1로 매칭되는 것은 아니다.

profile
매일 성장하는 주니어 개발자의 기록📝

0개의 댓글