작은 고양이의 캣 타워

1 _1. 자바의 실행과정 (메모장으로 코딩하기)

by J4BEZ

안녕하세요 :D

지난번 자바의 기초를 다지는 '0 시리즈'  중 '0 _3. 자바 가상 머신 (JVM:Java Virtual Machine)'게시글 에서 

JVM을 알아보면서 간략하게 자바 프로그램 실행 과정 알아보았던 시간이 있었는데요

이번 시간에는 1).  자바 프로그램의 개발단계 를 조금 더 자세히 알아보고 

2). 메모장 과 명령 프롬포트 로 직접  코딩 을 해보며 자바의 개발단계를 한번 더 이해하는 시간이 되기로 해요!


❗주의사항: 이번 게시글은 반드시 이전의 1 _0. JDK 설치하기 & JDK 환경변수 설정하기를 학습하고 오셔야 해요

 

+ 자바 프로그램 개발단계

자바 프로그램의 개발단계는 3단계로 나누어 볼 수 있는데 지금부터 그림과 함께 알아보도록 해요!

 

1 단계:  소스 파일의 생성

먼저 에디터를 사용하여 소스 코드를 입력한 후 .java 확장자로 저장해야 해요.

에디터는 메모장 과 같은 간단한 텍스트 에디터를 사용할 수도 있고,

인텔리제이이클립스 와 같은 통합 개발 환경(IDE)을 사용할 수 도 있어요

> 통합 개발 환경(IDE: Integrated Development Environment)이란?
텍스트를 수정하여 소스 코드를 작성하는 에디터와 컴파일하고 실행하는 디버거 같이
소프트웨어 개발 프로세스를 지원하는 많은 도구들을 묶어서 제공하는 친구들 을 말해요.
프로그래밍계의 공구함이라 할 수 있죠
자바 IDE로는 대표적으로 인텔리제이(IntelliJ IDEA) 이클립스(Eclipse)가 있어요.

.txt 나 다른 확장자가 아닌 반드시 .java 확장자 여야 해용

 

2 단계: 컴파일

작성이 완료된 소스코드.java 파일을 자바 컴파일러로 컴파일해요.

자바 컴파일러가 소스코드.java를 확장자가 .class바이트 코드로 변환해주죠.

확장자가 .class인 파일을 클래스 파일이라 해요.

컴파일 되는 이 시간을 '컴파일 타임'이라 불러요

 

3 단계: 클래스 적재와 바이트 코드 검증 및 실행

🌟 클래스 적재기(Class Loader):

자바 가상 머신(JVM) 속에 들어있는 '클래스 적재기(Class loader)'라는 친구가 작성한 프로그램 내의 클래스 파일과 함께 실행하며 필요한 필수 클래스 파 들을 메모리에 올려둬요.

클래스 파일은 로컬 컴퓨터의 디스크에서 가져올 수 도 있지만, 네트워크를 통해서도 가져올 수 있어요(URLClassLoader)

 

🌟 바이트 코드 검증기(ByteCode Verifier)

가져오는 클래스들의 바이트 코드들이 이상이 없는지, 자바의 보안 규칙을 위배하지 않는지 검사 해요.

자바는 네트워크를 통하여 전송된 자바 프로그램이 컴퓨터를 훼손시키는 것을 방지 하기 위해서

엄격한 보안 규칙을 가지고 있어요.

 

🌟 실행

이제 JVM바이트 코드를 해석하며 프로그램을 실행해요.

저번 0 _3. 자바 가상 머신 (JVM:Java Virtual Machine) 게시글에서 JVM이 바이트 코드를 해석하고 실행하는 방식엔

크게 3가지가 있다고 알아봤었는데요, 간단히 읽어보며 한번 더 복습해 보기로 해요!

컴파일 된 클래스 파일이 JVM에서 실행되는 시간을 '런 타임'이라 불러요

 

+ (충격!) 메모장으로 코딩을 할 수 있다?! ★삐슝빠슝☆

자바 프로그램의 개발 단계를 알아보았으니 이제 우리가 직접 자바 언어로 프로그래밍을 해볼까요?!

참, 이번 단계는 반드시 1 _0. JDK 설치하기 & JDK 환경변수 설정하기에서 알아보았던

JDK 설치와 환경변수 설정이 모두 완료 된 다음에 진행해야 해요!

 

- 소스 파일의 생성

이번에 우리가 시험 삼아 자바로 만들어 볼 프로그램은 간단한 문장을 출력해주는 프로그램이에요.

자, 먼저 메모장을 이용해 소스코드 파일 을 작성해야겠죠?

 

>1. 메모장을 여시고 아래와 같은 소스코드 를 입력해주세요.

❗❗(대·소문자 구분 확실히 해야 해요)❗❗

public class Hello{
    public static void main(String args[]){
        System.out.println(" 쌍따옴표 사이에 원하는 문장을 입력하세요! ");
    }
}

파란 색으로 밑줄 친 부분에 원하시는 문장을 적어주세요!

단 문장을 입력하실 때 몇 가지 특수문자 들( ' , " , \ 등)은 문자 앞에 ' \ '를 붙여주는 조금 특별한 표기법을 사용하셔야 해요!

>2.  소스코드 작성을 완료하셨으면 다른 이름으로 저장 > 모든파일(*.*) > ' Hello.java ' 을 통해 파일 이름을 저장해주세요! 

⚠(파일을 다른 곳에 저장해도 괜찮지만, '바탕화면'에 잠시 저장해두시길 강권할게요!

나중에 경로를 찾으실 때 더욱 편하실 거예요)

대소문자 주의 하셔야해요! 아, 참 파일의 저장경로를 기억해두세요! (저는 바탕화면에 저장 했어요)

 

- 컴파일

>1. 명령 프롬프트 창을 소환하세요.

검정색 친구가 명령 프롬프트(CMD)예요

 

>2. '명령 프롬프트'에서 'cd' 명령어 를 통하여 'Hello.java' 소스파일 이 있는 곳으로 이동해주세요!

cd cd(Chanage Directory): 원하는 폴더 경로(디렉터리)로 이동하게 해주는 명령어에요 
사용 방법 용도 사용 예시
cd "폴더의 전체 경로" '폴더 경로'로 이동합니다.

cd C:\Program Files

cd "폴더 이름"

해당 폴더 내의 '폴더 이름' 폴더로 이동합니다.

cd Desktop
cd .. '상위 폴더'로 이동합니다. cd  ..
아, 참 명령어를 사용하실 때 명령어(cd)'경로' 사이엔 스페이스바로 한 칸을 꼭 띄어주셔야해요.
띄우지 않고 이어서 적는다면 프롬포트 친구가 명령어를 알아들을 수 없어요 :C
ex).  cdDesktop (x) -> cd Desktop (o)

하늘색 글씨는 저번 시간에 만났던 %환경변수%와 같이 컴퓨터 내에 특정 경로를 가리켜주는 친구예요

 

>3. 'javac' 명령어를 통해 Hello.java 소스코드 파일클래스 파일컴파일해주세요!

javac 명령어를 통해 바이트 코드로 컴파일된 Hello.class 파일이 생성되었어요!

 

- 실행

명령 프롬포트에서 'java' 명령어를 통해 JVM으로 변환된 클래스 파일을 실행해주세요!

java 자바 가상머신을 실행시켜 자바 프로그램을 실행시켜주는 명령어예요
사용 방법 용도 사용 예시

java "클래스 파일의 이름"

"클래스 파일"을 jvm으로 실행합니다.

"클래스 파일. class"가 아닌 "클래스 파일의

이름"만 입력해야 함에 주의하세요

java Hello
java "소스파일 .java" "소스파일.java"을 컴파일하여 jvm으로 실행합니다. 단, class파일은 생성되지 않습니다. java Hello.java

java

-cp '클래스 파일 위치' 

"클래스 파일의 이름"

'클래스 파일 위치'에서

"클래스 파일의 이름"의 클래스를 jvm으로 실행합니다.

정확한 위치 지정을 통해 원하는 클래스를

불러와 실행하게 할 수 있죠.

java -cp C:\ Hello

이번 단계는 이전 단계에서 'javac'명령어를 통하여 변환된 클래스 파일이 제대로 작동을 하는지 확인하는 작업이기 때문에

'java Hello.java'를 통해 소스파일을 직접적으로 실행하는 것이 아닌 'java Hello'를 통해 클래스 파일을 실행시킬 거예요!

'java Hello.class'라고 입력하시면 절대로 안돼요!! 'java Hello'와 같이 꼭 클래스 이름만 입력하셔야해요!

 

이번 시간엔 자바 프로그램의 개발 과정(소스코드 작성 -> 컴파일 -> jvm으로 실행)을 알아보고,

이 과정을 메모장과 명령 프롬프트를 통해 한 과정, 한 과정씩 직접 해보는 시간을 가졌는데요

이러한 프로그램 개발을 위해 따로따로 했던 작업들을 효율적으로 한 곳에서 할 수 있도록 묶어둔 도구 모음 프로그램을 일컬어 통합 개발 환경(IDE:Integrated Development Environment) 이라고 해요.

 

다음 시간에는 통합 개발 환경의 종류 들을 알아보며 그중 하나인 JetBrains사의 IntelliJ IDEA를 설치하고

간단한 출력 프로그램을 작성해보는 시간을 가지도록 해요😺

수고하셨습니다⭐️

 

 

 

도움을 받은 곳: enow님의 PLAY IT 블로그

 

마지막 수정 21.01.25

블로그의 정보

작은 고양이의 캣 타워

J4BEZ

활동하기