이 글은 "코드 프레소 Java 웹 개발 체험단 활동"을 통해 배운 것을 정리하는 글입니다.

🔗 코드프레소 URL

두 번째 강의는 바로 "처음 시작하는 Java 프로그래밍"이다.


[ Java 프로그래밍 언어의 소개 ]

1. Java 언어 소개 (역사, 특징, 적용 분야)

📌 Java 언어의 탄생

  • 1991년 제임스 고슬링이 주축인 그린 프로젝트로 시작되었으며,
  • 2021년을 기준으로 Java 18까지 출시되었다.

📌 Java 언어의 특징

WORA - Write Once Run Anywhere

  • C, C++ 언어하드웨어에 의존적인 특성이 있어, 다른 종류의 하드웨어에서 실행하기 위해서는 재컴파일이 필요하다.
  • Java는 JVM 덕분에 한번 작성 및 컴파일된 결과물이 OS에 상관없이 어디서든 동작할 수 있다.

✅ 객체 지향 언어

  • Java 코드는 class를 기본 단위로 구성되며,
  • 상속, 다형성, 캡슐화 등의 객체지향적 요소를 언어적으로 지원한다.

✅ 자동화된 메모리 관리

  • 프로그램은 컴퓨터 메모리를 사용하는데 메모리 자원은 한정적이기 때문에 효율적인 관리가 필수적이다.
  • JVMGarbage Collector가 사용되지 않는 메모리 자원을 회수하기 때문에 개발자가 직접 메모리 관리를 하지 않아도 된다.

📌 Java 언어 적용 분야

Java 언어는 App 개발, 웹 개발, DB 개발, 임베디드 SW 개발, 빅데이터 분석/인공지능 등 다양한 분야에 적용될 수 있다. 이 중에서도 모바일 애플리케이션과 웹 애플리케이션 개발에서 특화되어 있다.

Point

  • Write Once, Run Anywhere
  • 객체 지향 언어이다.
  • JVMGarbage Collector가 메모리를 자동 관리한다.

2. Java 주요 용어 - Bytecode, JVM, JRE, JDK

📌 소스코드의 실행 과정

소스코드를 컴퓨터가 이해할 수 있는 실행 파일로 만들어 주는 과정

📌 플랫폼 의존성 - C언어의 예

C언어의 경우, Windows 위에서 컴파일, 링킹한 실행 결과를 Linux에서 사용하려면 실행이 안되어 새로 빌드해야 한다.

이는 WORA 철학과 맞지 않다!

📌 BytecodeJVM

  • Bytecode

    • Java 소스코드를 빌드했을 경우 생성되는 중간 코드로, 어셈블리어와 유사한 형태이다. 기계가 바로 실행할 수 없다.
  • JVM (Java Virtual Machine)

    • Bytecode를 실행하기 위한 가상 머신으로, WORA를 구현하는 핵심이다!
    • OS, HW 독립적으로 Bytecode를 실행할 수 있다. Java BytecodeOS/HW 사이의 번역기 역할을 한다!

한 번 소스코드를 컴파일한 Bytecode는 재컴파일할 필요 없이 실행할 수 있다! 이것이 바로 WORA 철학!

📌 JREJDK

  • JRE (Java Runtime Environment)

    • JVM + Java 애플리케이션 실행에 필요한 추가적인 라이브러리 등을 포함하며,
    • Java 애플리케이션을 실행하기 위한 기본 단위이다.

  • JDK (Java Development Kit)

    • JRE + Java 개발 도구를 포함하고 있다.
    • Java 개발을 위해서는 JDK 설치가 필수!

Point

  • Java 소스코드를 컴파일하면 Bytecode라는 중간 코드가 생성된다.
  • JVM으로 플랫폼 독립적인 WORA를 구현할 수 있다.
  • JRE는 실행 환경, JDK는 개발 도구를 제공한다.

[ Java 기초 문법 요소 ]

📌 클래스

Java 프로그램의 기본 단위

  • Java 프로그램은 한 개 이상의 클래스로 구성되며,
  • 일반적으로 1개의 클래스는 1개의 파일을 갖는다.
    • 파일명과 클래스명이 동일해야 하며, 클래스명은 대문자로 시작해야 한다.

📌 클래스와 객체

  • Java는 객체 지향(Object Oriented) 언어이다.
  • 객체는 사물(또는 우리가 상상할 수 있는 개념)이다.
  • 객체는 속성과 행동을 가지고 있다.
  • 클래스는 객체를 만들기 위한 틀 또는 템플릿, 설계도이다.

Point

  • Java 프로그램의 기본 단위는 클래스이다.
  • (일반적으로) 1개의 클래스는 1개의 Java 파일과 매핑된다. (이름도 동일해야 한다.)
  • 클래스로 객체를 생성하며, 객체는 속성(데이터)과 행동(메소드)를 갖는다.
profile
사물인터넷

0개의 댓글