파이썬

객체지향 프로그래밍 언어론과 장단점

넬티아 2021. 1. 22. 00:30
728x90

프로그래밍 언어론


프로그래밍 언어 : 인간이 컴퓨터와 의사소통할 수 있도록 컴퓨터가 이해 가능한 명령으로 프로그램을 작성할 수 있도록 만든 언어다. 컴퓨터가 이해하기 쉬운가? 사람이 이해하기 쉬운가?를 기준으로 컴퓨터가 이해하기 쉬운 저급 언어와 사람이 이해하기 쉬운 고급 언어로 분류한다.

[ 기계어 ]
CPU에 전달되는 코드 : 기계어로 표시되는 명령어 집합, 다음은 더하기 예제이며 코드부를 나누어 명령 수행

[ 어셈블리어 ]
어셈블리어는 기계어 명령을 알기쉬운 기호로 표시한 언어다. 컴퓨터는 세세한 동작을 요구한다. 어셈블리어 작성도 마찬가지다.
- C언어 같은 고급 언어로 작성한 프로그램은 단순히 물을 마시기 위한 동작을 설명할 때 냉장고 문을 열어 물병을 꺼내 마시면 되는 간단한 동작인 반면
- 어셈블리어는 냉장고 앞으로 가 문을 잡고 여는데 성공하면 안을 보는 등 세세한 동작을 정해야 동작하는 구조다.

[ 프로그래밍 언어 실행 ]
저급 언어는 결국 기계어로 바로 변환되어 실제로 명령을 수행하는 중앙처리장치(CPU)에 전달되어 실행된다.
고급 언어는 번역해서 저급 언어로 바꾸는 번역 단계가 필요하다. 고급 언어의 종류에 따라 어떤 프로그램으로 번역할지가 다르다.

컴파일러 : 고급 언어로 작성된 코드를 한 번에 기계어로 변환하는 프로그램
- C언어, JAVA 등
인터프리터 : 고급 언어로 작성된 코드를 한 줄씩 기게어로 변환하는 프로그램
- Python, PHP, Ruby 등

 


 

객체지향 프로그래밍 개요


고급 언어는 프로그램을 만들기 위해 언어를 작성하면서 언어마다 객체 지향절차 지향이라는 기준에 따라 분류된 종류가 있다.

절차 지향과 객체 지향은 프로그래밍 패러다임을 뜻하는 단어로 언어마다 언어를 만든 개발자가 "명령들을 작성하면서 이게 더 중점이 되었으면 좋겠어"하고 정해놓은 규칙이다.
- 절차 지향이라면 : 실행 순서, 절차가 프로그래밍 시 중점이 됨
- 객체 지향이라면 : 객체들의 종류와 속성 등이 중점이 됨

다음은 절차 지향과 객체 지향을 비교한 내용이 담긴 그림이다.
- 절차 지향 : 순서대로 돈을 준비해서 넣고 제품과 잔돈이 나오면 받아가는 형태
- 객체 지향 : 고객, 돈, 제품의 객체가 있고 객체 간 상호작용을 위한 논리가 구성, 고객이 돈을 넣으면 잔돈을 받음

객체 지향에 속하는 언어 종류 :

객체 지향 프로그래밍 상세(OOP, Object Origented Programming) :
- 프로그래밍에서 필요한 데이터를 추상화시켜 상태와 행위를 가진 객체를 만들고 객체들 간 유기적인 상호작용을 통해 로직을 구성하는 방법이다.
- 객체 지향 프로그래밍을 할 수 있는 언어들은 클래스, 인터페이스과 같은 유용한 기능을 제공한다.
- 다음은 객체 지향 주요 5가지 용어다. 객체지향의 5원칙은 아님을 유의하자.

 


 

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


장점 :
- 1. 코드 재사용 용이 :
클래스 단위로 작업해 남이 만든 클래스를 그대로 가져와 사용할 수 있고 상속을 통해 확장해 사용할 수 있다.

- 2. 유지보수가 쉬움 :
절차 지향에서는 코드를 일일이 찾아 수정해야 하지만 객체 지향은 클래스 내부 변수나 메소드만 수정하면 된다.

- 3. 대형 프로젝트에 적합 :
클래스 단위로 모듈화시켜 개발할 수 있으므로 업무 분담이 쉽다.

단점 :
- 1. 처리속도가 상대적으로 느림
- 2. 객체가 많으면 용량이 커짐
- 3. 설계시 많은 시간과 노력이 필요