객체지향프로그래밍(Object-Oriented Programming)

simon·2021년 7월 12일
0

객체지향프로그래밍 정리

객체 지향 프로그래밍 이전에 절차형 프로그래밍 방식이 있었다. 알고리즘의 명령을 순서대로 처리하여 아웃풋을 내는 방식이다. 절차형 프로그래밍의 직관적이고 단순한 방식은 한 가지 결함이 있었는데, 알고리즘이 조금이라도 복잡해지면 순서로 표현할 수 없이 꼬여버리는 ‘스파게티 코드’ 현상이 발생하였다.

이와 같은 문제를 해결하고 보다 정교한 알고리즘을 구성하고자 관련된 변수와 함수를 객체 유닛으로 묶어내는 객체 지향 프로그래밍(Object-Oriented Programming, 이하 oop)이 나타나게 되었다. oop의 가장 큰 장점은 객체 별 정보를 주고 받을 수 있는 유연성과 유지 보수를 용이하게 할 수 있는 직관성이 있다.

oop에는 여러 가지 특성이 있다.
1. 캡슐화(Encpsulation) : 변수와 함수를 하나로 묶는 것을 의미하는 캡슐화는 클래스를 통해 구현할 수 있다. 클래스에 접근하려면 인스턴스를 생성하여야 하며, 이를 통해 속성과 메소드를 다룰 수 있다. 또힌 객체의 구현 방식을 클래스 내부로 은닉하여 외부로 부터 보호할 수 있는 장점이 있다.

  1. 상속과 포함 : 부모와 자식 클래스를 구분하여 부모 클래스의 정보와 기능을 자식클래스에 물려주는 것을 상속이라 한다. 기존 클래스의 기능을 유지하면서도 재사용과 수정에 용이하다.

  2. 다형성 : 자식클래스에 따라 클래스를 다르게 처리할 수 있다. 서브타입의 속성이나 메소드가 상황에 따라 다르게 해석될 수 있다.

효율적인 oop는 기능과 동작을 분리해야하고 중복을 지양하는 등 설계에 가깝다. 이러한 복잡성 때문에 협업을 원활히 하고자 ‘디자인 패턴’이라는 것이 나타나기도 하였다.

profile
무럭무럭 자라나라 🌱

0개의 댓글