본문 바로가기

study_IT/개발 용어 사전

[ 1 ~ 10 ] OOP, Object, Class, Abstraction, Generalization / Inheritance, Specialization, Realization, Association, dependency, Polymorphism

728x90
반응형

1. OOP(Object Oriented Programming)
객체 지향 프로그래밍. 실세계에 존재하는 사물과 행위 등의 객체를 조립하여 프로그래밍 하는 것으로 재사용성(상속)을 통한 코드 중복 제거가 가능하다. 유지보수가 용이하며 효율이 높다는 장점이 있고, 분석 및 설계에 많은 시간이 소요된다는 단점이 있다.

2. Object(객체)
일반적인 대상. 데이터와 그 데이터에 관련되는 동작. 식별성, 상태, 행위를 가진다. (물리적, 개념적)
실세계에 존재하며 프로그램으로 구현되어야 하는 대상이다.

ex) 코끼리, 독수리, TV, 전화기, 결제, 로그인...

  • 현실 세계의 개체나 개념을 모델링한 소프트웨어 단위.
  • 객체는 데이터와 해당 데이터를 처리하는 메서드(함수)로 구성됩니다.
  • 예를 들어, 자동차 객체는 자동차의 속성(색상, 속도)과 동작(주행, 정지)을 포함할 수 있습니다.

 

3. Class
객체 내부의 데이터 구조와 그 조작을 정리하여 정의한 것. 동일한 속성, 메서드, 관계 등을 갖고 있는 객체들의 집합이다. 연관되어 있는 변수와 메서드를 하나의 그룹으로 그룹핑한 것. 실생활의 객체(상태, 행위 등)를 표현한 것으로 문제 영역(시스템)에 의존적이다.

ex) 교육시스템과 판매시스템에서 필요로 하는 정보가 다르다.

  • 객체의 설계도 또는 템플릿.
  • 클래스는 객체를 생성하기 위한 구조와 행동을 정의합니다.
  • 객체를 생성하기 위한 일종의 청사진이라고 생각할 수 있습니다.


4. abstraction(추상화)
객체들의 공통된 성질을 묶어 class로 표현하는 것. 시스템의 복잡도를 단순하게 하여 개념화하는 것.

  • 복잡한 현실 개체를 단순화하여 중요한 특징만 강조하고 불필요한 세부 정보를 숨기는 과정.
  • 클래스와 객체는 추상화의 결과물로, 필요한 정보와 동작만 포함합니다.


5. Generalization(일반화) / Inheritance(상속)
Generalization(일반화) : 객체들의 공통된 성질을 상위 객체로 정의하는 것.
Inheritance(상속) : 상위 클래스의 모든 것을 하위 클래스가 물려 받아 내 것처럼 사용함. 자식은 부모를 대신할 수 있지만 부모는 자식을 대신할 수 없다.

  • 부모 클래스(슈퍼 클래스)에서 정의된 속성과 메서드를 자식 클래스(서브 클래스)가 상속받는 기능.
  • 코드 재사용과 계층 구조를 형성하기 위해 사용됩니다.


6. Specialization(구체적, 특수화)
추상화의 반대 개념. 특정 성질을 가진 객체들로 구체화하는 것.

7. Realization(실체화)
요구사항 정의 및 분석, 설계 단계에서 명세 혹은 정의된 모델을 실제로 구현하는 것.

(interface => pure abstract class를 realization 하는 수단)

8. Association(연관화)
공통된 의미를 서로 연관된 집단으로 표현하는 방법. 한 클래스가 다른 클래스와 연관관계를 가지면 각 클래스의 객체는 해당 연관 관계에서 어떤 역할을 수행하게 된다.

9. dependency(의존성)
객체는 저수준 모듈(객체 등 잘 변하는 것)보다 고수준 모듈(인터페이스 등 잘 변하지 않는 추상적 개념)에 의존해야 한다.

10. Polymorphism(다형성)
동일한 메시지를 받는 객체에 따라 각각 적절한 절차가 이루어지는 것.

ex) 한 번 운전을 배우면 다양한 자동차를 운전할 수 있다.
ex) 오버로딩, 오버라이딩

  • 같은 이름의 메서드 또는 함수가 다른 동작을 수행하는 능력.
  • 다형성은 오버로딩과 오버라이딩을 통해 구현됩니다.
  • 오버로딩은 같은 이름의 메서드가 다른 매개변수를 가질 수 있음을 의미하며, 오버라이딩은 부모 클래스의 메서드를 자식 클래스에서 재정의하는 것을 의미합니다.
728x90
반응형