OOP란?

|

1) OOP란?

OOP는 프로그래밍에 필요한 데이터를 추상화하여 객체로 만들고, 객체의 상호작용을 프로그래밍을 로직을 구현하는 방식이다

2) OOP의 장점

캡슐화 : 내부의 구현은 감추고, 모듈내에서 응집도를 높이며, 외부로의 노출을 최소화하여 모듈 간의 결합도를 떨어뜨리는 개념이다( 유지보수는 쉬워지고, 재사용성이 높아진다 )

상속 : 상속을 사용하면, 기존에 만들어둔것을 재사용할 수 있다. 예를 들면, 사람이라는 클래스가 있고 성격, 키 메소드를 상속받는 남자, 여자가 있을 수 있다. 상속을 통해서 재사용성이 높아지고, 같은 코드를 반복하지 않을수 있다.

다형성 : 하나의 변수명, 함수명 등이 상황에 따라 다른 의미로 사용할 수 있다. 이를 오버로딩이라고 한다.

접근제어 : private, protected, public 키워드를 통해서 데이터간의 접근을 제한하여 프로그램간의 데이터를 변조할수없게 막고, 높은 시스템보안을 제공한다

3) OOP의 단점

암시적 공유 : 의도하지 않았으나, 상속을 함으로써 부모클래스는 몰라도 자식클래스는 부모클래스없이는 아무것도 아닌 클래스가 된다. 이는 자식클래스의 부모클래스에 대한 의존도와 결합도를 높이기 때문에 객체지향의 핵심중 하나인 재사용이 힘들어진다.

단일체 : 단 하나의 부모만 존재한다. 추가적인 기능구현으로 클래스의 덩치가 무한대로 커질 수 있다. 확장을 하기 위해서는 해당 클래스를 상속받고 그 클래스에서 기능을 추가해야 하기 때문이다.

클래스타입 관계 문제 : 자식이 부모클래스를 상속받을 경우에는 상관이 없으나, 부모가 자식클래스의 메소드를 사용하고 싶다고 사용할 수가 없다. 복잡한 상속구조를 가진 클래스를 참조 또는 연산할 경우 부모 클래스에서 자식클래스를 사용하고 싶을 경우에는 down-cast를 사용할 수 밖에 없다.

Comments