본문 바로가기

[JAVA] 1. 자바의 이모저모

 

01. 자바의 역사

자바라는 언어는 오크(Oak) 또는 그린(Green)이라는 언어에서 출발한 언어이다.

1991년, 썬 마이크로 시스템즈의 엔지니어인 제임스 고슬링과 아서 밴 호프는 가전제품에 탑재될 소프트웨어를 만들기 위해, C++을 보완하여 새로운 언어를 고안하였다. 이 언어는 오크 또는 그린이라고도 불렸고, 1991년 시작된 이 개발 프로젝트의 이름은 그린 프로젝트(Green Project)였다.

 

그런데 인터넷이 등장하면서 서로 다른 운영체제를 사용하는 컴퓨터들이 통신하게 되는 상황이 오게 되자, 엔지니어들은 운영체제에 독립적인 오크를 인터넷에 적합하도록 개발하기로 하였다. 그러면서 언어의 이름을 자바(Java)로 변경하였다.

 

1995년, 자바 베타 버전이 처음으로 공개되었다. 1996년 1월, 자바 1.0이 출시됐다.

 

버전별 특징
  • JAVA 1.2 : 속도가 빨라지기 시작함
  • JAVA 1.5 : 제네릭이 추가됨
  • JAVA 1.8 : 람다가 추가됨
    * 이외에도 8 버전에는 변화가 많았다. 실무에서 가장 많이 사용하는 버전이자 오라클에서 지속적으로 관리하는 버전이다. JAVA 11도 많이 사용된다.

02. 자바의 장점

(1) 자바는 좋은 언어라고 평가 받는다.

좋은 프로그래밍 언어란?
  • 구조, 성능, 편의성이 좋다
  • 개발 도구가 좋다
  • 프레임워크가 좋다 Spring
  • 라이브러리가 풍부하다
  • 커뮤니티가 활발하고, 소스 코드가 많다

(2) 자바는 많이 사용되며 검증된 언어이다.

(3) 객체 지향 언어로서 장점을 가진다. 재사용성, 유지 및 보수의 용이성

(4) 자바 기반의 Spring 프레임워크가 한국에서 표준 프레임워크로 인정된다.

 *전자 정부 프레임워크: Java + Spring + Java 유명 라이브러리(MyBatis, Jackson, Apache Commons)


03. 자바의 특징

(1) 운영체제에 독립적이다. "Write Once, Run Anywere"

  • 자바 응용프로그램은 운영체제나 하드웨어가 아닌 JVM(Java Virtual Machine)하고만 통신한다. JVM은 응용프로그램으로부터 전달받은 명령을 운영체제가 이해할 수 있도록 변환하여 전달한다. 이에 따라 자바로 작성된 프로그램은 운영체제와 하드웨어에 관계없이 실행 가능하며 이것을 '한 번 작성하면, 어디서나 실행된다'고 표현하기도 한다.

(2) 객체 지향 언어이다. Object Oriented Programming (OOP) language

  • 자바는 상속, 캡슐화, 다형성이 잘 적용된 순수한 객체 지향 언어라는 평가를 받고 있다.

(3) 자동으로 메모리를 관리해준다. Garbage Collection

  • 자바로 작성된 프로그램이 실행되면, 가비지 컬렉터가 자동으로 메모리를 관리해주기 때문에 프로그래머는 메모리를 따로 관리하지 않아도 된다.

(4) 네트워크와 분산처리를 지원한다.

  • 다양한 네트워크 프로그래밍 라이브러리가 있어, 네트워크 관련 프로그램을 비교적 쉽고 빠르게 개발할 수 있다.

(5) 멀티쓰레드를 지원한다. Multi-Thread

  • 일반적으로 멀티쓰레드는 운영체제에 따라 구현 방법과 처리 방식이 상이해진다. 그러나 자바에서 개발되는 멀티쓰레드 프로그램은 시스템과는 관계없이 구현 가능하고, 관련 라이브러리가 있어 구현이 쉬운 편이다. 여러 쓰레드에 대한 스케줄링은 자바 인터프리터가 담당한다.

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

  • 자바로 작성된 애플리케이션은 보통 여러 개의 클래스로 구성되어 있다. 자바는 실행 시에 모든 클래스가 로딩되지 않고, 필요한 시점에 클래스를 로딩하여 사용할 수 있다. 그리고 일부 클래스가 변경되어도 전체 애플리케이션을 다시 컴파일하지 않아도 된다. 

(8) 비교적 배우기 쉽다.

  • 자바의 연산자와 기분구문은 C++에서 가져왔고, 객체 지향과 관련된 구문은 스몰톡(small talk)이라는 객체 지향 언어에서 가져왔다. 자바는 이들의 장점은 취하면서 복잡한 부분은 과감히 제거함으로써 언어를 단순화했다.

04. 자바의 라이센스

2009년 오라클이 썬 마이크로 시스템즈를 인수하면서 자바에 대한 권리는 오라클 사가 소유하게 되었다.

현재 Java 프로그래밍 언어 자체는 무료이나, 자바로 작성한 프로그램을 컴파일하거나 실행시키는 프로그램 일부가 유료이다.

그러나 오라클의 제품과 문제 없이 호환된다고 평가받는 open jdk는 무료로 사용할 수 있다.


05. 자바의 두 진영

자바에는 두 진영이 있다. 웹 개발 프레임워크인 스프링(Spring) 진영과 스마트폰 프로그램 개발의 안드로이드(Android) 진영이다.

안드로이드에서 코틀린(Kotlin)을 공식 언어로 선정하긴 했지만, 여전히 자바 언어도 호환되고 있는 상황이다.


참고 자료

강의
- 오지완 강사님, <1. 코딩의 첫 걸음, 자바 시작하기>, <<가장 쉽게 배우는 JAVA(자바), 기초부터 실무까지, 멀티캠퍼스, 2024년

도서
- 남궁성, <Chapter 01. 자바를 시작하기 전에>, <<Java의 정석>(개정 3판), 도우출판, 2016년, 2~4쪽
- 위키백과, 자바 (프로그래밍 언어)