CodeGym/Java Blog/๋ฌด์ž‘์œ„์˜/Java ๊ฐœ๋ฐœ์ž ์ง์œ„์— ๋Œ€ํ•œ ์ทจ์—… ๋ฉด์ ‘์˜ ์งˆ๋ฌธ๊ณผ ๋‹ต๋ณ€์„ ์‚ดํŽด๋ณด์„ธ์š”. 2 ๋ถ€
John Squirrels
๋ ˆ๋ฒจ 41
San Francisco

Java ๊ฐœ๋ฐœ์ž ์ง์œ„์— ๋Œ€ํ•œ ์ทจ์—… ๋ฉด์ ‘์˜ ์งˆ๋ฌธ๊ณผ ๋‹ต๋ณ€์„ ์‚ดํŽด๋ณด์„ธ์š”. 2 ๋ถ€

๋ฌด์ž‘์œ„์˜ ๊ทธ๋ฃน์— ๊ฒŒ์‹œ๋˜์—ˆ์Šต๋‹ˆ๋‹ค
ํšŒ์›
๋‹ค์‹œ ํ•œ ๋ฒˆ ์•ˆ๋…•ํ•˜์„ธ์š”, ์—ฌ๋Ÿฌ๋ถ„! ์šฐ๋ฆฌ๋Š” ์ฃผ๋‹ˆ์–ด, ์ค‘๊ธ‰ ๋ฐ ์‹œ๋‹ˆ์–ด Java ๊ฐœ๋ฐœ์ž๋ฅผ ์œ„ํ•œ ์งˆ๋ฌธ์— ๋Œ€ํ•œ ๋‹ต๋ณ€์„ ๊ณ„์†ํ•ด์„œ ์ฐพ๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. ์งˆ๋ฌธ์€ ๋งค์šฐ ํฅ๋ฏธ ๋กญ์Šต๋‹ˆ๋‹ค. ๋‚˜๋Š” ๊ฐœ์ธ์ ์œผ๋กœ ๊ทธ๊ฒƒ๋“ค์„ ๋ถ„์„ํ•˜๋Š” ๊ฒƒ์„ ์ข‹์•„ํ•ฉ๋‹ˆ๋‹ค. ์™œ๋ƒํ•˜๋ฉด ๊ทธ๊ฒƒ์€ ๋‚˜์˜ ์ด๋ก ์  ์ง€์‹๊ณผ ๋•Œ๋กœ๋Š” ๊ฐ€์žฅ ์˜ˆ์ƒ์น˜ ๋ชปํ•œ ๊ณณ์—์„œ ๊ณต๋ฐฑ์„ ์ฐพ๋Š” ๋ฐ ๋„์›€์ด ๋˜๊ธฐ ๋•Œ๋ฌธ์ž…๋‹ˆ๋‹ค. Java ๊ฐœ๋ฐœ์ž ์ง์œ„์— ๋Œ€ํ•œ ์ทจ์—… ๋ฉด์ ‘์˜ ์งˆ๋ฌธ๊ณผ ๋‹ต๋ณ€์„ ์‚ดํŽด๋ณด์„ธ์š”.  ํŒŒํŠธ 2 - 1์ด์ „ ๋ถ€๋ถ„์€ ์ด ๊ธฐ์‚ฌ ์—์„œ ์ฐพ์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค . ํ•˜์ง€๋งŒ ์‹œ์ž‘ํ•˜๊ธฐ ์ „์— ๋‹ค์Œ ์‚ฌํ•ญ์„ ์ƒ๊ธฐ์‹œ์ผœ๋“œ๋ฆฌ๊ณ  ์‹ถ์Šต๋‹ˆ๋‹ค.
  1. ๋ถˆํ•„์š”ํ•˜๊ฒŒ ์ •๋ณด๊ฐ€ ์ค‘๋ณต๋˜์ง€ ์•Š๋„๋ก ์ด ๊ธฐ์‚ฌ ์‹œ๋ฆฌ์ฆˆ ์™€ ๊ฒน์น˜๋Š” ์งˆ๋ฌธ์€ ๊ฑด๋„ˆ๋›ฐ๊ฒ ์Šต๋‹ˆ๋‹ค . ๊ฐ€์žฅ ์ผ๋ฐ˜์ ์ธ(์ธ๊ธฐ ์žˆ๋Š”) Java Core ์ธํ„ฐ๋ทฐ ์งˆ๋ฌธ์„ ๋‹ค๋ฃจ๊ณ  ์žˆ์œผ๋ฏ€๋กœ ์ด ๊ธฐ์‚ฌ๋ฅผ ์ฝ์–ด ๋ณด๋Š” ๊ฒƒ์ด ์ข‹์Šต๋‹ˆ๋‹ค.
  2. ๋‹ต๋ณ€์„ ๋” ์ž์„ธํžˆ ์„ค๋ช…ํ•  ์ˆ˜ ์žˆ์ง€๋งŒ ๊ทธ๋ ‡๊ฒŒ ํ•˜์ง€ ์•Š๊ฒ ์Šต๋‹ˆ๋‹ค. ์™œ๋ƒํ•˜๋ฉด ๊ฐ ๋‹ต๋ณ€์ด ์ „์ฒด ๊ธฐ์‚ฌ์— ์˜ํ–ฅ์„ ๋ฏธ์น  ์ˆ˜ ์žˆ๊ธฐ ๋•Œ๋ฌธ์ž…๋‹ˆ๋‹ค. ๊ทธ๋ฆฌ๊ณ  ์–ด๋Š ๋ˆ„๊ตฌ๋„ ์ทจ์—… ๋ฉด์ ‘์—์„œ ๊ทธ๋Ÿฐ ์ˆ˜์ค€์˜ ์„ธ๋ถ€์‚ฌํ•ญ์„ ๋ฌป์ง€ ์•Š์„ ๊ฒƒ์ž…๋‹ˆ๋‹ค.
์›ํ•˜์‹œ๋ฉด ๋” ๊นŠ์€ ์—ฐ๊ตฌ๋ฅผ ์œ„ํ•œ ๋งํฌ๋ฅผ ๋‚จ๊ฒจ๋‘๊ฒ ์Šต๋‹ˆ๋‹ค. ๋‚ ์•„๋ณด์ž!

11. Object ํด๋ž˜์Šค์˜ ๋ชจ๋“  ๋ฉ”์†Œ๋“œ ์ด๋ฆ„์„ ์ง€์ •ํ•˜์‹ญ์‹œ์˜ค.

Object ํด๋ž˜์Šค ์—๋Š” 11๊ฐ€์ง€ ๋ฉ”์„œ๋“œ๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค.
  1. Class<?> getClass() โ€” ํ˜„์žฌ ๊ฐ์ฒด์˜ ํด๋ž˜์Šค๋ฅผ ๊ฐ€์ ธ์˜ต๋‹ˆ๋‹ค.

  2. int hashCode() โ€” ํ˜„์žฌ ๊ฐ์ฒด์˜ ํ•ด์‹œ ์ฝ”๋“œ๋ฅผ ๊ฐ€์ ธ์˜ต๋‹ˆ๋‹ค.

  3. boolean equals(Object obj) โ€” ํ˜„์žฌ ๊ฐ์ฒด๋ฅผ ๋‹ค๋ฅธ ๊ฐ์ฒด์™€ ๋น„๊ตํ•ฉ๋‹ˆ๋‹ค.

  4. Object clone() โ€” ํ˜„์žฌ ๊ฐ์ฒด์˜ ๋ณต์‚ฌ๋ณธ์„ ๋งŒ๋“ค๊ณ  ๋ฐ˜ํ™˜ํ•ฉ๋‹ˆ๋‹ค.

  5. String toString() โ€” ๊ฐ์ฒด์˜ ๋ฌธ์ž์—ด ํ‘œํ˜„์„ ๊ฐ€์ ธ์˜ต๋‹ˆ๋‹ค.

  6. void inform() โ€” ์ด ๊ฐ์ฒด์˜ ๋ชจ๋‹ˆํ„ฐ์—์„œ ๋Œ€๊ธฐ ์ค‘์ธ ํ•˜๋‚˜์˜ ์Šค๋ ˆ๋“œ๋ฅผ ๊นจ์›๋‹ˆ๋‹ค(์Šค๋ ˆ๋“œ ์„ ํƒ์€ ๋ฌด์ž‘์œ„์ž…๋‹ˆ๋‹ค).

  7. void informAll() โ€” ์ด ๊ฐ์ฒด์˜ ๋ชจ๋‹ˆํ„ฐ์—์„œ ๋Œ€๊ธฐ ์ค‘์ธ ๋ชจ๋“  ์Šค๋ ˆ๋“œ๋ฅผ ๊นจ์›๋‹ˆ๋‹ค.

  8. void wait() โ€” ํ˜„์žฌ ์Šค๋ ˆ๋“œ๊ฐ€ ์•Œ๋ฆผ ๋˜๋Š” informAll ํ˜ธ์ถœ์ด ์Šค๋ ˆ๋“œ๋ฅผ ๊นจ์šธ ๋•Œ๊นŒ์ง€ ํ˜„์žฌ ๋ชจ๋‹ˆํ„ฐ์—์„œ ๋Œ€๊ธฐํ•˜๋„๋ก ํ•ฉ๋‹ˆ๋‹ค(ํ˜„์žฌ ์Šค๋ ˆ๋“œ๋ฅผ ๋™๊ฒฐ)(๋™๊ธฐํ™” ๋ธ”๋ก์—์„œ๋งŒ ์ž‘๋™).

  9. void wait(long timeout) โ€” ํ˜„์žฌ ์Šค๋ ˆ๋“œ๊ฐ€ ํ˜„์žฌ ๋ชจ๋‹ˆํ„ฐ(ํ˜„์žฌ ๋™๊ธฐํ™” ๋ธ”๋ก)์—์„œ ๋Œ€๊ธฐํ•˜๋„๋ก ๋งŒ๋“ญ๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ ๋Œ€๊ธฐ ์ƒํƒœ๋ฅผ ์ข…๋ฃŒํ•˜๊ธฐ ์œ„ํ•œ ์‹œ๊ฐ„ ์ œํ•œ์ด ์žˆ์Šต๋‹ˆ๋‹ค(๋˜๋Š” ๋‹ค์‹œ ํ†ต์ง€ ๋˜๋Š” informAll ํ˜ธ์ถœ์ด ์Šค๋ ˆ๋“œ๋ฅผ ๊นจ์šธ ๋•Œ๊นŒ์ง€).

  10. void wait(long timeout, int nanos) โ€” ์ด ๋ฐฉ๋ฒ•์€ ์ด์ „ ๋ฐฉ๋ฒ•๊ณผ ๋น„์Šทํ•˜์ง€๋งŒ ์‹œ๊ฐ„ ์ œํ•œ์ด ๋” ์ •ํ™•ํ•ฉ๋‹ˆ๋‹ค.

  11. void finalize() โ€” ์ด ๋ฉ”์„œ๋“œ๋Š” ๊ฐ€๋น„์ง€ ์ˆ˜์ง‘๊ธฐ์— ์˜ํ•ด ๊ฐ์ฒด๊ฐ€ ์ œ๊ฑฐ๋˜๊ธฐ ์ „์— (์ตœ์ข…์ ์œผ๋กœ) ํ˜ธ์ถœ๋ฉ๋‹ˆ๋‹ค. ํš๋“ํ•œ ์ž์›์„ ์ •๋ฆฌํ•˜๋Š” ๋ฐ ์‚ฌ์šฉ๋ฉ๋‹ˆ๋‹ค.

hashCode , equals , clone , toString ๋ฐ finalize ๋ฉ”์„œ๋“œ๋ฅผ ์˜ฌ๋ฐ”๋ฅด๊ฒŒ ์‚ฌ์šฉํ•˜๋ ค๋ฉด ํ˜„์žฌ ์ž‘์—…์˜ ์„ธ๋ถ€ ์‚ฌํ•ญ์— ๋”ฐ๋ผ ์žฌ์ •์˜ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

12. ๋ฆฌ์†Œ์Šค ์ž‘์—… ์‹œ try-with-resources์™€ try-catch-finally์˜ ์ฐจ์ด์ ์€ ๋ฌด์—‡์ž…๋‹ˆ๊นŒ?

์ผ๋ฐ˜์ ์œผ๋กœ try-catch-finally๋ฅผ ์‚ฌ์šฉํ•  ๋•Œ ๋งˆ์ง€๋ง‰ ๋ธ”๋ก ์€ ๋ฆฌ์†Œ์Šค๋ฅผ ๋‹ซ๋Š” ๋ฐ ์‚ฌ์šฉ๋ฉ๋‹ˆ๋‹ค. Java 7์—๋Š” ์ƒˆ๋กœ์šด try-with-resources ๋ฌธ์ด ๋„์ž…๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ๋ฆฌ์†Œ์Šค๋ฅผ ํ•ด์ œํ•˜๋Š” try-catch-finally์™€ ์œ ์‚ฌํ•˜์ง€๋งŒ ๋” ๊ฐ„๊ฒฐํ•˜๊ณ  ์ฝ๊ธฐ ์‰ฝ์Šต๋‹ˆ๋‹ค. try-catch-finally๊ฐ€ ์–ด๋–ค ๋ชจ์Šต์ธ์ง€ ๊ธฐ์–ตํ•ด ๋ด…์‹œ๋‹ค .
String text = "some text......";
BufferedWriter bufferedWriter = null;
try {
   bufferedWriter = new BufferedWriter(new FileWriter("someFileName"));
   bufferedWriter.write(text);
} catch (IOException e) {
   e.printStackTrace();
} finally {
   try {
       bufferedWriter.close();
   } catch (IOException e) {
       e.printStackTrace();
   }
}
์ด์ œ try-with-resources๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์ด ์ฝ”๋“œ๋ฅผ ๋‹ค์‹œ ์ž‘์„ฑํ•ด ๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค .
String text = "some text......";
try(BufferedWriter bufferedWriter =new BufferedWriter(new FileWriter("someFileName"))) {
   bufferedWriter.write(text);
} catch (IOException e) {
   e.printStackTrace();
}
์ด์ œ๋Š” ์ข€ ๋” ๊ฐ„๋‹จํ•ด์กŒ์ฃ ? ๋” ๊ฐ„๋‹จํ•œ ์ฝ”๋“œ ์™ธ์—๋„ ์ฃผ๋ชฉํ•ด์•ผ ํ•  ๋ช‡ ๊ฐ€์ง€ ์‚ฌํ•ญ์ด ์žˆ์Šต๋‹ˆ๋‹ค.
  1. try-with-resources ์—์„œ ๊ด„ํ˜ธ ์•ˆ์— ์„ ์–ธ๋œ ๋ฆฌ์†Œ์Šค(๋‹ซํž ๋ฆฌ์†Œ์Šค)๋Š” AutoCloseable ์ธํ„ฐํŽ˜์ด์Šค์™€ ์œ ์ผํ•œ close() ๋ฉ”์„œ๋“œ๋ฅผ ๊ตฌํ˜„ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

    close ๋ฉ”์†Œ๋“œ๋Š” ์•”์‹œ์  finally ๋ธ”๋ก ์—์„œ ์‹คํ–‰๋ฉ๋‹ˆ๋‹ค . ๊ทธ๋ ‡์ง€ ์•Š์œผ๋ฉด ํ”„๋กœ๊ทธ๋žจ์ด ๋ฆฌ์†Œ์Šค๋ฅผ ๋‹ซ๋Š” ๋ฐฉ๋ฒ•์„ ์ •ํ™•ํžˆ ์–ด๋–ป๊ฒŒ ์•Œ์•„๋‚ผ ์ˆ˜ ์žˆ์„๊นŒ์š”?

    ๊ทธ๋Ÿฌ๋‚˜ ๋ฆฌ์†Œ์Šค ๊ตฌํ˜„๊ณผ ์ข…๋ฃŒ ๋ฐฉ๋ฒ•์„ ์ง์ ‘ ์ž‘์„ฑํ•˜๋Š” ๊ฒฝ์šฐ๋Š” ๊ฑฐ์˜ ์—†์„ ๊ฒƒ์ž…๋‹ˆ๋‹ค.

  2. ๋ธ”๋ก์€ ๋‹ค์Œ ์ˆœ์„œ๋กœ ์‹คํ–‰๋ฉ๋‹ˆ๋‹ค.

    1. ์‹œ๋„ ๋ธ”๋ก .
    2. ์•”์‹œ์  finally ๋ธ”๋ก์ž…๋‹ˆ๋‹ค.
    3. ์ด์ „ ๋‹จ๊ณ„ ์—์„œ ๋ฐœ์ƒํ•œ ์˜ˆ์™ธ๋ฅผ ํฌ์ฐฉํ•˜๋Š” catch ๋ธ”๋ก .
    4. ๋ช…์‹œ์ ์ธ finally ๋ธ”๋ก์ž…๋‹ˆ๋‹ค.

    ์ผ๋ฐ˜์ ์œผ๋กœ ๋ชฉ๋ก์—์„œ ์•„๋ž˜์ชฝ์— ๋˜์ ธ์ง„ ์˜ˆ์™ธ๋Š” ์œ„์ชฝ์— ๋˜์ ธ์ง„ ์˜ˆ์™ธ๋ฅผ ๋ฐฉํ•ดํ•ฉ๋‹ˆ๋‹ค.

try-catch-finally๋ฅผ ์‚ฌ์šฉํ•˜๊ณ  ์žˆ๋Š”๋ฐ try ๋ธ”๋ก ์—์„œ ์˜ˆ์™ธ๊ฐ€ ๋ฐœ์ƒํ–ˆ๋‹ค๊ณ  ์ƒ์ƒํ•ด ๋ณด์„ธ์š” . ๊ทธ๋Ÿฐ ๋‹ค์Œ ์ง€์ •๋œ catch ๋ธ”๋ก์ด ์ฆ‰์‹œ ์‹คํ–‰๋˜๊ธฐ ์‹œ์ž‘ํ•ฉ๋‹ˆ๋‹ค. ์—ฌ๊ธฐ์„œ๋Š” ๋˜ ๋‹ค๋ฅธ ์˜ˆ์™ธ(์˜ˆ: ์˜ค๋ฅ˜๋ฅผ ๋” ์ž์„ธํžˆ ์„ค๋ช…ํ•˜๋Š” ๋ฉ”์‹œ์ง€์™€ ํ•จ๊ป˜)๋ฅผ ์ž‘์„ฑํ•˜๊ณ  ๋ฉ”์„œ๋“œ์—์„œ ์ด ์˜ˆ์™ธ๋ฅผ ์œ„์ชฝ์œผ๋กœ ๋˜์ง€๊ธฐ๋ฅผ ์›ํ•ฉ๋‹ˆ๋‹ค. ๊ทธ๋Ÿฐ ๋‹ค์Œ finally ๋ธ”๋ก์ด ์‹คํ–‰๋˜๊ณ  ์˜ˆ์™ธ๋„ ๋ฐœ์ƒํ•ฉ๋‹ˆ๋‹ค. ํ•˜์ง€๋งŒ ์ด๋ฒˆ์—๋Š” ๋‹ค๋ฆ…๋‹ˆ๋‹ค. ์ด ๋‘ ๊ฐ€์ง€ ์˜ˆ์™ธ ์ค‘ ์ด ๋ฉ”์„œ๋“œ๊ฐ€ ๊ถ๊ทน์ ์œผ๋กœ ๋ฐœ์ƒํ•˜๋Š” ์˜ˆ์™ธ๋Š” ๋ฌด์—‡์ž…๋‹ˆ๊นŒ? finally ๋ธ”๋ก ์—์„œ ๋ฐœ์ƒํ•œ ์˜ˆ์™ธ์ž…๋‹ˆ๋‹ค ! ํ•˜์ง€๋งŒ ์ด์ œ ์šฐ๋ฆฌ๋Š” try-with-resources ์— ๋Œ€ํ•œ ๋˜ ๋‹ค๋ฅธ ์š”์ ์— ์ด๋ฅด๋ €์Šต๋‹ˆ๋‹ค . ๋™์ผํ•œ ์ƒํ™ฉ์—์„œ try-with-resources๊ฐ€ ์–ด๋–ป๊ฒŒ ์ž‘๋™ํ•˜๋Š”์ง€ ์ƒ๊ฐํ•ด ๋ด…์‹œ๋‹ค . close() ๋ฉ”์„œ๋“œ, ์ฆ‰ ์•”์‹œ ์  finally ๋ธ”๋ก ์—์„œ ๋ฆฌ์†Œ์Šค๋ฅผ ๋‹ซ์œผ๋ ค๊ณ  ํ•˜๋ฉด try ๋ธ”๋ก ์—์„œ ์˜ˆ์™ธ๊ฐ€ ๋ฐœ์ƒํ•ฉ๋‹ˆ๋‹ค . catch ๋ธ”๋ก์€ ๋‹ค์Œ ์ค‘ ์–ด๋–ค ์˜ˆ์™ธ๋ฅผ ํฌ์ฐฉ ํ•ฉ๋‹ˆ๊นŒ ? try ๋ธ”๋ก ์— ์˜ํ•ด ๋˜์ ธ์ง„ ๊ฒƒ ! ๋ฌต์‹œ์  finally ๋ธ”๋ก ์˜ ์˜ˆ์™ธ (loose () ๋ฉ”์„œ๋“œ)๋Š” ๋ฌด์‹œ๋ฉ๋‹ˆ๋‹ค. ์ด๋Ÿฌํ•œ ์˜ˆ์™ธ ๋ฌด์‹œ๋ฅผ ์˜ˆ์™ธ ์–ต์ œ๋ผ๊ณ ๋„ ํ•ฉ๋‹ˆ๋‹ค.

13. ๋น„ํŠธ ์—ฐ์‚ฐ์ด๋ž€ ๋ฌด์—‡์ž…๋‹ˆ๊นŒ?

๋น„ํŠธ ์—ฐ์‚ฐ์€ ์ผ๋ จ์˜ ๋น„ํŠธ์— ๋Œ€ํ•œ ์—ฐ์‚ฐ์ž…๋‹ˆ๋‹ค. ์—ฌ๊ธฐ์—๋Š” ๋…ผ๋ฆฌ ์—ฐ์‚ฐ๊ณผ ๋น„ํŠธ ๋‹จ์œ„ ์ด๋™์ด ํฌํ•จ๋ฉ๋‹ˆ๋‹ค. ๋…ผ๋ฆฌ ์—ฐ์‚ฐ์ž:
  • ๋น„ํŠธ AND โ€” ๋น„ํŠธ ๊ฐ’์„ ๋น„๊ตํ•ฉ๋‹ˆ๋‹ค. 0(false)์œผ๋กœ ์„ค์ •๋œ ๋น„ํŠธ๋Š” ๊ฒฐ๊ณผ์˜ ํ•ด๋‹น ๋น„ํŠธ๋ฅผ 0์œผ๋กœ ์„ค์ •ํ•ฉ๋‹ˆ๋‹ค. ์ฆ‰, ๋น„๊ต๋œ ๋‘ ๊ฐ’ ๋ชจ๋‘์—์„œ ๋น„ํŠธ๊ฐ€ 1(true)์ด๋ฉด ๊ฒฐ๊ณผ ๋น„ํŠธ๋„ 1์ด ๋ฉ๋‹ˆ๋‹ค.

    AND ๋˜๋Š” & ๋กœ ํ‘œ์‹œ

    ์˜ˆ: 10111101 & 01100111 = 00100101

  • ๋น„ํŠธ OR โ€” ์ด ์—ฐ์‚ฐ์€ ์ด์ „ ์—ฐ์‚ฐ๊ณผ ๋ฐ˜๋Œ€์ž…๋‹ˆ๋‹ค. 1๋กœ ์„ค์ •๋œ ๋น„ํŠธ๋Š” ๊ฒฐ๊ณผ์˜ ํ•ด๋‹น ๋น„ํŠธ๋ฅผ 1๋กœ ์„ค์ •ํ•ฉ๋‹ˆ๋‹ค. ๋”ฐ๋ผ์„œ ๋‘ ๋น„๊ต ๊ฐ’ ๋ชจ๋‘์—์„œ ๋น„ํŠธ๊ฐ€ 0์ด๋ฉด ๊ฒฐ๊ณผ ๋น„ํŠธ๋„ 0์ด ๋ฉ๋‹ˆ๋‹ค.

    OR ๋˜๋Š” | ๋กœ ํ‘œ์‹œ๋ฉ๋‹ˆ๋‹ค.

    ์˜ˆ: 10100101 | 01100011 = 11100111

  • ๋น„ํŠธ NOT โ€” ์ด ์—ฐ์‚ฐ์ž๋Š” ๋‹จ์ผ ๊ฐ’์— ์ ์šฉ๋ฉ๋‹ˆ๋‹ค. ๋น„ํŠธ๋ฅผ ๋’ค์ง‘์Šต๋‹ˆ๋‹ค(๋ฐ˜์ „). ์ฆ‰, 1์ด์—ˆ๋˜ ๋น„ํŠธ๋Š” 0์ด ๋ฉ๋‹ˆ๋‹ค. ๊ทธ๋ฆฌ๊ณ  0์ด์—ˆ๋˜ ๊ฒƒ๋“ค์€ 1์ด ๋ฉ๋‹ˆ๋‹ค.

    NOT ๋˜๋Š” ~ ๋กœ ํ‘œ์‹œ๋จ

    ์˜ˆ: ~10100101 = 01011010

  • ๋น„ํŠธ ๋ฐฐํƒ€์  OR โ€” ๋น„ํŠธ ๊ฐ’์„ ๋น„๊ตํ•ฉ๋‹ˆ๋‹ค. ๋‘ ๋น„ํŠธ๊ฐ€ ๋ชจ๋‘ 1์ด๋ฉด ๊ฒฐ๊ณผ ๋น„ํŠธ๋Š” 0์ž…๋‹ˆ๋‹ค. ๋‘ ๋น„ํŠธ๊ฐ€ ๋ชจ๋‘ 0์ด๋ฉด ๊ฒฐ๊ณผ ๋น„ํŠธ๋Š” 0์ž…๋‹ˆ๋‹ค. ์ฆ‰, ๊ฒฐ๊ณผ ๋น„ํŠธ๊ฐ€ 1์ด ๋˜๋ ค๋ฉด ๋น„ํŠธ ์ค‘ ํ•˜๋‚˜๋งŒ 1์ด์–ด์•ผ ํ•˜๊ณ , ๋‹ค๋ฅธ ๋น„ํŠธ๋Š” 0์ด์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

    XOR ๋˜๋Š” ^ ๋กœ ํ‘œ์‹œ๋ฉ๋‹ˆ๋‹ค.

    ์˜ˆ: 10100101 ^ 01100011 = 11000110

๋น„ํŠธ ๋‹จ์œ„ ์ด๋™ ( >> ๋ฐ << )์€ ํ”ผ์—ฐ์‚ฐ์ž์˜ ๋น„ํŠธ๋ฅผ ์ง€์ •๋œ ๋ฐฉํ–ฅ์œผ๋กœ ์ง€์ •๋œ ์ž๋ฆฟ์ˆ˜๋งŒํผ ์ด๋™ํ•ฉ๋‹ˆ๋‹ค. ๋น„์–ด ์žˆ๋Š” ์ž๋ฆฌ๋Š” 0์œผ๋กœ ์ฑ„์›Œ์ง‘๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด:
  1. 01100011 >> 4 = 00000110
  2. 01100011 << 3 = 00011000
์˜ˆ์™ธ๋Š” ์Œ์ˆ˜๋ฅผ ์˜ค๋ฅธ์ชฝ์œผ๋กœ ์ด๋™ํ•˜๋Š” ๊ฒฝ์šฐ์ž…๋‹ˆ๋‹ค. ๊ธฐ์–ตํ•˜์‹œ๊ฒ ์ง€๋งŒ, ๋ถ€ํ˜ธ ์žˆ๋Š” ์ˆซ์ž์˜ ์ฒซ ๋ฒˆ์งธ ๋น„ํŠธ๋Š” ๋ถ€ํ˜ธ๋ฅผ ๋‚˜ํƒ€๋ƒ…๋‹ˆ๋‹ค. ์ด ๋น„ํŠธ๊ฐ€ 1์ด๋ฉด ์ˆซ์ž๋Š” ์Œ์ˆ˜์ž…๋‹ˆ๋‹ค. ์Œ์ˆ˜๋ฅผ ์ด๋™ํ•˜๋ฉด ๋ถ€ํ˜ธ ๋น„ํŠธ๊ฐ€ ์œ ์ง€๋˜์–ด์•ผ ํ•˜๋ฏ€๋กœ ๋นˆ ์œ„์น˜๋Š” 0์ด ์•„๋‹Œ 1๋กœ ์ฑ„์›Œ์ง‘๋‹ˆ๋‹ค. ์˜ˆ: 10100010 >> 2 = 11101000 ์ฆ‰, Java์—๋Š” ๋ถ€ํ˜ธ ์—†๋Š” ์˜ค๋ฅธ์ชฝ ์‹œํ”„ํŠธ ์—ฐ์‚ฐ์ž(>>>)๊ฐ€ ์ถ”๊ฐ€๋กœ ์žˆ์Šต๋‹ˆ๋‹ค. ์ด ์—ฐ์‚ฐ์ž๋Š” >>์™€ ์œ ์‚ฌํ•˜์ง€๋งŒ ์ด๋™ํ•˜๋ฉด ํ”ผ์—ฐ์‚ฐ์ž๊ฐ€ ์Œ์ˆ˜์ธ์ง€ ์–‘์ˆ˜์ธ์ง€์— ๊ด€๊ณ„์—†์ด ๋นˆ ์œ„์น˜๊ฐ€ 0์œผ๋กœ ์ฑ„์›Œ์ง‘๋‹ˆ๋‹ค. ์˜ˆ: 10100010 >>> 2 = 00101000 ์—ฌ๊ธฐ์—์„œ ๋น„ํŠธ ์—ฐ์‚ฐ์— ๋Œ€ํ•ด ์ž์„ธํžˆ ์•Œ์•„๋ณด์„ธ์š” . Java์˜ ๋น„ํŠธ ๋‹จ์œ„ ์ด๋™์˜ ์˜ˆ๋กœ HashMaps์˜ hash()Java ๊ฐœ๋ฐœ์ž ์ง์œ„์— ๋Œ€ํ•œ ์ทจ์—… ๋ฉด์ ‘์˜ ์งˆ๋ฌธ๊ณผ ๋‹ต๋ณ€์„ ์‚ดํŽด๋ณด์„ธ์š”.  ํŒŒํŠธ 2 - 2 ๋ฉ”์„œ๋“œ๋ฅผ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค . ์ด ๋ฐฉ๋ฒ•์€ ํ‚ค์˜ ํŠน์ˆ˜ ๋‚ด๋ถ€ ํ•ด์‹œ์ฝ”๋“œ๋ฅผ ๊ฒฐ์ •ํ•˜๋Š” ๋ฐ ์‚ฌ์šฉ๋ฉ๋‹ˆ๋‹ค. ์ด ๋ฐฉ๋ฒ•์„ ์‚ฌ์šฉํ•˜๋ฉด ์ถฉ๋Œ ํšŸ์ˆ˜๋ฅผ ์ตœ์†Œํ™”ํ•˜๊ธฐ ์œ„ํ•ด HashMap์— ๋ฐ์ดํ„ฐ๋ฅผ ๊ท ๋“ฑํ•˜๊ฒŒ ๋ฐฐํฌํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. Java ๊ฐœ๋ฐœ์ž ์ง์œ„์— ๋Œ€ํ•œ ์ทจ์—… ๋ฉด์ ‘์˜ ์งˆ๋ฌธ๊ณผ ๋‹ต๋ณ€์„ ์‚ดํŽด๋ณด์„ธ์š”.  ํŒŒํŠธ 2 - 3

14. Java์—๋Š” ์–ด๋–ค ํ‘œ์ค€ ๋ถˆ๋ณ€ ๊ฐ์ฒด๊ฐ€ ์žˆ์Šต๋‹ˆ๊นŒ?

์›๋ž˜ ๊ฐ’์˜ ๋ณ€๊ฒฝ์„ ํ—ˆ์šฉํ•˜์ง€ ์•Š๋Š” ๊ฐ์ฒด๋Š” ๋ณ€๊ฒฝํ•  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค. ๋‹ค๋ฅธ ๊ฐ’์„ ๊ฐ€์ง„ ๋™์ผํ•œ ์œ ํ˜•์˜ ์ƒˆ ๊ฐ์ฒด๋ฅผ ๋ฐ˜ํ™˜ํ•˜๋Š” ๋ฉ”์„œ๋“œ๊ฐ€ ์žˆ์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ผ๋ถ€ ํ‘œ์ค€ ๋ถˆ๋ณ€ ๊ฐ์ฒด๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค:
  • ์˜์‹ฌํ•  ์—ฌ์ง€์—†์ด Java์˜ ๊ฐ€์žฅ ์œ ๋ช…ํ•œ ๋ถˆ๋ณ€ ์œ ํ˜•์€ String์ž…๋‹ˆ๋‹ค.
  • ํ‘œ์ค€ ์œ ํ˜•(Boolean, Character, Byte, Short, Integer, Long, Double, Float)์„ ๋ž˜ํ•‘ํ•˜๋Š” ๋ž˜ํผ ํด๋ž˜์Šค์˜ ์ธ์Šคํ„ด์Šค.
  • ์ผ๋ฐ˜์ ์œผ๋กœ ํŠนํžˆ BIG ์ˆซ์ž์— ์‚ฌ์šฉ๋˜๋Š” BigInteger ๋ฐ BigDecimal ๊ฐœ์ฒด.
  • ์Šคํƒ ์ถ”์ (์˜ˆ: ์˜ˆ์™ธ์˜ ์Šคํƒ ์ถ”์ )์„ ๊ตฌ์„ฑํ•˜๋Š” StackTraceElement ๊ฐœ์ฒด์ž…๋‹ˆ๋‹ค.
  • File ํด๋ž˜์Šค์˜ ๊ฐ์ฒด - ํŒŒ์ผ์„ ์ˆ˜์ •ํ•  ์ˆ˜ ์žˆ์ง€๋งŒ ๋™์‹œ์— ๊ฐ์ฒด ์ž์ฒด๋Š” ๋ณ€๊ฒฝ๋˜์ง€ ์•Š์€ ์ƒํƒœ๋กœ ์œ ์ง€๋ฉ๋‹ˆ๋‹ค.
  • ์š”์†Œ๋ฅผ ๊ณ ์œ ํ•˜๊ฒŒ ์‹๋ณ„ํ•˜๋Š” ๋ฐ ์ž์ฃผ ์‚ฌ์šฉ๋˜๋Š” UUID
  • java.time ํŒจํ‚ค์ง€์— ์žˆ๋Š” ํด๋ž˜์Šค์˜ ๋ชจ๋“  ๊ฐ์ฒด;
  • ์ง€๋ฆฌ์ , ์ •์น˜์  ๋˜๋Š” ๋ฌธํ™”์  ์ง€์—ญ์„ ์‹๋ณ„ํ•˜๋Š” ๋ฐ ์‚ฌ์šฉ๋˜๋Š” ๋กœ์บ˜ ๊ฐœ์ฒด์ž…๋‹ˆ๋‹ค.

15. ์ผ๋ฐ˜ ๊ฐ์ฒด์— ๋น„ํ•ด ๋ถˆ๋ณ€ ๊ฐ์ฒด์˜ ์žฅ์ ์€ ๋ฌด์—‡์ž…๋‹ˆ๊นŒ?

  1. ๋ถˆ๋ณ€ ๊ฐ์ฒด๋Š” ๋‹ค์ค‘ ์Šค๋ ˆ๋“œ ํ™˜๊ฒฝ์—์„œ ์‚ฌ์šฉํ•ด๋„ ์•ˆ์ „ ํ•ฉ๋‹ˆ๋‹ค . ๊ฒฝ์Ÿ ์กฐ๊ฑด์œผ๋กœ ์ธํ•œ ๋ฐ์ดํ„ฐ ์†์‹ค์— ๋Œ€ํ•ด ๊ฑฑ์ •ํ•  ํ•„์š”๊ฐ€ ์—†๋„๋ก ๋งŒ๋“ญ๋‹ˆ๋‹ค. ์ด๋Š” ์ผ๋ฐ˜ ๊ฐœ์ฒด๋กœ ์ž‘์—…ํ•  ๋•Œ์™€ ๋‹ค๋ฆ…๋‹ˆ๋‹ค. ๊ทธ๋Ÿฐ ๊ฒฝ์šฐ์—๋Š” ๋ณ‘๋ ฌ ํ™˜๊ฒฝ์—์„œ ๊ฐ์ฒด๋ฅผ ์‚ฌ์šฉํ•  ๋•Œ ์ข‹์€ ๋ฉ”์ปค๋‹ˆ์ฆ˜์„ ์ƒ๊ฐํ•˜๊ณ  ์ƒ๊ฐํ•ด๋‚ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

  2. ๋ถˆ๋ณ€ ๊ฐ์ฒด๋Š” ๋งต์˜ ํ‚ค๋กœ ์ข‹์Šต๋‹ˆ๋‹ค. ๋ณ€๊ฒฝ ๊ฐ€๋Šฅํ•œ ๊ฐ์ฒด๋ฅผ HashMap ํ‚ค๋กœ ์‚ฌ์šฉํ•œ ๋‹ค์Œ ๊ฐ์ฒด์˜ ์ƒํƒœ๊ฐ€ ๋ณ€๊ฒฝ๋˜๋ฉด ๋ฐ์ดํ„ฐ ๊ตฌ์กฐ๊ฐ€ ํ˜ผ๋ž€์Šค๋Ÿฌ์šธ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๊ฐ์ฒด๋Š” ๊ณ„์† ์กด์žฌํ•˜์ง€๋งŒ ContainsKey()๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด ๊ฐ์ฒด๋ฅผ ์ฐพ์ง€ ๋ชปํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

  3. ๋ถˆ๋ณ€ ๊ฐ์ฒด๋Š” ํ”„๋กœ๊ทธ๋žจ์ด ์‹คํ–‰๋˜๋Š” ๋™์•ˆ ์ ˆ๋Œ€ ๋ณ€๊ฒฝ๋˜์–ด์„œ๋Š” ์•ˆ ๋˜๋Š” ๋ถˆ๋ณ€(์ƒ์ˆ˜) ๋ฐ์ดํ„ฐ๋ฅผ ์ €์žฅํ•˜๋Š” ๋ฐ ์ ํ•ฉํ•ฉ๋‹ˆ๋‹ค.

  4. ๋˜ ๋‹ค๋ฅธ ์žฅ์ ์€ ์‹คํŒจ ์›์ž์„ฑ์ž…๋‹ˆ๋‹ค. ๋ถˆ๋ณ€ ๊ฐ์ฒด๊ฐ€ ์˜ˆ์™ธ๋ฅผ ๋ฐœ์ƒ์‹œํ‚ค๋Š” ๊ฒฝ์šฐ ์›์น˜ ์•Š๋Š”(๊นจ์ง„) ์ƒํƒœ๋กœ ๋‚จ์•„ ์žˆ์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

  5. ์ด๋Ÿฌํ•œ ํด๋ž˜์Šค๋Š” ํ…Œ์ŠคํŠธํ•˜๊ธฐ ์‰ฝ์Šต๋‹ˆ๋‹ค.

  6. ๋ณต์‚ฌ ์ƒ์„ฑ์ž๋‚˜ ๊ฐ์ฒด ๋ณต์ œ ๊ตฌํ˜„๊ณผ ๊ฐ™์€ ์ถ”๊ฐ€ ๋ฉ”์ปค๋‹ˆ์ฆ˜์ด ํ•„์š”ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

OOP์— ๋Œ€ํ•œ ์งˆ๋ฌธ

16. ์ ˆ์ฐจ์  ํ”„๋กœ๊ทธ๋ž˜๋ฐ๊ณผ ๋น„๊ตํ•˜์—ฌ ์ผ๋ฐ˜์ ์œผ๋กœ OOP์˜ ์žฅ์ ์€ ๋ฌด์—‡์ž…๋‹ˆ๊นŒ?

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

  2. OOP๋กœ ์ž‘์„ฑ๋œ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์€ ์ˆ˜์ •ํ•˜๊ธฐ๊ฐ€ ํ›จ์”ฌ ์‰ฝ์Šต๋‹ˆ๋‹ค(์„ค๊ณ„ ์›์น™์„ ์˜ฌ๋ฐ”๋ฅด๊ฒŒ ์ค€์ˆ˜ํ•˜๋Š” ๊ฒฝ์šฐ).

  3. ๋ฐ์ดํ„ฐ์™€ ๋ฐ์ดํ„ฐ ์ž‘์—…์ด ๋ชจ๋‘ ๋‹จ์ผ ์—”ํ„ฐํ‹ฐ๋ฅผ ํ˜•์„ฑํ•˜๊ธฐ ๋•Œ๋ฌธ์— ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ์ „์ฒด์— ๋ฒˆ์ง€์ง€ ์•Š์Šต๋‹ˆ๋‹ค(์ ˆ์ฐจ์  ํ”„๋กœ๊ทธ๋ž˜๋ฐ์—์„œ ํ”ํžˆ ๋ฐœ์ƒํ•จ).

  4. ์บก์Šํ™” ์›์น™์€ ์‚ฌ์šฉ์ž๋กœ๋ถ€ํ„ฐ ๊ฐ€์žฅ ์ค‘์š”ํ•œ ๋ฐ์ดํ„ฐ๋ฅผ ๋ณดํ˜ธํ•ฉ๋‹ˆ๋‹ค.

  5. ํด๋ž˜์Šค๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด ๊ฐ๊ฐ ๊ณ ์œ ํ•œ ๊ฐ’์„ ๊ฐ€์ง„ ๋งŽ์€ ๊ฐœ์ฒด๋ฅผ ๋งŒ๋“ค ์ˆ˜ ์žˆ์œผ๋ฏ€๋กœ ๋™์ผํ•œ ์ฝ”๋“œ๋ฅผ ๋‹ค๋ฅธ ๋ฐ์ดํ„ฐ์— ์žฌ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

  6. ์ƒ์†๊ณผ ๋‹คํ˜•์„ฑ์„ ์‚ฌ์šฉํ•˜๋ฉด ์œ ์‚ฌํ•œ ๊ธฐ๋Šฅ์„ ๋ณต์ œํ•˜๋Š” ๋Œ€์‹  ๊ธฐ์กด ์ฝ”๋“œ๋ฅผ ์žฌ์‚ฌ์šฉํ•˜๊ณ  ํ™•์žฅํ•  ์ˆ˜๋„ ์žˆ์Šต๋‹ˆ๋‹ค.

  7. ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ํ™•์žฅ์€ ์ ˆ์ฐจ์  ์ ‘๊ทผ ๋ฐฉ์‹๋ณด๋‹ค ๋” ๊ฐ„๋‹จํ•ฉ๋‹ˆ๋‹ค.

  8. OOP ์ ‘๊ทผ ๋ฐฉ์‹์„ ์‚ฌ์šฉํ•˜๋ฉด ๊ตฌํ˜„ ์„ธ๋ถ€ ์‚ฌํ•ญ์„ ์ถ”์ƒํ™”ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

17. OOP์˜ ๋‹จ์ ์„ ์•Œ๋ ค์ฃผ์„ธ์š”

๋ถˆํ–‰ํžˆ๋„ ๋‹ค์Œ๊ณผ ๊ฐ™์€ ๊ฒƒ๋„ ์กด์žฌํ•ฉ๋‹ˆ๋‹ค.
  1. OOP์—๋Š” ๋ฌด์—‡์ด๋“  ์ž‘์„ฑํ•˜๊ธฐ ์ „์— ์ˆ™๋‹ฌํ•ด์•ผ ํ•˜๋Š” ๋งŽ์€ ์ด๋ก ์  ์ง€์‹์ด ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค.

  2. OOP ์•„์ด๋””์–ด๋Š” ์‹ค์ œ๋กœ ์ดํ•ดํ•˜๊ณ  ์ ์šฉํ•˜๊ธฐ๊ฐ€ ์‰ฝ์ง€ ์•Š์Šต๋‹ˆ๋‹ค(๋งˆ์Œ์†์œผ๋กœ ์ž‘์€ ์ฒ ํ•™์ž๊ฐ€ ๋˜์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค).

  3. OOP๋Š” ์‹œ์Šคํ…œ์˜ ๋ณต์žก์„ฑ ์ฆ๊ฐ€๋กœ ์ธํ•ด ํ”„๋กœ๊ทธ๋žจ ์„ฑ๋Šฅ์„ ์•ฝ๊ฐ„ ๊ฐ์†Œ์‹œํ‚ต๋‹ˆ๋‹ค.

  4. OOP ์ ‘๊ทผ ๋ฐฉ์‹์€ ๋ชจ๋“  ๊ฒƒ์ด ํด๋ž˜์Šค, ์ธํ„ฐํŽ˜์ด์Šค, ๋ฉ”์†Œ๋“œ๋กœ ๊ตฌ์„ฑ๋˜์–ด ์ผ๋ฐ˜ ๋ณ€์ˆ˜๋ณด๋‹ค ํ›จ์”ฌ ๋งŽ์€ ๋ฉ”๋ชจ๋ฆฌ๋ฅผ ์ฐจ์ง€ํ•˜๋ฏ€๋กœ ๋” ๋งŽ์€ ๋ฉ”๋ชจ๋ฆฌ๊ฐ€ ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค.

  5. ์ดˆ๊ธฐ ๋ถ„์„์— ํ•„์š”ํ•œ ์‹œ๊ฐ„์€ ์ ˆ์ฐจ์  ์ ‘๊ทผ๋ณด๋‹ค ๋” ๊น๋‹ˆ๋‹ค.

18. ์ •์  ๋‹คํ˜•์„ฑ๊ณผ ๋™์  ๋‹คํ˜•์„ฑ์ด๋ž€ ๋ฌด์—‡์ž…๋‹ˆ๊นŒ?

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

19. OOP์˜ ์ถ”์ƒํ™” ์›์น™ ์ •์˜ ์ œ๊ณต

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