1. Intro
ํ๋ก๊ทธ๋จ(Program) = ์ปดํจํฐ๊ฐ ์ด๋ค ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ ์ ์๋๋ก ๋ฐฉ๋ฒ๊ณผ ์์๋ฅผ ๊ธฐ์ ํ ๋ช ๋ น์ด ์งํฉ
ํ๋ก๊ทธ๋๋ฐ ์ธ์ด = ์ฌ๋์ด ๋ด๋ฆฌ๋ ๋ช ๋ น์ ์ปดํจํฐ๊ฐ ์ดํดํ ์ ์๊ฒ ์ค๊ฐ์์ ๋๋ ์ญํ ์ ํ๋ ๊ฒ
์ปดํจํฐ๋ ๋ช ๋ น์ด๋ฅผ ์ดํดํ๋ฉฐ, ์ด๋ฐ ๋ช ๋ น์ด๋ ํ๋ก๊ทธ๋๋ฐ ์ธ์ด๋ก ์์ฑ๋๋ค. ์ดํ ๋ช ๋ น์ด๊ฐ ๋ชจ์ฌ ํ๋ก๊ทธ๋จ์ด ๋๋ค.
1.1. ์๋ฐ ๊ฐ๋ฐ ํ๊ฒฝ ์ค์
ํ๋ก๊ทธ๋๋ฐ ์ธ์ด๋ก ํ๋ก๊ทธ๋จ์ ์์ฑํ๋ ค๋ฉด ๋๊ตฌ๊ฐ ํ์ํ๋ค.
์๋ฐ์์๋ ํ๋ก๊ทธ๋จ์ ์์ฑํ๋ ๋ฐ ํ์ํ ๊ฒ๋ค์ ๋ชจ์ JDK(Java Development Kit, ์๋ฐ ๊ฐ๋ฐ ๋๊ตฌ ๋ชจ์)๋ผ๋ ์ด๋ฆ์ผ๋ก ์ ๊ณตํ๋ค.
JDK ์ธ์๋ ์๋ฐ๋ก ํ๋ก๊ทธ๋จ์ ์์ฑํ๋ ๊ฒ์ ๋๋ IDE(Integrated Development Environment, ํตํฉ ๊ฐ๋ฐ ํ๊ฒฝ)๋ผ๋ ๋๊ตฌ๋ ์๋ค. IDE๋ ํ๋ก๊ทธ๋จ์ ๊ฐ๋ฐํ๋ ๋ฐ ์ ์ฉํ ๋๊ตฌ์ ์งํฉ๋๋ค.
๋ํ์ ์ธ ์๋ฐ์ฉ IDE๋ก๋ Eclipse์ IntelliJ IDEA๊ฐ ์๋ค
1.1.1. JDK ์ค์นํ๊ธฐ
(์ค์น ๊ณผ์ ์ ์๋ต)
๋ช ๋ น ํ๋กฌํํธ์์ # java -version์ ์ ๋ ฅํ์ฌ ์๋ฐ๊ฐ ์ ์์ ์ผ๋ก ์ค์น๋์๋์ง ํ์ธํ๋ค.
1.1.2. IntelliJ IDEA ์ค์นํ๊ธฐ
(๋ง์ฐฌ๊ฐ์ง๋ก ์ค์น ๊ณผ์ ์๋ต)
1.2. ์ฒซ ๋ฒ์งธ ์๋ฐ ํ๋ก์ ํธ
1.2.1. ํ๋ก์ ํธ ์์ฑํ๊ธฐ
๋ฉ์ธ ํ๋ฉด์ Projects์ ์์นํ ์ํ์์ New Project ํด๋ฆญ
Java ์ ํ ํ Name ์ด๋ฆ ์ง๊ธฐ. ๊ทธ๋ฆฌ๊ณ ์๋์ Add sample code ์ฒดํฌ๋ฐ์ค๋ ์ฒซ ์ค์ต๋๋ฅผ ์ ์ธํ๊ณ ๋ ํด๋ฆญ ํด์
์ค์ ์๋ฃํ๋ค๋ฉด create ๋๋ฅด๊ธฐ
ํ๋ก์ ํธ๊ฐ ์์ฑ๋๋ฉด ์๋์ ๊ฐ์ ํ๋ฉด์ด ๋ณด์ธ๋ค.
.idea, src, External Libraries๊ฐ ๋ณด์ธ๋ค
์ํ์ฝ๋๋ฅผ ์คํํ๋ฉด out ํด๋๊ฐ ์ถ๊ฐ๋๊ณ Hello_java.iml ํ์ผ๋ ์ถ๊ฐ๋๋ค.
1.2.2. ์๋ฐ ํ๋ก๊ทธ๋จ์ ์คํ ๊ณผ์ โ
ํธ์ง๊ธฐ์์ ์์ฑํ ์๋ฐ ์์ค ์ฝ๋๋ .java ํ์ฅ์๋ฅผ ์ฌ์ฉํ๋ค.
์ํ ์ฝ๋๋ฅผ ๋ณด๋ฉด Main.java๋ผ๊ณ ๋์ด์๊ณ , ์ด๋ Main์ด๋ผ๋ ์ด๋ฆ์ ์๋ฐ ์์ค ์ฝ๋๋ฅผ ๋ํ๋ธ๋ค.
์๋ฐ ์์ค ์ฝ๋๋ฅผ ์คํํ๋ฉด, ์๋ฐ ์ปดํ์ผ๋ฌ๋ฅผ ๊ฑฐ์ณ ์๋ฐ ๋ฐ์ดํธ ์ฝ๋๋ก ๋ณํ๋๋ค.
JDK์ ์ค์นํ ํด๋์ ๊ฐ๋ฉด bin ํด๋์ javac.exe ํ์ผ์ด ์๋๋ฐ ์ด ํ์ผ์ด ๋ฐ๋ก ์๋ฐ ์ปดํ์ผ๋ฌ์ด๋ค.
์๋ฐ ์ปดํ์ผ๋ฌ๋ ๊ฐ๋ฐ์๊ฐ ์์ฑํ ์๋ฐ ์์ค ์ฝ๋๋ฅผ ์๋ฐ ๊ฐ์ ๋จธ์ (JVM, Java Virtual Machine)์ด ์ดํดํ ์ ์๋ ์ธ์ด๋ก ๋ณํํ๋ ์ผ์ข ์ ๋ฒ์ญ๊ธฐ์ด๋ค. ์ปดํ์ผ๋ฌ๋ก ๋ณํํ ์๋ฐ ์์ค ์ฝ๋๋ฅผ ์๋ฐ ๋ฐ์ดํธ ์ฝ๋๋ผ๊ณ ํ๋ฉฐ, ํ์ฅ์๋ .class์ด๋ค.
-> ์ด ๊ณผ์ ์ ์ปดํ์ผ ํ์(compile time)์ด๋ผ๊ณ ํ๋ค.
์ดํ ์๋ฐ ๋ฐ์ดํธ ์ฝ๋(Main.class)๋ฅผ JVM์ด ์ฝ์ด๋ค์ฌ ํ๋ก๊ทธ๋จ์ ์คํํ๋ค. JVM์ ์๋ฐ ํ๋ก๊ทธ๋จ์ ์คํ์ ๋ด๋นํ๋ ํ๋ก๊ทธ๋จ์ด๋ค. ๊ทธ๋ฆฌ๊ณ ์๋ฐ ์ปดํ์ผ๋ฌ(javac.exe)์ ๊ฐ์ ํด๋์ ์๋ java.exe๊ฐ JVM์ ๊ตฌ๋ํ๋ ์ญํ ์ ํ๋ค.
1.2.3. ์๋ฐ ์์ค ์ฝ๋์ ๊ตฌ์กฐโ
์ํ ์ฝ๋ Main.java๋ก ์๋ฐ ์์ค์ฝ๋์ ๊ธฐ๋ณธ ๊ตฌ์กฐ๋ฅผ ์์๋ณด์.
์์ค ์ฝ๋์ ๊ตฌ์กฐ๋ฅผ ์ ํํ ์ดํดํ๋ ค๋ฉด ํจํค์ง(Package), ํด๋์ค(class), ํ๋(Field), ๋ฉ์๋(Method) ๋ฑ ๊ธฐ๋ณธ ๊ฐ๋ ์ ๋ชจ๋ ์์์ผ ํ์ง๋ง, ์ด๊ฒ๋ค์ ๋ค์์ ์ดํด๋ณด๊ธฐ๋ก ํ๊ณ ์ฌ๊ธฐ์๋ ๊ธฐ๋ณธ ๊ตฌ์กฐ๋ง ์ดํด๋ณธ๋ค.
public class Main { //1๋ฒ
public static void main(String[] args) { //2๋ฒ
System.out.printf("Hello and welcome!"); //3๋ฒ
for (int i = 1; i <= 5; i++) {
System.out.println("i = " + i);
}
}
}
// public class Main{...}
ํด๋์ค๋ฅผ ์ ์ธํ ๋ฌธ์ฅ์ด๋ค. ํด๋์ค(class)๋ ํ๋ก๊ทธ๋จ์ ๊ตฌ์ฑํ๋ ๊ธฐ๋ณธ ๋จ์๋ก ์๋ฐ ํ๋ก๊ทธ๋จ์ 1๊ฐ ์ด์์ ํด๋์ค๋ก ๊ตฌ์ฑ๋๋ค.
Main์ด ํด๋์ค๋ช ์ด๋ฉฐ, ํด๋์ค ๋ช ์ (1)์๋ฐ ํ์ผ๋ช (Main.java)๊ณผ ๋์ผํ๊ฒ ์์ฑํ๊ณ (2) ์ฒซ ๊ธ์๋ ๋๋ฌธ์๋ก ์์ํ๋ค.
class๋ ํด๋น ๋ถ๋ถ์ด ํด๋์ค์์ ๋ํ๋ด๋ ํค์๋์ด๋ฉฐ ํด๋์ค๋ก ์ ์ธํ ๋๋ class ํค์๋๊ฐ ๋ฐ๋์ ์์ด์ผ ํ๋ค.
-> ํ ํ๋ก๊ทธ๋จ ์์ ํด๋์ค๊ฐ 2๊ฐ ์ด์ ์กด์ฌํ ์ ์์ง๋ง, public์ด ๋ถ์ ํด๋์ค๋ ํ ํ์ผ์ 1๊ฐ๋ง ์กด์ฌํด์ผํจ!!
//public static void main(...)
main()์ ํด๋์ค์ ํฌํจ๋ ๋ฉ์๋๋ก, ํ๋ก๊ทธ๋จ์ ์์์ ์ ์๋ฏธํ๋ค. ํ๋ก๊ทธ๋จ์ ์คํํ๋ฉด JVM์์ ๊ฐ์ฅ ๋จผ์ main() ๋ฉ์๋๋ฅผ ์ฐพ๋๋ค.
-> ํด๋์ค ์ ์ฒด์์ main() ๋ฉ์๋๋ ํ๋๋ง ์กด์ฌํ ์ ์๋ค.
//System.out.printf("Hello and welcome!")
์ด ๋ช ๋ น๋ฌธ์ ์๊ดํธ ์์ ๋ด์ฉ Hello and welcome์ ํ๋ฉด์ ์ถ๋ ฅํ๋ผ๋ ์๋ฏธ์ด๋ค. ์ด์ ๊ฐ์ ๋ช ๋ น๋ฌธ ๋ค์๋ ๋ช ๋ น์ ์ข ๋ฃ๋ฅผ ๋ํ๋ด๋ ์ธ๋ฏธ์ฝ๋ก (;)์ ํญ์ ๋ถ์ธ๋ค.
'๐ฉธ Language > Java Language' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
6์ฅ - ์ฌ๋ฌ ๊ฐ ํ ๋ฒ์ ์ ์ฅํ๊ธฐ: ๋ฐฐ์ด (0) | 2025.03.05 |
---|---|
5์ฅ - ๊ฐ์ ์์ ๋ฐ๋ณตํ๊ธฐ: ๋ฐ๋ณต๋ฌธ (1) | 2025.02.19 |
4์ฅ - ์กฐ๊ฑด์ ๋ฐ๋ผ ํ๋ฆ ๋ฐ๊พธ๊ธฐ: ์กฐ๊ฑด๋ฌธ (0) | 2025.02.16 |
3์ฅ - ๊ธฐ์ด ๋ฌธ๋ฒ ๋ฐฐ์ฐ๊ธฐ (0) | 2025.02.13 |
2์ฅ - ์ ์ถ๋ ฅ ๋ค๋ฃจ๊ธฐ (1) | 2025.02.11 |