이 글은 PC 버전 TISTORY에 최적화 되어있습니다.
절차지향언어
지루한 설명보단 간단한 예시를 통해 빠른 이해를 도모해보겠습니다.
자동차를 생산하기 위해 엔진을 만들고, 차체를 만들고 바퀴를 만드는 일련의 순서가 있다고 생각해봅시다. 이 순서는 서로 분리가 되면 안되고 순서도 틀려서는 안된다고 합니다.
이처럼 절차 지향언어는 어떠한 절차에 따라서 순차적인 처리가 중요시되며 프로그램 전체가 유기적으로 연결되는 프로그래밍 기법입니다. 이는 컴퓨터의 작업 방식과 비슷하기 때문에 객체 지향언어보다 빠르게 처리되어 시간적으로 유리했습니다.
객체지향언어
객체 지향 언어도 위와 같이 예시를 들어 설명하겠습니다.
자동차를 생산할 때, 바퀴 제작, 차제 제작, 엔진 제작을 순서대로가 아닌 따로 진행하여 조립할 때만 가져와서 끼워 넣습니다. 독립적으로 개발되어 나중에 한 곳에 모여 자신들의 기능만 하면 되는 것입니다. 이들은 순차적이지 않기 때문에 하나의 기능이 고장나도 서로에게 영향을 미치지 않죠. 새로운 부품이 생기거나 교체해야할 때도 쉽게 진행할 수 있습니다. 또한 신기술이 접목된 A 엔진을 개발하는 회사에서 그 엔진의 제작 공정을 배울 필요 없이 단순히 엔진을 사와서 끼우기만 하면 됩니다.
객체지향의 감을 잡으셨나요? 그렇다면 객체지향의 장점은 무엇일까요? 잠시 생각해보고 다음을 보시기 바랍니다.
- 코드의 재사용성이 높다.
- 코드의 관리가 용이하다.
- 신뢰성이 높은 프로그래밍을 가능하게 한다.
새로운 코드를 작성할 때 기존의 코드를 이용해 쉽게 작성할 수 있고, 코드 간 관계를 통해 관리가 쉽고, 데이터와 메서드를 공개하지 않으며 기능만 제공함으로서 신뢰성을 높일 수 있습니다.
그럼 어떤 언어가 더 좋은거야?
위의 설명을 보면 객체지향의 장점이 절차지향 보다 많아 보이니 객체지향 언어가 더 좋아보입니다. 하지만 개발자가 개발하려는 프로그램의 특성에 따라 언어의 선택은 달라질 수 있습니다. 코드 사이즈가 최소화 되어야하고 빠르게 동작해야하는 프로그램을 개발해야한다고 합시다. 객체지향언어는 구현된 기능 중에서도 일부분만 필요하다고 해서 일부분만 가져올 수 없습니다. 그 모듈 자체를 일단 가져와야하는 것이죠. 또한 절차지향처럼 딱 찝어서 데려올 수 없고 '야, 얘 데려와' 식으로 접근하므로 속도적으로 불리합니다. 결국, 절차지향과 객체지향의 장, 단점을 잘 이해하고 자신이 개발하려는 프로그램에 적절하게 사용하는 것이 현명한 개발자라고 생각합니다.
반응형
'Basic > Java' 카테고리의 다른 글
[JAVA] 객체(Object)의 형 변환 (2) | 2016.07.19 |
---|---|
[JAVA] Static에 대하여 (0) | 2016.07.19 |
[JAVA] JVM의 메모리구조 (0) | 2016.07.19 |
[JAVA] 자바의 변수 (클래스 변수, 인스턴스 변수, 지역 변수) (6) | 2016.07.19 |
[자바] 예외처리 (2) - 예외클래스의 구조 (1) | 2016.07.08 |
[자바] 예외처리 (1) - 예외처리란? (2) | 2016.07.08 |