Back-end/JAVA,Spring

자바란? JAVA programming language

cheersHena 2018. 4. 25. 19:50
반응형

What is the JAVA programming language? 

JAVA는 Sun microsystems 에서 개발한 객체지향 프로그래밍 언어이다.  가장 중요한 특징은 운영체제 Operating Systems 에 독립적이다. 자바로 만들어진 프로그램은 운영체제 종류에 관계없이 실행가능하기 때문에, 운영체제에 따라 프로그램을 전혀 변경하지 않고도 실행가능하다.

이러한 장점으로 자바는 다양한 기종 컴퓨터와 운영체제가 공존하는 인터넷환경에 적합한 언어로써 인터넷의 발전과 함께 많은 사용자층을 확보하고 있다. 

또한 객체지향개념과 기존의 다른 프로그래밍 언어, 특히 C++ 장점을 채택하는 동시에 잘 사용되지 않는 부분은 과감히 제외시킴으로써 비교적 배우기 쉽고 이해하기 쉬운 간결한 표현이 가능하도록 했다. 

방대한 클래스 라이브러리 Java API를 통해 프로그래밍에 필요한 요소들을 기본적으로 제공하기때문에 이 클래스 라이브러리만 잘 활용해도 강력한 기능의 자바프로그램을 만들 수 있다. 

자바의 역사.

1991년에 썬 엔지니어들에 의해 고안된  C++의 장점을 도짐하고 단점을 보완한 새 언어 Oak라는 언어에서부터 시작된다.인터넷이 도입되면서 오크를 인터넷에 적합하도록 개발방향을 바꾸면서 이름을 자바로 변경했으며 커피콩 이름이기도한 JAVA는 우리가 알고있는 그 커피이름의 자바가 맞다. 자바커피를 즐겨먹던 썬 엔지니어들에 의해 큰 의미없이 지어진 이름이라고. 커피와 함께 밤을 지새우며 밤샘작업을 하고 있을것만 같다. 

자바언어의 특징.

1.운영체제에 독립적이다 

기존의 언어는 한 운영체제에 맞게 개발된 프로그램을 다른 운영체제에서 적용하기 위해서 많은 노력이 필요했지만 자바에서는 그러지 않아도 된다.  이는 자바가상머신 JVM을 통해 가능하다. 자바는 운영체제 또는 하드웨어가 아닌 JVM하고만 통신하고 JVM이 자바응용프로그램으로부터 전달받은 명령을 해당 운영체제가 이해할 수 있도록 변환하여 전달한다. Write once, Run anywhere.한번 작성하면, 어디서나 실행된다.

2. 객체지향언어. Object-oriented pro-gramming language

객체지향의 특징인 상속, 캡슐화, 다형성이 잘 적용된 순수한 객체지향 언어이다.

3.배우기 쉽다.

간결하고 이해하기 쉬운 코드를 작성할 수 있도록 하였다. 솔직히 쉬운지는 모르겠지만 다른 언어와 비교했을때 쉽다는 말인것 같다...

4.자동 메모리관리 (Garbage Collection)

자바프로그램 실행 시, 가비지 컬렉터가 자동으로 메모리 관리를 해준다. 때문에 프로그래머는 메모리 관리를 따로 할 필요가 없다. 즉, 프로그래머는 단지 프로그래밍에 집중할 수 있도록 도와준다.

5.네트워크과 분산처리 지원.

다양한 네트워크 프로그래밍 라이브러리 Java API를 통해 비교적 짧은 시간에 네트워크 관련 프로그램을 쉽게 개발할 수 있도록 지원한다.

6.멀티 쓰레드 지원. multi-thread

시스템과 관계없이 구현가능하고 java API제공되므로 구현이 쉽다. 여러 쓰레드에 대한 스케줄링을 자바 인터프리터가 담당한다.

7.동적 로딩 지원 Dynamic Loading 

일반적으로 자바어플리케이션은 여러 개의 클래스로 구성된다. 자바는 동적로딩을 지원하기 때문에 실행 시에 모든 클래스가 로딩되지 않고 필요한 시점에 클래스를 로딩하여 사용한다. 

 외에도 일부 클래스가 변경되어도 전체 어플리케이션을 다시 컴파일 하지 않아도 되며, 어플리케이션의 변경사항이 발생해도 비교적 적은 작업으로 처리할 수 있는 유연한 어플리케이션을 만들 수 있다. 


자바가상머신 JVM (Java Virtual Machine)

가상머신은 실제 하드웨어가 아닌 소프트웨어로 구현된 컴퓨터이다. 자바 어플리케이션은 모두 이 가상머신에서만 실행되기 때문에, 자바 어플이 실행되기 위해서는 반드시 JVM이 필요하다.

*자바 어플리케이션과 일반 어플리케이션의 비교.

그림처럼 일반어플리케이션은 OS와 맞붙어 있기 때문에 OS종속적이다. 그래서 다른 운영체제에서 실행시키려면 어플리케이션을 그 os에 맞게 변경해야하는 번거로움이 있지만 자바 어플리케이션은 JVM하고만 상호작용을 하기 때문에 OS 및 하드웨어에 독립적이라 다른 OS에서도 프로그램 변경없이 실행가능한것이다. 단, JVM은 OS에 종속적이기때문에 해당 OS에 맞는 JVM이 필요하다 . 이로써...

Write once, run anywhere! 이 가능한 자바가 탄생하게 된다! 

*하나의 java애플리이션에는 main 메서드를 포함한 클래스가 반드시 하나는 있어야한다.

e.g) public static void main(String[] args) // main메서드 선언부  

main 메서드는 java 애플리케이션의 시작점이므로 main 메서드 없이는 java애플리케이션은 실행 될수 없기 때문.

즉 main메서드 : 자바어플리케이션의 주된 기능 실행 하는 메서드.



** 맥북 자바 환경변수 설정 





반응형