본문 바로가기
스파르타 내일배움캠프/TIL(Today I learned)

25.02.11 사전캠프 TIL - Java

by pandastic 2025. 2. 11.
반응형

Java Handbook

 

목차

     

    Part 01. Hello World!

    Java의 등장

     - Java는 '객체지향 언어'.

     - C에 객체지향 개념을 도입한 C++ 이라는 언어도 존재하지만, Java와는 결이 다름.

     - 객체지향 언어의 중심에는 클래스(Class)가 있음.

     - C++은 클래스 없이도 개발이 가능하기 때문에 객체지향지원 언어라고 부르기도 함.

     - 반대로 Java는 클래스 없이는 개발이 불가능!! → Java는 개발의 시작과 끝 모두 클래스에서 시작하고 클래스에서 끝남.

     - C++은 클래스와는 별개로 존재할 수 있지만 Java는 무조건 클래스 내부에 존재해야함!!

     

     

    Java의 장점

     - 단 하나의 소스 파일로 모든 기종의 컴퓨터에서 실행 가능.

     

     

    Java 버전별 차이

     - 크게 LTS(Long-Term Support)버전과 non-LTS 버전으로 나뉨.

     - LTS는 장기 지원 버전으로, 후속 버전이 나와도 일정 기간 동안 지원해주지만 non-LTS 버전은 지원이 종료됨.

     - 안정적인 시스템 운용 및 호환을 위해서는 LTS 버전을 사용하는 것을 강력히 권장.

     

     

     

    JDK(Java Development Kit)

     - Java 어플리케이션 개발 시 반드시 필요하며, 사람이 작성한 소스 코드를 번역하여 바이트 코드로 변환하는 도구인 Java 컴파일러가 포함되어 있음.

     - Oracle JDK는 상용버전으로 공개되고 있으며, 라이센스 이슈를 피하려면 다른 제조사의 JDK 사용 권장.

     - JDK에는 JRE가 포함되어 있으므로 별도로 분리하여 설치할 필요가 없음.

     

     

    JRE(Java Runtime Environment), JVM(Java Virtual Machine)

     - Java로 컴파일 된 어플리케이션을 실행하는 역할을 함.

     - 모든 Java 어플리케이션은 JVM이라고 하는 가상의 컴퓨터 공간에서 실행되고, 어떠한 운영체제라도 JVM이 설치되어 있다면 Java 어플리케이션 실행 가능.

     

     

    Oracle JDK 라이선스 상용화 이슈

     - 상업적인 목적으로 사용될 경우 유료 구독을 해야함.

     - 대체할 방법으로 Oracle의 공개 소스인 OpenJDK를 활용한 여러 대안이 있음

        ex) AZUL사의 Zulu.

     

     

    • JDK : Java Development Kit/ 자바 개발 도구
    • JRE : Java Runtime Environment/ 자바 실행 환경
    • JVM : Java Virtual Machine/ 자바 가상 기계

     

    Java의 호환성

     - Java는 Write Once Use Anywhere("소스 파일을 하나만 작성하면 어디에서든지 사용이 가능하다!") 라는 목적을 가지고 있음.

     - 반면에 C언어는 One Source Multi Object Use Anywhere("하나의 소스파일로 각 기계에 맞는 목적파일로 만들어 어디든 사용 가능하다!") 라는 목적을 가지고 있음.

     - 하나의 목적 파일로 어디든 실행이 가능하냐, 다수의 목적 파일을 만들어서 각 기계에 맞게 사용하냐의 차이.

     - Java를 사용하여 기계의 운영체제에 구애받지 않고 개발을 할 수 있음.

     - Java의 목적파일은 반기계어인 바이트코드(.class)인데 이는 운영체제가 아니라 JVM에서 사용됨.

     - 소스코드를 바이트코드로 컴파일 하는 게 자바 컴파일러(javac).

     

     

     

    반응형