객체지향 프로그래밍(OOP)이란 무엇일까?

이민형·2022년 6월 30일
0

객체지향

목록 보기
2/2
post-thumbnail

먼저 객체지향 프로그래밍이 뭔지 알기 전에, 객체와 클래스에 대해서 알아보자.

객체와 클래스

객체란?

  • 구체적인 추상적 데이터의 단위이다.
  • 객체의 속성은 클래스의 맴버 변수로 선언 한다
  • 클래스의 모양 그대로 찍어낸 실체다.
  • 프로그램 실행중에 생성되는 실체이다.
  • 메모리 공간을 갖는 구체적인 실체
  • 인스턴스(instance)라고도 부른다.

클래스란?

  • 객체를 만들어내기 위한 설계도 혹은 틀
  • 객체의 속성(state)과 행동(behavior) 포함.

예)

클래스객체
사람나, 너, 이웃집아저씨
붕어빵틀구워진 붕어빵 여러개
소나타 자동차출고된 실제 소나타 20대


그럼 이제 객체지향 프로그래밍이란 무엇일까?

객체지향 프로그래밍(OOP)란?

프로그램의 구현을 시간의 흐름순이 아닌 객체간의 관계와 협력을 기반으로 프로그래밍 하는것이다. 즉, 객체로부터 개발하고자 하는 애플리케이션에 필요한 특징을 뽑아와 프로그래밍 하는것이다.
객체를 정의하고 각 객체의 속성을 맴버 변수로 역활을 매서드로 구현하고 각 객체간의 협력을 구현하는 것을 말한다.

객체지향 프로그래밍의 장점

  • 소프트웨어의 생산성 향상

    • 컴퓨터 산업의 발전에 따라 소프트웨어의 생명 주기(Life Cycle) 단축됨에 따라 소프트웨어를 빠른 속도로 생산할 필요성이 증대해졌다.
    • 객체지향 언어
      • 캡슐화, 상속, 다형성, 객체 등 소프트웨어 재사용을 위한 여러 장치가 내장되어있다.
      • 소프트웨어 재사용과 부분 수정이 빠르다.
      • 소프트웨어를 다시 만드는 부담이 줄어들었다.
      • 소프트웨어의 생산성이 향상되었다.
  • 실세계에 대한 쉬운 모델링

    • 컴퓨터 산업 초기때는 수학계산/통계 처리를 하는 등의 처리과정, 계산 절차가 중요했지만 현대에는 절차나 과정보다 물체(객체)들의 상호작용으로 묘사하는 것이 용이해졌기 때문
  • 보안성 향상

    • 객체지향의 캡슐화 특징으로 실제 구현되는 부분을 외부에서 볼 수 없으므로 정보 은닉 가능.

객체지향 프로그래밍의 단점

  • 느린 개발속도

    • 모든 객체의 역활과 기능을 이해해야 하기 때문에 프로그래밍에 많은 시간이 소모된다.
  • 느린 실행속도

    • 절차지향 프로그래밍에 비해 느린 실행속도
    • 메모리와 연산에 대한 비용이 증가한다.
  • 높은 난이도

    • 절차지향 프로그래밍에 비해 난이도가 높다.


0개의 댓글