Java란?
컴퓨터 프로그래밍 언어(programing language)이다.
컴퓨터 프로그램(애플리케이션)을 만드는 데 사용한다.
실행환경(JRE)+ 개발도구(JDK)+라이브러리(API)
※ 라이브러리 : 프로그램을 개발하는데 필요한 기능들을 미리 만들어 놓은 것을 말한다. // 라이브러리 도서관이라는 뜻.
도서관에서 빌려볼 수 있는것들은 다른 사람들이 써 놓은 책들. 가져다 쓸 수 있는 레퍼런스라고 생각하면 된다.
자바에서 제공하는 풍부한 라이브러리를 사용하면 쉽고 빠르게 애플리케이션 개발이 가능하다.
Java의 활용범위
PC 애플리케이션 // ex. 인텔리제이, 이클립스)
웹 애플리케이션 // 간단히 말하면 웹사이트 // spring 프레임웍으로 만드는데 spring 프레임웍 또한 Java로 만들어졌다.
모바일 애플리케이션(안드로이드)
빅 데이터(Big Data) // 빅 데이터의 가장 기본적인 플랫폼은 hadoop이다. hadoop이 Java로 만들어졌다.
게임(마인 크래프트), 과학, 소형기기 등 // 원래 Java는 소형기기에 사용하려고 만들어졌다.
Java를 배워야 하는 이유
다양한 분야에서 활발히 사용되고 있다.
20년 동안 프로그래밍 언어 1,2위를 유지했다.
TIOBE Index 2022년 기준 4위 점유율 10%대 (1위는 Python, 2위 C, 3위 C++). 2020년에는 자바가 1위였으나 2022년에는 4위로 추락하였다. 트랜드는 계속 바뀌고 있다. 그동안 파이썬의 인기는 높아졌는데 변화의 이유에 대해서 알아볼 필요도 있다. 파이썬이 빅데이터와 머신러닝 분야에서 핫하고 배우기 쉽다. 첫번째 프로그래밍 언어로 자바를 시작하면 컴퓨터에 대한 일반적인 지식들도 같이 배울 수 있기 때문에 균형 잡힌 학습이 가능하고 이후 C++, Python을 배우기도 쉽다.
배우기 쉽고 풍부한 학습자료 // 20년동안 쌓인 학습자료들
모던 프로그래밍 언어(객체지향+함수형)
python은 1991년, Java는 1996년. 프로그래밍 언어는 멈춰있지 않음. 계속 진화를 함. 새로운 기능들을 지속적으로 지원함
취업에 유리(실무에서 제일 많이 사용) // 국내에서는 Java를 가장 많이 사용한다.
Java의 특징
배우기 쉬운 객체지향 언어
프로그래밍 언어에 객체 지향 개념을 도입한 것 >> 객체지향언어 : C++, Java, python,JS 등. 한 언어로 객체지향개념을 잘 이해하면 다른 언어도 쉽게 배울 수 있다는 장점이 있다. C++는 강력하나 배우기 어렵고 python은 배우기 쉬우나 객체지향개념이 부족한 면이 있다. Java로 객체지향개념을 배우면 C++보다 배우기 쉬우면서도 깊이있게 객체지향개념을 배울 수 있다.
자동 메모리 관리
Java가 나오기 전에는 프로그래머가 직접 메모리를 관리해줘야 했다. 메모리를 사용하고나서 반환을 해줘야하는데 반환을 하지 않고 사용할 메모리가 부족해서 프로그램이 죽는 일이 많았다. 자바에서는 가비지 컬렉터(GC)가 메모리를 자동으로 정리해준다. 자바를 사용하면 프로그래머가 메모리를 직접관리하지 않아도 되므로 편리하다.
멀티 쓰레드를 지원
멀티쓰레드란 하나의 프로그램에서 동시에 여러 작업을 할 수 있게 해주는 것. 예를들어 채팅프로그램에서 채팅을 하면서 친구와 파일을 주고받을 수 있는 것이 프로그램이 멀티쓰레드로 프로그램이 작성되어있기 때문이다. 요즘 프로그램은 대부분 멀티쓰레드로 작성되어있기 때문에 프로그래밍 언어라면 가져야하는 중요한 특징중 하나이다.
풍부한 라이브러리로 쉽게 개발가능
워낙 많은 라이브러리를 제공하기 때문에 우리가 원하는 프로그램을 쉽고 적은 노력으로 만들 수 있다.
운영체제에 독립적
일반적으로 프로그램을 작성하면 특정 운영체제에서만 작동이 가능하다. 예를들어 Windows OS에서 실행되는 프로그램을 작성하면 Linux OS에서는 이 프로그램을 사용할 수 없다. Linux OS에서 실행하려면 수정을 해야한다. 하지만 자바로 작성된 프로그램은 수정하지 않고 서로 다른 OS에서도 실행이 가능하다. 이는 아래의 자바 가상 머신(JVM)때문에 가능한 일이다.
자바 가상 머신(Java Virtual Machine)
Java 프로그램이 실행되는 가상 컴퓨터(VM)
VM은 가상 컴퓨터를 의미한다. 소프트웨어로 만들어진 컴퓨터라는 뜻. 일반적인 프로그램은 운영체제(OS) 위에서 실행이 되는데 자바 프로그램은 JVM 위에서 실행이 된다. 그래서 OS에서 독립적일 수 있는 것이다.
한번 작성하면, 어디서든 실행(Write once, run anywhere)
자바는 여러 운영체제별로 JVM들이 만들어져 있기 때문에 자바로 작성된 하나의 프로그램을 개발하기만 하면 코드를 전혀 수정하지 않고도 JVM이 설치만 되어 있으면 실행하는데 아무런 문제가 없다.
출처 :
'Language > Java' 카테고리의 다른 글
[Java] 기본형과 참조형 (0) | 2023.01.17 |
---|---|
[Java] 두 변수의 값 바꾸기 (0) | 2023.01.11 |
[Java] 변수(Variable)-2 (0) | 2023.01.10 |
[Java] 변수(Variable) (1) (0) | 2023.01.03 |
[Java] Java API, 이클립스(Eclipse) (0) | 2023.01.01 |
댓글