๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ

๋นˆ ๊ตฌ๋ฉ ์ฑ„์šฐ๊ธฐ

[Java] ์ž๋ฐ” ํด๋ž˜์Šค์—์„œ main() ๋ฉ”์„œ๋“œ๊ฐ€ static์œผ๋กœ ์„ ์–ธ๋˜๋Š” ์ด์œ /์žฅ์ 

์ถœ์ฒ˜

ChatGPT

 

 

ChatGPT ๊ฐ€ ์•Œ๋ ค์ค€ ๋‚ด์šฉ์„ ์ •๋ฆฌํ•œ๋‹ค.

 

ํ•œ ์ค„๋กœ ์ •์˜ํ•˜๋ฉด

-> ํ”„๋กœ๊ทธ๋žจ์˜ ์‹œ์ž‘์ ์—์„œ ํšจ์œจ์ ์ด๊ณ  ์ผ๊ด€๋œ ๋ฐฉ์‹์œผ๋กœ ์‹คํ–‰์„ ๋ณด์žฅํ•˜๊ธฐ ์œ„ํ•จ

 

๋‚ด์šฉ

  1. JVM์˜ ๊ทœ์น™๊ณผ ๊ด€๋ก€
  2. ๊ฐ์ฒด ์ƒ์„ฑ ์—†์ด ํ˜ธ์ถœ ๊ฐ€๋Šฅํ•˜๋‹ค
  3. ํ”„๋กœ๊ทธ๋žจ ์‹œ์ž‘์ ์ด ๊ฐ„๋‹จํ•˜๋‹ค
  4. ๋ฉ”๋ชจ๋ฆฌ ํšจ์œจ์„ฑ
  5. ๊ฐ„๊ฒฐํ•˜๊ณ  ๋ช…ํ™•ํ•œ ์ฝ”๋“œ ๊ตฌ์กฐ
  6. ํด๋ž˜์Šค์™€ ๊ฐ์ฒด ๊ฐ„ ๋ช…ํ™•ํ•œ ๊ตฌ๋ถ„

์—ฐ๊ด€์ด ์žˆ๋‹ค๊ณ  ์ƒ๊ฐ๋˜๋Š” ๋‚ด์šฉ๋“ค๋ผ๋ฆฌ ๊ธ€์ž์ƒ‰์„ ๋งž์ท„๋‹ค.

 

1. JVM์˜ ๊ทœ์น™๊ณผ ๊ด€๋ก€

JVM์€ 'public static void main(String[] args)' ์‹œ๊ทธ๋‹ˆ์ฒ˜๋ฅผ ๊ฐ€์ง„ ๋ฉ”์„œ๋“œ๋ฅผ ํ”„๋กœ๊ทธ๋žจ ์ง„์ž…์ ์œผ๋กœ ์ธ์‹ํ•œ๋‹ค. ์ด๋Š” ์ž๋ฐ” ํ”„๋กœ๊ทธ๋žจ์˜ ๊ด€๋ก€๋‹ค.

2. ๊ฐ์ฒด ์ƒ์„ฑ ์—†์ด ํ˜ธ์ถœ ๊ฐ€๋Šฅํ•˜๋‹ค.

ํ”„๋กœ๊ทธ๋žจ ์‹œ์ž‘ ์‹œ์ ์—๋Š” ์•„์ง ๊ฐ์ฒด๊ฐ€ ์กด์žฌํ•˜์ง€ ์•Š๊ธฐ ๋•Œ๋ฌธ์—, main()์€ ๊ฐ์ฒด๋ฅผ ์ƒ์„ฑํ•˜์ง€ ์•Š๊ณ ๋„ ์ง์ ‘ ํ˜ธ์ถœํ•  ์ˆ˜ ์žˆ์–ด์•ผ ํ•œ๋‹ค.

3. ํ”„๋กœ๊ทธ๋žจ ์‹œ์ž‘ ์‹œ์ ์ด ๋…๋ฆฝ์ ์ด๋ผ ๊ฐ„๋‹จํ•˜๋‹ค.

2.์—์„œ ๋งํ–ˆ๋“ฏ์ด, ๊ฐ์ฒด ์ƒ์„ฑ์—†์ด ํ˜ธ์ถœํ•˜๊ธฐ ๋•Œ๋ฌธ์— ํด๋ž˜์Šค ์ธ์Šคํ„ด์Šคํ™”๋ฅผ ํ•œ ํ›„ ๋ฉ”์„œ๋“œ๋ฅผ ํ˜ธ์ถœํ•˜๋Š” ๋ณต์žก์„ฑ์ด ์—†๋‹ค.

4. ๋ฉ”๋ชจ๋ฆฌ ํšจ์œจ์„ฑ

2์—์„œ ๋งํ–ˆ๋“ฏ์ด, ๊ฐ์ฒด๋ฅผ ์ƒ์„ฑํ•˜์ง€ ์•Š๊ณ ๋„ ๋ฉ”์„œ๋“œ๋ฅผ ํ˜ธ์ถœํ•ด ๋ฉ”๋ชจ๋ฆฌ ์‚ฌ์šฉ์„ ์ตœ์†Œํ™”ํ•œ๋‹ค. ํด๋ž˜์Šค๊ฐ€ ๋กœ๋“œ๋  ๋•Œ ๋ฉ”์„œ๋“œ๊ฐ€ ๋ฉ”๋ชจ๋ฆฌ์— ํ• ๋‹น๋˜์–ด ๊ฐ์ฒด ์ƒ์„ฑ ์—†์ด ๋ฐ”๋กœ ์‹คํ–‰ ๊ฐ€๋Šฅํ•ด ํšจ์œจ์„œ์ด ์ข‹๋‹ค.

5. ๊ฐ„๊ฒฐํ•˜๊ณ  ๋ช…ํ™•ํ•œ ์ฝ”๋“œ ๊ตฌ์กฐ

'static' ๋ฉ”์„œ๋“œ๋Š” ํด๋ž˜์Šค ์ˆ˜์ค€์—์„œ ํ•ด๋‹น ๋ฉ”์„œ๋“œ์˜ ๊ธฐ๋Šฅ์„ ์ˆ˜ํ–‰ํ•œ๋‹ค. ํด๋ž˜์Šค์™€ ๊ด€๋ จ์žˆ๋Š” ๋ฉ”์„œ๋“œ์ž„์„ ๋ช…ํ™•ํžˆํ•ด์„œ ๊ฐ์ฒด์™€ ์ธ์Šคํ„ด์Šค ๋ฉ”์„œ๋“œ ๊ฐ„์˜ ๊ด€๊ณ„๋ฅผ ๋ณต์žกํ•˜๊ฒŒ ๋งŒ๋“ค์ง€ ์•Š๋Š”๋‹ค.

6. ํด๋ž˜์Šค์™€ ๊ฐ์ฒด ๊ฐ„ ๋ช…ํ™•ํ•œ ๊ตฌ๋ถ„

5.์—์„œ ๋งํ–ˆ๋“ฏ์ด, 'static' ๋ฉ”์„œ๋“œ๋Š” ํด๋ž˜์Šค ์ˆ˜์ค€, ์ฆ‰ ํด๋ž˜์Šค ๋ ˆ๋ฒจ์—์„œ ๋™์ž‘ํ•ด์„œ ๊ฐ์ฒด์™€ ์ธ์Šคํ„ด์Šค ๊ฐ„์˜ ๋ช…ํ™•ํ•œ ๊ตฌ๋ถ„์„ ์ œ๊ณตํ•œ๋‹ค.  

 

 

๊ฒฐ๋ก 

main() ๋ฉ”์„œ๋“œ๊ฐ€ static์œผ๋กœ ์„ ์–ธ๋˜๋Š” ์ด์œ ๋Š”, ์ž๋ฐ”์˜ ๊ตฌ์กฐ์  ๊ทœ์น™๊ณผ, ํ”„๋กœ๊ทธ๋žจ์˜ ์‹œ์ž‘ ์‹œ์ ์—์„œ์˜ ํšจ์œจ์„ฑ๊ณผ ๋…๋ฆฝ์„ฑ์— ๊ธฐ์ธํ•œ๋‹ค.

 


ChatGPT์—๊ฒŒ ์ด ๊ธ€์˜ ์ถœ์ฒ˜๋ฅผ ๋ฌผ์—ˆ๋‹ค.

 

์ถœ์ฒ˜

  1. "The Java Language Specification":
    • ์ž๋ฐ” ์–ธ์–ด ์‚ฌ์–‘์—์„œ๋Š” main() ๋ฉ”์„œ๋“œ๊ฐ€ public static void๋กœ ์„ ์–ธ๋˜์–ด์•ผ ํ•˜๋ฉฐ, ํ”„๋กœ๊ทธ๋žจ์˜ ์ง„์ž…์ ์œผ๋กœ ์‚ฌ์šฉ๋œ๋‹ค๊ณ  ์„ค๋ช…ํ•ฉ๋‹ˆ๋‹ค. ์ด๋Š” JVM์ด ํ”„๋กœ๊ทธ๋žจ ์‹คํ–‰ ์‹œ main() ๋ฉ”์„œ๋“œ๋ฅผ ํ˜ธ์ถœํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ๊ธฐ์ˆ ํ•ฉ๋‹ˆ๋‹ค.
  2. "Effective Java" by Joshua Bloch:
    • ์ด ์ฑ…์—์„œ๋Š” ์ž๋ฐ”์˜ ๊ธฐ๋ณธ ์›์น™๊ณผ ๋””์ž์ธ ํŒจํ„ด์„ ์„ค๋ช…ํ•˜๋ฉฐ, main() ๋ฉ”์„œ๋“œ์˜ ์—ญํ• ๊ณผ static ์„ ์–ธ์˜ ํ•„์š”์„ฑ์„ ๋‹ค๋ฃน๋‹ˆ๋‹ค. Joshua Bloch๋Š” main() ๋ฉ”์„œ๋“œ๊ฐ€ ๊ฐ์ฒด์˜ ์ƒํƒœ์— ์˜์กดํ•˜์ง€ ์•Š์•„์•ผ ํ•˜๋ฉฐ, ํ”„๋กœ๊ทธ๋žจ ์‹คํ–‰์˜ ์‹œ์ž‘์ ์œผ๋กœ ์‚ฌ์šฉ๋  ๋•Œ ๋…๋ฆฝ์ ์œผ๋กœ ๋™์ž‘ํ•ด์•ผ ํ•œ๋‹ค๊ณ  ๊ฐ•์กฐํ•ฉ๋‹ˆ๋‹ค.
  3. "Java: The Complete Reference" by Herbert Schildt:
    • Herbert Schildt์˜ ์ฑ…์€ ์ž๋ฐ” ํ”„๋กœ๊ทธ๋ž˜๋ฐ์˜ ๊ธฐ์ดˆ๋ฅผ ๋‹ค๋ฃจ๋ฉฐ, main() ๋ฉ”์„œ๋“œ์˜ static ํ‚ค์›Œ๋“œ ์‚ฌ์šฉ ์ด์œ ์™€ ๊ทธ ์ค‘์š”์„ฑ์„ ์„ค๋ช…ํ•ฉ๋‹ˆ๋‹ค. ์ด ์ฑ…์—์„œ๋Š” static ๋ฉ”์„œ๋“œ๊ฐ€ ํด๋ž˜์Šค์˜ ์ธ์Šคํ„ด์Šค ์—†์ด ํ˜ธ์ถœ๋  ์ˆ˜ ์žˆ์Œ์„ ๊ฐ•์กฐํ•˜๋ฉฐ, ์ด๋Š” main() ๋ฉ”์„œ๋“œ๊ฐ€ ์‹คํ–‰๋  ๋•Œ ํ•„์š”ํ•œ ํŠน์„ฑ์ด๋ผ๊ณ  ์„ค๋ช…ํ•ฉ๋‹ˆ๋‹ค.
  4. "Core Java Volume I - Fundamentals" by Cay S. Horstmann, Gary Cornell:
    • ์ด ์ฑ…์€ ์ž๋ฐ” ํ”„๋กœ๊ทธ๋ž˜๋ฐ์˜ ๊ธฐ์ดˆ ๊ฐœ๋…์„ ๊นŠ์ด ์žˆ๊ฒŒ ๋‹ค๋ฃจ๋ฉฐ, main() ๋ฉ”์„œ๋“œ์˜ ๋™์ž‘ ๋ฐฉ์‹๊ณผ static ํ‚ค์›Œ๋“œ์˜ ์—ญํ• ์„ ์„ค๋ช…ํ•ฉ๋‹ˆ๋‹ค. main() ๋ฉ”์„œ๋“œ๊ฐ€ ํ”„๋กœ๊ทธ๋žจ ์‹คํ–‰ ์‹œ ๋…๋ฆฝ์ ์œผ๋กœ ๋™์ž‘ํ•ด์•ผ ํ•˜๋ฉฐ, ํด๋ž˜์Šค ์ธ์Šคํ„ด์Šค์™€ ๋ฌด๊ด€ํ•˜๊ฒŒ ํ˜ธ์ถœ๋  ์ˆ˜ ์žˆ์–ด์•ผ ํ•œ๋‹ค๊ณ  ์–ธ๊ธ‰ํ•ฉ๋‹ˆ๋‹ค.