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

이재진·2020년 10월 28일
0

Inheritance Patterns

목록 보기
1/3
post-thumbnail

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

  • OOP의 기본 컨셉은 프로그램 내에서 표현하고자 하는 실 세계(real world)의 일들을 객체를 사용해서 모델링 하고, 객체를 사용하지 않으면 불가능 혹은 무지 어려웠을 일들을 쉽게 처리하는 방법을 제공한다는 것.
  • 좀 더 나은 프로그램을 만들기 위한 프로그래밍 패러다임으로 로직을 상태와 행위로 이루어진 객체로 만드는 것.
  • 추상적,철학적인 내용.... 심오한지만.. 구체적인 문법적인 기능이 언어차원에서 제공된다.
  • 모든 것은 다 오브젝트로 되어 있다.
  • 객체가 가지고 있는 취지, 기능과 연관되어 있는 변수와 메소드를 그 객체라고 하는 단단한 껍데기 안에 가둬둔 것이고 서로 연관성이 없는 다른 로직과 구분해주는 역할을 하는 것이 객체이다.
  • 재사용성이 높은 특징.

하나의 프로그램은 여러개의 목적성을 가지고 있는 로직들의 집합이다.
사이트의 규모가 커지고 오랜시간의 프로젝트 기간.
복잡한 로직, 절망감, 막장.
기능별로 그룹핑,분류화 하고 싶다.
자연스럽게 해소 할수 있는 방법을 모색. 모색된 결과 중 하나가 객체지향이라고 생각하면 된다.

부품화

1.하나의 프로그래밍, 여러개의 형태의 로직으로 이루어져 있다.
2.그 로직을 그룹핑 시켜놓고 그 로직과 관련된 변수, 관련된 메소드를 그룹핑 시켜 놓은 것을 객체라고 한다.
3.객체가 다른 곳에서도 사용할 수 있다. 재활용성이 높아진다. 다른 곳에서 일종의 부품으로 사용되고 있다.
4.좋은 객체를 만든다는 것은 그 로직을 재활용 가능하도록 부품화 하는 것.

객체 지향은 부품화의 정점.
메소드는 부품화의 예.
메소드를 사용하는 기본 취지는 연관되어 있는 로직들을 결합해서 메소드라는 완제품을 만드는 것이다. 그리고 이 메소드들을 부품으로 해서 하나의 완제품인 독립된 프로그램을 만드는 것이다. 메소드를 사용하면 코드의 양을 극적으로 줄일 수 있고, 메소드 별로 기능이 분류되어 있기 때문에 필요한 코드를 찾기도 쉽고 문제의 진단도 빨라진다.

Encapsulation(캡슐화)

-객체가 어떻게 생겼는지 모르고도 객체를 사용할 수 있도록 하겠다.
-즉 내부의 동작 방법을 단단한 케이스 안으로 숨기고 사용자에게는 그 부품의 사용방법만을 노출하고 있는 것

Inheritance

-상속

Abstraction(추상화)

  • 해결해야할 문제 반영해야 할 현실을 소프트웨어적으로 단순화시켜 만드는 행위.
  • 소프트웨어를 설계한다는 것은 복잡한 현실을 추상화하는 과정.
  • ex) 지하철 지도

Polymorphism

-여러가지 형태

profile
개발블로그

0개의 댓글