자바란?
스마트폰을 비롯해서 각종 장비와 데스크톱에서 실행되는 어플리케이션 그리고 금융 공공 대기업 등의 엔터프라이즈 기업 환경에서 실행되는 서버 어플리케이션을 개발하는 중추적인 언어로 자리매김하고 있다.
자바의 특징
- 이식성이 높다.
= 자바 언어로 개발된 프로그램은 소스 파일을 다시 수정하지 않아도, 자바 실행 환경(JRE)이 설치되어 있는 모든 운영체제에서 실행 가능하다.
- 객체 지향 언어이다.
= 프로그램을 개발하는 기법으로 부품에 해당하는 객체들을 먼저 만들고, 이것들을 하나씩 조립 및 연결해서 전체 프로그램을 완성하는 기법을 객체 지향 프로그래밍(OOP)라고 한다.
자바는 100% 객체 지향언어이며, 객체를 만들기 위해 설계도인 클래스를 작성하고, 객체와 객체를 연결하여 목적에 맞는 프로그램을 만들어 낸다. 자바는 아무리 작은 프로그램이라도 객체를 만들어 사용한다.
- 함수적 스타일 코딩을 지원한다.
= 대용량 데이터의 병렬 처리 그리고 이벤트 지향 프로그래밍을 위해 적합하기 때문이다. 자바는 함수적 프로그래밍을 위해 람다식을 자바 8부터 지원한다. 람다식을 사용하면 컬렉션의 요소를 필터링, 매핑, 집계 처리하는데 쉬워지고 매우 간결해진다.
- 5. 메모리를 자동으로 관리한다.
= 자바는 개발자가 직접 메모리에 접근할 수 없도록 설계되었으며, 메모리는 자바가 직접 관리한다. 객체 생성 시 자동적으로 메모리 영역을 찾아서 할당하고, 사용이 완료되면 쓰레기 수집기 (Garbage Collector)를 실행시켜 자동적으로 사용하지 않는 객체를 제거시켜준다.
- 다양한 어플리케이션을 개발할 수 있다.
= 윈도우, 리눅스, 유닉스, 맥 등 다양한 운영체제(OS)에서 실행되는 프로그램을 개발할 수 있다. 단순한 콘솔 프로그램에서부터 윈도우 어플리케이션, 서버용 웹 어플리케이션 그리고 모바일용 안드로이드 앱까지 거의 모든곳에서 실행되는 프로그램을 개발할 수 있다. 자바는 다양한 운영체제에서 사용할 수 있는 개발 도구와 API를 묶어 에디션(Edition) 형태로 정의하고 있다.
- 멀티 스레드(Multi-Thread)를 쉽게 구현할 수 있다.
= 하나의 프로그램이 동시에 여러 가지 작업을 처리해야 할 경우, 대용량 작업을 빨리 처리하기 위해 서브 작업으로 분리해서 병렬 처리하려면 멀티 스레드 프로그래밍이 필요한데, 자바는 스레드 생성 및 제어와 관련된 API를 제공하고 있기 때문에 운영체제와 상관없이 멀티 스레드를 쉽게 구현할 수 있다.
- 동적 로딩(Dynamic Loading)을 지원한다.
객체가 필요한 시점에 클래스를 동적 로딩해서 객체를 생성한다. 개발 완료 후 유지보수 발생 시 해당 클래스만 수정하면 되므로 불필요한 컴파일이 발생하지 않는다.
- 오픈 소스 라이브러리가 풍부하다
자바는 오픈소스언어이기 때문에 자바 프로그램에서 사용되는 라이브러리 또한 오픈소스가 넘쳐나고, 검증된 오픈소스 라이브러리가 다수 존재하므로 코드의 안정성과 개발 기간 단축의 이점이 존재
이 전에 자바를 공부한 적이 있지만 다시 복습한다는 생각으로 정리를 할 예정이다.
- 신용권, 『이것이 자바다』, 한빛미디어(2018.1.5)
'Programming > Java' 카테고리의 다른 글
자바 기초부터 ABC (6) - 연산자 (0) | 2021.11.13 |
---|---|
자바 기초부터 ABC (5) - 자료형 (0) | 2021.11.12 |
자바 기초부터 ABC (4) - 변수 (0) | 2021.11.12 |
자바 기초부터 ABC (3) - 클래스 (0) | 2021.11.12 |
자바 기초부터 ABC (2) -자바와 객체지향 (0) | 2021.11.12 |