OOP의 4가지 특징과 5원칙

혜령·2021년 12월 7일
0

Study

목록 보기
2/2

OOP란❓

Object-Oriented Programming의 줄임말
객체 지향 프로그래밍 방식

OOP의 4가지 특징

1. 추상화(Abstraction)
- 상세 정보는 무시하고 필요성에 의해 있어야 하는 정보들만 간추려서 구성하는 것
- 구체적인 사물들의 공통적인 특징을 파악해서 이를 하나의 개념(집합)으로 다루는 것
- ex) 추상 메서드와 인터페이스
2. 캡슐화(Encapsulation)
- 정보 은닉(information hiding): 필요가 없는 정보는 외부에서 접근하지 못하도록 제한하는 것
- 데이터 캡슐화: 변수와 메서드를 클래스로 묶는 것
- 높은 응집도, 낮은 결합도를 유지하여 유연함과 유지보수성 증가
3. 상속(Inheritance)
- 자식 클래스가 부모 클래스를 물려받고 기능을 추가하여 확장하는 것
- 서브 클래스는 슈퍼 클래스의 속성을 물려받아 재사용이 가능하므로 코드 작성의 시간과 비용 절약
- 여러 개체들이 가진 공통된 특성을 부각시켜 하나의 개념이나 법칙으로 성립시키는 과정
4. 다형성(Polymorphism)
- 어떤 변수나 메서드가 상황에 따라서 다른 결과를 내는 것
- 서로 다른 클래스의 객체가 같은 메시지를 받았을 때 각자의 방식으로 동작하는 능력
- 오버라이딩(Overriding): 슈퍼 클래스에서 구현된 메서드를 서브 클래스에서 자신의 특징에 맞게 재정의하는 것
- 오버로딩(Overloading): 클래스 내에서 이름이 같지만 다르게 동작하는 메서드

OOP의 5대 원칙(SOLID)

  • S: 단일 책임 원칙(SRP, Single Responsibility Principle)
    • 객체는 단 하나의 책임만 가져야 한다.
  • O: 개방-폐쇄 원칙(OCP, Open Closed Principle)
    • 확장에는 열려(Open) 있지만, 변경에는 닫혀(Close) 있어야 한다.
    • 기존의 코드를 변경하지 않으면서 기능을 추가할 수 있도록 설계가 되어야 한다.
  • L: 리스코프 치환 원칙(LSP, Liskov Substitution Principle)
    • 상위 타입의 객체를 하위 타입의 객체로 치환해도 상위 타입을 사용하는 프로그램은 정상정으로 작동해야 한다.
    • 일반화 관계에 대한 이야기며, 자식 클래스는 최소한 자신의 부모 클래스에서 가능한 행위는 수행할 수 있어야 한다.
  • I: 인터페이스 분리 원칙(ISP, Interface Segregation Principle)
    • 인터페이스를 클라이언트에 특화되도록 분리시키라는 설계 원칙이다.
    • 특정 클라이언트를 위한 인터페이스 여러 개가 범용 인터페이스 보다 낫다.
  • D: 의존 역전 원칙(DIP, Dependency Inversion Principle)
    • 추상화에 의존하고, 구체화에 의존하면 안된다.
    • 의존 관계를 맺을 때 변화하기 쉬운 것 또는 자주 변화하는 것보다는 변화하기 어려운 것, 거의 변화가 없는 것에 의존하라는 것이다.
profile
안녕하세요

0개의 댓글

관련 채용 정보