๐Ÿ“š[Java] ๊ธฐ์ดˆ

ํ…ํ…ยท2025๋…„ 4์›” 14์ผ

Java์˜ ํŠน์ง•

ํ”Œ๋žซํผ ๋…๋ฆฝ์„ฑ

  • ์ž๋ฐ” ์ปดํŒŒ์ผ๋Ÿฌ
    • ๋ฐ”์ดํŠธ์ฝ”๋“œ(.class)๋กœ ๋ณ€ํ™˜ํ•ด์ค€๋‹ค. > JVM์ด ํ•ด์„ํ•  ์ˆ˜ ์žˆ๋Š” ์ฝ”๋“œ
    • ๋ฐ”์ดํŠธ์ฝ”๋“œ๋ฅผ ๊ฑฐ์ณ JVM์œผ๋กœ ์‹คํ–‰๋˜๊ธฐ ๋•Œ๋ฌธ์— ์–ด๋–ค ํ™˜๊ฒฝ์—์„œ๋„ ๋™์ž‘ ๊ฐ€๋Šฅํ•˜๋‹ค.
  • JVM ์ž๋ฐ” ๊ฐ€์ƒ ํ™˜๊ฒฝ
    • ๋ฐ”์ดํŠธ์ฝ”๋“œ๋ฅผ ํ•ด์„ํ•˜๊ณ  ์ž๋ฐ” ํ”„๋กœ๊ทธ๋žจ์„ ์‹คํ–‰์‹œํ‚ค๋Š” ์—ญํ• 
    • ์‹คํ–‰ํ™˜๊ฒฝ์— ๊ด€๊ณ„์—†์ด ์ž๋ฐ” ํ”„๋กœ๊ทธ๋žจ์„ ๋™์ž‘์‹œํ‚ฌ ์ˆ˜ ์žˆ๋‹ค.

๊ฐ์ฒด์ง€ํ–ฅ

๋ชจ๋“  ๊ฒƒ์ด ๊ฐ์ฒด(Class)

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

๊ฑฐ๋Œ€ํ•œ ์ƒํƒœ๊ณ„

Java๋Š” ์˜ค๋žœ ์‹œ๊ฐ„๋™์•ˆ ์„ ํ˜ธ๋˜์–ด ์˜จ ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์–ธ์–ด
๋ฐฉ๋Œ€ํ•œ ์ƒํƒœ๊ณ„๋ฅผ ๊ฐ€์ง€๊ณ  ์žˆ์œผ๋ฉฐ ๋‹ค์–‘ํ•œ ์˜คํ”ˆ์†Œ์Šค ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ, ํ”„๋ ˆ์ž„์›Œํฌ ๋“ฑ์„ ๊ฐ€์ง€๊ณ ์žˆ์œผ๋ฉฐ
๊ด€๋ จ ํ•™์Šต์ž๋ฃŒ(๊ณต์‹๋ฌธ์„œ, ๊ธฐ์ˆ ๋ธ”๋กœ๊ทธ, ์ฐธ๊ณ ์„œ์ )๋„ ์ฃผ๋ณ€์—์„œ ์‰ฝ๊ฒŒ ์ฐพ์„ ์ˆ˜ ์žˆ๋‹ค.


์ฃผ ๊ธฐ์–ต์žฅ์น˜ - ๋ฉ”์ธ ๋ฉ”๋ชจ๋ฆฌ

RAM(Random Access Memory)

  • ํœ˜๋ฐœ์„ฑ ๊ธฐ์–ต์žฅ์น˜: ์ „์›์ด ๊บผ์ง€๋ฉด ๋ฐ์ดํ„ฐ๊ฐ€ ์‚ฌ๋ผ์ง
  • ์†๋„๊ฐ€ ๋งค์šฐ๋น ๋ฆ„: CPU๊ฐ€ ์ง์ ‘ ์ ‘๊ทผํ•˜๋Š” ๋ฉ”๋ชจ๋ฆฌ
  • ์‹คํ–‰์ค‘์ธ ํ”„๋กœ๊ทธ๋žจ๊ณผ ๋ฐ์ดํ„ฐ๋ฅผ ์ต์‹œ์ ์œผ๋กœ ์ €์žฅ

๋ณด์กฐ๊ธฐ์–ต์žฅ์น˜ - Secondary Storage

HDD/SSD

  • ์ •๋ณด๋ฅผ ์˜๊ตฌ์ ์œผ๋กœ ์ €์žฅ
  • RAM๋ณด๋‹ค ๋А๋ฆฌ์ง€๋งŒ ์šฉ๋Ÿ‰์ด ํฌ๋‹ค
  • ํ”„๋กœ๊ทธ๋žจ, ๋ฌธ์„œ, ์ด๋ฏธ์ง€ ๋“ฑ ํŒŒ์ผ์ €์žฅ

์ปดํ“จํ„ฐ์˜ ๋ฉ”๋ชจ๋ฆฌ ๊ด€๋ฆฌ ๋ฐฉ์‹

๋ฉ”๋ชจ๋ฆฌ๋Š” 1๋ฐ”์ดํŠธ ๋‹จ์œ„๋กœ ์ฃผ์†Œ๊ฐ€ ๋งค๊ฒจ์ ธ ์žˆ๋‹ค.(์ฃผ์†Œ = ๋ฉ”๋ชจ๋ฆฌ์˜ ์œ„์น˜)
์ปดํ“จํ„ฐ๋Š” ํ•„์š”ํ•œ ๋ฐ์ดํ„ฐ์˜ ํฌ๊ธฐ๋ฅผ ํŒŒ์•…ํ•ด์„œ ๊ทธ์— ๋งž๋Š” ๋ฉ”๋ชจ๋ฆฌ ๊ณต๊ฐ„์„ ํ• ๋‹น.

  • ๋ฉ”๋ชจ๋ฆฌ๋ฅผ ์ ˆ์•ฝํ•˜๋ ค๋ฉด?
    • Java๋Š” ๊ฐ์ฒด ์ƒ์„ฑ ์‹œ์ ์— ์ž๋ฃŒํ˜• ํฌ๊ธฐ์™€ ๊ตฌ์กฐ๊ฐ€ ์ •ํ•ด์ง€๊ธฐ ๋•Œ๋ฌธ์— JVM์ด ๋‚ด๋ถ€์ ์œผ๋กœ ์ •ํ™•ํ•œ ํฌ๊ธฐ๋งŒํผ ๋ฉ”๋ชจ๋ฆฌ๋ฅผ ํ• ๋‹นํ•œ๋‹ค.
int[] numbers = new int[5]; //int 5๊ฐœ -> 4๋ฐ”์ดํŠธ * 5 = 20๋ฐ”์ดํŠธ ํ• ๋‹น
  • ํ•„์š”ํ•œ ๋งŒํผ๋งŒ ๊ณต๊ฐ„์„ ํ™•๋ณด
  • JVM์ด int[5]๋ผ๋Š” ๊ณ ์ • ํฌ๊ธฐ ๋ฐฐ์—ด์„ ์ •ํ™•ํžˆ 5์นธ๋งŒ ์žก์Œ

int[] bigArray = new int[1000]; //์‹ค์ œ๋ก  10๊ฐœ๋งŒ ์‚ฌ์šฉ
  • ํ• ๋‹น๋œ ๋ฉ”๋ชจ๋ฆฌ ์ค‘ 990๊ฐœ๋Š” ์‚ฌ์šฉ๋˜์ง€ ์•Š์ง€๋งŒ ๋ฉ”๋ชจ๋ฆฌ๋Š” ์žก์•„๋จน๋Š”๋‹ค.
  • ๋ฐ˜๋ณต๋˜๋Š” ๊ฐ์ฒด๋ฅผ ๋‹ด๋Š” ์ปฌ๋ ‰์…˜์—์„œ ์ž์ฃผ ๋ฐœ์ƒํ•˜๋Š” ์ƒํ™ฉ

Java ๊ธฐ๋ณธ ์ž๋ฃŒํ˜•๊ณผ ์ €์žฅ ์šฉ๋Ÿ‰

Java๋Š” ํ”Œ๋žซํผ์— ๊ด€๊ณ„์—†์ด ๊ฐ ๊ธฐ๋ณธ ์ž๋ฃŒํ˜•์˜ ํฌ๊ธฐ๊ฐ€ ๊ณ ์ •๋˜์–ด ์žˆ์Œ.

์ž๋ฃŒํ˜•ํฌ๊ธฐ๋น„ํŠธ ์ˆ˜๊ฐ’์˜ ๋ฒ”์œ„์„ค๋ช…
byte1 byte8 bits-128 ~ 127๊ฐ€์žฅ ์ž‘์€ ์ •์ˆ˜ํ˜•
short2 bytes16 bits-32,768 ~ 32,767์ž‘์€ ์ •์ˆ˜ํ˜•
int4 bytes32 bits-2ยณยน ~ 2ยณยน-1์ผ๋ฐ˜์ ์ธ ์ •์ˆ˜ํ˜• (๊ธฐ๋ณธํ˜•)
long8 bytes64 bits-2โถยณ ~ 2โถยณ-1ํฐ ์ •์ˆ˜๊ฐ’ ์ €์žฅ ๊ฐ€๋Šฅ
float4 bytes32 bitsยฑ3.4E-38 ~ ยฑ3.4E+38๋‹จ์ •๋„ ๋ถ€๋™์†Œ์ˆ˜์ 
double8 bytes64 bitsยฑ1.7E-308 ~ ยฑ1.7E+308๋ฐฐ์ •๋„ ๋ถ€๋™์†Œ์ˆ˜์  (๊ธฐ๋ณธํ˜•)
char2 bytes16 bits0 ~ 65,535 (์œ ๋‹ˆ์ฝ”๋“œ ๊ฐ’)๋ฌธ์ž 1๊ฐœ ์ €์žฅ
booleanJVM ์˜์กด(๋ณดํ†ต 1 byte)true / false๋…ผ๋ฆฌํ˜•, ์‹ค์ œ ํฌ๊ธฐ ๋ช…์‹œX

์˜ˆ์‹œ ์ฝ”๋“œ

int age = 30;          // 4 bytes
double height = 175.5; // 8 bytes
char grade = 'A';      // 2 bytes
boolean isAdult = true;// 1 byte (๋…ผ๋ฆฌ๊ฐ’)

Java ํ”„๋กœ์ ํŠธ ๊ด€๋ฆฌ

ํŒจํ‚ค์ง€(Package)

ํŒจํ‚ค์ง€๋Š” ๊ด€๋ จ๋œ ์ž๋ฐ” ํด๋ž˜์Šค๋“ค์„ ๊ทธ๋ฃน์œผ๋กœ ๋ฌถ๋Š” ๊ธฐ๋Šฅ์ด๋‹ค.

  • ํด๋”์ฒ˜๋Ÿผ ํŒŒ์ผ(ํด๋ž˜์Šค)์„ ์ •๋ฆฌํ•ด์„œ ๊ด€๋ฆฌํ•  ์ˆ˜ ์žˆ๋„๋ก ๋„์™€์ฃผ๋Š” ์—ญํ• 
  • Java์—์„œ ํŒจํ‚ค์ง€๋ช…์€ ์†Œ๋ฌธ์ž๋งŒ์œผ๋กœ ์ ๋Š”๊ฒƒ์„ ๊ถŒ์žฅํ•œ๋‹ค.
    • โœ…์†Œ๋ฌธ์ž๋งŒ ํ™œ์šฉ(๊ถŒ์žฅ): chapter1
    • โŒ์ˆซ์ž๋กœ ์‹œ์ž‘ ๊ธˆ์ง€: 1chapter
    • โŒํŠน์ˆ˜๋ฌธ์ž ์‚ฌ์šฉ ๊ธˆ์ง€: chapter#1
    • โŒ์˜ˆ์•ฝ์–ด ์‚ฌ์šฉ๊ธˆ์ง€:class, public, static ...

ํด๋ž˜์Šค ์ด๋ฆ„ ๊ทœ์น™

ํด๋ž˜์Šค ์ด๋ฆ„์„ ์ž‘์„ฑํ•  ๋•Œ๋Š” ์ฒซ ๊ธ€์ž ๋Œ€๋ฌธ์ž + ์นด๋ฉœ์ผ€์ด์Šค ์กฐํ•ฉ์œผ๋กœ ์ž‘์„ฑํ•œ๋‹ค.

  • ์ด๋ฅผ Pascalcase = UpperCamelCase๋ผ๊ณ  ํ•œ๋‹ค.
    • โœ…UpperCamelCase: MyNewClass
    • โŒ์Šค๋„ค์ดํฌ ์ผ€์ด์Šค: my_new_class
    • โŒ์ˆซ์ž๋กœ ์‹œ์ž‘ ๊ธˆ์ง€: 1MyNewClass
    • โŒํŠน์ˆ˜๋ฌธ์ž ์‚ฌ์šฉ ๊ธˆ์ง€: My#New#Class
    • โŒ์˜ˆ์•ฝ์–ด ์‚ฌ์šฉ๊ธˆ์ง€:Class, Public, Static ...

์—ฐ์‚ฐ์ž ์šฐ์„ ์ˆœ์œ„

์šฐ์„ ์ˆœ์œ„๊ฐ€ ํ—ท๊ฐˆ๋ฆฐ๋‹ค๋ฉด ๊ด„ํ˜ธ()๋ฅผ ์ ๊ทน์ ์œผ๋กœ ์‚ฌ์šฉํ•˜๊ธธ ๊ถŒ์žฅ

  1. ์‚ฐ์ˆ ์—ฐ์‚ฐ์ž ์šฐ์„ ์ˆœ์œ„
    • ๊ธฐ๋ณธ์ ์ธ ์ˆ˜ํ•™ ์‚ฌ์น™์—ฐ์‚ฐ ์šฐ์„ ์ˆœ์œ„๊ฐ€ ์ ์šฉ
    System.out.println(10 - 3 * 2);
    // ์‹คํ–‰ ์ˆœ์„œ: 3 * 2
    // โ†’ 10 - 6 
    // ์ถœ๋ ฅ โ†’ 4
  2. ๊ธฐ๋ณธ์—ฐ์‚ฐ์ž ์šฐ์„ ์ˆœ์œ„
    • ์‚ฐ์ˆ  -> ๋น„๊ต -> ๋…ผ๋ฆฌ -> ๋Œ€์ž…
    boolean flag = 10 + 5 > 12 && true;
    System.out.println(flag);
    // ์‹คํ–‰ ์ˆœ์„œ: 10 + 5 : ์‚ฐ์ˆ 
    // โ†’ 15 > 12 : ๋น„๊ต
    // โ†’ true && true : ๋…ผ๋ฆฌ
    // โ†’ flag = true ๋Œ€์ž… -> true ์ถœ๋ ฅ
  3. ๋น„๊ต์—ฐ์‚ฐ์ž์™€ ์‚ฐ์ˆ ์—ฐ์‚ฐ์ž์˜ ์šฐ์„ ์ˆœ์œ„
    System.out.println(10 - 3 > 5 + 1);
    // ์‹คํ–‰ ์ˆœ์„œ: (10 - 3), (5 + 1) : ์‚ฐ์ˆ 
    // โ†’ 7 > 6 : ๋น„๊ต
    // โ†’ true
  4. ๋…ผ๋ฆฌ์—ฐ์‚ฐ์ž ์šฐ์„ ์ˆœ์œ„
    • ! -> && -> ||
    boolean result = true || false && !false;
    // ์‹คํ–‰ ์ˆœ์„œ: !false -> true
    // false && true -> false
    // โ†’ true || false -> true
  5. ์šฐ์„  ์ˆœ์œ„ ์—ฐ์Šต
    boolean result = !(true && false) || false && true;
    //!(true && false) -> !(false) == true
    // false && true -> false
    // true || false -> true

๋ฌธ์ž์—ด ๋น„๊ต

์‹ค๋ฌด์—์„œ ๋ฌธ์ž์—ด ๋น„๊ต์‹œ ==์„ ์‚ฌ์šฉํ•˜๋Š” ๊ฒฝ์šฐ๋Š” ๊ฑฐ์˜ ์—†๋‹ค.
๋ฌธ์ž์—ด ๋น„๊ต๋Š” ํ•ญ์ƒ .equals() ๋ฉ”์„œ๋“œ๋ฅผ ํ™œ์šฉํ•  ๊ฒƒ(๋™๋“ฑ์„ฑ/๋™์ผ์„ฑ ๋ฌธ์ œ)

.equals()์‚ฌ์šฉ์˜ˆ์‹œ

String text1 = "Hello";
String text2 = "Hello";
boolean isEqual = text1.equals(text2);
System.out.println(isEqual);
//true

==๋Š” ๋‘ ๊ฐœ์˜ ์ฐธ์กฐ(reference) ๊ฐ€ ๊ฐ™์€ ๊ฐ์ฒด๋ฅผ ๊ฐ€๋ฆฌํ‚ค๊ณ  ์žˆ๋Š”์ง€ ๋น„๊ต


Java 1์ฃผ์ฐจ ๊ฐ•์˜ ํ•™์Šต ์ค‘...
์‹œ์ž‘๋ถ€๋ถ„์€ ๋ณต์Šตํ•˜๋Š” ๋А๋‚Œ์œผ๋กœ ๊ฐ€๋ณ๊ฒŒ ๋“ฃ๊ณ  ์žˆ๋‹ค.
์ฒ˜์Œ์— CS, Java ๊ธฐ์ดˆ ๊ฐœ๋…๊ณผ ์ž๋ฃŒํ˜•๋ณ„ ์ €์žฅ์šฉ๋Ÿ‰์— ๋Œ€ํ•œ ๋‚ด์šฉ์ด ๊ฐ•์˜์— ๋“ค์–ด์žˆ์–ด ์ด ๋ถ€๋ถ„์€ ๋”ฐ๋กœ ์ •๋ฆฌํ•ด๋ณด์•˜๋‹ค.
2์ฃผ์ฐจ ๊ฐ•์˜๊ฐ€ ๋“ค์–ด๊ฐ€๋ฉด ๋ณธ๊ฒฉ์ ์œผ๋กœ ์ž๋ฐ”์˜ ํ•ต์‹ฌ์ธ ๊ฐ์ฒด ์ง€ํ–ฅ์— ๋Œ€ํ•ด ๋ฐฐ์šฐ๊ฒŒ ๋˜๋Š”๋ฐ ์—ฌ๊ธฐ๋ถ€ํ„ฐ๋Š” ์กฐ๊ธˆ ๋” ์‹ฌ๋„์žˆ๊ฒŒ ํ•™์Šต์„ ์ง„ํ–‰ ํ•  ์˜ˆ์ •์ด๋‹ค.๐Ÿ™‚

profile
์ฐจ๊ทผ์ฐจ๊ทผ

1๊ฐœ์˜ ๋Œ“๊ธ€

comment-user-thumbnail
2025๋…„ 4์›” 15์ผ

์ฒดํฌํ•˜๊ณ  ๊ฐ‘๋‹ˆ๋‹ค~

๋‹ต๊ธ€ ๋‹ฌ๊ธฐ