백엔드 시작 - Java

김형석·2025년 1월 9일
0

LG CNS AM Inspire Camp

목록 보기
4/18

1. JDK, JRE, JVM

1-1. 정의

  • JDK는 Java Development Kit의 약자로, JRE뿐만 아니라 javac, jheap(jmap, jcmd 등으로 대체), jconsole 등도 포함된 Java 컴파일 및 개발 도구의 집합이다.
  • JRE는 Java Runtime Environment의 약자로, JDK에 속한다. JVM과 Java Class Library를 이용해서 자바 실행 환경을 제공한다.
  • JVM은 Java Virtual Machine의 약자로, JRE에 속한다. OS 위에서 실행 파일(바이트 코드 파일)을 실제로 구동하는 역할을 수행한다.

JDK, JRE, JVM의 포함 관계


1-2. 실행 흐름

  • .java(소스 파일)은 JDK의 javac로 컴파일되어 .class(바이트코드 파일) 파일이 된다.
  • .class 파일은 JVM 환경에서 실행된다.


2. Java의 특징

2-1. 특징

  • 플랫폼 독립적이다.
    • 컴파일 후에는 JVM(Java Virtual Machine)만 있으면 OS에 무관하게 코드를 실행할 수 있다.
  • 객체 지향 언어이다.
    • 캡슐화, 상속, 다형성, 추상화 등 OOP의 주요 특징을 구현할 수 있다.
    • Class와 Class의 인스턴스를 사용한다.
  • 함수형 코딩을 지원한다.
    • Java 8에서 stream 메서드와 lambda 메서드를 도입
  • 분산 처리를 지원한다.
    • 분산 처리를 위한 다양한 툴과 프레임워크가 있다.
  • 멀티쓰레드를 지원한다.


2-2. 플랫폼 독립적임의 의미

  • '플랫폼 종속적'은 한 OS에서 작성한 코드를 다른 OS에서는 실행할 수 없음을 의미한다.

  • '플랫폼 독립적'은 개발 OS와 실행 OS가 달라도 코드가 작동한다.

  • 플랫폼으로부터 독립적이려면 필요한 것

    • 운영체제와 애플리케이션 사이의 중간 단계 -> 가상 환경
    • 실행 파일은 가상 환경과 인터페이싱하고, 가상 환경은 OS 위에서 구동되어 실행 파일 실행을 지원한다.
    • 예시) Java는 개별 OS용 JVM을 사용해서 하나의 실행 파일을 다양한 OS에서 실행할 수 있다
  • 주의점
    - 실제 환경에서는 JVM 등 가상 환경의 호환 문제로 인해 실행 파일을 실행하지 못할 수 있다. -> Docker 등의 컨테이너 기술이 사용되는 이유.


3. 자바 프로젝트 만들기

3-1. 코드 작성 및 실행 절차

  • Java 프로젝트 생성(프로젝트 디렉토리 생성)
  • 패키지 생성(하위 폴더 생성)
  • class 파일 생성(소스 파일을 작성하기 위한 파일)
  • 저장(컴파일을 통한 바이트 코드 생성)
  • 실행

3-2. 단계 설명

3-2-1. 패키지 생성

  • 프로젝트의 논리적 구조를 구성하는 단계로, 비슷한 역할의 파일을 묶어서 관리를 용이하게 한다.
    • 해당 구조를 보기 위해서는 CMD에서 프로젝트 디렉토리로 이동한 후, tree ./f 명령어를 사용
  • 프로젝트 디렉토리에 패키지와 이름이 동일한 폴더가 생성된다.
  • 패키지 생성 시 .를 사용한다면, .를 기준으로 앞이 상위 디렉터리, 뒤가 하위 디렉터리로 생성된다.
  • 서로 다른 패키지에 들어있는 같은 이름의 클래스 파일은 서로 다른 파일이다.
  • 유일한 패키지로 만들기 위해 도메인 이름을 역순으로 표기하는 방법을 사용함.

3-2-2. 클래스 파일(자바 파일) 생성

  • src 경로에서 생성한다.
  • 일반적으로 패키지 내부에 만든다.
  • CMD에서 디렉터리 구조를 확인하면 동일한 이름의 class 파일을 확인할 수 있는데, 이것이 컴파일 결과물이다.

3-2-3. 실행

  • 단순히 코드 실행 결과를 확인하는 '실행' 버튼이 있다.
  • 디버깅 기능(코드 흐름 추적 기능)을 지원하는 '디버그' 버튼으로 실행하면 줄 단위로 실행된다.


참고 자료 및 출처

0개의 댓글