Languages/Java

[HUFS/객체지향프로그래밍] #1 자바 시작

성중 2022. 12. 22. 21:27

TIOBE 2019 년 기준 자바는 10년간 인기 순위 1위 (현재는 Python과 C, C++에게 역전)

 

기계어와 프로그래밍 언어

기계어

  • 0과 1로 이루어진 코드 사용
  • 사람과 기계어 사이 다리 역할을 하는 프로그래밍 언어 필요
  • 소스(source) 파일: 프로그래밍 언어로 작성한 파일
  • 컴파일(compile): 소스 파일을 기계어 파일로 번역

 

소스 파일과 컴파일

프로그래밍 언어

  • 자바(Java): 임베디드, 웹, 안드로이드 소프트웨어(SW) 개발 분야
  • C / C++: 하드웨어(HW) 장치 제어 및 임베디드 SW 분야
  • C++ / C#: 데스크탑 앱 또는 ASP.NET 기반 웹 SW 분야
  • 파이썬 (Python): 빅데이터 분석 및 머신러닝 SW 분야

 

자바 소개

1995년 마이크로시스템즈에서 발표한 자바(Java)는 현재 웹사이트 및 다양한 애플리케이션 개발의 핵심 언어이다

 

자바(Java)

자바(Java)의 특징

  • 오라클 라이선스 (자바 개발 도구의 배포)
  • 모든 운영체제에서 실행 가능
  • 객체 지향 프로그래밍 (OOP)
  • 메모리 자동 정리
  • 풍부한 무료 라이브러리

 

자바 개발도구 설치

자바 언어로 소프트웨어를 개발하려면 필요한 환경 및 도구를 제공하는 자바 개발 도구(JDK: Java Development Kit)를 활용해야 한다

 

JDK 종류

  • Open JDK: 개발, 학습용 및 상업용 모두 무료로 사용
  • Oracle JDK: 개발, 학습용은 무료이지만 상업용 목적인 경우 년간 사용료 지불, 안정적인 업데이트
  • 학습용은 모두 무료이므로 안정적인 Oracle JDK를 사용하는 것이 좋음

 

JDK 버전 체계

Oracle 홈페이지 접속 > Products > Java > Java SE > PC 사양에 맞는 설치 파일 다운로드

 

JDK 17 Documentation🔽

 

JDK 17 Documentation - Home

The documentation for JDK 17 includes developer guides, API documentation, and release notes.

docs.oracle.com

 

환경 변수 설정

JDK 위치를 찾을 때 JAVA_HOME 변수가 필요한 경우가 있어 미리 환경 변수 설정을 해주자

~ 제어판 > 시스템 및 보안 > 시스템 > 고급 시스템 설정 > 고급 > 환경 변수 > 시스템 변수

 

1. jdk 폴더 설치 경로로 JAVA_HOME 환경 변수 생성
2. Path 변수에 %JAVA_HOME%\bin 추가
3. 프롬프트에서 위 명령어로 자바 버전이 확인되면 성공!

IDE 설치

자바의 기본적인 통합 개발 환경(IDE)인 이클립스(Eclipse)를 사용해보자

 

Eclipse Downloads🔽

 

Eclipse Downloads | The Eclipse Foundation

The Eclipse Foundation - home to a global community, the Eclipse IDE, Jakarta EE and over 415 open source projects, including runtimes, tools and frameworks.

www.eclipse.org

 

workspace / perspective / view

  • workspace: 프로젝트 폴더가 저장, 개발 환경 정보와 관련된 메타 데이터 저장
  • perspective: 프로젝트 개발에 유용하게 사용될 view들을 미리 묶어 놓은 것
  • view: 이클립스 내부에서 사용되는 작은 창 및 기능들

 

자바 프로그램 개발 과정

자바 프로그램은 완전한 기계어가 아닌 바이트 코드 파일(.class)로 구성되는데, 운영체제에서 이를 바로 실행할 수 없어 JVM(Java Virtual Machine)이 완전한 기계어로 번역해 실행한다

 

바이트 코드 파일과 JVM
운영체제 위에서 JVM 동작
모듈 / 패키지 / 모듈 기술자

외부에서 재사용할 수 있는 패키지들을 묶은 것을 모듈(Module)이라 하며 이클립스의 프로젝트는 하나의 모듈을 개발하는 것이다 (모듈 기술자는 해당 모듈의 이름/의존성/활용도를 기술)

 

모듈화를 통한 패키지 보안 및 런타임 최적화

기본적으로는 java.se 모듈만 사용 가능하므로 다른 모듈을 사용할 경우 모듈 기술자에 의존 모듈로 등록해야 한다

ex) requires java.se;

 

// 패키지 선언
package sec01.exam01;

// 클래스 선언
public class HelloWorld {
	
	// 메소드 선언
	public static void main(String[] args) {
		System.out.println("Hello world!");
	}

}
  • main() 메소드 블록 내부에는 다양한 실행문들이 작성
  • 실행문 끝에는 반드시 세미콜론(;)을 붙여서 실행문이 끝났음을 표시

 

실행문의 종류