ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 다시 만나게 된 Java
    2022. 5. 23. comments
    반응형

    잠깐 과거로 돌아가기

    Java 언어는 대학 학부생 OOP 학습을 위해 수업을 들었었고 방학 때에는 JWT 기반 캘린더 프로그램을 토이프로젝트로 만들어본 추억이 있다. 재미있는 프로젝트였지만 C/C++ 기반의 로우한 개발이 매력적이라 생각하여 Java 아쉽게도 점점 멀어지게 되었다. 당시에는 다운로드 가능한 최신 버전을 깔아서 사용했었는데 시기적으로 대략 1.4 버전을 사용하지 않았을까 싶다.

    이클립스 IDE와 Java를 다운로드해서 설치하고 윈도우 PATH 설정을 필수로 했었던 과거 시절이 떠오른다. PATH 설정을 안해서 이클립스 에서 빌드가 안되 힘들어 했던 서글픈 일도 생각나고 그 무렵 관심이 많았던 C/C++ 개발을 위해 사용했던 Visual Studio에서는 버그가 많아서 빌드가 잘 안되면 프로그램 종료 후 재 시작하면 해결되는 경우도 많았는데 요즘에는 상상도 할 수 없는 일들이기도 하다.

    근대의 개발 언어들은 각각 개성 있는 특징을 갖고 있으면서도 서로 닮아가고 장점을 흡수하려는 경향이 있다. 과거 경험했던 Java를 다시 공부하고 사용해보니 많은 변화가 있음을 알게 되었다. Java의 기초적인 내용부터 활용하는데 있어 도움이 될만한 내용들을 글로 잘 정리해보려고 한다. 

    탄생 배경

    Java는 썬 마이크로시스템즈에서 개발되었고 1996년에 발표되었다. 객체지향 프로그래밍 언어이면서 JVM(Java Virtual Machine)을  통해 하나의 코드로 다양한 운영체제에서 실행이 가능한 것이 특징이다. 서버 운영체제 종류가 다양하기 때문에 하나의 소스코드로 다양한 서버환경(하드웨어 + 운영체제)에서 동작시킬 수 있다는 것은 큰 장점이다. 이식성 관련해서 끝판왕인 C언어만큼은 아닐지라도 말이다.

    제임스고슬링, 출처 위키백과

    엔터프라이즈 웹 개발에 상위권을 차지하고 있는 언어가 Java이지만 사실 1991년 6월 셋톱 프로젝트를 위해 제임스 고슬링(James Gosling)이 썬 마이크로시스템즈 엔지니어들과 함께 만들었다. 하지만 시대적으로 셋톱 하드웨어의 메모리나 하드웨어가 Java를 동작시킬만큼 여건이 마련되지 못했다고 한다. 그 이후 현재에는 엔터프라이즈 웹 어플리케이션 개발과 구글에서 인수한 안드로이드의 앱 개발 언어로 주로 활용되고 있다. 안드로이드를 생각해본다면 어느정도 목적을 이루었다고 봐야할 수도 있다.  참고로 Java 명칭은 유명한 커피 재배지인 인도네시아 섬 이름인 자바섬에서 따왔다고 한다.

    이제부터 기본 소양이자 알아야할 용어들을 정리해보려 한다.

    OracleJDK vs OpenJDK

    오라클이 2010년 썬 마이크로시스템즈를 인수하게 되었고 자연스럽게 Java는 그 이후 오라클에서 관리하는 개발 언어가 되었다. 그래서 Java는 오라클 라이센스가 반영되어 유료화된 OracleJDK, 그리고 Java SE 버전의 오픈소스인 OpenJDK가 제공되고 있다.

     

    GitHub - openjdk/jdk: JDK main-line development

    JDK main-line development. Contribute to openjdk/jdk development by creating an account on GitHub.

    github.com

    오픈소스의 장점은 실제 코드를 보고 구현을 어떻게 했는지 확인을 할 수 있다는 점이다. Java, C/C++를 읽을 수 있다면 자유롭게 구현이 어떻게 되어 있는지 확인할 수 있다.

    Java SE란 용어가 잠깐 나왔었는데 Standard Edition의 줄임말이다. 다양한 Java 플랫폼이 존재하지만 아래 2가지만 알고 있더라도 크게 어려움은 없을 것이라 생각된다. 

    • Java SE (Standard Edition)
      • 데스크톱 및 서버, 최근의 고사양 임베디드 시스템을 위한 표준 자바 플랫폼으로 표준적인 컴퓨팅 환경을 지원하기 위한 자바 가상 머신 규격 및 API 집합을 포함한다. 
    • Java EE (Enterprise Edition)
      • 분산 애플리케이션 개발을 위한 플랫폼으로써 Java SE에 추가적인 기능을 제공한다. 과거 J2EE라 불릴 때도 있었지만 버전 5.0 이후 Java EE로 변경되었고 최근 오픈소스 버전이 '자카르타EE' (Jakarta)로 이름을 바꿨다.

    JRE vs JDK

    JRE란 Java Runtime Environment의 줄임말로써 Java로 작성된 프로그램을 실행하기 위한 환경이다. 실행 라이브러리 또는 JVM 그리고 기타 컴포넌트 포함된다. JRE보다 JDK란 단어를 더 많이 보게 될텐데 JDK란 Java Development Kit을 말한다. JRE에 추가로 컴파일러와 디버거등 개발에 필요한 도구들을 포함한 것을 말한다.

    그러다보니 Java 개발을 하려면 JDK를 설치해야 하며, 위에서 Java SE의 오픈소스 버전인 OpenJDK 단어 중 JDK가 Java Development Kit을 말한다.

    See also

    반응형

    댓글

Designed by Tistory.