OO   Object-Oriented   객체지향

(2018-03-02)
1. 객체 지향 (Object Oriented)

  ㅇ `논리와 데이터가 분리되어 있는 사상`에서 과감히 탈피하여,
     - `논리와 데이터가 결합된 객체들이 시스템을 이룬다는 견해`를 갖고,
     - 실세계의 문제를 분석하고 소프트웨어 체계를 잡는 철학/패러다임


2. 출현 배경

  ㅇ 기존 프로그래밍시 프로그래머는 데이타와 프로시져를 별개로 선언하고 사용하게됨
     - 작은 프로그램일 경우에 어떤 프로시져가 어떤 데이타 유형을 사용하는지 쉽게 알 수
       있으나, 프로그램 규모가 커지면 둘 간의 관련성에 혼돈이 오기 쉬움

  ㅇ 이에따라, 데이타와 프로시져를 분리하지 않고 함께 생각하고 작성할 수 있다면 ,
     - 프로그램 작성자는 오류나 중복, 수정, 변경이 용이하게 됨
  
  ㅇ 즉, 논리와 데이타를 결합시켜 생각하려는 생각의 출발점이 객체지향 출현의 배경

  ㅇ 1960년대 노르웨이의 K. Nygaard가 Simula 67 프로그래밍 언어를 개발하면서
     객체(object)라는 개념을 사용한 데서 유래


3. 적용 분야 객체지향 프로그래밍객체지향 분석, 객체지향 설계객체지향 사용자 인터페이스객체지향 데이타베이스객체지향 운영체제
4. 객체지향의 장점
 
  ㅇ 수정 혹은 보완이 필요 할 때 기존에 만들어 놓은 객체들을 재사용(Reusability) 가능

  ㅇ 또한, 유지보수(Maintenance)성, 확장성(Scalability), 개발의 신속성, 실세계 접근,
           프로젝트(프로그램)의 대형화 등에서 유리


5. 객체지향의 주요 특징들추상화 (Abstraction)
     - 복잡한 실행 절차나 데이터를 하나로 묶어 단순화시키는 것

  ㅇ 캡슐화 (Encapsulation)
     - 복잡함을 감추고, 상호 영향을 작게하는 것

  ㅇ 상속성 (Inheritance)
     - 코드의 재사용 및 효과적인 확장 능력

  ㅇ 다형태성 (Polymorphism)
     - 문맥에 따라 다른 형태나 동작을 할 수 있는 능력

  ㅇ 동적 바인딩 (Dynamic Binding)
     - 실행 중간에도 연결된 속성 변경이 가능


6. 객체지향 설계의 5가지 기본 원칙 (SOLID)

  ㅇ SRP (Single Responsibility Prnciple)  : 단일 책임 원칙
     - 하나의 클래스,속성,메서드,패키지,모듈,컴포넌트,프레임워크 등에 단일 책임 만 관련시킴
  ㅇ OCP (Open Closed Principle)           : 개방 폐쇄 원칙
  ㅇ LSP (Liskov Substitution Principle)   : 리스코프 치환 원칙
  ㅇ ISP (Interface Segregation Principle) : 인터페이스 분리 원칙
  ㅇ DIP (Dependency Inversion Principle)  : 의존 역전 원칙


[객체지향] 1. 객체지향 2. 객체지향 프로그래밍 3. 메세지 4. 생성자 5. 오버라이딩 6. 오버로딩 7. 접근 제한 수식자 8. 추상 클래스 9. 인터페이스
[객체,클래스,인스턴스] [객체지향 원리/특징] [객체지향 모델링]

 
        최근수정     요약목록(시험중)     참고문헌