왕딱지 자바 · 0강 · 딱지 떼기 준비운동 · 인쇄는 머리글/바닥글(날짜·URL)을 꺼 주세요 — 쪽 머리·꼬리는 이미 들어가요
dumok.net ·
dumok.net · 왕딱지 자바 ·
dumok.net ·
[ ] / –쪽 🏠
00
LESSON 00 · 15분

딱지 떼기 준비운동

Java 글을 번역해서 실행해 봐요

딱지 지도 — 지금 여기

00준비운동
01첫 줄 출력
02값의 종류
03계산
04갈림길
05반복
06배열
07메서드
08오버로딩
09객체
10생성자
11문자열
12static
13상속
14재정의
15다형성
16인터페이스
17예외
18졸업
이번 강에서 뗄 딱지
  • 컴퓨터 안에서 누가 일하고, 어디에 재료를 펼치는지 말해 봐요.
  • Java 코드는 컴파일(번역) → 바이트코드 → JVM 실행 순서로 돌아간다는 것을 말해 봐요.
  • 온라인 실행기에서 코드 쓰기 → Run → 결과 확인을 한 바퀴 돌고, 컴파일 오류가 나면 줄 번호를 찾아 고쳐요.
도착점 화면에 안녕하세요가 나타나요.
dumok.net
오늘의 딱지

프로그래밍을 처음 배우는 날에는 잘하는 것보다 한 번 끝까지 해 보는 것이 중요해요. 오늘은 Java로 쓴 짧은 글을 컴퓨터에게 건네고, 화면에 글자가 나타나는 것을 내 눈으로 보는 날이에요.

Java 글은 바로 실행되지 않아요. 중간에 번역을 한 번 거치고, 번역된 결과를 JVM이라는 실행 도우미가 읽어 줘요. 오늘은 이 두 단계를 그림으로 보고, 번역이 성공하는 것도 실패하는 것도 한 번씩 겪어 봐요.

오늘 뗄 딱지는 세 장이에요.

  1. 컴퓨터 안에서 누가 일하고, 어디에 재료를 펼치는지 말해 봐요.
  2. Java 코드는 컴파일(번역) → 바이트코드 → JVM 실행 순서로 돌아간다는 것을 말해 봐요.
  3. 온라인 실행기에서 코드 쓰기 → Run → 결과 확인을 한 바퀴 돌고, 컴파일 오류가 나면 줄 번호를 찾아 고쳐요.

오늘의 도착점: 화면에 안녕하세요가 나타나요. 그리고 일부러 낸 오류를 내 손으로 고쳐서 다시 안녕하세요를 봐요. 코드 다섯 줄의 뜻은 1강에서 한 줄씩 풀어요.

날짜:  내 이름:

그림으로 보기
그림 0-1 오늘의 여행 지도위에서 아래로 네 상자. 1 코드 쓰기(편집 영역에 다섯 줄), 2 컴파일(Run이 번역), 3 실행(JVM이 실행), 4 결과 확인(결과 영역에서 안녕하세요). 상자 사이는 아래 화살표.1코드 쓰기 — 편집 영역에 다섯 줄을 넣어요2컴파일 — Run을 누르면 javac가검사·번역해요3실행 — JVM이 바이트코드를 실행해요4결과 확인 — 결과 영역에서 안녕하세요를 봐요
그림 0-1 오늘의 여행 지도위에서 아래로 네 상자. 1 코드 쓰기(편집 영역에 다섯 줄), 2 컴파일(Run이 번역), 3 실행(JVM이 실행), 4 결과 확인(결과 영역에서 안녕하세요). 상자 사이는 아래 화살표.1코드 쓰기 — 편집 영역에 다섯줄을 넣어요2컴파일 — Run을 누르면 javac가검사·번역해요3실행 — JVM이 바이트코드를실행해요4결과 확인 — 결과 영역에서안녕하세요를 봐요
그림 0-1오늘은 네 칸을 한 바퀴 돌아요. 칸마다 할 일이 하나씩이에요.
오늘 외울 딱지먼저 눈에 익혀요
✂ 오려서 들고 다니세요
소스 코드
사람이 Java로 적은 글. 파일 이름은 Main.java처럼 .java로 끝나요
편집 영역에 적어요
컴파일
소스 코드를 검사하고 번역하는 일. 번역기 이름은 javac(자바씨)예요
Run을 누르면 저절로 해요
바이트코드
번역이 끝나서 생긴 결과. Main.class 파일에 담겨요
성공하면 생겨요
JVM
바이트코드를 읽어 컴퓨터에게 실행시키는 실행 도우미(Java Virtual Machine)
이름만 기억해요
Run
컴파일하고, 성공하면 바로 실행까지 하라는 버튼
한 번만 눌러요
컴파일 오류
번역을 멈추게 한 문제. 고치기 전에는 실행이 안 돼요
첫 error 줄부터 읽어요

오늘 손으로 할 일은 Run 한 번이에요. 나머지는 Run 버튼이 차례대로 해 줘요.

카드를 가리고 말해 보세요.

  • 사람이 Java로 적은 글은 예요.
  • 그 글을 검사하고 번역하는 일은 이고, 번역 결과는 예요.
  • 번역 결과를 읽어 실행시키는 도우미는 예요.

정답은 소스 코드, 컴파일, 바이트코드, JVM이에요. 오늘은 번역하는 단계와 실행하는 단계가 따로 있다는 것만 또렷하면 돼요.

생활 비유컴퓨터를 작은 부엌이라고 생각해 봐요

왕두목 샘하고 달걀 요리를 한다고 생각해 볼까요? 보관장에서 달걀을 꺼내 조리대에 놓아요. 요리사는 레시피를 보고 요리해요. 다 된 음식은 식탁으로 나와요.

부엌에서컴퓨터에서하는 일
요리사CPU(씨피유)명령에 따라 계산하고 일을 처리해요
조리대메모리(RAM, 램)지금 쓰는 명령과 데이터를 잠시 펼쳐 두어요
재료 보관장저장장치(SSD 등)파일과 프로그램을 오래 보관해요
레시피프로그램할 일을 정해진 순서와 규칙으로 적어 놓아요
식탁결과 화면처리한 결과를 사람이 확인해요

CPU는 일하는 담당, 메모리는 지금 작업하는 자리, 저장장치는 나중에도 꺼내 쓸 것을 두는 자리예요.

그런데 이 부엌의 요리사는 우리가 쓴 Java 레시피를 그대로 읽지 못해요. 그래서 Java에는 도우미가 둘 있어요.

부엌에서Java에서하는 일
우리가 쓴 레시피소스 코드(Main.java)할 일을 Java의 규칙대로 적어요
꼼꼼한 번역가컴파일러(javac)레시피 전체를 검사하고 공통 레시피 카드로 옮겨 적어요
공통 레시피 카드바이트코드(Main.class)어느 부엌에서나 같은 카드를 써요
부엌마다 있는 조리 도우미JVM카드를 한 줄씩 읽어 그 부엌의 요리사에게 시켜요

왜 이렇게 두 번에 나눌까요? 부엌마다 요리사가 알아듣는 말이 달라요. 윈도우 컴퓨터의 요리사와 맥 컴퓨터의 요리사는 다른 말을 써요. 그래서 Java는 먼저 어느 부엌에서나 통하는 공통 카드로 번역해 두고, 부엌마다 있는 조리 도우미(JVM)가 그 카드를 자기 부엌 요리사의 말로 전해 줘요. 레시피를 한 번만 번역해도 여러 부엌에서 쓸 수 있는 거예요.

번역가에게는 고집이 하나 있어요. 레시피에 규칙이 틀린 문장이 하나라도 있으면 카드를 만들지 않아요. 대신 ‘3번째 줄 끝에 마침표가 없어요’ 같은 메모를 돌려줘요. 그 메모가 컴파일 오류 메시지예요.

비유에는 한계가 있어요. 실제 컴퓨터 안에 번역가나 도우미가 사람처럼 있지는 않아요. 그리고 컴파일러는 뜻을 짐작해서 고쳐 주지 않아요. 규칙에 맞지 않으면 멈출 뿐이에요.

한번 짚어 볼까요? 레시피 셋째 줄에 마침표가 빠졌어요. 조리 도우미는 첫째 줄 요리라도 시작할까요? 아니에요. 이번 레시피의 카드가 만들어지지 않았으니, 이번 요리는 시작하지 못해요.

흐름 그림Main.java가 화면에 글자를 내기까지
그림 0-2 번역하고 실행하기까지세로 흐름. Main.java 소스 코드 → javac가 검사·번역(오른쪽 점선 상자: 오류가 있으면 여기서 멈춰요, 컴파일 메시지) → Main.class 바이트코드 → JVM이 읽어요 → CPU가 처리 → 화면에 안녕하세요.글Main.java (소스 코드)번역javac가 처음부터끝까지 검사하고번역해요규칙이 틀린곳이 있으면여기서 멈춰요→ 컴파일메시지카드Main.class(바이트코드)도우미JVM이 카드를 읽어요CPU실제 계산·처리화면안녕하세요
그림 0-2 번역하고 실행하기까지세로 흐름. Main.java 소스 코드 → javac가 검사·번역(오른쪽 점선 상자: 오류가 있으면 여기서 멈춰요, 컴파일 메시지) → Main.class 바이트코드 → JVM이 읽어요 → CPU가 처리 → 화면에 안녕하세요.글Main.java (소스 코드)번역javac가 처음부터 끝까지검사하고 번역해요규칙이 틀린 곳이 있으면 여기서멈춰요 → 컴파일 메시지카드Main.class (바이트코드)도우미JVM이 카드를 읽어요CPU실제 계산·처리화면안녕하세요
그림 0-2번역(컴파일)이 성공해야 실행으로 넘어가요. 오류가 나면 옆 상자에서 멈춰요.

그림을 손가락으로 따라가 보세요. 우리가 쓴 Main.java는 처음에 저장장치에 파일로 있어요. 컴파일러 javac가 그 파일을 처음부터 끝까지 검사하고 바이트코드로 번역해서 Main.class를 만들어요. 실행할 때가 되면 JVM이 메모리에 올라와 Main.class를 읽고, CPU에게 일을 시켜요. 그 결과로 글자가 화면에 나타나요.

번역 단계에서 오류가 나면 옆 상자로 빠져요. Main.class가 새로 만들어지지 않으니, JVM은 이번 코드를 실행할 수 없어요.

그림으로 보기
그림 0-3 부엌 안에서 누가 어디에 있나세 열 표. 자리, 무엇이 있나, 전원을 끄면. 저장장치: Main.java·Main.class 파일, 남아요. 메모리: JVM·바이트코드·지금 쓰는 값, 사라져요. CPU: 실제 계산·처리, 일하는 담당. 화면: 출력된 안녕하세요.자리(부엌)무엇이 있나전원을 끄면저장장치(보관장)Main.java · Main.class파일남아요메모리(조리대)JVM · 바이트코드 ·지금 쓰는 값사라져요★CPU(요리사)명령을 받아 계산·처리(일하는담당)화면(식탁)출력된 안녕하세요(보여 주는곳)
그림 0-3 부엌 안에서 누가 어디에 있나세 열 표. 자리, 무엇이 있나, 전원을 끄면. 저장장치: Main.java·Main.class 파일, 남아요. 메모리: JVM·바이트코드·지금 쓰는 값, 사라져요. CPU: 실제 계산·처리, 일하는 담당. 화면: 출력된 안녕하세요.자리(부엌)무엇이 있나전원을끄면저장장치(보관장)Main.java ·Main.class 파일남아요메모리(조리대)JVM ·바이트코드 ·지금 쓰는 값사라져요★CPU(요리사)명령을 받아계산·처리(일하는담당)화면(식탁)출력된안녕하세요(보여주는곳)
그림 0-3파일은 저장장치에, 실행 중인 것은 메모리에, 일은 CPU가 해요.

보통 메모리에 펼쳐 둔 것은 전원이 꺼지면 사라지고, 저장장치에 저장한 파일은 전원을 껐다 켜도 남아요. 오늘 쓸 온라인 실행기에서는 이 모든 일이 내 컴퓨터가 아니라 사이트의 컴퓨터에서 일어나요. 우리는 브라우저로 코드를 보내고 결과만 받아 봐요. 그래서 설치할 것이 없어요.

예제 1첫 실행, 설치하지 않고 한 번 해 봐요

브라우저(크롬이나 엣지 같은 인터넷 보는 프로그램)를 열고, 맨 위 주소 칸에 Java 온라인 실행기 OnlineGDB의 주소 www.onlinegdb.com/online_java_compiler 를 적어요. 검색창이 아니라 주소를 적는 긴 칸이에요.

웹 브라우저 · OnlineGDB
www.onlinegdb.com/online_java_compiler
OnlineGDB Java 실행기 첫 화면(사이트 기본 예제, 언어 Java)12345
실제 화면 0-AOnlineGDB Java 실행기 첫 화면(사이트 기본 예제, 언어 Java) — ① 언어 선택 칸(Language → Java) · ② 편집 영역(Main.java) · ③ Run 버튼 · ④ 결과 영역(실행 전) · ⑤ Stop 버튼

사이트의 배치나 안내 문구는 바뀔 수 있어요. 버튼 위치를 외우지 말고 언어 선택 칸·편집 영역·Run·결과 영역·Stop이라는 역할을 찾아 주세요. 이 사이트는 로그인하지 않아도 코드 쓰기·Run·결과 보기가 돼요. 왼쪽의 Sign Up·Login 단추나 광고는 누르지 않아도 돼요.

1. 언어가 Java인지 확인해요

언어 선택 칸에 Java가 보이면 그대로 둬요. 다른 언어가 보이면 그 칸을 눌러 목록에서 Java를 골라요. JavaScript는 이름이 비슷하지만 다른 언어예요. 꾸밈말 없이 딱 Java를 골라요.

웹 브라우저 · OnlineGDB
언어 선택 칸 — Language 옆에 Java가 골라져 있어요
실제 화면 0-B언어 선택 칸 — Language 옆에 Java가 골라져 있어요

2. 편집 영역을 비우고 코드를 넣어요

처음에는 사이트가 넣어 둔 예제 코드가 들어 있어요. 편집 영역 안을 한 번 클릭하고, Windows는 Ctrl+A, Mac은 Command(⌘)+A로 전체 선택해요. 코드 부분만 파랗게 선택됐는지 확인한 뒤 Delete 키로 지워요. 그리고 아래 다섯 줄을 넣어요. 오늘은 뜻을 몰라도 괜찮아요. 똑같이 따라 쓰는 것이 오늘 할 일이에요.

Main.java
public class Main {    public static void main(String[] args) {        System.out.println("안녕하세요");    }}
실행 결과
안녕하세요

복사해서 넣어도 괜찮아요. 직접 칠 때는 이 네 가지만 챙겨요.

  • 대문자와 소문자를 구별해요. public, class, static, void, main은 소문자예요. Main, String, System은 첫 글자만 대문자예요. Java는 System과 system을 전혀 다른 이름으로 봐요.
  • 따옴표는 키보드의 반듯한 큰따옴표 "를 써요. 워드나 메신저에서 복사한 둥근 따옴표 “ ”는 오류가 나요.
  • 셋째 줄 끝의 ;(세미콜론)을 빠뜨리지 않아요.
  • 여는 중괄호 {가 두 개, 닫는 중괄호 }도 두 개예요. 짝이 맞아야 해요.

한글 입력 상태로 영어를 치면 엉뚱한 글자가 나와요. 영어를 칠 때는 한/영 키로 영어 상태를 확인해요. 편집 영역은 여는 괄호나 따옴표를 치면 닫는 짝을 저절로 하나 더 넣어 주기도 해요. 다 친 뒤에 책의 코드와 짝을 하나씩 대조해요.

웹 브라우저 · OnlineGDB
편집 영역의 다섯 줄(Main.java)
실제 화면 0-C편집 영역의 다섯 줄(Main.java)

3. Run을 한 번 눌러요

Run은 ‘컴파일하고 실행해 줘’라는 부탁이에요. 한 번 누르고 잠깐 기다려요. 느리다고 여러 번 연달아 누르지 않아요.

4. 결과 영역을 봐요

웹 브라우저 · OnlineGDB
결과 영역 — 흰 글씨 안녕하세요가 내 출력, 초록 두 줄은 사이트 안내
실제 화면 0-D결과 영역 — 흰 글씨 안녕하세요가 내 출력, 초록 두 줄은 사이트 안내

결과 영역에 안녕하세요가 보이면 컴파일도, 실행도 성공한 거예요. 실행기에 따라 그 아래에 ‘프로그램이 끝났어요’ 같은 영어 안내가 붙기도 해요. 그 안내는 사이트가 덧붙인 말이고, 내 코드가 출력한 글은 안녕하세요 한 줄뿐이에요. 둘을 나누어 보세요.

다섯 줄 중에서 화면에 나온 글은 셋째 줄의 큰따옴표 안쪽이에요. 오늘은 이것만 짚고 가요.

그림 0-4 셋째 줄 조각 이름표조각과 뜻 표. System.out.println = 화면에 한 줄 내보내는 도구. 여는 소괄호 닫는 소괄호 = 건넬 내용 자리. 큰따옴표 = 글자의 시작과 끝, 화면에 안 나와요. 안녕하세요 = 화면에 나오는 글. 세미콜론 = 문장 끝.조각뜻System.out.println화면에 한 줄 내보내는 도구( )건넬 내용을 적는 자리" "글자의 시작과 끝 표시(화면에안 나와요)안녕하세요★화면에 나오는 글;문장 하나가 끝났다는 표시
그림 0-4 셋째 줄 조각 이름표조각과 뜻 표. System.out.println = 화면에 한 줄 내보내는 도구. 여는 소괄호 닫는 소괄호 = 건넬 내용 자리. 큰따옴표 = 글자의 시작과 끝, 화면에 안 나와요. 안녕하세요 = 화면에 나오는 글. 세미콜론 = 문장 끝.조각뜻System.out.println화면에 한 줄 내보내는도구( )건넬 내용을 적는 자리" "글자의 시작과 끝표시(화면에 안나와요)안녕하세요★화면에 나오는 글;문장 하나가 끝났다는표시
그림 0-4셋째 줄을 조각으로 나누면 네 부분이에요. 화면에 나오는 것은 따옴표 안쪽뿐이에요.
  • System.out.println은 글을 화면에 한 줄 내보내는 일을 맡은 도구예요. 길어 보이지만 오늘은 한 덩어리 이름으로 봐요.
  • 이름 바로 뒤의 소괄호 ( ) 안은 그 도구에 건넬 내용을 적는 자리예요.
  • 큰따옴표 " "는 ‘여기부터 여기까지가 글자 내용’이라는 표시예요. 그래서 따옴표는 화면에 나오지 않고, 그 안의 안녕하세요만 나와요.

나머지 네 줄이 하는 일과 ;의 뜻은 1강에서 조각조각 나눠 읽어요.

한 줄 정리: Run을 누르면 Java 코드는 번역(컴파일)되고, 번역이 성공해야 JVM이 실행해서 결과를 보여 줘요.

예제 2 · 일부러 한 번 틀려 봐요

이번에는 오류를 일부러 만들어요. 셋째 줄 끝의 ;만 지우고 Run을 눌러요. 나머지는 그대로예요.

Main.java
public class Main {    public static void main(String[] args) {        System.out.println("안녕하세요")    }}
컴파일 메시지 · 실행되지 않았어요
Main.java:3: error: ';' expected
        System.out.println("안녕하세요")
                                   ^
1 error
웹 브라우저 · OnlineGDB
셋째 줄 ; 를 지우고 Run — 빨간 Compilation failed 아래 첫 error 줄 Main.java:3
실제 화면 0-E셋째 줄 ; 를 지우고 Run — 빨간 Compilation failed 아래 첫 error 줄 Main.java:3

영어가 나와서 놀라셨지요? 전부 읽지 않아도 돼요. error라는 말이 들어 있는 첫 줄만 봐요.

조각읽는 법
Main.java문제가 있는 파일 이름
33번째 줄
error번역을 멈춘 문제
';' expected‘;가 있어야 하는데 없어요’
1 error오류가 모두 1개

그 아래 두 줄은 문제의 줄을 그대로 보여 주고, ^로 위치를 가리켜요. 한글은 화면에서 두 칸 폭으로 보여서 ^가 조금 왼쪽에 있는 것처럼 보일 수 있어요. 위치는 줄 번호로 찾는 것이 가장 확실해요.

실행기마다 메시지 문구가 조금씩 다를 수 있어요. 그래도 파일 이름, 줄 번호, error라는 세 조각은 거의 늘 들어 있어요.

이제 ;를 다시 넣고 Run을 눌러요. 결과 영역에 다시 안녕하세요가 나오면 오늘의 도착점에 닿은 거예요.

예제 3 · 대문자 하나가 소문자로 바뀌면

System의 첫 글자 S를 소문자 s로 바꿔 볼게요. 글자 하나 차이예요.

Main.java
public class Main {    public static void main(String[] args) {        system.out.println("안녕하세요");    }}
컴파일 메시지 · 실행되지 않았어요
Main.java:3: error: package system does not exist
        system.out.println("안녕하세요");
              ^
1 error

이번에도 3번째 줄이에요. package system does not exist는 ‘system이라는 것을 찾을 수 없어요’라는 뜻이에요. Java는 대문자와 소문자를 다른 글자로 봐요. 그래서 system은 Java가 아는 System이 아니에요. S를 대문자로 고치고 다시 Run하면 돼요.

결과 따라 적기어디까지 갔는지 적어요
그림 0-5 어디서 멈췄나세로 흐름. Run 누르기 → 컴파일. 오른쪽 곁 상자: 실패면 컴파일 메시지에서 멈춤, 실행 안 됨. → 성공이면 실행 → 출력 안녕하세요.1Run 누르기2컴파일(검사·번역)실패 → 컴파일메시지에서멈춤. 실행은시작 안 됨성공하면3실행(JVM)4출력: 안녕하세요
그림 0-5 어디서 멈췄나세로 흐름. Run 누르기 → 컴파일. 오른쪽 곁 상자: 실패면 컴파일 메시지에서 멈춤, 실행 안 됨. → 성공이면 실행 → 출력 안녕하세요.1Run 누르기2컴파일(검사·번역)실패 → 컴파일 메시지에서 멈춤.실행은 시작 안 됨성공하면3실행(JVM)4출력: 안녕하세요
그림 0-5결과 영역에 error가 보이면 컴파일에서 멈춘 거예요. 실행은 시작되지 않았어요.

추적표는 어려운 검사표가 아니에요. 내가 한 일과 그다음 달라진 것을 차례로 적는 표예요. Java에서는 컴파일이 성공했는지를 꼭 한 줄 적어요.

차례내가 한 일확인할 곳확인한 내용
1다섯 줄을 넣었어요편집 영역셋째 줄 System.out.println("안녕하세요");
2Run을 한 번 눌렀어요결과 영역컴파일을 요청했어요
3컴파일 결과를 봤어요결과 영역error 없음 → 성공
4실행 결과를 읽었어요결과 영역안녕하세요

이번에는 예제 2를 내 화면을 보고 적어요.

내가 확인할 것내 기록
지운 기호와 줄
첫 error 줄의 줄 번호
실행까지 갔나요? 갔어요  컴파일에서 멈췄어요
고친 뒤 다시 Run한 결과

대조 답: 셋째 줄 끝의 ;를 지웠어요. 첫 error 줄은 3번째 줄을 가리켜요. 컴파일에서 멈췄기 때문에 실행은 되지 않았어요. 고친 뒤에는 안녕하세요가 나와요.

막혔을 때는 이것부터 봐요

지금 보이는 상황먼저 할 일
아무 결과도 안 보여요Run을 눌렀는지, 결과 영역을 보고 있는지 확인해요
실행이 끝나지 않고 글이 계속 나와요Stop을 눌러요. 끝나지 않는 반복은 5강에서 다시 만나요
error라는 말이 보여요첫 error 줄의 줄 번호와 그 앞 줄을 책과 기호까지 대조해요
언어가 다른 것으로 되어 있어요언어 선택 칸을 Java로 바꾸고 다시 Run해요
사이트 자체가 안 열려요인터넷 연결과 주소를 확인해요. 코드 오류와는 다른 문제예요
웹 브라우저 · OnlineGDB
실행 중인 도구 줄 — Stop만 진한 빨강으로 켜지고 Run·Beautify가 흐려져요
실제 화면 0-F실행 중인 도구 줄 — Stop만 진한 빨강으로 켜지고 Run·Beautify가 흐려져요
안 보고 직접 쓰기손이 기억하게 해 봐요

먼저 앞쪽을 가려요. 바로 떠오르지 않아도 한 번 생각해 보는 것이 연습이에요.

연습 1. 순서를 써요.

소스 코드 쓰기 → → 바이트코드 → 가 실행 → 결과 확인

연습 2. 역할을 이어요.

  • CPU → (일을 처리해요 / 파일을 오래 보관해요)
  • 메모리 → (지금 작업하는 자리예요 / 종이에 결과를 인쇄해요)
  • javac → (소스 코드를 검사하고 번역해요 / 오류를 짐작해서 고쳐 줘요)
  • JVM → (바이트코드를 읽어 실행시켜요 / 사람이 처음 적은 글이에요)

연습 3. 오류 메시지에서 줄 번호를 찾아요.

Main.java:4: error: ';' expected

몇 번째 줄을 먼저 봐야 할까요? 번째 줄 빠진 기호는?

연습 4. 빈칸을 채워요.

종이에 쓰는 연습 틀이에요. 대괄호와 번호는 실행기에 넣지 않아요.

①.out.println("안녕하세요");

①에 쓸 말:

연습 5. 다섯 줄을 보고 따라 써요.

오늘은 외우지 않아도 돼요. 첫 실행 코드를 보면서 종이에 한 번 따라 쓰고, 그다음 실행기에 직접 쳐서 Run해 보세요.

스스로 대조하는 답

연습 1은 ‘컴파일(javac)’, ‘JVM’이에요. 연습 2는 ‘일을 처리해요 / 지금 작업하는 자리예요 / 소스 코드를 검사하고 번역해요 / 바이트코드를 읽어 실행시켜요’예요. 연습 3은 4번째 줄, 빠진 기호는 ;예요. 연습 4는 대문자로 시작하는 System이에요.

내가 빠뜨렸던 것 한 가지:

시험에선 이렇게 나와요개념 1문항

학습용 창작 문항이에요.

문제. Java 프로그램이 실행되는 과정에 대한 설명으로 가장 알맞은 것은 무엇인가요?

①컴파일 오류가 있어도 오류가 없는 앞부분 줄은 먼저 실행된다.
②컴파일러는 소스 코드를 바이트코드로 번역하고, JVM이 그 바이트코드를 실행한다.
③Java는 대문자와 소문자를 구별하지 않는다.
④오류 메시지는 맨 아래 줄부터 읽고 고친다.

내가 고른 답:  이유:

정답먼저 풀고 눌러서 펼쳐 보세요
②

해설: 번역가(컴파일러)가 공통 레시피 카드(바이트코드)를 만들고, 조리 도우미(JVM)가 그것을 실행해요. ①은 컴파일과 실행을 섞었어요. 컴파일이 실패하면 이번 코드는 한 줄도 실행되지 않아요. ③은 틀렸어요. System과 system은 다른 이름이라 예제 3처럼 오류가 나요. ④는 순서가 거꾸로예요. 첫 error 줄부터 고쳐요.

딱지 떼기 체크
다 했으면
딱지 떼기
도장
  • CPU·메모리·저장장치를 요리사·조리대·보관장으로 나누어 말할 수 있어요.
  • 소스 코드 → 컴파일 → 바이트코드 → JVM 실행 순서를 말할 수 있어요.
  • Run 한 번에 컴파일과 실행이 이어서 일어난다는 것을 알아요.
  • 실행기에서 언어 선택 칸·편집 영역·Run·결과 영역·Stop을 찾았어요.
  • 다섯 줄을 실행하고 안녕하세요를 내 눈으로 확인했어요.
  • 일부러 낸 오류에서 첫 error 줄의 줄 번호를 읽고, 고친 뒤 다시 Run했어요.

아직 실행하지 못했다면 해당 칸은 비워 두세요. 나중에 실행하고 체크하면 돼요.

오늘 내가 뗀 딱지:  다시 볼 곳:

dumok.net · 왕딱지 — 코딩 초보 딱지 떼기