객체지향 프로그래밍이란?

이주형·2021년 3월 23일
0

객체지향 프로그래밍이란?

객체지향 프로그래밍이란 객체 단위로 코드를 나누어서 이를 조립하며 프로그래밍 하는 프로그래밍 방법을 말한다. 객체지향 프로그래밍은 객체 간에 데이터를 주고 받으면서 프로그램을 구성하게 된다.

객체지향의 특징

다형성

객체의 역할과 구현의 구조를 분리한다. 역할의 단위에서 인터페이스라는 큰 틀을 정의하고, 이를 직접 구현하면서 다양한 종류의 객체들을 만들어내는 것이다.

코드에서 어떻게 구현하는가?

오버라이딩을 통해 구현한다.
오버라이딩은 상속받은 상위 클래스의 메소드를 재정의해서 사용하는 것이다.

다형성이 왜 필요한가

하나의 인터페이스를 통해 다양한 형태의 객체를 생성해낼 수 있다.
클라이언트에 영향을 주지 않고 객체를 변경할 수 있다.

추상화

객체를 인터페이스만 생성함으로서 추상화해서 생성하는 방법이다. 큰 틀만 만들고, 이를 상속받아 세부적인 요소들을 서술하며 다양한 객체를 만들어 갈 수 있다. 추상화된 클래스를 상속받음으로서 위에서 언급했던 객체지향의 다형성을 구현할 수 있게 되는 것이다.

캡슐화/은닉화

클래스를 이용하여 객체를 캡슐화 시킨 후, private기능을 이용하여 원하는 부분만 공개하는 객체지향 언어의 특징이다.

SOLID 원칙

좋은 객체지향의 조건으로 있는 5가지 요소이다.

SRP

Single Responsibilty Principle 의 약자로 한개의 클래스는 한개의 책임만 져야 한다는 원칙이다.

OCP

Open Close Principle의 약자로 확장은 용이해야 하나, 클라이언트 코드의 변경에 있어서는 폐쇄적이어야 한다는 원칙이다.

LSP

Liskov Substitution Principle의 약자로 하위 클래스를 상속받아도 기존 인터페이스의 규약을 지켜야 한다는 원칙이다.

ISP

Interface segregation Principle의 약자로 인터페이스는 작은 기능 단위로 분리해서 관리 하는 것이 유용하다는 원칙이다.

DIP

구체적으로 구현된 클래스에 의존하지 말고, 추상화된 인터페이스에 의존해서 개발되야 한다는 원칙이다.

결론

결국 좋은 객체지향 프로그래밍은 역할과 실제 구현 부분을 분리하고, 인터페이스를 잘 설계하여 언제든지 실제 구현 부분이 바뀌어도 마치 블록을 바꿔 끼우는 것처럼 유연하게 흘러갈 수 있도록 짜는 것이 좋은 객체지향 프로그래밍이다.

0개의 댓글