-
Java의 역사와 특징Programming Language/Java 2022. 3. 26. 16:55
개발 공부를 하는 사람이라면 자바 언어에 대해서 한 번쯤 들어봤을 것이다. 특히 한국에서 개발 공부를 하다 보면 주로 사용하는 언어가 무엇인지를 떠나 자바 언어의 기본적인 문법과 사용법을 알고 있는 경우가 많다. 그만큼 많이 사용되는 프로그래밍 언어이기 때문이다. 한국의 경우 큰 기업들에서 스프링을 통해 백엔드를 구성해놓은 경우가 많기 때문에 그러한 경향이 더 크다. 이번 게시글에선 대표적인 프로그래밍 언어인 자바가 어떤 언어이며, 어떤 특징을 가지고 있는지 확인해보도록 하겠다.
자바의 역사
- 자바는 1991년 썬 마이크로시스템즈(Sun Microsystems)의 제임스 고슬링(James Gosling)이 고안한 프로그래밍 언어다.
(한 가지 재밌는 이야기, Java를 처음 배울 때 흔히 사용하는 IDE인 eclipse의 이름은 썬 마이크로시스템즈에서 따왔다고 한다.
또 한 가지 재미있는 이야기, 'Java'라는 이름은 인도네시아 자바섬에서 생산한 커피 이름에서 따왔다. 때문에 자바 로고가 커피잔이다.) - 1991년 당시에는 오크(Oak)라는 이름으로 시작했고, 1996년 자바(Java)로 이름을 변경했다.
- 2009년, Oracle이 썬 마이크로시스템즈를 인수하며 오라클로 소유권이 넘어가게 된다.
자바 표준 종류
- Java SE(Standard Edition)
- Standard Edition이라는 이름에서도 알 수 있듯이, 자바의 가장 표준이 되는 에디션.
이전에는 j2se로 불렸으나, 6.0 버전 이후 Java SE로 변경 - 우리가 자바를 생각할 때 떠올리는 대부분의 패키지가 포함되어 있음(java.lang.*, java.util.*, java.awt.* 등등)
- 자바 SE의 API는 자바의 핵심 기능을 제공함(네트워킹, 보안, 데이터베이스 접근, GUI 개발, XML 파싱 등)
- Standard Edition이라는 이름에서도 알 수 있듯이, 자바의 가장 표준이 되는 에디션.
- Jakrta EE(Enterprise Edition, 전 Java EE)
- 기업용 배포를 위해 만들어진 에디션으로 Java SE를 기반으로 Jakrta EE를 위한 API를 Import 해서 사용하는 형태
- 주로 서버 측 개발에 사용하며, JSP, Servlet, JDBC, JNDI, JTA, EJB와 같이 기업용 애플리케이션을 개발하는데 필요한 도구와 라이브러리 포함
- 덧붙여 이름은 인도네시아 수도 그 자카르타 맞다. Java라는 이름이 왜 만들어졌는지 생각하면 뭐 인도네시아 수도 이름을 붙인 것까지는 이해가 되는데 '굳이 왜...?'라고 생각할 수 있다. 이는 오라클이 이클립스 재단에 자바 EE 소스와 경영책임을 넘겼지만 자바라는 이름을 사용할 수 있는 권리를 넘겨주지 않았기 때문이라고 한다.
- Java ME(Micro Edition)
- 임베디드 기기들에서 구동되기 위한 환경을 제공하는 API들이 포함된 플랫폼
- 임베디드 기기 전용이기 때문에 경량화된 Java SE에 임베디드 기기를 위한 특수 클래스 라이브러리가 추가됨
- 스마트폰 시장이 활성화된 지금은 잘 사용되지 않는다고 한다.
- Java FX
- 데스크톱 애플리케이션과 리치 인터넷. 애플리케이션(RIA)을 개발하고 배포하는 플랫폼
- 새로운 응용 프로그램의 GUI를 구축할 때 Swing대신 JavaFX를 사용하는 것을 목표로 함
자바의 특징
- Simple
- C++의 영향을 받은 프로그래밍 언어지만, 훨씬 간단하다.
- 고급 언어에 들어있는 수많은 요소들 중에서 필요하다고 생각되는 부분들을 제외하고 모두 제거했다고 한다.
- Object-oriented
- C++은 C언어에 객체 지향적 기능을 추가해서 만들어진 언어인 것과 다르게, 처음부터 객체 지향 언어로 개발된 언어다.
- 숫자나 논리 값을 제외한 거의 모든 것들이 객체로 구성되어 있고, 실제로 Object 클래스에서 모든 클래스를 파생한다고 한다.
- Interpreted
- 흔히 파이썬은 인터프리터 언어, 자바는 컴파일 언어, 이렇게 이분적으로 생각한다. 하지만 정확히 말하면 자바는 컴파일 언어와 인터프리터 언어, 두 가지 특징을 모두 가지고 있다.
- 자바는 1차적으로 소스를 컴파일하여 클래스 파일(2진 파일)을 만든 후, 자바 런타임이 클래스 파일을 인터프리트 하면서 실행한다. 이렇게 클래스 파일을 만들어둔 덕분에 컴파일 언어에 가까운 속도와 시스템 독립성을 가지고 있다.
- robust
- 자바는 가비지 컬렉션을 수행한다. 시스템이 사용이 끝난 리소스를 삭제하는데, 개발자가 메모리 누수를 걱정할 필요가 없다.
- 포인터 연산을 없애 주소를 잘못 연결할 가능성을 없앴다.
- Secured
- 포인터 개념을 없애고, 클래스 파일 생성 과정에서 전체적인 코드 검사가 이루어진다. 또한 자료형 타입을 철저하게 확인하기 때문에 잘못된 코드를 작성할 가능성이 낮아진다.
- 즉, 컴파일만 된다면 오류가 발생할 가능성이 현격히 낮아진다.
- Platform independent
- 이 또한 자바의 가장 큰 특징 중 하나. 자바는 플랫폼 독립적이다. 즉, 현재 OS의 종류와 상관없이 설치만 되어 있다면 자바로 작성된 프로그램을 구동할 수 있다.
- 이는 JVM(Java Vritual Machine, 자바 가상 머신)이라는 개념 덕분이다.
- Multithreaded
- 멀티 쓰레딩을 지원하기 때문에 cpu 효율이 좋다.
- Dynamic
- 하나의 모듈을 갱신할 때, 모든 모듈을 갱신할 필요가 없다.
- 다른 모든 부분을 제외하고 객체 상호 작용만을 정의하는 인터페이스를 사용하기 때문이다.
물론 모든 특징들이 중요하지만, 자바 언어의 특징을 이야기할 때 가장 많이 나오는 부분은 객체 지향, 메모리 관리, OS 독립에 관한 것이다. 이 부분을 특히 이 부분은 자바 언어의 가장 중요한 특징이기 때문에 무조건 기억하고 있도록 하자.
참고
http://www.tcpschool.com/java/java_intro_basic
코딩교육 티씨피스쿨
4차산업혁명, 코딩교육, 소프트웨어교육, 코딩기초, SW코딩, 기초코딩부터 자바 파이썬 등
tcpschool.com
https://helloworld-88.tistory.com/3
[JAVA] 자바란 무엇인가?
8년을 끈 구글과 오라클의 자바(JAVA) 저작권 전쟁이 오라클의 승리로 막을 내렸다. 그렇다면 과연 자바가 무엇이길래 구글과 오라클에서 이리도 오랫동안 라이센스 분쟁을 벌였던것일까? 썬
helloworld-88.tistory.com
0 _4. 자바의 종류(Java SE, Jakarta EE, Java ME, Java FX)
이번 글 또한 꽤 알록달록한 편이에요 현재 가독성 패치 중입니다 +자바의 종류 자, 이번 시간에는 '자바의 종류'에 대하여 알아볼 거예요. 자바 언어의 플랫폼은 자바 가상 머신인 JVM과 개발하
j4bez.tistory.com
https://life-with-coding.tistory.com/430
[JAVA] 자바 언어의 특징 5가지
안녕하세요. 오늘은 자바 언어의 특징을 포스팅해보겠습니다. 자바는 굉장히 대표적인 객체지향 프로그래밍언어 중 하나입니다. 자바 최초개발자는 '자바의 아버지'라고 불리우는 제임스 아
life-with-coding.tistory.com
01-02 자바의 특징
자바를 개발한 선 마이크로 시스템즈는 자바를 아래와 같이 정의 하였다. 여기에 사용한 단어들이 자바의 특징을 잘 나타내 준다. > Java: A simple, object ...
wikidocs.net
'Programming Language > Java' 카테고리의 다른 글
자바 가상 머신(Java Virtual Machine, JVM)이란? (0) 2022.03.27 자바 컴파일 과정 (0) 2022.03.26 - 자바는 1991년 썬 마이크로시스템즈(Sun Microsystems)의 제임스 고슬링(James Gosling)이 고안한 프로그래밍 언어다.