๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ
โœ๏ธ Today I Learned(TIL)/๐ŸŒฑ ์ŠคํŒŒ๋ฅดํƒ€ ๋‚ด์ผ๋ฐฐ์›€์บ ํ”„

Java Handbook_Part 1โœ๏ธ

by carrot0911 2024. 10. 22.

์–ธ์–ด์˜ ์—ญ์‚ฌ

  • ์ปดํ“จํ„ฐ๋Š” ๋งค์šฐ ๋น ๋ฅธ ์†๋„๋ฅผ ๊ฐ€์ง€๊ณ  ์žˆ๋‹ค. ํ•˜์ง€๋งŒ 2์ง„๋ฒ•๋ฐ–์— ํ•  ์ค„ ๋ชจ๋ฅธ๋‹ค....
    ๋”ฐ๋ผ์„œ ์ปดํ“จํ„ฐ๋Š” ๋ฐ”๋ณด์ง€๋งŒ ๋น ๋ฅด๊ณ  ์ •ํ™•ํ•œ ์นœ๊ตฌ์ด๋‹ค!!
  • ์ปดํ“จํ„ฐ๊ฐ€ ์ดํ•ดํ•  ์ˆ˜ ์žˆ๊ฒŒ '01010101 00000001 00001001' ์ฒ˜๋Ÿผ ํ‘œํ˜„๋˜๋Š” ์–ธ์–ด : ๊ธฐ๊ณ„์–ด
    ํ•˜์ง€๋งŒ ์‚ฌ๋žŒ์˜ ์ž…์žฅ์—์„œ ๊ธฐ๊ณ„์–ด๋Š” ๋„ˆ๋ฌด ๋ณต์žกํ•˜๊ณ  ์–ด๋ ต๋‹ค.
  • ๊ทธ๋ž˜์„œ ์ด๋ฅผ ํ•ด๊ฒฐํ•˜๊ธฐ ์œ„ํ•ด ๊ธฐ๊ณ„ ๋ช…๋ น์–ด์™€ ์ผ์ƒ ์šฉ์–ด๋ฅผ 1:1๋กœ ๋งค์นญํ•˜๋Š” ๊ธฐ๊ณ„์–ด์™€ ๋‹ˆ๋ชจ๋‹‰์˜ ๋งค์นญ ์ฝ”๋“œํ‘œ๋ฅผ ๋งŒ๋“ค์—ˆ๋‹ค!

์–ด์…ˆ๋ธ”๋ฆฌ์–ด

  • ๋งค์นญ ์ฝ”๋“œํ‘œ = ์–ด์…ˆ๋ธ”๋ฆฌ
  • CPU๋งˆ๋‹ค ์‹คํ–‰ํ•  ์ˆ˜ ์žˆ๋Š” ๊ธฐ๊ณ„์–ด๊ฐ€ ๋‹ฌ๋ž๊ธฐ ๋•Œ๋ฌธ์— ์–ด์…ˆ๋ธ”๋ฆฌ์–ด๋„ ๋‹ค๋ฅด๊ฒŒ ๋งŒ๋“ค์–ด์กŒ๋‹ค.
  • ์–ด์…ˆ๋ธ”๋ฆฌ์–ด๋ฅผ ๊ธฐ๊ณ„์–ด๋กœ ๋ฒˆ์—ญํ•ด ์ฃผ๋Š” ์†Œํ”„ํŠธ์›จ์–ด = ์–ด์…ˆ๋ธ”๋Ÿฌ
  • ์–ด์…ˆ๋ธ”๋ฆฌ์–ด์˜ ๋“ฑ์žฅ์œผ๋กœ ๋งŽ์€ ๊ฐœ๋ฐœ์ž๋“ค์ด ํŽธํ•ด์กŒ์ง€๋งŒ ๊ฐœ์„ ํ•ด์•ผ ํ•  ์ ์ด ์žˆ์—ˆ๋‹ค...

C์–ธ์–ด

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

Java์˜ ๋“ฑ์žฅ

  • Java๋Š” '๊ฐ์ฒด์ง€ํ–ฅ์–ธ์–ด'
  • ๊ฐ์ฒด์ง€ํ–ฅ ์–ธ์–ด์˜ ์ค‘์‹ฌ์—๋Š” ํด๋ž˜์Šค(Class)๊ฐ€ ์žˆ๋‹ค.
  • C++์€ ํด๋ž˜์Šค ์—†์ด๋„ ๊ฐœ๋ฐœ์ด ๊ฐ€๋Šฅํ•˜๊ธฐ ๋•Œ๋ฌธ์— ๊ฐ์ฒด์ง€ํ–ฅ์ง€์› ์–ธ์–ด๋ผ๊ณ  ๋ถ€๋ฅด๊ธฐ๋„ ํ•˜์ง€๋งŒ Java๋Š” ํด๋ž˜์Šค ์—†์ด๋Š” ๊ฐœ๋ฐœ์ด ๋ถˆ๊ฐ€๋Šฅํ•˜๋‹ค.
  • Java๋Š” ๊ฐœ๋ฐœ์˜ ์‹œ์ž‘๊ณผ ๋ ๋ชจ๋‘ ํด๋ž˜์Šค์—์„œ ์‹œ์ž‘ํ•˜๊ณ  ํด๋ž˜์Šค์—์„œ ๋๋‚˜๊ฒŒ ๋œ๋‹ค.
  • ํ”„๋กœ๊ทธ๋žจ์ด ์‹œ์ž‘ํ•˜๋Š” main() ๋ฉ”์„œ๋“œ๋กœ ์˜ˆ๋ฅผ ๋“ค์–ด๋ณด์ž๋ฉด Java๋Š” ๋ฌด์กฐ๊ฑด ํด๋ž˜์Šค ๋‚ด๋ถ€์— ์กด์žฌํ•ด์•ผ ํ•œ๋‹ค.
public class Student {
	private String name;
    private int age;
    
    public voir study(){
    	System.out.println("๊ณต๋ถ€");
    }
    
    public static void main(String[] args){
    	Student student = new student();
        student.study();
    }
}
  • Java๋Š” ๋‹จ ํ•˜๋‚˜์˜ ์†Œ์Šค ํŒŒ์ผ๋กœ ๋ชจ๋“  ๊ธฐ์ข…์˜ ์ปดํ“จํ„ฐ์—์„œ ์‹คํ–‰์ด ๊ฐ€๋Šฅํ•˜๋‹ค.

 

Java ํ™˜๊ฒฝ์„ค์ •

๋งŽ์€ ์‚ฌ๋žŒ๋“ค์ด ์ฒ˜์Œ Java๋ฅผ ์ ‘ํ•  ๋•Œ, JDK์™€ JRE์˜ ์—ญํ• ์„ ํ˜ผ๋™ํ•˜๋Š” ๊ฒฝ์šฐ๊ฐ€ ๋งŽ๋‹ค. ๊ฐ ์šฉ์–ด๊ฐ€ ์˜๋ฏธํ•˜๋Š” ๋ฐ”์™€ ์—ญํ• ์„ ๋ฐ˜๋“œ์‹œ ์งš๊ณ  ๋„˜์–ด๊ฐ€์ž!!

  • JDK(Java Development Kit)
    • Java ์–ดํ”Œ๋ฆฌ์ผ€์ด์…˜ ๊ฐœ๋ฐœ์„ ์œ„ํ•ด ๋ฐ˜๋“œ์‹œ ํ•„์š”ํ•˜๋ฉฐ, ์‚ฌ๋žŒ์ด ์ž‘์„ฑํ•œ ์†Œ์Šค ์ฝ”๋“œ๋ฅผ ๋ฒˆ์—ญํ•˜์—ฌ ์ปดํ“จํ„ฐ๊ฐ€ ์ดํ•ดํ•  ์ˆ˜ ์žˆ๋Š” ๋ฐ”์ดํŠธ ์ฝ”๋“œ๋กœ ๋ณ€ํ™˜ํ•˜๋Š” ๋„๊ตฌ์ธ Java ์ปดํŒŒ์ผ๋Ÿฌ๊ฐ€ ํฌํ•จ๋˜์–ด ์žˆ๋‹ค.
    • ๋Œ€ํ‘œ์ ์ธ ๊ฒƒ์ด Oracle JDK. Oracle JDK๋Š” ์ƒ์šฉ๋ฒ„์ „์œผ๋กœ ๊ณต๊ฐœ๋˜๊ณ  ์žˆ์œผ๋ฉฐ, ๋ผ์ด์„ผ์Šค ์ด์Šˆ๋ฅผ ํ”ผํ•˜๊ธฐ ์œ„ํ•ด์„œ๋Š” ๋‹ค๋ฅธ ์ œ์กฐ์‚ฌ์˜ JDK ์ด์šฉ์„ ๊ถŒ์žฅํ•œ๋‹ค.
    • JDK์—๋Š” JRE๊ฐ€ ํฌํ•จ๋˜์–ด ์žˆ๊ธฐ ๋•Œ๋ฌธ์— ๋ณ„๋„๋กœ ๋ถ„๋ฆฌํ•˜์—ฌ ์„ค์น˜ํ•  ํ•„์š”๊ฐ€ ์—†๋‹ค.
  • JRE(Java Runtime Environment), JVM(Java Virtual Machine)
    • Java๋กœ ์ปดํŒŒ์ผ ๋œ ์–ดํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ์‹คํ–‰ํ•˜๋Š” ์—ญํ• ์„ ํ•œ๋‹ค. ๋ชจ๋“  Java ์–ดํ”Œ๋ฆฌ์ผ€์ด์…˜์€ JVM์ด๋ผ๊ณ  ํ•˜๋Š” ๊ฐ€์ƒ์˜ ์ปดํ“จํ„ฐ ๊ณต๊ฐ„์—์„œ ์‹คํ–‰๋˜๋ฉฐ, Windows, Linux, Mac ๋“ฑ ์–ด๋– ํ•œ ์šด์˜์ฒด์ œ๋ผ๋„ JVM์ด ์„ค์น˜๋˜์–ด ์žˆ๋‹ค๋ฉด Java ์–ดํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ์‹คํ–‰ํ•  ์ˆ˜ ์žˆ๋‹ค.

์šด์˜์ฒด์ œ ๋ณ„ ๋‹ค์šด๋กœ๋“œ ๋ฐ ์„ค์น˜

Windows - ๋‚ด๊ฐ€ ์‚ฌ์šฉํ•˜๋Š” ๋…ธํŠธ๋ถ์ด Windows๋ผ์„œ Windows๋ฅผ ๋”ฐ๋ผ ์ง„ํ–‰!!

  • ๋งํฌ์— ์ ‘์† ํ›„ [.msi] ๋ฒ„ํŠผ์„ ํด๋ฆญํ•˜์—ฌ ์„ค์น˜ ํŒŒ์ผ์„ ๋‹ค์šด๋กœ๋“œํ•œ ํ›„ ์„ค์น˜ํ•œ๋‹ค.
  • ํƒ์ƒ‰๊ธฐ > ๋‚ด PC ๋งˆ์šฐ์Šค ์šฐํด๋ฆญ > ์†์„ฑ์„ ํด๋ฆญํ•œ๋‹ค.
  • ์ขŒ์ธก ๋ฉ”๋‰ด ์ตœํ•˜๋‹จ์˜ "๊ณ ๊ธ‰ ์‹œ์Šคํ…œ ์„ค์ •"์„ ํด๋ฆญํ•œ๋‹ค.
  • "ํ™˜๊ฒฝ ๋ณ€์ˆ˜"๋ฅผ ํด๋ฆญํ•œ๋‹ค.
  • ํ•˜๋‹จ <์‹œ์Šคํ…œ ๋ณ€์ˆ˜> ์˜์—ญ์˜ "์ƒˆ๋กœ ๋งŒ๋“ค๊ธฐ"๋ฅผ ํด๋ฆญํ•œ๋‹ค.
  • ๋ณ€์ˆ˜ ์ด๋ฆ„์„ JAVA_HOME, ๊ฐ’์„ ์•„๋ž˜์™€ ๊ฐ™์ด ์ž…๋ ฅํ•œ๋‹ค.
C:\Program Files\Zulu\zulu-17
  • ๋งˆ์ฐฌ๊ฐ€์ง€๋กœ <์‹œ์Šคํ…œ ๋ณ€์ˆ˜> ์˜์—ญ์˜ "Path"๋ฅผ ์ฐพ๊ณ  "ํŽธ์ง‘"์„ ํด๋ฆญํ•œ๋‹ค. ์ œ์ผ ๋์— ์•„๋ž˜ ๋‚ด์šฉ์„ ์ž…๋ ฅํ•œ๋‹ค.
C:\Program Files\Zulu\zulu-17\bin

 

  • "ํ™•์ธ"์„ ๋ˆ„๋ฅด๊ณ  ๋น ์ ธ๋‚˜์˜จ ๋’ค, ์œˆ๋„์šฐํ‚ค + R์„ ๋ˆ„๋ฅด๊ณ  cmd ์ž…๋ ฅ ํ›„ ์—”ํ„ฐ๋ฅผ ๋ˆ„๋ฅธ๋‹ค.
  • ์•„๋ž˜ ๋‚ด์šฉ์„ ์ž…๋ ฅํ–ˆ์„ ๋•Œ, Open JDK ๊ด€๋ จ ์ •๋ณด๊ฐ€ ํ‘œ์‹œ๋˜๋ฉด ์„ค์น˜ ์™„๋ฃŒ ๐Ÿ˜Š
java -version

 

IntelliJ ์„ค์น˜ํ•˜๊ธฐ

IntelliJ๋Š” JetBrain์—์„œ ๊ฐœ๋ฐœํ•œ Java ์ „์šฉ IDE(Integrated Devalopment Environment, ํ†ตํ•ฉ ๊ฐœ๋ฐœ ํ™˜๊ฒฝ)์ด๋‹ค. ์†Œ์Šค๋ฅผ ์ž‘์„ฑํ•˜๋Š” ๊ฒƒ๋ถ€ํ„ฐ ์„œ๋ฒ„๋ฅผ ์‹คํ–‰, ํ„ฐ๋ฏธ๋„ ์‚ฌ์šฉ, ๊ฐ์ข… ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ ๊ด€๋ฆฌ ๋“ฑ ๋‹ค์–‘ํ•œ ๊ธฐ๋Šฅ์ด ํ•˜๋‚˜์˜ ํ”„๋กœ๊ทธ๋žจ์— ํ†ตํ•ฉ๋˜์–ด ์žˆ๊ธฐ ๋•Œ๋ฌธ์— ๋งค์šฐ ํŽธ๋ฆฌํ•˜๊ฒŒ ๊ฐœ๋ฐœ ์ง„ํ–‰์ด ๊ฐ€๋Šฅํ•˜๋‹ค!!

 

IntelliJ Ultimate ๋“ฑ๋ก ๊ฐ€์ด๋“œ์— ์ ํžŒ ์ˆœ์„œ๋Œ€๋กœ ์ง„ํ–‰ํ•˜๊ณ  ์žˆ์—ˆ๋Š”๋ฐ..... ๋ผ์ด์„ผ์Šค ๋“ฑ๋ก ๊ณผ์ •์—์„œ ์ธํ…”๋ฆฌ์ œ์ด ๋ผ์ด์„ผ์Šค ์ฝ”๋“œ๋ฅผ ์ž…๋ ฅํ•˜๋ผ๊ณ  ๋‚˜์˜ค๋Š”๋ฐ.. ์–ด๋”œ ์ฐพ์•„๋ด๋„ ์ฝ”๋“œ๋ฅผ ์ฐพ์„ ์ˆ˜ ์—†์–ด์„œ ๋ผ์ด์„ผ์Šค ๋“ฑ๋ก์„ ํ•˜์ง€ ๋ชปํ–ˆ๋‹ค... ๐Ÿฅฒ๐Ÿฅฒ๐Ÿฅฒ

ํ•ด๊ฒฐ๋ฐฉ๋ฒ•์„ ์ฐพ์œผ๋ฉด ๊ทธ ๋’ค์— ์ด์–ด์„œ ํ•ด์•ผ์ง€..๐Ÿ˜”