[Spring] 객체지향프로그래밍이 가능한 언어의 종류



“토비의 스프링 3.1” 책을 읽으며, 한 문장 한 문장 자세히 공부해 보려고 한다.

1장은 오프젝트와 의존관계이다.



객체란?

객체(Object)란 세상에 존재하는 모든것을 의미한다.
즉, 주변에 있는 사물이나 생명체 같은 모든것들을 말한다.
프로그래밍에서의 객체는 데이터의 분산을 막기 위해 데이터와 기능을 하나로 묶은 그룹이라고 볼 수 있다.



객체지향 프로그래밍이란?

객체 지향 프로그래밍(OOP : Object-Oriented Programming)은 프로그램을 다수의 객체로 만들고, 그 객체들간의 상호작용을 통해 데이터를 주고받는 프로그래밍 기법이다.

객체 지향 프로그래밍은 컴퓨터 프로그램을 명령어의 목록으로 보는 시각에서 벗어나 여러 개의 독립된 단위, 즉 "객체"들의 모임으로 파악하고자 하는 것이다.
각각의 객체는 메시지를 주고받고, 데이터를 처리할 수 있다.

객체 지향 프로그래밍은 프로그램을 유연하고 변경이 쉽게 만들기 때문에 대규모 소프트웨어 개발에 많이 사용된다.
또한 프로그래밍을 더 배우기 쉽게 하고 소프트웨어 개발과 보수를 간편하게 하며, 보다 직관적인 코드 분석을 가능하게 하는 장점이 있다.
그러나 지나친 프로그램의 객체화 경향은 실제 세계의 모습을 그대로 반영하지 못한다는 비판을 받기도 한다.



객체지향프로그래밍이 가능한 언어의 종류


다음은 대표적인 객체지향 프로그래밍 언어들이다.

  • 시뮬라 67(영어: Simula 67) : 최초의 객체 지향 언어
  • 스몰토크 : 최초로 GUI를 제공하는 언어
  • 비주얼 베이직 닷넷
  • 오브젝티브-C : 애플의 운영체제인 iOS에서 사용되는 언어
  • C++ : 객체지향성이 더해진 C 언어의 확장형
  • C#
  • Dart
  • 자바
  • 객체지향 파스칼
  • 델파이
  • 파이썬 : 플랫폼 독립적이며 인터프리터식, 객체지향적, 동적 타이핑(dynamically typed) 대화형 언어
  • 펄 : 인터프리터 방식의 프로그래밍 언어 혹은 그 인터프리터 소프트웨어
  • 루비 : 동적 객체 지향 스크립트 프로그래밍 언어이고, 순수 객체 지향 언어
  • 액션스크립트
  • ASP
  • 스위프트 : 애플이 iOS8 과 OS X 프로그래밍을 위해 개발한 언어




이 중 몇개의 언어들만 더 자세히 공부해보자. (+ 이후에 추가 정리)






객체지향언어의 특징


📌 1. 캡슐화(Encapsulation)

데이터와 코드의 형태를 외부로부터 알 수 없게 하고, 데이터의 구조와 역할, 기능을 하나의 캡슐형태로 만드는 방법이다.



📌 2. 상속(Inheritance)

하위 클래스가 상위 클래스의 모든 것을 이어 받는것이다.
즉, 부모가 자식에게 유전자를 물려주듯이 부모의 특징을 자식에게 모두 물려준다.



📌 3. 다형성(Polymorphism)

상속과 연관이 있는 개념으로 한 객체가 다른 여러 형태(객체)로 재구성 되는 것을 말한다.
쉽게 말하면 한부모의 밑에서 태어난 자식(쌍둥이포함)이 똑같지 않은 것과 같은 것과 같다.

자바의 오버로드(Overload) 또는 오버라이드(Override)이 다형성의 대표적인 예라 할 수 있고, 이것을 구현하는 것을 오버로딩(Overloading)과 오버라이딩(Overriding) 이라고 한다.



📌 4. 추상화(abstraction)

추상화는 객체의 공통적인 속성과 기능을 추출하여 정의하는 것이다.




참고링크 |

Categories:

Updated:

Leave a comment