Java
자바는 1996년 1월에 배포된 객체지향 프로그래밍(Object Oriented Programming, OOP) 언어이다.
운영체제에 독립적으로 실행이 가능하기 때문에 빠른 시간 내에 많은 사용자를 확보하여 현재까지도 전 세계에서 많이 쓰이는 언어 중 하나이다.
다양한 운영체제 환경에서 사용할 수 있는 웹 개발에 적합한 언어로 많이 활용된다.
TIOBE의 자료에 따르면 자바는 오랜 기간 타 언어에 비해 상위권을 계속 유지했다.
출처 : https://www.tiobe.com/tiobe-index/
2022년 기준 세계에서 가장 많이 쓰이는 언어 중 3위에 해당한다. 그렇다면, 왜 1위나 2위가 아닌 3위인 Java를 사용해야 하는가?
이는, 각 언어에 따라 개발용도가 다르기 때문이다. 파이썬이나 C 언어로도 웹 개발을 할 수는 있다.
하지만, Java는 객체지향 프로그래밍 언어라는 점과 Spring 프레임워크라는 자바 언어 환경에서 웹 페이지의 다양한 기능을 쉽게 구현할 수 있는 좋은 도구가 있기 때문에 웹 개발에 있어 Java가 아직까지도 큰 강점을 지니고 있기 때문이다.
최근 웹 개발 분야에 있어 파이썬 언어와 Django 프레임워크도 상당히 발전했다. 이 점도 참고하면 좋을 것 같다.
자바의 특징
- 운영체제에 독립적인 언어
자바 이전의 언어들은 특정 CPU에서만 작동하거나 특정 OS에 따라 다르게 작성해야 하는 언어들이 대부분이었다. (C, C++ 등) 자바는 이러한 문제를 해결하고자 JRE(Java Runtime Environment: JVM + 표준 클래스 라이브러리)가 설치되어 있는 모든 운영체제에서 실행이 가능하도록 만들어졌다.
(JVM: Java Virtual Machine, 자바 가상 머신)
- 객체 지향 언어(Object Oriented Programming, OOP)
자바는 객체지향 프로그래밍 개념을 사용하는 언어이다. 따라서 모든 기능은 객체로 만들어 사용한다. 객체란 프로그램을 여러 부품으로 나누는 것과 비슷한 개념으로, 여러 객체들을 만들고 조합하여 하나의 프로그램을 실행하도록 설계되어 있다. 객체 지향 언어는 유지보수가 쉽고 확장성이 높은 것이 특징이다.
- 함수형 프로그래밍 지원
자바 8부터 함수형 프로그래밍을 지원하여 람다식과 스트림을 사용할 수 있다. 따라서 컬렉션의 요소를 필터링, 매핑, 집계 처리하기 쉬워지고 코드를 간결하게 작성할 수 있게 되었다.
- 자동 메모리 관리
자바는 C++ 언어를 개선하는 것이 여러 목표 중 하나였다. 따라서, 자바는 자동으로 메모리를 관리해 주는 기능을 추가했다. 메모리의 생성과 소멸을 Garbage Collector를 통해 자동으로 사용하지 않는 메모리를 수거한다. 이를 통해 메모리를 관리하는 수고를 덜고 코드에 집중할 수 있게 되었다.
JVM과 JDK
자바는 컴파일러를 통해 기계어로 변환되는 언어이다. 컴파일이란 특정 프로그래밍 언어를 기계가 이해할 수 있는 언어로 번역하는 과정으로, 자바 언어의 경우 JVM이 이해할 수 있는 바이트코드(Bytecode)로 변환하는 것을 의미한다. 이후 JVM은 바이트코드를 운영체제에 맞는 기계어로 변환한다.
JVM은 자바 프로그램을 실행시키는 도구로, 자바가 운영체제에 독립적일 수 있게 도와준다. JVM은 자바 코드로 작성한 프로그램을 각 운영체제에 맞게 해석해 실행하는 별도의 프로그램이다. 자바를 사용하기 위해서는 JDK나 JRE설치가 꼭 필요하다.
다른 언어와는 다르게 자바는 JVM이라는 가상 머신이 존재하기 때문에, C나 C++에 비해 느린 속도로 작동한다. 하지만 JVM 내부의 최적화된 JIT 컴파일러를 통해 속도를 개선해 나가고 있는 중이다.
JDK와 JRE (Java Development Kit & Java Runtime Environment)
자바 프로그래밍을 하기 위한 필수적인 설치 요소로 JDK와 JRE가 존재한다.
- JRE : JVM + 표준 클래스 라이브러리
- JDK : JRE + 개발에 필요한 도구
만약, 자바 프로그램을 실행만 할 경우, JRE만 설치해도 상관없다.
하지만, 프로그램 개발을 하기 위해서는 JDK를 설치해야 한다.
JDK는 OracleJDK(유료)와 OpenJDK(무료)가 있다.
JDK 설치
JDK는 대표적으로 Oracle JDK와 OpenJDK가 있다.
Oracle JDK의 경우 보안 업데이트를 지속적으로 제공하나 기본적으로 유료 구독형 라이센스이다. 하지만 비상업적인 용도에 한해서는 무료 사용이 가능하다.
Oracle JDK 다운로드 링크: https://www.oracle.com/java/technologies/downloads/
OpenJDK는 자바 SE의 무료 오픈 소스 구현체로 Oracle JDK와는 기술적으로 큰 차이는 없으나 성능 이슈가 존재하기도 하다.
OpenJDK 다운로드 링크: https://jdk.java.net/
그 외 OpenJDK 기반의 무료 배포판인 Zulu JDK도 있다.
Zulu JDK 다운로드 링크: https://www.azul.com/downloads/?package=jdk
'언어(Language) > Java' 카테고리의 다른 글
[Java] 자바의 데이터 타입 종류와 데이터 타입 변환 (0) | 2022.09.05 |
---|---|
[Java] 자바의 데이터 타입과 리터럴의 개념 정리 (1) | 2022.09.04 |
[Java] 자바의 상수(Constant), final 변수 정리 (0) | 2022.09.03 |
[Java] 자바의 변수(Variable) 정리 (변수 선언, 초기화, 명명 규칙) (0) | 2022.09.02 |
[Java] 자바의 메서드 개념 정리 (메서드의 정의와 호출, main 메서드) (0) | 2022.08.31 |