본문 바로가기
정보

자바(JAVA), 자바에 대한 소개

by 코우코우볼 2022. 9. 20.

 

1.  자바의 소개

자바는 썬 마이크로시스템(Sun Microsystem)에서 제임스 고슬링과 다른 연구원과 가전제품 내에 동작하는 독립적인 프로그램을 만들었고 이를 'OAK' 라고 불렀습니다.

 

가전 제품 내에 프로그램에 탑제하기 위해 만들어진  'OAK'는 결국 마지막에는 성공하지 못하고 끝나게 되었지만 웹시대가 도래하자 플랫폼 독립적인 자바는 'OAK'의 사상을 간직한채 공식 발표 되면서 사용되게 되었습니다.

 

자바는 1995년에 정식 발표 되었고 1996년에 JDK 1.0을 발표 하였으며 안정화를 거친 1.02 버전에서 JAVA로 이름이 바뀌었습니다.

2. 자바의 특징에 대하서 알아보자

(1) 객체지향언어(Object Oriented Language)

객체지향언어는 기존 프로그램언어에 객체지향 개념을 추가한것을 나타냅니다.

 

객체지향이란 프로그래밍 방식, 프로그램의 방법론으로서 객체지향 프로그램은 각각의 객체들을 만들고 이 객체들을 조합해서 프로그램을 만드는것을 의미합니다.

 

이러한 객체지향 프로그램의 특징은 유지와 관리의 큰 장점이 있습니다.

또한 반복되는 변수, 메소드를 클래스 안에 필요한 메소드나 변수들을 넣어 코드의 중복성을 제거 하게 되니 코드가 간결해지며 가독성이 좋아집니다.

 

프로그램에서 오류가 발생시에 객체지향 프로그램에서는 해당 부분만 수정 및 교체 하여 문제를 간편히 수정하고 관리할 수 있습니다. 

 

객체지향에는 4가지 특징이 있습니다.

그 특징 4가지는 추상화, 캡슐화, 상속성, 다형성으로 분류 하여 나눌수 있습니다.

(1) 추상화

객체 지향에서는 추상화를 많이 사용하고 중요한 개념입니다.

추상화는 사물의 공통적인 특징을 하나의 개념으로 만든것을 의미합니다.

 

ex)동물인 개, 고양이의 특징(걷는다, 운다, 먹는다 등)을 하나의 인터페이스로 만들어 사용하는것을 나타냅니다. 

중복 되는 부분을 하나의 인터페이스로 정의 해서 사용하므로 중복되는 코드 부분을 줄일수 있으며 코드에 간결성이 더해집니다.

(2) 캡슐화

캡슐화를 하지 않으면 외부에서 접근하여 수정하여 문제가 생길수도 있으므로 외부에서 접근 하지 못하도록 하는것입니다.

 

이러한 방법을 사용하여 추후에 내가 아닌 다른 사람이 프로그램에서 데이터를 수정할때 함부로 값을 수정하지 못하여 값이 잘못 변경되는 부분을 방지 할수 있습니다.

 

즉, 외부에서 의존을 낮춰 필요하지 않은 의존관계를 없에 객체간의 결합도를 떨어뜨릴수 있습니다.

(3) 상속성

기존에 만들어진 기능을 상속을 받아서 다시 사용하거나 확장하는것 입니다.

만들어진 기능을 상속 받아 사용하므로 상속받은 부분은 다시 코드를 구현 할 필요 없으므로 코드의 양이 줄어듭니다.

 

ex) 노래를 잘부른다라는 기능을  상속 받으면 노래를 잘부른다는 기능을 만들지 않고 사용할 수 있습니다. 즉 기능을 처음부터 다시 만들 필요가 없습니다.

(4) 다형성

하나의 객체가 여러가지의 타입을 사용할수 있는것 입니다.

 

ex) 부모객체가 있고 부모객체를 상속 받은 자식객체가 있을 경우

부모객체 부모 = new 자식객체();로도 사용이 가능합니다.

 

현재 사용되는 언어 중에 객체 지향언어는 JAVA, C++, python, JavaScript 등등이 있습니다.

(2) 자동 메모리 관리

자바가 나오기 전에는 프로그래머가 직접 메모리를 할당, 해제하면서 메모리를 관리 해주었어야 했습니다.

그렇기에 프로그래머가 메모리 관리를 실수 할 경우 해당 프로그램에 메모리가 부족하여 프로그램이 멈추는 경우가 많았습니다.

 

하지만 자바에서는 가비지컬렉터(garbage collector)가 등장하여 가비지컬렉터가 메모리를 자동으로 관리를 하게되니 프로그래머가 메모리를 정리하지 않게 되었습니다.

 

이러한 가비지 컬렉터의 등장으로 프로그래머는 메모리의 관리에 신경쓰지 않고 자바를 작성할수 있게 되었으며  프로그램을 작성하기가 매우 편리해졌습니다.

(3) 멀티 쓰레드 지원

멀티쓰레드란 하나의 프로그램에서 여려가지 프로그램을 동시에 실행시키는것 입니다. 현재 프로그램을 동작시키고 다른 프로그램을 동작시킬수 있게되었습니다.

(4) 자바의 풍부한 라이브러리 지원

라이브러리란 프로그램을 개발 하는데 필요한 기능들을 제공하는 것입니다.

자바에서 제공하는 라이브러리가 다양하고 방대해서 원하는 프로그램을 쉽게 개발 할수 있습니다.

(5) 운영체제의 독립적

일반적인 프로그램은 작성하면 해당 운영체제에서만 운영이 가능하였습니다.

하지만 자바로 만들어진 프로그램은 여러 운영체제에서 실행이 가능합니다.

 

자바의 슬로건은 한번 작성, 어디서든 실행(Write once, Run anywhere)입니다.

이러한 것이 가능해진 이유는 JVM(Java  Virtual Machine) 때문입니다.

 

Virtual Machine은 가상 컴퓨터를 나타내고 실제 컴퓨터가 아닌 소프트 웨어로 만들어진 컴퓨터란 뜻입니다.

일반 적인 프로그램 운영체제(OS) 위에서 실행되지만 자바는 프로그램은 운영체제 위에 설치된 JVM에서 실행되기에 운영체제와 독립적입니다.

 

자바는 여러 운영체제 별로 JVM이 만들어져 있기 때문에 해당 운영체제에 맞는 JVM을 설치 후 자바로 만들어진 프로그램을 실행 시키면 여러 운영체제에 코드 수정 없이 동작 할수 있습니다. 

 

 

 

 

 

 

댓글