IT&Computer

객체 지향 프로그램이란 무엇일까? 객체지향 프로그래밍 언어의 이해

Seeker시커 2023. 7. 25. 21:09
반응형

다양한 프로그래밍 언어 중에 나의 목적에 적합한 언어는 어떻게 찾을 수 있을까?

필요한 언어를 찾기 위해서는 프로그래밍 언어의 분류에 대해 알면 좋다.

프로그래밍 언어를 분류하는 방법 중 객체 지향 프로그래밍에 대해서 알아보자.

 

Pixabay님의 사진: https://www.pexels.com/ko-kr/photo/screengrab-270404/

객체 지향이라는 개념은 사실 쉬운 개념이 아니라고 한다.

그 전체를 다 배우고 알기는 어려우니 프로그래밍 초보자가 언어를 선택하는데 도움이 될 만한 정도의 지식만 얻어보자.

객체 지향이란 프로그래밍에 대한 접근법 중 하나이다. 기존에는 큰 프로그램을 여러 개발자가 협업해서 만들 때 각 구역에 필요한 기능을 나눠서 코딩을 했다. 프로그램의 큰 틀을 만들고, 필요한 기능을 분석한 후 각 개발자가 나눠서 자신의 파트를 완성한다. 그 후 각자 작성한 코드를 통합해서 하나의 프로그램이 만들어 지는 것이다. 이를 TOP-DOWN 방식이라고 한다.

 

TOP-DOWN 방식은 각 개발자가 만든 코드를 통합해야 제대로 동작하는 지 알 수 있고, 하나라도 미완성이거나 오류가 있으면 전체가 작동하지 않는 문제가 있었다. 또한 데이터를 한 곳에 모아놓고 각 함수가 데이터를 끌어다 쓰는 형식이라 언제 어떤 데이터가 활용될 지 알기 어렵고, 한 곳의 함수가 잘못 구현되면 전체 프로그램이 작동하지 않을 수도 있다. 게다가 약간의 수정을 위해 전체 코드를 점검해야 하는 경우도 발생했다. 점차 프로그램이 커지는 개발환경에서 TOP-DOWN 방식은 코딩하기 어렵고 비효율적인 상황이 많이 발생했다.


개발 환경의 변화에 따라 프로그래밍에 대한 접근 방식을 바꿀 필요성이 대두되었다. 이 때 나온 것이 객체 지향 프로그래밍이다. 객체 지향 프로그래밍은 TOP-DOWN 방식과 대비되는 BOTTOM-UP 방식이다. 객체 지향 프로그래밍은 기능별로 프로그램을 나누는 것이 아니라, 함수와 데이터를 동시에 가진 객체별로 분업을 한다. 객체는 개별적으로 함수와 데이터를 보유하고 있기 때문에 이해하기 쉽고, 각각의 개발자는 자신이 만든 부분이 실행하는데 문제가 없는지 테스트 할 수 있다. 또한 개별 객체별로 코드를 수정할 수 있어서 효율적이다. 


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

  • 데이터나 기능의 변화가 생겨도 관련 객체만 수정하면 되기 때문에 프로그래밍이 수월하다.
  • 기능보다는 의미를 가진 객체로 분할하기 때문에 다른 프로그램에서 재활용하기가 쉽다.
  • 전체가 완성되지 않아도 일부의 기능만을 테스트 할 수 있다.

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

  • 객체별로 코드를 나누기 위한 설계가 어렵다.

 

규모가 작거나, 혼자 작업하거나, 데이터에 신경쓰지 않아도 되거나, 이후 수정이 거의 필요하지 않은 경우에는 객체 지향 프로그래밍의 설계 과정을 거치지 않고 바로 만드는 것이 효율적이다.

 

객체 지향 프로그래밍언어가 적합한 경우

  • 많은 데이터가 필요한 프로그램
  • 규모가 큰 프로젝트

객체 지향 프로그래밍 언어가 적합하지 않는 경우

  • 아주 빠른 실행 속도가 필요한 프로그램
  • 저장 장치나 성능이 제한적인 기기의 소프트웨어

 

객체 지향을 지원하는 프로그래밍 언어 : 파이썬, 자바, 루비, Kotlin, C++, C# 등

 

 

사실 강의를 들어도 실제로 실습해본게 아니라서 정확한 이해는 어렵다. 대충 어떤 개념인지만 알고 다음에 더 깊이 이해할 수 있을 때를 기다려 보는게 좋겠다.

 

 

 

 

 

※ 이 포스트는 내돈내산 코드잇 강의 내용을 기반으로 작성되었습니다.

반응형