객체 지향의 장점과 단점

객체 지향의 장단점 정리

객체 지향 프로그래밍에는 장점도 있고 단점도 있다. 정리해보자.

장점

객체 지향 프로그래밍을 하면 데이터나 기능에 변화가 생기더라도, 관련된 객체만 신경을 쓰면 되니, 프로그래밍하기 훨씬 편하다. 그리고 조금 더 의미 있는 단위로 나누기 때문에, 코드를 이해하거나, 다른 프로그램에서 재사용하기에도 더 수월하다. 꼭 전체가 완성되지 않아도 일부 기능만 사용해볼 수도 있기 때문에 테스트에도 더 유리하다.

단점

반면, 객체 지향의 단점은 코드를 잘 나누고 설계하는 것이 어렵다는 것이다. 코드를 작성하기도 전에, 설계부터 많은 노력이 든다는 것이다. 그래서, 굳이 객체 지향적으로 만들 필요가 없는 경우들, 예를 들어 규모가 작아서 일을 나누지 않고 혼자 바로 만들어버릴 수 있다든지, 혹은 데이터를 크게 신경 쓰지 않아도 된다든지, 혹은 이후에 바뀔 염려가 거의 없는 경우에는 이런 설계 과정 없이 그냥 바로 만들어버리는 게 더 빠르고 효율적일 수 있다. 또 객체 지향의 단점이라 하면, 사람이 이해하고 작성하기 편한 방식으로 코드를 나눠두다 보니, 컴퓨터가 이해하는데 시간이 걸려 실행하는 속도가 느려지거나, 저장 공간을 많이 차지하기도 한다.

객체 지향 언어를 쓰면 좋을까?

객체 지향 언어를 사용하면 좋은 곳

많은 데이터를 다루는 프로그램이나, 규모가 큰 프로젝트같은 경우에는 이 객체 지향의 장점이 더 부각된다. 특히 요즘은 어떤 프로그램이든 사용하는 데이터가 엄청 많아졌기 때문에, 객체 지향 프로그래밍이 더욱 더 빛을 발하는 시기라고도 볼 수 있다.

객체 지향 언어가 적합하지 않은 곳

극도로 빠른 실행 속도가 필요한 분야 혹은 저장 장치나 성능이 제한적인 기기(스마트 워치, 스마트 TV, 스마트 냉장고)에서 돌아가는 프로그램을 만들 때는 객체 지향을 안 쓰는 게 더 유리하다.

요약

정리해 봅시다.

장점

  • 유지 보수에 용이하다.
  • 가독성이 높다.
  • 재사용하기 좋다.
  • 테스트가 쉽다.

단점

  • 설계가 어렵다.
  • 작은 규모의 프로그램에서는 객체 지향적으로 작성하는 것이 더 오래 걸릴 수 있다.
  • 극도로 빠르거나, 주어진 자원을 극도로 활용해야 하는 경우에는 좋지 않다.
  • 임베디드와 같은 특정 분야에는 부적합하다.

Leave a comment