자바란? - 한 눈에 끝내는 자바 기초
한 눈에 끝내는 자바 기초
  • 자바란?
    01 시작하기에 앞서
    자바란?

    자바(Java)는 1995년 미국의 '썬마이크로시스템즈'라는 회사에서 개발한 객체지향 언어입니다. 현재는 '썬마이크로시스템즈'가 엔터프라이즈용 DB로 유명한 회사 '오라클'에 인수가 되었고, 그 이후 자바는 '오라클' 사에 의해 배포되고 있습니다.

    아래 표는 티오베에서 프로그래밍 언어 순위입니다. 티오베 지수라고도 불리며 꽤 공신력 있는 프로그래밍 언어 순위를 보여줍니다. 보시다시피 2019년 6월 기준 1위, 2020년 6월 기준 2위를 차지한 것을 볼 수 있습니다. 20년 이상된 언어임에도 놀라운 인기를 자랑하는 언어가 바로 자바입니다.

    Java? JDK? J2SE?


    일반적으로 자바라 하면 프로그래밍 언어로 많이 알려져 있으나 개발 플랫폼에 더욱 가깝습니다. 실제로 자바 홈페이지에 접속해보면  J2SE(Java 2 Standard Edition), J2EE(Java 2 Enterprise Edition), JRE(Java Runtime Environment), JDK(Java Development Kit) 등 여러가지의 용어가 혼재되어 있는 것을 볼 수 있죠. 위에서 언급한 용어들은 모두 자바 플랫폼**을 사용한 개발 혹은 실행을 위한 API**라고 말할 수 있습니다. 따라서 자바를 활용하여 개발을 하기 위해서는 본인이 어떤 종류의 개발을 할 것인지 잘 판단하여 적절한 API를 사용하는 것이 필요하겠습니다.

    본 강의에서는 가장 보편적으로 사용하는 J2SE를 기준으로 사용하므로, 앞으로 진행될 강의에서 "자바"라고 말하는 내용은 전부 J2SE라고 생각하시면 되겠습니다.

    **플랫폼: 특정 소프트웨어를 구동할 수 있는 갖추어진 공간
    **API: 프로그램 작성을 위한 도구의 모음(함수, 라이브러리** 등)
    **라이브러리: 소프트웨어를 개발할 때 유용하게 사용할 수 있는 변수, 함수 등의 모음

    자바의 특징


    1. 쉬운 난이도
      : 자바는 기본적으로는 C와 C++의 문법을 차용한 언어입니다. 그러나 C와 C++에서 가장 이해하기 어려운 수준인 포인터, 다중 상속 등의 개념을 없애 문법적인 난이도를 매우 낮췄습니다. 따라서 C 혹은 C++을 사용해본 프로그래머라면 자바에 매우 쉽게 적응할 수 있을겁니다. 
    2. Garbage Collector
      : 컴퓨터는 메모리라는 어떤 저장 공간을 가지고 있습니다. 현실에서도 저장할 공간은 다양한 물건이 오고 가며 지저분해지기에 어느 순간 정리를 해야 하는 것처럼, 프로그래밍을 할 때 역시 메모리에 다양한 데이터 값을 넣고 삭제하는 작업을 하면서 메모리가 지저분해지는 경우가 발생합니다. 이런 경우, 자바에서는 Garbage Collector 라는 자동 메모리 정리 기능을 사용합니다.  Garbage Collector는 프로그램이 실행 중에 사용하지 않는 메모리를 자동 해제합니다. 이 기능 덕분에 자바 개발자는 메모리  관리를 염두에 두지 않고 프로그램을 개발할 수 있습니다.
    3. JVM(Java Virtual Machine)
      : Linux 운영체제에서 개발한 C 프로그램은 Windows 운영체제에서 실행했을 때 실행되지 않습니다. 반대의 경우도 마찬가지입니다. 이는 코드로 작성된 프로그래밍 언어를 해석하는데 사용되는 도구의 차이에서 발생합니다. 소스코드에서 프로그램으로 만들어지는 과정 중 컴파일링(Compiling)이라는 과정을 거치게 되는데, 이는 사람에 친화적인 컴퓨터 언어를 운영체제(Linux, Windows 등)가 이해할 수 있는 기계어로 번역되는 과정을 지칭합니다. 즉, 컴파일링을 거쳤을 때 Linux용 C 프로그램 소스코드는 Linux 기계어로, Windows용 C 프로그램 소스코드는 Windows 기계어로 번역되기 때문에 서로 다른 운영체제에서는 사용할 수 없습니다. (이런 소스코드의 언어를 Native Language라고 합니다. 대표적인 예로 C언어가 있습니다.)
      하지만 자바는 다릅니다. 자바는 JVM이 중간 다리 역할을 합니다. 운영체제와 프로그램 사이에서 프로그램이 동작하고 있는 운영체제가 무엇인지 판단한 뒤 해당 운영체제의 기계어로 다시 번역해주기 때문에 운영체제와 상관없이 프로그램을 실행할 수 있습니다. 
    Q & A
    Q&A forum that anyone can ask and answer.
    Share your questions and answers with other students and grow together!

    Registered Questions(0)