Recent Posts
Recent Comments
ยซ   2024/05   ยป
์ผ ์›” ํ™” ์ˆ˜ ๋ชฉ ๊ธˆ ํ† 
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31
Archives
Today
In Total
๊ด€๋ฆฌ ๋ฉ”๋‰ด

A Joyful AI Research Journey๐ŸŒณ๐Ÿ˜Š

[21] 230127 Java Ch. 1 ์ž๋ฐ” ์‹œ์ž‘ํ•˜๊ธฐ: 1. ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์–ธ์–ด์™€ ์ž๋ฐ”, 2. ์ดํด๋ฆฝ์Šค ๊ฐœ๋ฐœ ํ™˜๊ฒฝ ๊ตฌ์ถ•, 3. ์ž๋ฐ” ํ”„๋กœ๊ทธ๋žจ ๊ฐœ๋ฐœ ๊ณผ์ • [K-๋””์ง€ํ„ธ ํŠธ๋ ˆ์ด๋‹ 21์ผ] ๋ณธ๋ฌธ

๐ŸŒณBootcamp Revision 2023โœจ/Spring Framework, Java

[21] 230127 Java Ch. 1 ์ž๋ฐ” ์‹œ์ž‘ํ•˜๊ธฐ: 1. ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์–ธ์–ด์™€ ์ž๋ฐ”, 2. ์ดํด๋ฆฝ์Šค ๊ฐœ๋ฐœ ํ™˜๊ฒฝ ๊ตฌ์ถ•, 3. ์ž๋ฐ” ํ”„๋กœ๊ทธ๋žจ ๊ฐœ๋ฐœ ๊ณผ์ • [K-๋””์ง€ํ„ธ ํŠธ๋ ˆ์ด๋‹ 21์ผ]

yjyuwisely 2023. 1. 30. 11:19

230127 Thu 21th class

Ch. 1 ์ž๋ฐ” ์‹œ์ž‘ํ•˜๊ธฐ
Ch. 2 ๋ณ€์ˆ˜์™€ ํƒ€์ž…
(์ฃผ์ œ๋ณ„๋กœ ๋ฌถ๊ธฐ ์œ„ํ•ด ์œ—๊ธ€๋กœ ๊ธ€ ๋‚ด์šฉ ์˜ฎ๊น€.)
์ง„๋„: p. 2 ~ (๊ต์žฌ: ํ˜ผ์ž ๊ณต๋ถ€ํ•˜๋Š” ์ž๋ฐ”, ์ €์ž: ์‹ ์šฉ๊ถŒ)

 

ํ˜ผ์ž ๊ณต๋ถ€ํ•˜๋Š” ์ž๋ฐ” | ์‹ ์šฉ๊ถŒ - ๊ต๋ณด๋ฌธ๊ณ 

ํ˜ผ์ž ๊ณต๋ถ€ํ•˜๋Š” ์ž๋ฐ” | ํ˜ผ์ž ํ•ด๋„ ์ถฉ๋ถ„ํ•˜๋‹ค! 1:1 ๊ณผ์™ธํ•˜๋“ฏ ๋ฐฐ์šฐ๋Š” ์ž๋ฐ” ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์ž์Šต์„œ (JAVA 8 &11 ์ง€์›) ์ด ์ฑ…์€ ๋…ํ•™์œผ๋กœ ์ž๋ฐ”๋ฅผ ๋ฐฐ์šฐ๋Š” ์ž…๋ฌธ์ž๊ฐ€ ‘๊ผญ ํ•„์š”ํ•œ ๋‚ด์šฉ์„ ์ œ๋Œ€๋กœ’ ํ•™์Šตํ•  ์ˆ˜ ์žˆ๋„

product.kyobobook.co.kr

์˜ค๋Š˜ ๋ฐฐ์šด ๊ฒƒ ์ค‘ ๊ธฐ์–ตํ•  ๊ฒƒ์„ ์ •๋ฆฌํ–ˆ๋‹ค. 


์ง€๋‚œ ์ˆ˜์—… ๋•Œ ๋ฐฐ์šด ๊ฒƒ ์ค‘ ๋‹ค์‹œ ๊ธฐ์–ตํ•  ๊ฒƒ ๋ฐ ๊ธฐํƒ€ 

์•ž์œผ๋กœ ํŒŒ์ผ ์ €์žฅํ•  ๋•Œ ๋‚ ์งœ๋ฅผ ์ ์–ด์•ผ๊ฒ ๋‹ค. ์–ด์ œ ์ง‘์—์„œ ํฌํŠธํด๋ฆฌ์˜ค ํ•œ ๊ฑฐ ์ด๋ฉ”์ผ๋กœ ๋ณด๋ƒˆ๋Š”๋ฐ ํŒŒ์ผ ์ด๋ฆ„์ด ๊ฐ™๋‹ค ๋ณด๋‹ˆ, ์ˆ˜์ • ์•ˆ ๋œ ์›๋ณธ ํŒŒ์ผ์„ ๋ณด๋‚ด๊ฒŒ ๋๋‹ค. :'(

- Ctrl + F11: ์ดํด๋ฆฝ์Šค์—์„œ ์ž๋ฐ” ์‹คํ–‰ ๋‹จ์ถ•ํ‚ค 

- ๋ฆฌํ„ฐ๋Ÿด(literal): ์†Œ์Šค ์ฝ”๋“œ์—์„œ ํ”„๋กœ๊ทธ๋ž˜๋จธ์— ์˜ํ•ด ์ง์ ‘ ์ž…๋ ฅ๋œ ๊ฐ’

In computer science, a literal is a notation for representing a fixed value in source code. 


Ch. 1 ์ž๋ฐ” ์‹œ์ž‘ํ•˜๊ธฐ

์ฑ…์˜ ๋ชฉ์ฐจ
01-1 ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์–ธ์–ด์™€ ์ž๋ฐ”
01-2 ์ดํด๋ฆฝ์Šค ๊ฐœ๋ฐœ ํ™˜๊ฒฝ ๊ตฌ์ถ•
01-3 ์ž๋ฐ” ํ”„๋กœ๊ทธ๋žจ ๊ฐœ๋ฐœ ๊ณผ์ •

1.1 ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์–ธ์–ด์™€ ์ž๋ฐ”

1) ์ž๋ฐ” ์†Œ๊ฐœ

- ๋ชจ๋“  ์šด์˜์ฒด์ œ์—์„œ ์‹คํ–‰ ๊ฐ€๋Šฅํ•˜๋‹ค. ex) ์œˆ๋„์šฐ, ๋ฆฌ๋ˆ…์Šค

- ๊ฐ์ฒด ์ง€ํ–ฅ ํ”„๋กœ๊ทธ๋ž˜๋ฐ์ด๋‹ค.
๊ฐ์ฒด ์ง€ํ–ฅ ํ”„๋กœ๊ทธ๋ž˜๋ฐ(OOP: Object-Oriented Programming): ๊ฐ์ฒด(๋ถ€ํ’ˆ)๋ฅผ ๋งŒ๋“ค๊ณ , ์ด ๊ฐ์ฒด๋“ค์„ ์„œ๋กœ ์—ฐ๊ฒฐํ•ด์„œ ๋” ํฐ ํ”„๋กœ๊ทธ๋žจ์„ ์™„์„ฑํ•˜๋Š” ๊ธฐ๋ฒ•
ํ”„๋กœ๊ทธ๋žจ์„ ๊ฐœ๋ฐœํ•˜๋Š” ๊ธฐ๋ฒ•์œผ๋กœ, ๋ถ€ํ’ˆ์— ํ•ด๋‹นํ•˜๋Š” ๊ฐ์ฒด๋“ค์„ ๋จผ์ € ๋งŒ๋“ค๊ณ  ์ด๊ฒƒ๋“ค์„ ํ•˜๋‚˜์”ฉ ์กฐ๋ฆฝ ๋ฐ ์—ฐ๊ฒฐํ•ด์„œ ์ „์ฒด ํ”„๋กœ๊ทธ๋žจ์„ ์™„์„ฑํ•˜๋Š” ๊ธฐ๋ฒ•

- ๋ฉ”๋ชจ๋ฆฌ ์ž๋™ ์ •๋ฆฌ by JVM(์ž๋ฐ” ๊ฐ€์ƒ ๊ธฐ๊ณ„(Java Virtual Machine))
๋ฉ”๋ชจ๋ฆฌ ๊ด€๋ฆฌ๋ฅผ ์œ„ํ•ด JVM์€ garbage collection process ๋ฅผ ํ†ตํ•ด Heap์„ ์ž๋™์ ์œผ๋กœ ๊ด€๋ฆฌํ•œ๋‹ค.

- ๋ฌด๋ฃŒ์ธ ์˜คํ”ˆ ์†Œ์Šค ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ(open source library)๊ฐ€ ํ’๋ถ€ํ•ด์„œ ํ”„๋กœ๊ทธ๋žจ ๊ฐœ๋ฐœ ๊ธฐ๊ฐ„์„ ๋‹จ์ถ•ํ•œ๋‹ค.


2) ์ž๋ฐ” ๊ฐœ๋ฐœ ๋„๊ตฌ ์„ค์น˜

3) ํ™˜๊ฒฝ ๋ณ€์ˆ˜ ์„ค์ •

๋งˆ๋ฌด๋ฆฌ p. 13
1) ๊ธฐ๊ณ„์–ด: ์ปดํ“จํ„ฐ(์šด์˜์ฒด์ œ)๊ฐ€ ์ดํ•ดํ•˜๊ณ  ์‹คํ–‰ํ•  ์ˆ˜ ์žˆ๋Š” 0๊ณผ 1๋กœ ์ด๋ฃจ์–ด์ง„ ์ฝ”๋“œ

2) ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์–ธ์–ด
: ์‚ฌ๋žŒ์ด ๊ธฐ๊ณ„์–ด๋ฅผ ์ดํ•ดํ•˜๋Š” ๊ฒƒ์€ ๋งค์šฐ ์–ด๋ ต๊ธฐ ๋•Œ๋ฌธ์— ์‚ฌ๋žŒ์˜ ์–ธ์–ด์™€ ๊ธฐ๊ณ„์–ด์˜ ๋‹ค๋ฆฌ ์—ญํ• ์„ ํ•œ๋‹ค.
ex) C, C++, ์ž๋ฐ”, ํŒŒ์ด์ฌ ๋“ฑ

3) ์†Œ์Šค ํŒŒ์ผ: ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์–ธ์–ด๋กœ ์ž‘์„ฑ๋œ ํŒŒ์ผ
์†Œ์Šค (source): ๊ณ ๊ธ‰ ์–ธ์–ด๋กœ ์ž‘์„ฑ๋œ ๋‚ด์šฉ

4) ์ปดํŒŒ์ผ: ์†Œ์Šค ํŒŒ์ผ์„ ๊ธฐ๊ณ„์–ด๋กœ ๋ฒˆ์—ญํ•˜๋Š” ๊ฒƒ์ด๋‹ค. (์ด ์—ญํ•  ๋‹ด๋‹นํ•˜๋Š” ์†Œํ”„ํŠธ์›จ์–ด = ์ปดํŒŒ์ผ๋Ÿฌ)
์ปดํ“จํ„ฐ๊ฐ€ ์ดํ•ดํ•  ์ˆ˜ ์žˆ๋„๋ก 0๊ณผ 1๋กœ ์ด๋ฃจ์–ด์ง„ ๊ธฐ๊ณ„์–ด๋กœ ๋ณ€ํ™˜ํ•˜๋Š” ๊ณผ์ • 

5) JDK: ์ž๋ฐ” ๊ฐœ๋ฐœ ๋„๊ตฌ(Java Development Kit)์˜ ์ค„์ž„๋ง๋กœ ์ž๋ฐ”๋กœ ํ”„๋กœ๊ทธ๋žจ์„ ๊ฐœ๋ฐœํ•  ์ˆ˜ ์žˆ๋Š” ์‹คํ–‰ ํ™˜๊ฒฝ(JDK)์™€ ๊ฐœ๋ฐœ ๋„๊ตฌ(์ปดํŒŒ์ผ๋Ÿฌ) ๋“ฑ์„ ์ œ๊ณตํ•œ๋‹ค. 
ํ”„๋กœ๊ทธ๋žจ์— ํ•„์š”ํ•œ ์ž๋ฐ” ๊ฐ€์ƒ ๊ธฐ๊ณ„(JVM), ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ API, ์ปดํŒŒ์ผ๋Ÿฌ ๋“ฑ์˜ ๊ฐœ๋ฐœ ๋„๊ตฌ๊ฐ€ ํฌํ•จ๋œ ์†Œํ”„ํŠธ์›จ์–ด ํŒจํ‚ค์ง€์ด๋‹ค. 

6) ํ™˜๊ฒฝ ๋ณ€์ˆ˜: ์šด์˜์ฒด์ œ๊ฐ€ ์‹คํ–‰ํ•˜๋Š”๋ฐ ํ•„์š”ํ•œ ์ •๋ณด๋ฅผ ์ œ๊ณตํ•ด์ฃผ๋Š” ๋ณ€์ˆ˜
JDK๋ฅผ ์„ค์น˜ํ•œ ํ›„ ๋ช…๋ น ๋ผ์ธ(๋ช…๋ น ํ”„๋กฌํ”„ํŠธ, ํ„ฐ๋ฏธ๋„)์—์„œ ์ปดํŒŒ์ผ๋Ÿฌ(javac)์™€ ์‹คํ–‰(java) ๋ช…๋ น์–ด๋ฅผ ์‚ฌ์šฉํ•˜๋ ค๋ฉด JAVA_HOME ํ™˜๊ฒฝ ๋ณ€์ˆ˜๋ฅผ ๋“ฑ๋กํ•˜๊ณ  Path ํ™˜๊ฒฝ ๋ณ€์ˆ˜๋ฅผ ์ˆ˜์ •ํ•˜๋Š” ๊ฒƒ์ด ์ข‹๋‹ค. 
์ปดํŒŒ์ผ๋Ÿฌ javac is the primary Java compiler included in the Java Development Kit from Oracle Corporation. 


1.2 ์ดํด๋ฆฝ์Šค ๊ฐœ๋ฐœ ํ™˜๊ฒฝ ๊ตฌ์ถ•

1) ์ดํด๋ฆฝ์Šค ์„ค์น˜

2) ์›Œํฌ์ŠคํŽ˜์ด์Šค

3) ํผ์ŠคํŽ™ํ‹ฐ๋ธŒ์™€ ๋ทฐ


๋งˆ๋ฌด๋ฆฌ p. 22
1) ์ดํด๋ฆฝ์Šค: ๋ฌด๋ฃŒ๋กœ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋Š” ์˜คํ”ˆ ์†Œ์Šค ํ†ตํ•ฉ ๊ฐœ๋ฐœ ํ™˜๊ฒฝ(IDE)
(์—๋””ํ„ฐ)
IDE: ํ”„๋กœ์ ํŠธ ์ƒ์„ฑ, ์ž๋™ ์ฝ”๋“œ ์™„์„ฑ, ๋””๋ฒ„๊น… ๋“ฑ๊ณผ ๊ฐ™์ด ๊ฐœ๋ฐœ์— ํ•„์š”ํ•œ ์—ฌ๋Ÿฌ ๊ฐ€์ง€ ๊ธฐ๋Šฅ์„ ํ†ตํ•ฉ์ ์œผ๋กœ ์ œ๊ณตํ•ด ์ฃผ๋Š” ํˆด(ํ™˜๊ฒฝ)
๋””๋ฒ„๊น…(debugging): ๋ชจ์˜ ์‹คํ–‰์„ ํ•ด์„œ ์ฝ”๋“œ์˜ ์˜ค๋ฅ˜๋ฅผ ์ฐพ๋Š” ํ–‰์œ„ 

2) ์›Œํฌ์ŠคํŽ˜์ด์Šค: ์ดํด๋ฆฝ์Šค ์‹คํ–‰๊ณผ ๊ด€๋ จ๋œ ๋ฉ”ํƒ€ ๋ฐ์ดํ„ฐ(meta data)์™€ ํ”„๋กœ์ ํŠธ ํด๋”๊ฐ€ ์ €์žฅ๋˜๋Š” ํด๋”

3) ํผ์ŠคํŽ™ํ‹ฐ๋ธŒ: ํ”„๋กœ์ ํŠธ๋ฅผ ๊ฐœ๋ฐœํ•  ๋•Œ ์œ ์šฉํ•˜๊ฒŒ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋Š” ๋ทฐ๋“ค์„ ๋ฏธ๋ฆฌ ๋ฌถ์–ด ์ด๋ฆ„์„ ๋ถ™์—ฌ ๋†“์€ ๊ฒƒ์„ ๋งํ•œ๋‹ค.
(ex. Package Explorer ๋ทฐ: ํ”„๋กœ์ ํŠธ๋ฅผ ๊ด€๋ฆฌํ•˜๊ณ , ์ž๋ฐ” ์†Œ์Šค ํŒŒ์ผ์„ ์ƒ์„ฑ ๋ฐ ์‚ญ์ œํ•˜๋Š” ์ž‘์—…์„ ํ•œ๋‹ค.)

4) ๋ทฐ: ์ดํด๋ฆฝ์Šค ๋‚ด๋ถ€์—์„œ ์‚ฌ์šฉ๋˜๋Š” ์ž‘์€ ์ฐฝ (ex. Console ๋ทฐ)


1.3 ์ž๋ฐ” ํ”„๋กœ๊ทธ๋žจ ๊ฐœ๋ฐœ ๊ณผ์ •

1) ๋ฐ”์ดํŠธ ์ฝ”๋“œ ํŒŒ์ผ๊ณผ ์ž๋ฐ” ๊ฐ€์ƒ ๊ธฐ๊ณ„

2) ํ”„๋กœ์ ํŠธ ์ƒ์„ฑ๋ถ€ํ„ฐ ์‹คํ–‰๊นŒ์ง€

src → new → Package → New Java package
ch01 → new→ class → New Java Class, public static void main(String[] args) ์ฒดํฌ

๋ฉ”๋ชจ์žฅ์— ์ž‘์„ฑํ•ด๋„ ๋˜์ง€๋งŒ ํŽธ๋ฆฌ์„ฑ์„ ์œ„ํ•ด ์ดํด๋ฆฝ์Šค๋ฅผ ์“ด๋‹ค.
p. 31

package ch01;
public class Hello {
	public static void main(String[] args) {
		// TODO Auto-generated method stub
		System.out.println("Hello Java");
	}
}


bin ํด๋”์— ๋ฐ”์ดํŠธ ์ฝ”๋“œ ํŒŒ์ผ์ด ์žˆ๋‹ค.

JVM์ด ๊ธฐ๊ณ„์–ด๋ฅผ ๋ฒˆ์—ญํ•œ๋‹ค. 

์‹คํ–‰ํ•˜๊ธฐ: Run As → Java Application (Alt + Shift + X, J)

์ฝ˜์†”์ฐฝ์— ๊ฒฐ๊ณผ๊ฐ€ ๋‚˜์˜จ๋‹ค.

3) ๋ช…๋ น ๋ผ์ธ์—์„œ ์ปดํŒŒ์ผํ•˜๊ณ  ์‹คํ–‰ํ•˜๊ธฐ


4) ํ”„๋กœ๊ทธ๋žจ ์†Œ์Šค ๋ถ„์„ p. 37

ํŒจํ‚ค์ง€ ์„ ์–ธ์ด ๋ฐ˜๋“œ์‹œ ์žˆ์–ด์•ผ ํ•œ๋‹ค.
ํŒจํ‚ค์ง€: ๋น„์Šทํ•œ ์„ฑ๊ฒฉ์˜ ์ž๋ฐ” ํด๋ž˜์Šค๋“ค์„ ๋ชจ์•„ ๋†“์€ ์ž๋ฐ”์˜ ๋””๋ ‰ํ† ๋ฆฌ
A Java package organizes Java classes into namespaces, providing a unique namespace for each type it contains. Classes in the same package can access each other's package-private and protected members. 

package ch01;


์†Œ์Šค ํŒŒ์ผ๋ช…: Hello.java
์†Œ์Šค ํŒŒ์ผ๋ช…๊ณผ ํด๋ž˜์Šค ์ด๋ฆ„์ด ์ผ์น˜๋˜์–ด์•ผ ์‹คํ–‰์ด ๋œ๋‹ค.
๋Œ€์†Œ๋ฌธ์ž๋„ ์ผ์น˜ํ•ด์•ผ ํ•œ๋‹ค. (๋Œ€์†Œ๋ฌธ์ž๊ฐ€ ๋‹ค๋ฅด๋ฉด ์‹คํ–‰ ์ž์ฒด๊ฐ€ ์•ˆ ๋œ๋‹ค.)

public class Hello {
}

ํด๋ž˜์Šค ์„ ์–ธ๋ถ€: public class Hello
public class: ๊ณต๊ฐœ ํด๋ž˜์Šค
Hello: ํด๋ž˜์Šค ์ด๋ฆ„ 

ํด๋ž˜์Šค: ํ•„๋“œ ๋˜๋Š” ๋ฉ”์„œ๋“œ๋ฅผ ํฌํ•จํ•˜๋Š” ๋ธ”๋ก
๊ฐ์ฒด๋ฅผ ์ƒ์„ฑํ•˜๊ธฐ ์œ„ํ•œ ํ•„๋“œ์™€ ๋ฉ”์„œ๋“œ๊ฐ€ ์ •์˜๋œ ๊ฒƒ, ๊ฐ์ฒด์˜ ์„ค๊ณ„๋„์— ํ•ด๋‹นํ•œ๋‹ค. 
ํ”„๋กœ๊ทธ๋žจ ์ฝ”๋“œ์—์„œ ๋ธ”๋ก(์˜์–ดBlock)์€ ์–ด๋– ํ•œ ๋™์ž‘์„ ์ˆ˜ํ–‰ํ•  ๋•Œ ํ•„์š”ํ•œ ์ฝ”๋“œ๋ฅผ ๋ฌถ์–ด๋†“์€ ๊ฒƒ์ด๋‹ค. ๋Œ€๋ถ€๋ถ„์˜ ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์–ธ์–ด์—์„œ๋Š” ์ด๋ฅผ ์ค‘๊ด„ํ˜ธ๋‚˜ ๋“ค์—ฌ ์“ฐ๊ธฐ๋กœ ๊ตฌ๋ถ„ํ•œ๋‹ค.

๋ฉ”์„œ๋“œ: ์–ด๋–ค ์ผ์„ ์ฒ˜๋ฆฌํ•˜๋Š” ์‹คํ–‰๋ฌธ๋“ค์„ ๋ชจ์•„ ๋†“์€ ๋ธ”๋ก
๋ฉ”์„œ๋“œ ํ˜ธ์ถœ: ๋ฉ”์„œ๋“œ๋ฅผ ์ฝ”๋“œ ๋‚ด์—์„œ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ

package ch01;
//ํด๋ž˜์Šค ์„ ์–ธ๋ถ€: public class Hello
public class Hello {
	//main (๋ฉ”์„œ๋“œ ์ด๋ฆ„) ์„ ์–ธ๋ถ€: public static void main(String[] args) 
	public static void main(String[] args) {
		// TODO Auto-generated method stub
		System.out.println("Hello Java");
	}
}

ํด๋ž˜์Šค ์„ ์–ธ๋ถ€: public class Hello
ํด๋ž˜์Šค ๋ธ”๋ก: {}
๋ฉ”์„œ๋“œ ์„ ์–ธ๋ถ€: public static void main(String[] args)
๋ฉ”์„œ๋“œ ๋ธ”๋ก: {System.out.printIn("Hello Java")}

6๊ฐœ์˜ ํด๋ž˜์Šค๋ฅผ ๋งŒ๋“ค์—ˆ๋Š”๋ฐ ์ œ์ผ ๋จผ์ € ์‹คํ–‰ํ•  ๊ฒƒ์„ main ๋ฉ”์„œ๋“œ์—์„œ ๋งŒ๋“ ๋‹ค. (main ๋ฉ”์„œ๋“œ = ์‹คํ–‰ํ•ด์•ผ ํ•  ๊ฒƒ)
main ๋ฉ”์„œ๋“œ๋Š” ๋ฌด์กฐ๊ฑด ํ•œ ๊ฐœ์—ฌ์•ผ ํ•œ๋‹ค.


5) ์ฃผ์„ ์‚ฌ์šฉํ•˜๊ธฐ

//: ํ•œ ์ค„
์—ฌ๋Ÿฌ ์ค„

/*
*
*
*
*
* */

 

6) ์‹คํ–‰๋ฌธ๊ณผ ์„ธ๋ฏธ์ฝœ๋ก (;)

๋ฐ˜๋“œ์‹œ ;๋ฅผ ๋ถ™์—ฌ์•ผ ํ•œ๋‹ค. 

System.out.println("Hello Java");

System: ๊ฐ์ฒด
out: ํŒจํ‚ค์ง€
println: ๋ฉ”์„œ๋“œ(์–ด๋–ค ์ผ์„ ์ฒ˜๋ฆฌํ•˜๋Š” ์‹คํ–‰๋ฌธ๋“ค์„ ๋ชจ์•„ ๋†“์€ ๋ธ”๋ก)

์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ์™€ ๋น„๊ตํ•˜๋ฉด 

Document.write("Hello");

Document: ๊ฐ์ฒด
write: ๋ฉ”์„œ๋“œ


๋งˆ๋ฌด๋ฆฌ p. 45

1) ๋ฐ”์ดํŠธ ์ฝ”๋“œ ํŒŒ์ผ: ์ž๋ฐ” ์†Œ์Šค ํŒŒ์ผ(ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์–ธ์–ด๋กœ ์ž‘์„ฑ๋œ ํŒŒ์ผ)์„ javac ๋ช…๋ น์–ด๋กœ ์ปดํŒŒ์ผํ•œ ํŒŒ์ผ์„ ๋งํ•ฉ๋‹ˆ๋‹ค.
์ปดํŒŒ์ผ๋Ÿฌ javac is the primary Java compiler included in the Java Development Kit from Oracle Corporation. 
์ปดํŒŒ์ผ๋Ÿฌ: ์†Œ์Šค ํŒŒ์ผ์„ ๊ธฐ๊ณ„์–ด๋กœ ๋ฒˆ์—ญํ•˜๋Š” ์—ญํ•  ๋‹ด๋‹นํ•˜๋Š” ์†Œํ”„ํŠธ์›จ์–ด
๊ธฐ๊ณ„์–ด: ์ปดํ“จํ„ฐ(์šด์˜์ฒด์ œ)๊ฐ€ ์ดํ•ดํ•˜๊ณ  ์‹คํ–‰ํ•  ์ˆ˜ ์žˆ๋Š” 0๊ณผ 1๋กœ ์ด๋ฃจ์–ด์ง„ ์ฝ”๋“œ

2) JVM: ์ž๋ฐ” ๊ฐ€์ƒ ๊ธฐ๊ณ„(Java Virtual Machine)๋Š” ๋ฐ”์ดํŠธ ์ฝ”๋“œ ํŒŒ์ผ์„ ์šด์˜์ฒด์ œ๋ฅผ ์œ„ํ•œ ์™„์ „ํ•œ ๊ธฐ๊ณ„์–ด๋กœ ๋ฒˆ์—ญํ•˜๊ณ  ์‹คํ–‰ํ•˜๋Š” ์—ญํ• ์„ ํ•œ๋‹ค. (๋ฉ”๋ชจ๋ฆฌ ์ž๋™ ์ •๋ฆฌ)
๋ฉ”๋ชจ๋ฆฌ ๊ด€๋ฆฌ๋ฅผ ์œ„ํ•ด JVM์€ garbage collection process๋ฅผ ํ†ตํ•ด Heap์„ ์ž๋™์ ์œผ๋กœ ๊ด€๋ฆฌํ•œ๋‹ค.
์ž๋ฐ” ํ”„๋กœ๊ทธ๋žจ์€ ์™„์ „ํ•œ ๊ธฐ๊ณ„์–ด๊ฐ€ ์•„๋‹Œ ์ค‘๊ฐ„ ๋‹จ๊ณ„์˜ ๋ฐ”์ดํŠธ ์ฝ”๋“œ์ด๊ธฐ ๋•Œ๋ฌธ์—, ์ด๊ฒƒ์„ ํ•ด์„ํ•˜๊ณ  ์‹คํ–‰ํ•  ์ˆ˜ ์žˆ๊ฒŒ ํ•ด์ฃผ๋Š” ๊ฐ€์ƒ์˜ ์šด์˜์ฒด์ œ์ด๋‹ค.

JVM์˜ ๋ฉ”๋ชจ๋ฆฌ ์˜์—ญ
- ๋ฉ”์†Œ๋“œ ์˜์—ญ: ํด๋ž˜์Šค(~.class)๋“ค์„ ํด๋ž˜์Šค ๋กœ๋”๋กœ ์ฝ์–ด ํด๋ž˜์Šค๋ณ„๋กœ ๋Ÿฐํƒ€์ž„ ์ƒ์ˆ˜ ํ’€, ํ•„๋“œ ๋ฐ์ดํ„ฐ, ๋ฉ”์†Œ๋“œ ๋ฐ์ดํ„ฐ, ๋ฉ”์†Œ๋“œ ์ฝ”๋“œ, ์ƒ์„ฑ์ž ์ฝ”๋“œ ๋“ฑ์„ ๋ถ„๋ฅ˜ํ•ด์„œ ์ €์žฅํ•œ๋‹ค.

- ํž™ ์˜์—ญ: ๊ฐ์ฒด์™€ ๋ฐฐ์—ด์ด ์ƒ์„ฑ๋˜๋Š” ์˜์—ญ, JVM ์Šคํƒ ์˜์—ญ์—์„œ ์ƒ์„ฑ๋œ ๋ณ€์ˆ˜๋‚˜ ๋‹ค๋ฅธ ๊ฐ์ฒด์˜ ํ•„๋“œ์—์„œ ์ด๊ณณ์— ์žˆ๋Š” ๊ฐ์ฒด์™€ ๋ฐฐ์—ด์„ ์ฐธ์กฐํ•œ๋‹ค.
- JVM ์Šคํƒ ์˜์—ญ: ์Šค๋ ˆ๋“œ๋งˆ๋‹ค ํ•˜๋‚˜์”ฉ ์กด์žฌ, ์Šค๋ ˆ๋“œ๊ฐ€ ์‹œ์ž‘ํ•  ๋•Œ๋งˆ๋‹ค JVM ์Šคํƒ ์˜์—ญ์ด ํ• ๋‹น๋œ๋‹ค. 
์Šค๋ ˆ๋“œ(thread)๋ž€ ํ”„๋กœ์„ธ์Šค(process) ๋‚ด์—์„œ ์‹ค์ œ๋กœ ์ž‘์—…์„ ์ˆ˜ํ–‰ํ•˜๋Š” ์ฃผ์ฒด

In computer science, a thread of execution is the smallest sequence of programmed instructions that can be managed independently by a scheduler, which is typically a part of the operating system.

3) ํด๋ž˜์Šค ์„ ์–ธ: ์ž๋ฐ” ์†Œ์Šค ํŒŒ์ผ(ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์–ธ์–ด๋กœ ์ž‘์„ฑ๋œ ํŒŒ์ผ)์€ ํด๋ž˜์Šค ์„ ์–ธ๋ถ€์™€ ํด๋ž˜์Šค ๋ธ”๋ก์œผ๋กœ ๊ตฌ์„ฑ๋œ๋‹ค. ์ด๋ ‡๊ฒŒ ์ž‘์„ฑํ•˜๋Š” ๊ฒƒ์„ ํด๋ž˜์Šค ์„ ์–ธ์ด๋ผ๊ณ  ํ•œ๋‹ค.
ex) ํด๋ž˜์Šค ์„ ์–ธ๋ถ€: public class Hello
ํด๋ž˜์Šค ๋ธ”๋ก: {}

4) main() ๋ฉ”์„œ๋“œ:java ๋ช…๋ น์–ด๋กœ ๋ฐ”์ดํŠธ ์ฝ”๋“œ ํŒŒ์ผ์„ ์‹คํ–‰ํ•˜๋ฉด ์ œ์ผ ๋จผ์ € main() ๋ฉ”์„œ๋“œ๋ฅผ ์ฐพ์•„ ๋ธ”๋ก ๋‚ด๋ถ€๋ฅผ ์‹คํ–‰ํ•œ๋‹ค. ๊ทธ๋ž˜์„œ main() ๋ฉ”์„œ๋“œ๋ฅผ ํ”„๋กœ๊ทธ๋žจ ์‹คํ–‰ ์ง„์ž…์ (entry point)๋ผ๊ณ  ๋ถ€๋ฅธ๋‹ค.

5) ์ฃผ์„: ํ”„๋กœ๊ทธ๋žจ ์‹คํ–‰๊ณผ๋Š” ์ƒ๊ด€์—†์ด ์ฝ”๋“œ์— ์„ค๋ช…์„ ๋ถ™์ธ ๊ฒƒ์ด๋‹ค. ์ปดํŒŒ์ผ ๊ณผ์ •์—์„œ ๋ฌด์‹œ๋˜๊ณ  ์‹คํ–‰๋ฌธ๋งŒ ๋ฐ”์ดํŠธ ์ฝ”๋“œ๋กœ ๋ฒˆ์—ญ๋œ๋‹ค. 

6) ์‹คํ–‰๋ฌธ: ๋ณ€์ˆ˜ ์„ ์–ธ, ๊ฐ’ ์ €์žฅ, ๋ฉ”์„œ๋“œ ํ˜ธ์ถœ์— ํ•ด๋‹นํ•˜๋Š” ์ฝ”๋“œ์ด๋‹ค. ๋์—๋Š” ์„ธ๋ฏธ์ฝœ๋ก (;)์„ ๋ถ™์—ฌ์•ผ ํ•œ๋‹ค. 


728x90
๋ฐ˜์‘ํ˜•
Comments