본문 바로가기
코드프레소 체험단/Java 프로그래밍

[처음 시작하는 Java 프로그래밍] Java 프로그래밍 언어의 소개

by 의정부핵꿀밤 2022. 1. 12.
728x90

✨ 이 글은 [ 코드프레소 Java 웹 개발 체험단 활동 ] 내용입니다 ✨

💜 코드프레소 이러닝 강의 수강 중 - 처음 시작하는 Java 프로그래밍 💜

😎 아래의 링크를 통해 프리미엄 IT 교육 서비스, 코드프레소를 확인해보세요  😎

 

https://www.codepresso.kr/

 

프리미엄 IT 교육 서비스 - 코드프레소

 

www.codepresso.kr

 

(오.. 나 무슨 광고알바 같네ㅋㅋㅋ 광고 아니고 체험단입니다~)


Java 언어 소개

 

Java 언어의 탄생

  • 1991년 제임스 고슬링 주축인 그린 프로젝트로 시작
  • TV 셋톱박스 등의 다양한 종류의 기기에서 동작하는 언어를 지향
  • 1995년 Sun MicroSystems에서 Java 1.0 공식 발표
  • 2021 현재 Java 18까지 출시됨

 

 

Java 언어의 특징

  • WORA - Write Once Run Anywhere
  • Java 이전 C, C++은 하드웨어의 의존적이다 -> 다른 종류의 하드웨어에서 실행하기 위해서는 재 컴파일 필요하다
  • Java는 한번 작성 및 컴파일 된 결과물이 어디서든 동작 가능 -> JVM(Java Virtual Machine)이 핵심이 된다!
  • 객체 지향 언어
  • Java 코드는 class를 기본 단위로 구성된다
  • 상속, 다형성, 캡슐화 등의 객체지향적 요소를 언어적으로 지원한다
  • 자동화 된 메모리 관리
  • 프로그램은 컴퓨터 메모리를 사용해 동작한다
  • 이 때 메모리 자원은 한정적이며, 효율적인 관리가 필수다
  • Java는 JVM의 Garbage Collector가 사용되지 않는 메모리 자원을 회수한다
  • 따라서 개발자가 직접 메모리 관리를 하지 않아도 된다

 

 

Java 언어 적용 분야

  • Java 언어는 다양한 분야에 적용될 수 있다
  • 모바일 애플리케이션 개발
  • 웹 애플리케이션 개발
  • 빅데이터 솔루션 개발
  • 데이터베이스 개발
  • 데스크탑 GUI 어플리케이션 개발
  • 빅데이터 분석, 머신러닝
  • 게임 개발
  • 임베디드 SW 개발

 


Java 주요 용어

 

소스코드의 실행 과정

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

 

 

C언어의 플랫폼 의존성

  • C언어의 경우 다른 플랫폼에서 동작하려면 컴파일 과정을 다시 수행해야만 한다

 

  • 만약 윈도우 프로그램을 리눅스에서 동작하도록 하려면 아래와 같이 컴파일을 다시 해야한다

 

 

 

 

 

Bytecode와 JVM

Bytecode와 JVM

 

1. Bytecode

Bytecode

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

 

 

2. JVM

  • Jaa Virtual machine
  • Bytecode를 싱행하기 위한 가상 머신
  • Wrtie Once, Run Anywhere를 구현하는 핵심
  • OS, HW 독립적으로 Bytecode를 실행할 수 있다
  • 즉, JVM이 Java Bytecode와 OS/HW 사이의 번역기 역할을 수행하는 것이다
  • 단, Window와 Linux용 JVM이 따로 존재하기 때문에 각각 설치를 해줘서 사용해야 한다

 


JRE

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

 

 

JDK

  • Java Development Kit
  • JRE + Java 개발 도구를 포함한다
  • Java 개발을 위해서는 JDK 설치가 필수적이다

 


정리!

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

 

728x90

댓글