공부하는 블로그

JAVA | Introduction 본문

Java

JAVA | Introduction

치킨닮은닭 2019. 12. 12. 20:40

JAVA?

 자바(Java)는 제임스 고슬링(James Gosling)과 다른 연구원들이 개발한 객체 지향적 프로그래밍 언어이다. 자바를 다른 컴파일언어와 구분 짓는 가장 큰 특징은 컴파일된 코드가 플랫폼 독립적이라는 점이다.

 

 자바 컴파일러는 자바 언어로 작성된 프로그램을 바이트코드라는 특수한 바이너리 형태로 변환하며 이 바이트코드를 실행하기 위해서는 JVM이라는 특수한 가성 머신이 필요한데, 이 가상 머신은 자바 바이트 코드를 어느 플랫폼에서나 동일한 형태로 실행시킨다. 따라서 자바로 개발된 프로그램은 CPU나 운영체제의 종류에 관계없이 JVM을 설치할 수 있는 시스템에서는 어디서나 실행할 수 있으며 이 점이 웹 애플리케이션의 특성과 맞아 떨어져 폭팔적 인기를 끌게되었다. 

* JVM에 관한 설명은 앞선 포스팅에 있다.


※ 절차 지향? 객체 지향?

절차지향과 객체지향의 도식화 출처 : https://k96-ozon.tistory.com/13

 

절차지향 프로그래밍(Procedure Oriented Programming, POP)

 절차지향 프로그래밍이란 순차적인 처리가 중요시 되며 프로그램 전체가 유기적으로 연결되도록 만드는 프로그래밍 기법이다. 이는 컴퓨터의 작업처리 방식과 유사하기 때문에 객체지향 언어를 사용하는 것에 비해 더 빨리 처리되어 시간적으로 유리하다. 그러나 유지보수가 어려우며 실행 순서가 정해져 있으므로 코드 순서가 바뀌면 동일한 결과를 보장하기 어렵다. 대표적인 절차지향 언어에는 C언어가 있다. 

 

객체지향 프로그래밍(Object Oriented Programming, OOP)

 객체 지향 프로그래밍이란 각각의 기능들을 객체화(클래스화)시켜 메인함수에서는 객체화시킨 기능들을 호출해서 사용하는 프로그래밍 기법이다. 각 클래스를 호출하여 그 안에 미리 정의된 변수와 메소드를 불러오는 방식이라 코드를 단축시킬 수 있으며 프로그램의 유지보수가 쉬운편이다. 그러나 각각의 클래스를 불러오고 제거하는 작업을 추가적으로 해주어야 하므로 처리속도가 절차 지향 프로그래밍보다는 느린 편이다. 객체 지향의 3대 특성으로는 캡슐화, 상속, 다형성이 있으며 대표적인 객체지향 언어에는 Java가 있다.

 

 자동차 공장에 두 가지 공정이 있다고 가정해보자. '공정1'은 엔진을 만들어야만 차체를 만들 수 있으며 또 다시 차체를 만들어야만 바퀴를 만들어 비로소 자동차가 만들어진다. '공정2'는 엔진, 차체, 바퀴를 각각 따로 만들어 한꺼번에 조립하여 자동차를 완성하는 방식의 공정이다. 유기적인 절차(엔진→차체→바퀴)에 따라 이전과정(엔진)이 선행되지 않으면 뒤의 과정(차체 또는 바퀴)이 진행되지 않는 '공정1'과는 다르게 '공정2'는 엔진이 완성되지 않아도 차체나 바퀴를 만들 수 있다. 여기서 '공정1'은 절차지향적, '공정2'는 객체지향적 이라 할 수 있다.


 

Comments