CodeIt/컴퓨터 개론

프로그래밍 언어 이해하기_프로그래밍 언어를 분류하는 두가지 기준_ [04. 객체 지향 프로그래밍 이해하기]

산과잔 2021. 1. 20. 16:19

객체 지향 의 장단점

장점

객체 지향 프로그래밍을 하면 데이터나 기능에 변화가 생기더라도, 관련된 객체만 신경을 쓰면 되니, 프로그래밍하기 훨씬 편하다.

그리고 조금 더 의미 있는 단위로 나누기 때문에, 코드를 이해하거나, 다른 프로그램에서 재사용하기 에도 더 수월하다.

꼭 전체가 완성되지 않아도 일부 기능만 사용해 볼 수 도 있기 때문에 테스트에도 더 유리하다.

 

단점 

반면, 코드를 잘 나누고 설계하는 것이 어렵다.

코드를 작성하기도 전에, 설계부터 많은 노력이 든다.

그래서, 굳이 객체 지향적으로 만들 필요가 없는 경우들, 예를 들어 규모가 작아서 일을 나주지 않고 혼자 바로 만들어ㅓ릴 수 있다든지, 혹은 데이터를 크게 신경쓰지 않아도 된다든지, 혹은 이후에 바뀔염려가 거의 없는 경우에는 이런 설계과정 없이 그냥 바로 만들어버리는 게 더 빠르고 효율적일 수 도 있다.

또 객체 지향의 단점이라 하면, 사람이 이해하고 작성하기 편한 방식으로 코드를 나눠두다 보니, 컴퓨터가 이해하는데 시간이 걸려 실행하는 속도가 느려지거나, 저장 공간을 많이 차지하기도 한다.

 

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

많은 데이터를 다루는 프로그램이나, 규모가 큰 프로젝트 같은 경우에는 이 객체 지향의 장점이 더 부각된다.

특히 요즘은 어떤 프로그램이든 사용하는 데이터가 엄청 많아졌기 때문에, 객체 지향 프로그래밍이 더욱 더 빛을 발하는 시기라고도 할 수 있다.

 

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

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

 

장점

  • 유지 보수에 용이하다.

  • 가독성이 높다.

  • 재사용하기 좋다.

  • 테스트가 쉽다.

단점

  • 설계가 어렵다.

  • 작은 규모의 프로그램에서는 객체 지향적으로 작성하는 것이 더 오래 걸릴 수 있다.

  • 극도로 빠르거나, 주어진 자원을 극도로 활용해야 하는 경우에는 좋지 않다.

  • 임베디드와 같은 특정 분야에는 부적합하다.

텐핑