본문 바로가기
JAVA & JVM

JAVA란?

by 샤워하다돌면워싱턴 2022. 8. 30.
반응형

 

 

자바의 역사

JAVA는 1991년 썬 마이크로시스템즈(Sun Microsystems)사의 제임스 고슬링(James Gosling,) 패트릭 노튼(Patrick Naughton), 크리스 와츠(Chris Warth), 에드 프랭크(Ed Frank), 그리고 마이크 쉐리든(Mike Sheridan)에 의해 '오크(Oak)'라는 언어에서 시작되었다.


오크는 처음에 가전제품에서 사용될 목적이었으나, 인터넷의 등장과 함께 인터넷에서 실행되는 프로그래밍 언어로 사용되었고, 이름을 커피 콩 원두이름을 딴 '자바'로 변경하였다.


자바의 특징
"Write Once Run Anywhere!" (한번 쓰고 어느 곳에서도 실행)

이것은 자바의 가장 큰 특징이며,  그들이 만들고자한 목적이 담긴 슬로건이다.

 

이식성이 높은 언어

  • 여기서 이식성이란 서로 다른 실행 환경을 가진 시스템 간에 프로그램을 옮겨 실행할 수 있는 것을 말한다.
  • 자바 실행 환경(JRE:Java Runtime Environment)이 설치되어 있는 모든 운영체제(Window, Linux, unix 등)에서 실행 가능하다.
    즉, JRE 위에서 프로그램이 동작하기 때문에 OS에 영향을 받지 않는 실행방식이다.
객체 지향 언어(Object Oriented Programing)
  • 프로그램을 개발하는 기법으로 부품에 해당하는 객체들을 먼저 만들고, 이것들을 하나씩 조립 및 연결해서 전체 프로그램을 완성하는 것을 객체 지향 프로그래밍(OOP, Object Oriented Programming)이라고 한다.
  • 예를 들어 붕어빵을 만든다고 했을때, 붕어빵은 완성된 하나의 프로그램이 되는 것이고 이를 만들기 위한 붕어빵 틀과 빵 재료는 객체가 되는 것이다.
메모리를 자동으로 관리
  • C언어의 경우 malloc(), free()메소드를 이용하여 메모리를 할당, 해제를 일일이 시켜주어야 프로그램이 메모리에 따라 일을 처리한다. 그렇지 않으면 프로그램은 불완전해지고 갑지기 다운되는 현상을 겪을 수도 있다.
  • 자바는 자체적으로 메모리를 관리한다.
  • 객체 생성 시 자동으로 메모리 영역을 찾아서 할당하고, 사용이 완료되면 쓰레기 수집기(Garbage Collector)를 실행시켜 자동으로 사용하지 않는 객체를 제거한다.

멀티 스레드(Multi-Thread)를 쉽게 구현할 수 있다.

  • 운영체제에 따라서 멀티 스레드를 구현하는 방법이 다르지만, 자바는 스레드 생성 및 제어와 관련된 라이브러리 API를 제공하므로 운영체제에 상관 없이 멀티 쓰레드를 쉽게 구현할 수 있다.

동적 로딩(Dynamic Loading)을 지원한다.

  • 자바 애플리케이션은 클래스로부터 생성 된 여러 개의 객체가 서로 연결되어 실행된다.
  • 애플리케이션 실행 시 모든 객체가 생성되지 않고, 객체가 필요한 시점에 클래스를 동적 로딩해서 객체를 생성한다.
  • 또, 개발 완료 후 수정 사항이 발생하더라도 해당 클래스만 수정 하면 되므로 전체 애플리케이션을 다시 컴파일 할 필요가 없다.

오픈 소스 라이브러리가 풍부하다.

  • 자바는 오픈 소스(Open Source) 언어이므로 자바 프로그램에서 사용하는 라이브러리 또한 오픈소스의 양이 방대하다.
  • 고급 기능을 구현하는 코드를 작성하는 대신 검증된 오픈소스 라이브러리를 사용하면 애플리케이션 개발 기간을 단축하여 생산성을 높이고 안정성도 높일 수 있다.
 
 
 

Reference : http://hoonmaro.tistory.com/9

반응형

댓글