티스토리 뷰
이전 글에서, Java는 프로그래밍 언어라고 했습니다.
프로그래밍 언어는 물론 Java 뿐만 아니라, C, python, ruby 등 여러 종류가 있습니다.
모든 언어마다 조금씩 차이가 있습니다. 예를 들어 python(파이썬)은 문자열 처리가 다른 언어보다 빠르기 때문에, 문자열 처리를 많이 해야하는 빅데이터 같은 분야에서 인기가 있습니다.
Java의 대표적 특징은 다음과 같습니다.
1. 가장 널리 사용되는 언어 중의 하나
자바가 처음 나왔을 때는 인기가 별로 없었습니다. 하지만 인터넷이 활성화 되면서
웹 애플리케이션 개발용언어로 자바는 급부상하게 되었습니다. 기업체 및 공공기관의 다양한 서버 운영 체제에서 단 한번의 작성으로 모든 곳에서 실행 가능한 언어는 자바뿐이었기 때문입니다.
초기의 자바는 가전 제품에 탑재할 프로그래밍 언어로 개발되었지만, 지금은 스마트폰을 비롯해서 각종 장비와 데스크탑에서 실행되는 애플리케이션, 금융, 공공, 대기업 등의 엔터프라이즈 기업 환경에서 실행되는 서버 애플리케이션을 개발하는 중추적인 언어로 자리매김하고 있습니다.
2. 이식성이 높은 언어
'이식성'이란 서로 다른 환경을 가진 시스템 간에 프로그램을 옮겨 실행할 수 있는 것을 말합니다. 예를 들어 윈도우에서 실행하는 프로그램을 리눅스 또는 맥 OS에서 실행할 수 있다면 이식성이 높은 것이라고 볼 수 있습니다.
자바는 이식성이 굉장히 높은 언어입니다. 자바 실행 환경(JRE: Java Runtime Environment)이 설치되어 있는 운영체제라면 어디서든 실행을 할 수 있기 때문입니다. 이러한 이식성은 가 널리 사용되게 하는데에 일조했다고 볼 수 있습니다.
3. 객체 지향 언어
Java는 객체 지향 언어입니다. 객체 지향 언어란 무엇일까요?
객체 지향 언어는 한 단락으로 설명하기에 너무 복잡합니다.
하지만 정말 간단하게 말한다면, 조립식 부품을 만들어서, 그것들로 한 프로그램을 만드는 프로그램 제작 기법이라고 설명할 수 있을 것 같습니다.
이 부분은 지금은 간단히 넘어가고, Java는 객체 지향 언어 패러다임을 지원하며, 아무리 작은 프로그램을 만들더라도 그것을 작은 부품들로 만들어야 한다는 것 정도만 이해하면 될 것 같습니다.
4. 함수적 스타일 코딩 지원
Java는 객체 지향 프로그래밍을 지향하지만, 최근 들어 함수적 프로그래밍이 다시 부각되고 있습니다. 대용량 데이터의 병렬처리, 그리고 이벤트 지향 프로그래밍을 위해 적합하기 때문입니다. Java는 시대의 변화에 맞춰, 자바 8부터는 람다식(Lambda Expressions)을 지원합니다. 람다식을 사용하면 컬렉션의 요소를 필터링, 매핑, 집계 처리하는데 쉬워지고, 코드가 매우 간결해집니다. 1
함수적 프로그래밍에 대한 설명도 어렵다면, 지금은 이런게 있구나.. 하고 넘어가셔도 충분합니다.
5. 메모리 자동 관리
C++에서는 메모리에 생성된 객체를 제거하기 위해 개발자가 직접 코드를 작성해야 합니다. 쉽게 말해 물건을 썼으면 뒷정리를 해야한다는 것인데, 자바에서는 놀랍게도 이 뒷정리 과정이 필요 없습니다. 사용이 완료 되면 쓰레기 수집기(Garbage Collector)가 알아서 사용하지 않는 객체를 제거해줍니다. 따라서 개발자는 뒷정리가 아닌, 핵심 기능 코드 작성에 집중할 수 있는 장점이 있습니다.
6. 다양한 애플리케이션 개발 가능
자바는 윈도우, 리눅스, 유닉스, 맥 등 다양한 운영체제에서 실행되는 프로그램을 개발할 수 있습니다. 우리가 흔히 사용하는 Android 애플리케이션도 거의 대부분이 Java로 개발된 것입니다. 이 말은 여러분이 Java를 할 줄 안다는 것은, 거의 모든 곳에서 실행되는 프로그램을 만들 수 있다는 것을 의미합니다.
7. 멀티 스레드(Multi-Thread) 구현이 쉬움
멀티 스레드(Multi-Thread)는 간단히 말하면, 멀티 태스킹이라고 생각하면 됩니다. 한번에 여러가지 일을 할 때 사용하는 것인데, Java는 멀티 스레드 생성 및 제어와 관련된 라이브러리 API를 제공하고 있기 때문에 실행되는 운영체제에 상관없이 멀티 스레드를 쉽게 구현할 수 있습니다. 2
8. 동적 로딩(Dynamic Loading) 지원
위에서 객체 지향에 대해서 설명할 때, 여러가지 부품들을 조립하여 프로그램을 만드는 것이라고 설명을 했습니다. 하지만 Java는 프로그램이 실행될 때 모든 부품을 다 실행 시키는게 아닌, 어떤 부품이 필요한 순간이 왔을 때 그 부품을 실행시키는 방식으로 동작합니다. 이러한 방식을 동적 로딩이라고 합니다.
9. 막강한 오픈소스 라이브러리
자바는 오픈소스(Open Source) 언어이기 때문에 자바 프로그램에서 사용하는 라이브러리 또한 오픈소스가 넘쳐납니다. 다시 말해 누군가 만들어 놓은 훌륭한 부품들이 굉장히 많다는 것인데요. 검증된 오픈소스 라이브러리를 사용하면 개발기간을 단축하고, 안정성이 높은 애플리케이션을 만들 수 있습니다.
Java의 특징을 정리해보았습니다. Java는 장점이 굉장히 많은 언어입니다.
다음 글에서는 자바 가상 기계(Java Virtual Machine)에 대해서 설명하겠습니다.
이 글은 한빛미디어에서 나온 신용권의 '이것이 자바다'를 적극 참고해서 작성하였습니다.
'Java' 카테고리의 다른 글
[Android/Kotiln] 태블릿판별, 태블릿 아닐 때만 세로 모드 고정 (0) | 2021.01.27 |
---|---|
[백준] 유기농 배추 - 1012 (java) (0) | 2019.09.01 |
트리순회 / 숫자 (0) | 2018.09.27 |
Static 변수 (0) | 2018.02.05 |
데이터 타입 분류 (0) | 2018.01.31 |
변수와 타입 - 원시 타입(primitive type)에서 알아두면 좋을 것들 (0) | 2018.01.28 |
Java란? -3 JVM(자바 가상 기계)에 대하여 (0) | 2018.01.27 |
Java란? -1 프로그래밍 언어 (4) | 2018.01.24 |
- Total
- Today
- Yesterday
- 1992번
- java #백준 #알고리즘 #로또 #6603
- 한글 자동 완성
- java #알고리즘 #백준 #패션왕신해빈
- java #알고리즘 #백준 #퇴사
- java #하노이 #알고리즘 #백준
- Javascript
- webpack
- 백준 #java #알고리즘
- java #백준 #알고리즘 #2805 #나무자르기
- Terminal
- 색종이자르기
- java #알고리즘 #백준 #N과M #백트래킹
- java #오르막수 #백준 #알고리즘
- 알고리즘
- javascript #백준 #알고리즘 #LCS
- javascript #백준 #회의실배정 #알고리즘
- 중간거리 #야만나 #약속장소추천 #중간위치 #웹 #리액트 #React #reactjs #kakao지도 #kakaoapi
- react
- 2630번
- 백준
- TypeScript
- 백준 #알고리즘 #전깃줄 #NodeJs #javascript
- javascript #연속합 #알고리즘 #백준
- 쿼드트리
- webspider
- java #퀵소트 #quicksort #알고리즘 #백준
- Game
- java #알고리즘 #백준
- npm
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | |
7 | 8 | 9 | 10 | 11 | 12 | 13 |
14 | 15 | 16 | 17 | 18 | 19 | 20 |
21 | 22 | 23 | 24 | 25 | 26 | 27 |
28 | 29 | 30 |