Java - 자바란?
- 프로그래밍/자바
- 2021. 3. 31.
Java는 무엇인가?
Java는 썬 마이크로 시스템즈(Sun Microsystems)에서 개발한 프로그래밍 언어로 1999년 1월에 공식적으로 발표한 객체지향 프로그래밍 언어입니다. Java의 중요한 특징은 운영체제(Operating System) 즉 플랫폼(Platform)에 독립적이라는 것입니다. 그 이유는 Java가 "Write Once Run Anywhere"라는 목표를 가지고 만들어졌기 때문입니다. 그렇기 때문에 Java로 만들어진 프로그램은 JVM이 존재하는 운영체제라면 프로그램을 전혀 변경하지 않고도 실행이 가능합니다.
이러한 장점으로 인해 Java는 다양한 운영체제와 호환성을 가진 언어로써 컴퓨터의 발전과 함께 많은 사용자들을 확보할 수 있었습니다. 또한 기존의 프로그래밍(절차 지향) 언어들과 달리 객체 지향 개념을 채택함으로써 다른 언어에 비해 비교적 배우기 쉽고 이해하기 쉬운 언어로 프로그래머에게 인기를 끌었습니다. 지금도 Java는 꾸준히 성능을 개선해나가며 새로운 버전을 발표하고 있고 모바일 디바이스나 IoT 등의 다양한 최신 기술을 지원함으로써 그 활동 영역을 넓혀 가고 있습니다. 현재 Java는 오라클(Oracle)이 인수하여 관리하고 있습니다.
Java의 특징
Java가 프로그래밍 언어로써 가지는 대표적인 특징들은 다음과 같습니다.
-. 객체지향 언어이다
Java는 객체지향 프로그래밍 언어(object-oriented programming language) 중의 하나로 객체지향 개념의 특징인 다형성, 상속, 캡슐화의 개념을 잘 체계화한 프로그래밍 언어입니다. Java는 기존의 프로그래밍 언어들이 가지는 장점은 취하면서 복잡하고 불필요한 부분은 제거하여 단순화함으로 쉽게 배울 수 있게 만들어졌습니다. 즉 간결하고 이해하기 쉬운 코드를 작성할 수 있게 만들어 배우기가 어려운 코드가 아니라 Java만의 간결하고 명확한 객체지향 설계를 내세워 프로그래머들이 객체지향 개념을 보다 쉽게 이해하고 활용할 수 있도록 하여 객체지향 프로그래밍 언어로 입지를 견고하게 만들었습니다.
-. 운영체제에 독립적이다.
기존의 언어들은 운영체제에 종속적으로 개발이 되어 다른 운영체제에서 동작하기 위해서는 많은 노력을 필요로 하였습니다. 그러나 Java는 운영체제에 독립적으로 프로그램을 만들 수 있게 설계되어 이전의 언어와는 달리 크로스 플랫폼에 대한 비용과 노력을 줄여줍니다. 플랫폼에 독립적일 수 있는 것은 일종의 에뮬레이터인 자바 가상 머신(JVM)을 통해서 가능한 부분입니다. Java로 개발된 응용 프로그램은 운영체제나 하드웨어가 아닌 JVM 하고만 통신하고 JVM이 응용프로그램으로부터 전달받은 명령을 운영체제가 이해할 수 있도록 변환하여 전달합니다. 그렇기 때문에 Java로 개발된 프로그램은 운영체제나 하드웨어에 관계없이 실행 가능하며 이를 일컬어 "Write once, run anywhere(한번 만 만들고, 어디서든 동작한다)"고 말합니다.
-. 자동으로 메모리를 관리한다.
Java로 개발된 프로그램은 GC라고 불리는 가비지 컬렉션(Garbage Collection)이 자동으로 메모리를 관리해줍니다. 때문에 프로그래머는 메모리를 별도로 관리하지 않아도 됩니다. 가비지 컬렉션과 같은 메모리를 관리해주는 프로세스가 없다면 프로그래머는 사용하지 않는 메모리를 확인하고 반환하는 일을 직접적으로 해야 합니다. 대표적인 예로는 C++과 같은 언어가 있으며, 메모리 할당과 해제를 프로그래머가 수동적으로 하게 되면서 잠정적으로 메모리 누수(leak)를 야기합니다. 물론 자동으로 메모리를 관리해준다고 해서 좋다고만(효율적인 자원관리 측면) 이야기할 수는 없습니다. 확실한 부분은 GC가 존재함으로써 프로그래머는 자원 문제를 제외하고 프로그램의 비즈니스만 고민할 수 있도록 도움을 줍니다.
-. 멀티 스레드(Multi Thread)를 지원한다.
멀티 스레드(Multi Thread)의 지원은 사용되는 운영체제에 따라 구현 방법의 차이가 존재하고, 처리하는 방식도 다릅니다. 그러나 Java로 멀티 스레드 프로그램을 개발하는 경우 Java에서 제공하는 표준 라이브러리(Java API)를 통해 쉽게 구현이 가능합니다.
-. 다양한 라이브러리 지원한다.
Java는 표준 라이브러리를 통해 네트워크, Applet, AWT, IO 등 풍부한 API를 제공하고 있으며 이를 바탕으로 프로그래머는 손쉽게 요구사항에 부합하는 프로그램을 만들 수 있습니다.
정리하기
가끔 Java를 두고 이런 글들이 심심치 않게 보입니다. "더 많고 좋은 프로그래밍 언어, 기술들이 나왔기 때문에 Java는 이제 끝났다 멀지 않은 미래에 다른 프로그래밍 언어들이 Java를 대신할 것이다. 다른 프로그래밍 언어를 배워라"라고요. 결론을 내릴 수는 없지만 Java는 쉽게 프로그래머들에게 잊힐 언어는 아니라고 생각합니다. Java는 지금까지도 지속적으로 많은 인기와 관심을 받고 있는 프로그래밍 언어이고 웹, 안드로이드, 윈도 프로그램, 게임 등 어디에 국한되지 않고 여러 분야에서 활용되고 사용되어왔습니다. 더불어 Java가 가지고 있는 거대한 생태계는 어떤 언어라고 해도 쉽게 가질 수 있는 생태계가 아닙니다. 그러한 이유로 개인적으로는 Java가 앞으로도 지속적으로 발전되고 사용될 거라고 생각합니다.
'프로그래밍 > 자바' 카테고리의 다른 글
Java - 변수 타입 - 기본형(Primitive type) (12) | 2021.04.09 |
---|---|
Java - 변수 선언(Variable declare)과 초기화(Initialize) (10) | 2021.04.07 |
Java - JVM(Java Virtual Machine) 간단히 알아보기 (4) | 2021.04.02 |
Java - 변수(Variable) (8) | 2021.04.01 |
Java - 구구단 만들기 (2 ~ 9단) (4) | 2021.03.31 |