공부하는 히욤이

[이것이 자바다] Chapter 01 자바 시작하기 본문

Programming/Java

[이것이 자바다] Chapter 01 자바 시작하기

히욤이 2021. 4. 25. 03:02

1.1 프로그래밍 언어란?


기계어(machine language)

  • 컴퓨터가 이해할 수 있는 언어
  • 0과 1로 이루어진 코드

* 프로그래밍 언어는 고급 언어와 저급 언어로 구분

고급언어

  • 컴퓨터와 대화할 수 있도록 만든 언어 중 사람이 쉽게 이해할 수 있는 언어
  • 컴퓨터가 바로 이해할 수 없기 때문에 컴파일 과정을 통해 기계어로 변환후 컴퓨터가 사용
  • C, C++, Java

 

저급언어

  • 기계어에 가까운 언어
  • 어셈블리어

 

  • 소스 : 언어들로 작성된 내용
  • 컴파일러 : 소스를 기계어로 변환하는 소프트웨어
  • 프로그램 : 특정 목적을 수행하기 위해 프로그래밍 언어로 작성된 소스를 기계어로 번역한 것

 

1.2 자바란?


1.2.1 자바 소개

  • 1995년 썬 마이크로시스템즈에서 개발
  • 1991년 오크 언어에서 부터 시작

1.2.2 자바의 특징

  • 이식성이 높은 언어
    • 이식성 : 서로 다른 실행 환경을 가진 시스템 간에 프로그램을 옮겨 실행 할 수 있는 것
    • 소스 파일을 수정하지 않아도 자바 실행 환경(JRE)가 설치되어 있는 모든 운영체제에서 실행 가능
  • 객체 지향 언어
    • 객체 지향 프로그래밍(OOP : Object Oriented Programming) : 객체들을 먼저 만들고 이것들을 하나씩 조립 및 연결해서 전체 프로그램을 완성하는 기법
  • 함수적 스타일 코딩 지원
    • 람다식 (Lamda Expressions) 지원 : 컬렉션의 요소를 필터링, 매핑, 집계 처리가 쉬워지고 코드가 간결해 짐
  • 메모리를 자동으로 관리
    • 자바는 개발자가 직접 메모리에 접근 할 수 없고 자바가 메모리를 직접 관리
    • 객체 생성시 자동적으로 메모리 영역을 찾아서 할당하고, 사용이 완료되면 쓰레기 수집기(Garbage Collector)를 실행시켜 자동적으로 사용하지 않는 객체를 제거
  • 다양한 애플리케이션을 개발 할 수 있다.
    • 윈도우, 리눅스, 유닉스, 맥 등 다양한 운영체제에서 실행되는 프로그램 개발 가능
  • 멀티 스레드(Multi-Thread)를 쉽게 구현
    • 하나의 프로그램이 동시에 여러 가지 작접을 처리해야 할 경우 대용량 작업을 빨리 처리하기 위해 서브 작업으로 분리해서 병렬 처리하려면 멀티 스레드 프로그래밍이 필요
    • 스레드 생성 및 제어와 관련된 라이브러리 API 제공
  • 동적 로딩(Dynamic Loading) 지원
    • 애플리케이션이 실행될 때 모든 객체가 생성되지 않고, 객체가 필요한 시점에 클래스를 동적 로딩해서 객체를 생성
    • 개발 완료 후 수정이 발생하더라도 해당 클래스만 수정하면 되므로 전체 애플리케이션을 다시 컴파일할 필요 없음
    • 유지보수를 쉽고 빠르게 진행 가능
  • 막강한 오픈 소스 라이브러리 풍부

1.2.3 자바 가상기계(JVM)

  • 자바 프로그램은 완전한 기계어가 아닌 중간 단계의 바이트 코드이기 때문에 이것을 해석하고 실행 할 수 있는 가상의 운영체제가 필요 => 자바 가상 기계 (JVM : Java Virtural Machine)
  • 바이트 코드는 모든 JVM에서 동일한 실행 결과를 보장하지만, JVM은 운영체제에 종속적이다.
  • 자바 프로그램을 운영체제가 이해하는 기계어로 번역해서 실행해야 하므로 JVM은 운영체제에 맞게 설치해야 함

운영체제와 JVM 그리고 자바 프로그램의 실행 단계

  1. 확장자가 .java인 파일(소스 파일)을 작성
  2. 이 소스파일을 컴파일러(javac.exe)로 컴파일
  3. 확장자가 .class인 바이트 코드 파일이 생성
  4. 바이트 코드 파일은 JVM 구동 명령어(java.exe)에 의해 JVM에서 해석되고 운영체제에 맞게 기계어로 번역

 

1.3 자바 개발 환경 구축


1.3.1 자바 개발 도구(JDK) 설치

  • 자바 프로그램을 개발하기 위해서는 먼저 Java SE(Standard Edition)의 구현체인 JDK를 설치해야 함.
  • Jaca SE의 구현체는 자바 개발 키트(JDK : Jaca Development Kit)와 자바 실행 환경(JRE : Java Runtime Environment) 두가지가 있다.
  • JDK는 프로그램 개발에 필요한 자바 가상 기계(JVM), 라이브러리 API, 컴파일러 등의 개발 도구가 포함
  • JRE는 프로그램 실행에 필요한 자바 가상 기계(JVM), 라이브러리 API만 포함
  • JDK 내부의 bin 디렉토리는 컴파일러인 javac.exe와 자바 가상 기계(JVM) 구동 명령어인 java.exe가 포함

 

1.4 자바 프로그램 개발 순서


1.4.1 소스 작성에서부터 실행까지

  1. java 소스 파일 작성
  2. 컴파일러(javac.exe)로 바이트 코드 파일(.class) 생성
  3. JVM 구동 명령어(java.exe)로 실행

1.4.2 프로그램 소스 분석

  • 자바 실행 프로그램은 반드시 클래스 (class) 블록과 main() 메소드(method) 블록으루 구성되어야 함
  • 메소드 블록은 단독으로 작성될 수 없고 항상 클래스 블록 안에 작성되어야 한다.
  • 클래스 : 필드 또는 메소드를 포함하는 블록
  • 메소드 : 어떤 일을 처리하는 실행문들을 모아 놓은 블록
  • 클래스의 이름은 개발자가 마음대로 정할 수 있다.
    1. 소스 파일명과 대소문자가 일치해야 한다.
    2. 숫자로 시작할 수 없고 공백을 포함해서는 안 된다.
    3. 클래스 블록에는 메소드를 작성 할 수 있는데, 메소드는 클래스처럼 이름과 블록을 가진다.
  • 메소드 이름도 개발자가 마음대로 정할 수 잇지만 main( ) 메소드 만큼은 다른 이름으로 바꾸면 안 된다.
  •  => java.exe로 JVM을 구동시키면 제일 먼저 main( ) 메소드를 찾아서 실행 시키기 때문에. main( ) 메소드가 없거나 잘 못 작성하면 클래스를 실행할 수 없다.

 

1.5 주석과 실행문


1.5.1 주석 사용하기

  • 주석은 프로그램 실행과는 상관없이 코드에 설명을 붙인 것
  • 컴파일 과정에서 주석은 무시하고 실행문만 바이트 코드로 번역 된다.
주석 기호 설명
// //부터 라인 끝까지 주석으로 처리한다. (행 주석)
/* ~ */ /*와 */ 사이에 있는 모든 범위를 주석으로 처리한다.(범위 주석)
/** ~ */ javadoc.exe 명령어로 API 도큐먼트를 생성하는데 사용 (자바 API 도큐먼트 문서에 포함되는 도큐먼트 주석)

* 주석문은 코드 내 어디서든 작성 가능하지만 문자열(" ") 내부에는 올 수 없다.

  => 문자열 안에서의 주석문은 문자열로 인식

 

1.5.2 실행문과 세미콜론(;)

  • 실행문은 변수 선언, 값 저장, 메소드 호출에 해당하는 코드를 말한다
  • 실행문의 마지막에 반드시 세미콜론(;)을 붙여서 실행문이 끝났음을 표시해야 함

 

 

<해당 포스트는 교육 목적을 위해 '이것이 자바다 신용권의 Java 프로그래밍 정복' 의 도서와 한빛미디어 유튜브를 참고하여 개인적으로 정리한 것으로 모든 내용의 출처와 저작권은 신용권과 한빛미디어에 있습니다.>