[객체지향 기본 개념(상속,추상화)]

SOYUN JEON·2024년 10월 1일

학습 과정

목록 보기
7/20

> OOP- object - oriented programming

기본 정의: 컴퓨터 프로그램을 어떤 데이터를 입력받아 순서대로 처리하고 결과를 도출하는 명령어들의 목록으로 보는 시각에서 벗어나서 여러 독립적인 부품들의 조합, 객체들의 유기적인 협력과 결합으로 파악하고자 하는 컴퓨터 프로그래밍의 패러다임을 의미함

큰 틀: 어떤 프로그램의 일부분에 해당하는 작은 부품, 즉 객체를 먼저 만들고 이렇게 만들어진 여러 객체들을 조립해서 하나의 완성된 프로그램을 만드는 프로그래밍 방법론을 뜻함

장점

  • 가장 큰 이점 중에 하나는 객체 지향적 설계를 통해서 프로그램을 보다 유연하고 변경이 용이하게 만들 수 있다는 점입니다. 마치 컴퓨터 부품을 갈아 끼울 때, 해당하는 부품만 쉽게 교체하고 나머지 부품들을 건드리지 않아도 되는 것처럼 소프트웨어를 설계할 때 객체 지향적 원리를 잘 적용해 둔 프로그램은 각각의 부품들이 각자의 독립적인 역할을 가지기 때문에 코드의 변경을 최소화하고 유지보수를 하는 데 유리합니다.
  • 코드의 재사용을 통해 반복적인 코드를 최소화하고, 코드를 최대한 간결하게 표현할 수 있습니다. 또한 객체 지향 프로그래밍은 실제 우리가 보고 경험하는 세계를 최대한 프로그램 설계에 반영하기 위한 지속적인 노력을 통해 발전해왔기 때문에, 보다 인간 친화적이고 직관적인 코드를 작성하기에 용이합니다.
  • 객체 지향 프로그래밍의 4가지 특징은 각각 추상화, 상속, 다형성, 캡슐화인데, 모두 이러한 객체 지향적 설계의 이점들을 가장 잘 살릴 수 있는 방향으로 발전되어 왔다고 할 수 있습니다.

상속이란?
-여러 개체들이 지닌 공통된 특성을 부각시켜 하나의 개념이나 법칙으로 성립하는 과정
하위클래스가 상위클래스의 변수와 기능, 특징을 물려 받아 재사용 할 수 있음.

추상화란?
-갹체들이 공통적으로 필요로 하는 속성이나 동작을 하나로 추출해 내는 작업을 뜻 함. 위에 간략하게 설명한 상속과 관련이 큰 특징.

예를 들어 쇼핑 스토어에 티비, 에어컨 등 여러가지 전자제품에 대해 올려야 된다고 생각해보면

기본적으로 공통되게 들어야가 하는 부분이 제품 이름/ 가격/ 사이즈 등등

A라는 개발자가 작업을 하다, B라는 개발자에게 토스를 하였는데 B개발자는 name, price, size중 price를 누락 시켜버렸다.

이렇게 코드가 누락이 되는 경우 또는 오타 또는 반복적으로 계속해서 겹치는 부분들을 복사 붙여넣기를 할 수 없으니 사전에 방지하고 개발자의 편의를 위해 한번에 적용할 수 있도록 따로 빼는 것을 위에 사진에서 볼 수 있듯 //추상화// 라고 볼 수 있다.

즉, 겹치고 공통적인 부분을 빼서 좀 더 상위 클래스를 만들어주는 개념이라고 이해 하면 될것 같다.

상속 또한 간략하게 정리를 다시 해보자면 확장편이라고 이해하면 쉽다.

심즈라는 게임을 할떄도 심즈 확장팩 처럼 클래스간 공유될 수 있는 속성과 기능들을 상위 클래스로 추상화 시켜 해당 상위 클래스로부터 확장된 여러 개의 하위 클래스들이 모두 상위 클래스의 속성과 기능들을 간편하게 사용 할 수 있도록 하는 것.

반복적인 코드를 최소화하고 공유하는 속성과 기능에 간편하게 접근 하는 것이라고 생각하면 된다.

profile
안녕하세요.

0개의 댓글