- 객체지향 프로그래밍(OOP, object-oriented programming )
- 명령형 프로그램에 속한 프로그램 설계 방법론의 일종
- 단순히 데이터와 처리 방법으로 나누는 것이 아닌 수많은 객체(object)라는 기본 단위로 나누고 이들의 상호 작용으로 개발하는 방식
- 개체는 메소드와 변수를 가지며 특정 역할을 수행 할 수 있도록 개발자가 정의한 추상적인 개념
- 프로그램 방식
- 절차적 프로그래밍 ->객체지향 프로그래밍
- 초기의 절차적 프로그래밍 방식의 경우 입력을 받아 명시된 순서대로 처리한 다음 그 결과를 나태는 방식으로 간단한 알고리즘이라면 모를까 조금만 복작해지면 순서도를 나타내는게 표현 하기 힘든 방식
- 다른 사람이 보고 이해하는게 거의 불가능 할 뿐만 아니라 본인조차 유지보수에 어려움
- 이를 해결 하기 위하여 코드의 중복을 줄이고 입력 코드, 계산 코드, 결과 출력 코드 등의 역할 분담을 통하여 가독성 상승
- 요소
- 추상화
- 불필요한 부분을 제거함으로써 필요한 핵심만 나타내는 것
- 복잡성을 낮추기 위해서 사용
- 캡슐화
- 변수와 함수를 하나의 단위로 묶는 것
- 데이터의 번들링
- 대개 프로그래밍 언어에서 번들링이 클래스를 통해 구현 되며 해당 클래스의 인스턴스 생성을 통해 클래스 안에 포함된 멤버 변수와 메소드를 쉽게 접근
- 캡슐화를 통하여 정보의 은닉이 가능 하지만 꼭 캡슐화를 한다고 정보은닉이 되는건 아니다
- 상속
- 자식 클래스가 부모 클래스의 특성과 기능을 그대로 물려 받는것
- 다향성
- 상속 때 받은 기능의 일부분을 변경해야 할 경우
- 자식 클래스에서 동일한 함수에 매개변수만 변경하여 다시 정의 해서 사용(오버로딩)
- 자식 클래스에서 해당 기능만을 수정해서 다시 정의해서 사용(오버라이딩)
- 상속 때 받은 기능의 일부분을 변경해야 할 경우
- 추상화
- 객체지향 5원칙(SOLID)
- SRP( Single Responsibility Principle ), 단일 책임 원칙
- 객체는 오직 하나의 책임을 가져야 한다
- 클래스의 목적을 명확히 함으로써 구조가 난잡해지거나 수정 사항이 불필요하게 넓게 퍼지는 것을 예방하고 기능을 명확히 분리
- OCP( Open-Closed Principle ), 개방-폐쇄 원칙
- 객체는 확장에 대해서는 개방적이고 수정에 대해서는 폐쇄적이어야 한다는 원칙
- 객체 기능의 확장을 허용하고 스스로의 변경은 피해야 한다
- LSP( Liskov Substitution Principle ), 리스코프 치환 원칙
- 자식 클래스는 언제나 자신의 부모 클래스를 대체할 수 있다는 원칙
- ISP( Interface Segregation Principle ), 인터페이스 분리 원칙
- 클라이언트에서 사용하지 않는 메서드는 사용해선 안 된다
- 인터페이스의 SRP
- DIP( Dependency Inversion Principle ), 의존성 역전 원칙
- 추상성이 높고 안정적인 고수준의 클래스는 구체적이고 불안정한 저수준의 클래스에 의존해서는 안 된다
- SRP( Single Responsibility Principle ), 단일 책임 원칙
객체 지향 프로그래밍/원칙
객체지향 5원칙(SOLID). 객체지향에서 꼭 지켜야 할 5개의 원칙을 통틀어 객체지향 5원칙이라 칭한다. 일단 한
namu.wiki
객체 지향 프로그래밍
object-oriented programming(OOP) 프로그램 설계 방법론의 일종으로, 명령형 프로그래밍
namu.wiki
'CS > 더 깊게 깊게' 카테고리의 다른 글
내일배움캠프 특강) 웹 심화를 듣고 (1) | 2024.08.13 |
---|---|
HTTP/HTTPS (0) | 2024.08.06 |
OSI 7계층 및 알아 두면 좋은 프로토콜 (0) | 2024.07.30 |
개발 방법론 정리 (0) | 2024.07.29 |