Programming Language/Java

Java의 역사와 특징

주유소짜글이 2022. 3. 26. 16:55

개발 공부를 하는 사람이라면 자바 언어에 대해서 한 번쯤 들어봤을 것이다. 특히 한국에서 개발 공부를 하다 보면 주로 사용하는 언어가 무엇인지를 떠나 자바 언어의 기본적인 문법과 사용법을 알고 있는 경우가 많다. 그만큼 많이 사용되는 프로그래밍 언어이기 때문이다. 한국의 경우 큰 기업들에서 스프링을 통해 백엔드를 구성해놓은 경우가 많기 때문에 그러한 경향이 더 크다. 이번 게시글에선 대표적인 프로그래밍 언어인 자바가 어떤 언어이며, 어떤 특징을 가지고 있는지 확인해보도록 하겠다.

 

 

 

자바의 역사


  • 자바는 1991년 썬 마이크로시스템즈(Sun Microsystems)의 제임스 고슬링(James Gosling)이 고안한 프로그래밍 언어다.
    (한 가지 재밌는 이야기, Java를 처음 배울 때 흔히 사용하는 IDE인 eclipse의 이름은 썬 마이크로시스템즈에서 따왔다고 한다.
    또 한 가지 재미있는 이야기, 'Java'라는 이름은 인도네시아 자바섬에서 생산한 커피 이름에서 따왔다. 때문에 자바 로고가 커피잔이다.)
  • 1991년 당시에는 오크(Oak)라는 이름으로 시작했고, 1996년 자바(Java)로 이름을 변경했다.
  •  2009년, Oracle이 썬 마이크로시스템즈를 인수하며 오라클로 소유권이 넘어가게 된다.

 

 

 

자바 표준 종류


  1. Java SE(Standard Edition)
    • Standard Edition이라는 이름에서도 알 수 있듯이, 자바의 가장 표준이 되는 에디션.
      이전에는 j2se로 불렸으나, 6.0 버전 이후 Java SE로 변경
    • 우리가 자바를 생각할 때 떠올리는 대부분의 패키지가 포함되어 있음(java.lang.*, java.util.*, java.awt.* 등등)
    • 자바 SE의 API는 자바의 핵심 기능을 제공함(네트워킹, 보안, 데이터베이스 접근, GUI 개발, XML 파싱 등)
  2. Jakrta EE(Enterprise Edition, 전 Java EE)
    • 기업용 배포를 위해 만들어진 에디션으로 Java SE를 기반으로 Jakrta EE를 위한 API를 Import 해서 사용하는 형태
    • 주로 서버 측 개발에 사용하며, JSP, Servlet, JDBC, JNDI, JTA, EJB와 같이 기업용 애플리케이션을 개발하는데 필요한 도구와 라이브러리 포함
    • 덧붙여 이름은 인도네시아 수도 그 자카르타 맞다. Java라는 이름이 왜 만들어졌는지 생각하면 뭐 인도네시아 수도 이름을 붙인 것까지는 이해가 되는데 '굳이 왜...?'라고 생각할 수 있다. 이는 오라클이 이클립스 재단에 자바 EE 소스와 경영책임을 넘겼지만 자바라는 이름을 사용할 수 있는 권리를 넘겨주지 않았기 때문이라고 한다.
  3. Java ME(Micro Edition)
    • 임베디드 기기들에서 구동되기 위한 환경을 제공하는 API들이 포함된 플랫폼
    • 임베디드 기기 전용이기 때문에 경량화된 Java SE에 임베디드 기기를 위한 특수 클래스 라이브러리가 추가됨
    • 스마트폰 시장이 활성화된 지금은 잘 사용되지 않는다고 한다.
  4. Java FX
    • 데스크톱 애플리케이션과 리치 인터넷. 애플리케이션(RIA)을 개발하고 배포하는 플랫폼
    • 새로운 응용 프로그램의 GUI를 구축할 때 Swing대신 JavaFX를 사용하는 것을 목표로 함

 

 

 

자바의 특징


  1. Simple
    • C++의 영향을 받은 프로그래밍 언어지만, 훨씬 간단하다.
    • 고급 언어에 들어있는 수많은 요소들 중에서 필요하다고 생각되는 부분들을 제외하고 모두 제거했다고 한다.
  2. Object-oriented
    • C++은 C언어에 객체 지향적 기능을 추가해서 만들어진 언어인 것과 다르게, 처음부터 객체 지향 언어로 개발된 언어다.
    • 숫자나 논리 값을 제외한 거의 모든 것들이 객체로 구성되어 있고, 실제로 Object 클래스에서 모든 클래스를 파생한다고 한다.
  3. Interpreted
    • 흔히 파이썬은 인터프리터 언어, 자바는 컴파일 언어, 이렇게 이분적으로 생각한다. 하지만 정확히 말하면 자바는 컴파일 언어와 인터프리터 언어, 두 가지 특징을 모두 가지고 있다.
    • 자바는 1차적으로 소스를 컴파일하여 클래스 파일(2진 파일)을 만든 후, 자바 런타임이 클래스 파일을 인터프리트 하면서 실행한다. 이렇게 클래스 파일을 만들어둔 덕분에 컴파일 언어에 가까운 속도와 시스템 독립성을 가지고 있다.
  4. robust
    • 자바는 가비지 컬렉션을 수행한다. 시스템이 사용이 끝난 리소스를 삭제하는데, 개발자가 메모리 누수를 걱정할 필요가 없다.
    • 포인터 연산을 없애 주소를 잘못 연결할 가능성을 없앴다.
  5. Secured
    • 포인터 개념을 없애고, 클래스 파일 생성 과정에서 전체적인 코드 검사가 이루어진다. 또한 자료형 타입을 철저하게 확인하기 때문에 잘못된 코드를 작성할 가능성이 낮아진다.
    • 즉, 컴파일만 된다면 오류가 발생할 가능성이 현격히 낮아진다.
  6. Platform independent
    • 이 또한 자바의 가장 큰 특징 중 하나. 자바는 플랫폼 독립적이다. 즉, 현재 OS의 종류와 상관없이 설치만 되어 있다면 자바로 작성된 프로그램을 구동할 수 있다.
    • 이는 JVM(Java Vritual Machine, 자바 가상 머신)이라는 개념 덕분이다.
  7. Multithreaded
    • 멀티 쓰레딩을 지원하기 때문에 cpu 효율이 좋다.
  8. 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

https://j4bez.tistory.com/13

 

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

https://wikidocs.net/199

 

01-02 자바의 특징

자바를 개발한 선 마이크로 시스템즈는 자바를 아래와 같이 정의 하였다. 여기에 사용한 단어들이 자바의 특징을 잘 나타내 준다. > Java: A simple, object ...

wikidocs.net