JavaRush /Java Blog /Random-KO /Java์—์„œ ๋ฆฌํŒฉํ† ๋ง์ด ์ž‘๋™ํ•˜๋Š” ๋ฐฉ์‹

Java์—์„œ ๋ฆฌํŒฉํ† ๋ง์ด ์ž‘๋™ํ•˜๋Š” ๋ฐฉ์‹

Random-KO ๊ทธ๋ฃน์— ๊ฒŒ์‹œ๋˜์—ˆ์Šต๋‹ˆ๋‹ค
ํ”„๋กœ๊ทธ๋ž˜๋ฐ์„ ๋ฐฐ์šธ ๋•Œ ์ฝ”๋“œ๋ฅผ ์ž‘์„ฑํ•˜๋Š” ๋ฐ ๋งŽ์€ ์‹œ๊ฐ„์ด ์†Œ์š”๋ฉ๋‹ˆ๋‹ค. ๋Œ€๋ถ€๋ถ„์˜ ์ดˆ๋ณด ๊ฐœ๋ฐœ์ž๋Š” ์ด๊ฒƒ์ด ๋ฏธ๋ž˜์˜ ํ™œ๋™์ด๋ผ๊ณ  ๋ฏฟ์Šต๋‹ˆ๋‹ค. ์ด๋Š” ๋ถ€๋ถ„์ ์œผ๋กœ ์‚ฌ์‹ค์ด์ง€๋งŒ ํ”„๋กœ๊ทธ๋ž˜๋จธ์˜ ์ž‘์—…์—๋Š” ์ฝ”๋“œ ์œ ์ง€ ๊ด€๋ฆฌ ๋ฐ ๋ฆฌํŒฉํ† ๋ง๋„ ํฌํ•จ๋ฉ๋‹ˆ๋‹ค. ์˜ค๋Š˜์€ ๋ฆฌํŒฉํ† ๋ง์— ๋Œ€ํ•ด ์ด์•ผ๊ธฐํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค. Java์—์„œ ๋ฆฌํŒฉํ† ๋ง์ด ์ž‘๋™ํ•˜๋Š” ๋ฐฉ์‹ - 1

JavaRush ๊ณผ์ •์˜ ๋ฆฌํŒฉํ† ๋ง

JavaRush ๊ณผ์ •์—์„œ๋Š” ๋ฆฌํŒฉํ† ๋ง ์ฃผ์ œ๋ฅผ ๋‘ ๋ฒˆ ๋‹ค๋ฃน๋‹ˆ๋‹ค. ํฐ ์ž‘์—… ๋•๋ถ„์— ์‹ค์ œ ๋ฆฌํŒฉํ† ๋ง์„ ์‹ค์ œ๋กœ ์ ‘ํ•  ์ˆ˜ ์žˆ๋Š” ๊ธฐํšŒ๊ฐ€ ์žˆ์œผ๋ฉฐ, IDEA์˜ ๋ฆฌํŒฉํ† ๋ง ๊ฐ•์˜๋Š” ์‚ถ์„ ๋†€๋ผ์šธ ์ •๋„๋กœ ์‰ฝ๊ฒŒ ๋งŒ๋“ค์–ด์ฃผ๋Š” ์ž๋™ ๋„๊ตฌ๋ฅผ ์ดํ•ดํ•˜๋Š” ๋ฐ ๋„์›€์ด ๋  ๊ฒƒ์ž…๋‹ˆ๋‹ค.

๋ฆฌํŒฉํ† ๋ง์ด๋ž€ ๋ฌด์—‡์ž…๋‹ˆ๊นŒ?

์ด๋Š” ๊ธฐ๋Šฅ์„ ๋ณ€๊ฒฝํ•˜์ง€ ์•Š๊ณ  ์ฝ”๋“œ ๊ตฌ์กฐ๋ฅผ ๋ณ€๊ฒฝํ•˜๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด, ๋‘ ์ˆซ์ž๋ฅผ ๋น„๊ตํ•˜์—ฌ ์ฒซ ๋ฒˆ์งธ ์ˆซ์ž๊ฐ€ ๋” ํฌ๋ฉด true๋ฅผ ๋ฐ˜ํ™˜ํ•˜๊ณ  ๊ทธ๋ ‡์ง€ ์•Š์œผ๋ฉด false๋ฅผ ๋ฐ˜ํ™˜ํ•˜๋Š” ๋ฉ”์„œ๋“œ๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค .
public boolean max(int a, int b) {
    if(a > b) {
        return true;
    } else if(a == b) {
        return false;
    } else {
        return false;
    }
}
๊ฒฐ๊ณผ๋Š” ๋งค์šฐ ๋ฒˆ๊ฑฐ๋กœ์šด ์ฝ”๋“œ์˜€์Šต๋‹ˆ๋‹ค. ์ดˆ๋ณด์ž๋ผ๋„ ์ด๋Ÿฐ ๊ธ€์„ ์“ฐ๋Š” ๊ฒฝ์šฐ๋Š” ๊ฑฐ์˜ ์—†๋Š”๋ฐ ์ด๋Ÿฐ ์œ„ํ—˜์ด ์žˆ์Šต๋‹ˆ๋‹ค. if-else๋ฉ”์†Œ๋“œ๋ฅผ 6์ค„ ๋” ์งง๊ฒŒ ์ž‘์„ฑํ•  ์ˆ˜ ์žˆ๋‹ค๋ฉด ์™œ ์—ฌ๊ธฐ์— ๋ธ”๋ก์ด ์žˆ๋Š” ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค .
public boolean max(int a, int b) {
     return a>b;
}
์ด์ œ ์ด ๋ฐฉ๋ฒ•์€ ์œ„์˜ ์˜ˆ์™€ ๋™์ผํ•œ ์ž‘์—…์„ ์ˆ˜ํ–‰ํ•˜์ง€๋งŒ ๊ฐ„๋‹จํ•˜๊ณ  ์šฐ์•„ํ•ด ๋ณด์ž…๋‹ˆ๋‹ค. ์ด๊ฒƒ์ด ๋ฆฌํŒฉํ† ๋ง์ด ์ž‘๋™ํ•˜๋Š” ๋ฐฉ์‹์ž…๋‹ˆ๋‹ค. ์ฝ”๋“œ์˜ ๋ณธ์งˆ์— ์˜ํ–ฅ์„ ์ฃผ์ง€ ์•Š๊ณ  ์ฝ”๋“œ์˜ ๊ตฌ์กฐ๋ฅผ ๋ณ€๊ฒฝํ•ฉ๋‹ˆ๋‹ค. ๋ฆฌํŒฉํ† ๋ง ๋ฐฉ๋ฒ•๊ณผ ๊ธฐ์ˆ ์—๋Š” ์—ฌ๋Ÿฌ ๊ฐ€์ง€๊ฐ€ ์žˆ์œผ๋ฉฐ ์ด์— ๋Œ€ํ•ด ๋” ์ž์„ธํžˆ ์‚ดํŽด๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค.

๋ฆฌํŒฉํ† ๋ง์ด ํ•„์š”ํ•œ ์ด์œ ๋Š” ๋ฌด์—‡์ž…๋‹ˆ๊นŒ?

๋ช‡ ๊ฐ€์ง€ ์ด์œ ๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด, ์ฝ”๋“œ์˜ ๋‹จ์ˆœ์„ฑ๊ณผ ๊ฐ„๊ฒฐ์„ฑ์„ ์ถ”๊ตฌํ•ฉ๋‹ˆ๋‹ค. ์ด ์ด๋ก ์„ ์ง€์ง€ํ•˜๋Š” ์‚ฌ๋žŒ๋“ค์€ ๋น„๋ก ์ฝ”๋“œ๋ฅผ ์ดํ•ดํ•˜๋ ค๋ฉด ์ˆ˜์‹ญ ์ค„์˜ ์ฃผ์„์ด ํ•„์š”ํ•˜๋”๋ผ๋„ ์ฝ”๋“œ๋Š” ์ตœ๋Œ€ํ•œ ๊ฐ„๊ฒฐํ•ด์•ผ ํ•œ๋‹ค๊ณ  ๋ฏฟ์Šต๋‹ˆ๋‹ค. ๋‹ค๋ฅธ ๊ฐœ๋ฐœ์ž๋“ค์€ ์ตœ์†Œํ•œ์˜ ์ฃผ์„์œผ๋กœ ์ฝ”๋“œ๋ฅผ ์ดํ•ดํ•  ์ˆ˜ ์žˆ๋„๋ก ๋ฆฌํŒฉํ„ฐ๋งํ•ด์•ผ ํ•œ๋‹ค๊ณ  ๋ฏฟ์Šต๋‹ˆ๋‹ค. ๊ฐ ํŒ€์€ ์ž์‹ ์˜ ์œ„์น˜๋ฅผ โ€‹โ€‹์„ ํƒํ•˜์ง€๋งŒ ๋ฆฌํŒฉํ† ๋ง์€ ์ถ•์†Œ๊ฐ€ ์•„๋‹ˆ๋ผ๋Š” ์ ์„ ๊ธฐ์–ตํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค . ์ฃผ์š” ๋ชฉํ‘œ๋Š” ์ฝ”๋“œ ๊ตฌ์กฐ๋ฅผ ๊ฐœ์„ ํ•˜๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค. ์ด ๊ธ€๋กœ๋ฒŒ ๋ชฉํ‘œ์—๋Š” ์—ฌ๋Ÿฌ ๊ฐ€์ง€ ๋ชฉํ‘œ๊ฐ€ ํฌํ•จ๋  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
  1. ๋ฆฌํŒฉํ† ๋ง์€ ๋‹ค๋ฅธ ๊ฐœ๋ฐœ์ž๊ฐ€ ์ž‘์„ฑํ•œ ์ฝ”๋“œ์— ๋Œ€ํ•œ ์ดํ•ด๋ฅผ ํ–ฅ์ƒ์‹œํ‚ต๋‹ˆ๋‹ค.
  2. ์˜ค๋ฅ˜๋ฅผ ์ฐพ๊ณ  ์ˆ˜์ •ํ•˜๋Š” ๋ฐ ๋„์›€์ด ๋ฉ๋‹ˆ๋‹ค.
  3. ์†Œํ”„ํŠธ์›จ์–ด ๊ฐœ๋ฐœ ์†๋„๋ฅผ ๋†’์ผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
  4. ์ „๋ฐ˜์ ์œผ๋กœ ์†Œํ”„ํŠธ์›จ์–ด ๊ตฌ์„ฑ์ด ํ–ฅ์ƒ๋ฉ๋‹ˆ๋‹ค.
์˜ค๋žซ๋™์•ˆ ๋ฆฌํŒฉํ† ๋ง์„ ์ˆ˜ํ–‰ํ•˜์ง€ ์•Š์œผ๋ฉด ๊ฐœ๋ฐœ์— ์–ด๋ ค์›€์„ ๊ฒช์„ ์ˆ˜ ์žˆ์œผ๋ฉฐ, ์ž‘์—…์ด ์™„์ „ํžˆ ์ค‘๋‹จ๋  ์ˆ˜๋„ ์žˆ์Šต๋‹ˆ๋‹ค.

โ€œ์ฝ”๋“œ ๋ƒ„์ƒˆโ€

์ฝ”๋“œ์— ๋ฆฌํŒฉํ† ๋ง์ด ํ•„์š”ํ•  ๋•Œ ๊ทธ๋“ค์€ "๋ƒ„์ƒˆ๊ฐ€ ๋‚œ๋‹ค"๊ณ  ๋งํ•ฉ๋‹ˆ๋‹ค. ๋ฌผ๋ก  ๋ฌธ์ž ๊ทธ๋Œ€๋กœ ๊ทธ๋Ÿฐ ๊ฒƒ์€ ์•„๋‹ˆ์ง€๋งŒ ์ด๋Ÿฌํ•œ ์ฝ”๋“œ๋Š” ์‹ค์ œ๋กœ๋Š” ๋ณ„๋กœ ์ข‹์•„ ๋ณด์ด์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ์•„๋ž˜์—์„œ๋Š” ์ดˆ๊ธฐ ๋‹จ๊ณ„์˜ ์ฃผ์š” ๋ฆฌํŒฉํ† ๋ง ๊ธฐ์ˆ ์„ ์‚ดํŽด๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค.

๋ถˆํ•„์š”ํ•˜๊ฒŒ ํฐ ์š”์†Œ

ํฌ๊ธฐ๊ฐ€ ํฌ๊ธฐ ๋•Œ๋ฌธ์— ํšจ์œจ์ ์œผ๋กœ ์ •ํ™•ํ•˜๊ฒŒ ์ž‘์—…ํ•˜๋Š” ๊ฒƒ์ด ๋ถˆ๊ฐ€๋Šฅํ•œ ์„ฑ๊ฐ€์‹  ํด๋ž˜์Šค์™€ ๋ฉ”์„œ๋“œ๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค.

ํฐ ์ˆ˜์—…

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

ํฐ ๋ฐฉ๋ฒ•

์ด "๋ƒ„์ƒˆ"๋Š” ๊ฐœ๋ฐœ์ž๊ฐ€ ๋ฉ”์„œ๋“œ์— ์ƒˆ๋กœ์šด ๊ธฐ๋Šฅ์„ ์ถ”๊ฐ€ํ•  ๋•Œ ๋ฐœ์ƒํ•ฉ๋‹ˆ๋‹ค. โ€œ์—ฌ๊ธฐ์— ์“ธ ์ˆ˜ ์žˆ๋Š”๋ฐ ์™œ ๋งค๊ฐœ๋ณ€์ˆ˜ ๊ฒ€์‚ฌ๋ฅผ ๋ณ„๋„์˜ ๋ฉ”์†Œ๋“œ์— ๋„ฃ์–ด์•ผ ํ• ๊นŒ์š”?โ€, โ€œ๋ฐฐ์—ด์—์„œ ์ตœ๋Œ€ ์š”์†Œ๋ฅผ ์ฐพ๋Š” ๋ฉ”์†Œ๋“œ๋ฅผ ์™œ ๋ถ„๋ฆฌํ•ด์•ผ ํ•˜๋Š”์ง€, ์—ฌ๊ธฐ์— ๋‚จ๊ฒจ๋‘๊ฒ ์Šต๋‹ˆ๋‹ค. ์ด๋ ‡๊ฒŒ ํ•˜๋ฉด ์ฝ”๋“œ๊ฐ€ ๋” ๋ช…ํ™•ํ•ด์ง‘๋‹ˆ๋‹ค.โ€ ๋“ฑ์˜ ์˜คํ•ด๋„ ์žˆ์Šต๋‹ˆ๋‹ค. ๋Œ€๊ทœ๋ชจ ๋ฉ”์„œ๋“œ๋ฅผ ๋ฆฌํŒฉํ„ฐ๋งํ•˜๋Š” ๋ฐ๋Š” ๋‘ ๊ฐ€์ง€ ๊ทœ์น™์ด ์žˆ์Šต๋‹ˆ๋‹ค.
  1. ๋ฉ”์†Œ๋“œ๋ฅผ ์ž‘์„ฑํ•  ๋•Œ ์ฝ”๋“œ์— ์ฃผ์„์„ ์ถ”๊ฐ€ํ•˜๋ ค๋ฉด ์ด ๊ธฐ๋Šฅ์„ ๋ณ„๋„์˜ ๋ฉ”์†Œ๋“œ๋กœ ๋ถ„๋ฆฌํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.
  2. ๋ฉ”์„œ๋“œ์— 10~15์ค„ ์ด์ƒ์˜ ์ฝ”๋“œ๊ฐ€ ํ•„์š”ํ•œ ๊ฒฝ์šฐ ํ•ด๋‹น ๋ฉ”์„œ๋“œ๊ฐ€ ์ˆ˜ํ–‰ํ•˜๋Š” ์ž‘์—…๊ณผ ํ•˜์œ„ ์ž‘์—…์„ ์‹๋ณ„ํ•˜๊ณ  ํ•˜์œ„ ์ž‘์—…์„ ๋ณ„๋„์˜ ๋ฉ”์„œ๋“œ๋กœ ๋ถ„๋ฆฌํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.
๋Œ€๊ทœ๋ชจ ๋ฉ”์„œ๋“œ๋ฅผ ์ œ๊ฑฐํ•˜๋Š” ์—ฌ๋Ÿฌ ๊ฐ€์ง€ ๋ฐฉ๋ฒ•:
  • ๋ฉ”์†Œ๋“œ ๊ธฐ๋Šฅ์˜ ์ผ๋ถ€๋ฅผ ๋ณ„๋„์˜ ๋ฉ”์†Œ๋“œ๋กœ ๋ถ„๋ฆฌํ•ฉ๋‹ˆ๋‹ค.
  • ์ง€์—ญ ๋ณ€์ˆ˜๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๊ธฐ๋Šฅ์˜ ์ผ๋ถ€๋ฅผ ์ถ”์ถœํ•  ์ˆ˜ ์—†๋Š” ๊ฒฝ์šฐ ์ „์ฒด ๊ฐœ์ฒด๋ฅผ ๋‹ค๋ฅธ ๋ฉ”์„œ๋“œ์— ์ „๋‹ฌํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

๋‹ค์–‘ํ•œ ๊ธฐ๋ณธ ๋ฐ์ดํ„ฐ ์œ ํ˜• ์‚ฌ์šฉ

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

๊ธด ์˜ต์…˜ ๋ชฉ๋ก

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

๋ฐ์ดํ„ฐ ๊ทธ๋ฃน

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

OOP ๊ฐœ๋…์„ ๋ง์น˜๋Š” ์†”๋ฃจ์…˜

์ด๋Ÿฌํ•œ ์œ ํ˜•์˜ "๋ƒ„์ƒˆ"๋Š” ๊ฐœ๋ฐœ์ž๊ฐ€ OOP ์„ค๊ณ„๋ฅผ ์œ„๋ฐ˜ํ•  ๋•Œ ๋ฐœ์ƒํ•ฉ๋‹ˆ๋‹ค. ์ด๋Š” ๊ทธ๊ฐ€ ์ด ํŒจ๋Ÿฌ๋‹ค์ž„์˜ ๊ธฐ๋Šฅ์„ ์™„์ „ํžˆ ์ดํ•ดํ•˜์ง€ ๋ชปํ•˜๊ณ  ์ด๋ฅผ ๋ถˆ์™„์ „ํ•˜๊ฑฐ๋‚˜ ๋ถ€์ •ํ™•ํ•˜๊ฒŒ ์‚ฌ์šฉํ•˜๋Š” ๊ฒฝ์šฐ์— ๋ฐœ์ƒํ•ฉ๋‹ˆ๋‹ค.

์ƒ์† ๊ฑฐ๋ถ€

ํ•˜์œ„ ํด๋ž˜์Šค๊ฐ€ ์ƒ์œ„ ํด๋ž˜์Šค์˜ ๊ธฐ๋Šฅ ์ค‘ ์ตœ์†Œํ•œ์˜ ๋ถ€๋ถ„์„ ์‚ฌ์šฉํ•˜๋ฉด ์ž˜๋ชป๋œ ๊ณ„์ธต ๊ตฌ์กฐ์˜ ๋ƒ„์ƒˆ๊ฐ€ ๋‚ฉ๋‹ˆ๋‹ค. ์ผ๋ฐ˜์ ์œผ๋กœ ์ด ๊ฒฝ์šฐ ๋ถˆํ•„์š”ํ•œ ๋ฉ”์„œ๋“œ๋Š” ์žฌ์ •์˜๋˜์ง€ ์•Š๊ฑฐ๋‚˜ ์˜ˆ์™ธ๊ฐ€ ๋ฐœ์ƒํ•ฉ๋‹ˆ๋‹ค. ํด๋ž˜์Šค๊ฐ€ ๋‹ค๋ฅธ ํด๋ž˜์Šค์—์„œ ์ƒ์†๋œ๋‹ค๋ฉด ์ด๋Š” ํ•ด๋‹น ๊ธฐ๋Šฅ์„ ๊ฑฐ์˜ ์™„๋ฒฝํ•˜๊ฒŒ ์‚ฌ์šฉํ•œ๋‹ค๋Š” ์˜๋ฏธ์ž…๋‹ˆ๋‹ค. ์˜ฌ๋ฐ”๋ฅธ ๊ณ„์ธต ๊ตฌ์กฐ์˜ ์˜ˆ: Java์—์„œ ๋ฆฌํŒฉํ† ๋ง์ด ์ž‘๋™ํ•˜๋Š” ๋ฐฉ์‹ - 2 ์ž˜๋ชป๋œ ๊ณ„์ธต ๊ตฌ์กฐ์˜ ์˜ˆ: Java์—์„œ ๋ฆฌํŒฉํ† ๋ง์ด ์ž‘๋™ํ•˜๋Š” ๋ฐฉ์‹ - 3

์Šค์œ„์น˜ ๋ฌธ

์šด์˜์ž์—๊ฒŒ ๋ฌด์Šจ ๋ฌธ์ œ๊ฐ€ ์žˆ์„ ์ˆ˜ ์žˆ๋‚˜์š” switch? ๋””์ž์ธ์ด ๋งค์šฐ ๋ณต์žกํ•˜๋ฉด ์ข‹์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ์—ฌ๊ธฐ์—๋Š” ๋งŽ์€ ์ค‘์ฒฉ ๋ธ”๋ก๋„ ํฌํ•จ๋ฉ๋‹ˆ๋‹ค if.

๋‹ค์–‘ํ•œ ์ธํ„ฐํŽ˜์ด์Šค๋ฅผ ๊ฐ–์ถ˜ ๋Œ€์ฒด ํด๋ž˜์Šค

์—ฌ๋Ÿฌ ํด๋ž˜์Šค๊ฐ€ ์‹ค์ œ๋กœ ๋™์ผํ•œ ์ž‘์—…์„ ์ˆ˜ํ–‰ํ•˜์ง€๋งŒ ํ•ด๋‹น ๋ฉ”์„œ๋“œ์˜ ์ด๋ฆ„์€ ๋‹ค๋ฆ…๋‹ˆ๋‹ค.

์ž„์‹œ ํ•„๋“œ

ํด๋ž˜์Šค์— ๊ฐ์ฒด์— ๊ฐ€๋”์”ฉ๋งŒ ํ•„์š”ํ•œ ์ž„์‹œ ํ•„๋“œ๊ฐ€ ํฌํ•จ๋˜์–ด ์žˆ๊ณ  ๊ฐ’์œผ๋กœ ์ฑ„์›Œ์ง€๊ณ  ๋‚˜๋จธ์ง€ ์‹œ๊ฐ„์€ ๋น„์–ด ์žˆ๊ฑฐ๋‚˜ ๊ธˆ์ง€๋˜์–ด ์žˆ๋Š” ๊ฒฝ์šฐ ์ฝ”๋“œ์—์„œ " null๋ƒ„์ƒˆ๊ฐ€ ๋‚˜๋ฉฐ" ๊ทธ๋Ÿฌํ•œ ๋””์ž์ธ์€ ๋ชจํ˜ธํ•ฉ๋‹ˆ๋‹ค. ๊ฒฐ์ •.

์ˆ˜์ •์„ ์–ด๋ ต๊ฒŒ ๋งŒ๋“œ๋Š” ๋ƒ„์ƒˆ

์ด๋Ÿฌํ•œ "๋ƒ„์ƒˆ"๋Š” ๋” ์‹ฌ๊ฐํ•ฉ๋‹ˆ๋‹ค. ๋‚˜๋จธ์ง€๋Š” ์ฃผ๋กœ ์ฝ”๋“œ ์ดํ•ด๋ฅผ ๋ฐฉํ•ดํ•˜์ง€๋งŒ ์ฝ”๋“œ ์ˆ˜์ •์„ ๋ถˆ๊ฐ€๋Šฅํ•˜๊ฒŒ ํ•ฉ๋‹ˆ๋‹ค. ์–ด๋–ค ๊ธฐ๋Šฅ์„ ๋„์ž…ํ•˜๋ฉด ๊ฐœ๋ฐœ์ž ์ค‘ ์ ˆ๋ฐ˜์€ ๊ทธ๋งŒ๋‘๊ณ  ์ ˆ๋ฐ˜์€ ๋ฏธ์ณ๋ฒ„๋ฆด ๊ฒƒ์ž…๋‹ˆ๋‹ค.

๋ณ‘๋ ฌ ์ƒ์† ๊ณ„์ธต

ํด๋ž˜์Šค์˜ ํ•˜์œ„ ํด๋ž˜์Šค๋ฅผ ์ƒ์„ฑํ•  ๋•Œ ๋‹ค๋ฅธ ํด๋ž˜์Šค์˜ ๋˜ ๋‹ค๋ฅธ ํ•˜์œ„ ํด๋ž˜์Šค๋ฅผ ์ƒ์„ฑํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

๊ท ์ผํ•œ ์ข…์†์„ฑ ๋ถ„ํฌ

์ˆ˜์ •์„ ์ˆ˜ํ–‰ํ•  ๋•Œ ์ด ํด๋ž˜์Šค์˜ ๋ชจ๋“  ์ข…์†์„ฑ(์‚ฌ์šฉ)์„ ์ฐพ์•„ ์ž‘์€ ๋ณ€๊ฒฝ ์‚ฌํ•ญ์„ ๋งŽ์ด ์ ์šฉํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ํ•œ ๋ฒˆ์˜ ๋ณ€๊ฒฝ - ์—ฌ๋Ÿฌ ์ˆ˜์—…์—์„œ ์ˆ˜์ •๋ฉ๋‹ˆ๋‹ค.

๋ณต์žกํ•œ ์ˆ˜์ • ํŠธ๋ฆฌ

์ด ๋ƒ„์ƒˆ๋Š” ์ด์ „ ๋ƒ„์ƒˆ์™€ ๋ฐ˜๋Œ€์ž…๋‹ˆ๋‹ค. ๋ณ€๊ฒฝ ์‚ฌํ•ญ์€ ๋™์ผํ•œ ํด๋ž˜์Šค์˜ ๋งŽ์€ ๋ฉ”์„œ๋“œ์— ์˜ํ–ฅ์„ ๋ฏธ์นฉ๋‹ˆ๋‹ค. ์ผ๋ฐ˜์ ์œผ๋กœ ์ด๋Ÿฌํ•œ ์ฝ”๋“œ์˜ ์ข…์†์„ฑ์€ ์—ฐ์†์ ์ž…๋‹ˆ๋‹ค. ํ•œ ๋ฉ”์†Œ๋“œ๋ฅผ ๋ณ€๊ฒฝํ•œ ํ›„ ๋‹ค๋ฅธ ๋ฉ”์†Œ๋“œ์—์„œ ์ˆ˜์ •ํ•ด์•ผ ํ•˜๊ณ  ์„ธ ๋ฒˆ์งธ ๋ฉ”์†Œ๋“œ์—์„œ ์ˆ˜์ •ํ•ด์•ผ ํ•˜๋Š” ์‹์ž…๋‹ˆ๋‹ค. ํ•˜๋‚˜์˜ ์ˆ˜์—… - ๋งŽ์€ ๋ณ€ํ™”.

โ€œ์“ฐ๋ ˆ๊ธฐ ๋ƒ„์ƒˆโ€

๋‘ํ†ต์„ ์œ ๋ฐœํ•˜๋Š” ๋‹ค์†Œ ๋ถˆ์พŒํ•œ ๋ƒ„์ƒˆ ์นดํ…Œ๊ณ ๋ฆฌ์ž…๋‹ˆ๋‹ค. ์“ธ๋ชจ์—†๊ณ  ๋ถˆํ•„์š”ํ•˜๋ฉฐ ์˜ค๋ž˜๋œ ์ฝ”๋“œ์ž…๋‹ˆ๋‹ค. ๋‹คํ–‰์Šค๋Ÿฝ๊ฒŒ๋„ ์ตœ์‹  IDE์™€ ๋ฆฐํ„ฐ๋Š” ์ด๋Ÿฌํ•œ ๋ƒ„์ƒˆ์— ๋Œ€ํ•ด ๊ฒฝ๊ณ ํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ๋ฐฐ์› ์Šต๋‹ˆ๋‹ค.

๋ฉ”์†Œ๋“œ์— ๋งŽ์€ ๋Œ“๊ธ€์ด ์žˆ์Œ

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

์ฝ”๋“œ ๋ณต์ œ

์„œ๋กœ ๋‹ค๋ฅธ ํด๋ž˜์Šค๋‚˜ ๋ฉ”์„œ๋“œ๋Š” ๋™์ผํ•œ ์ฝ”๋“œ ๋ธ”๋ก์„ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค.

๊ฒŒ์œผ๋ฅธ ์ˆ˜์—…

๋งŽ์€ ๊ธฐ๋Šฅ์ด ๊ณ„ํš๋˜์—ˆ์ง€๋งŒ ์ˆ˜์—…์€ ๊ฑฐ์˜ ๊ธฐ๋Šฅ์„ ์‚ฌ์šฉํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

์‚ฌ์šฉ๋˜์ง€ ์•Š์€ ์ฝ”๋“œ

ํด๋ž˜์Šค, ๋ฉ”์†Œ๋“œ ๋˜๋Š” ๋ณ€์ˆ˜๋Š” ์ฝ”๋“œ์—์„œ ์‚ฌ์šฉ๋˜์ง€ ์•Š์œผ๋ฉฐ "์ฃฝ์€ ๋ฌด๊ฒŒ"์ž…๋‹ˆ๋‹ค.

๊ณผ๋„ํ•œ ๊ฒฐํ•ฉ

์ด ๋ƒ„์ƒˆ ๋ฒ”์ฃผ๋Š” ์ฝ”๋“œ์— ๋ถˆํ•„์š”ํ•œ ์—ฐ๊ฒฐ์ด ๋งŽ๋‹ค๋Š” ํŠน์ง•์ด ์žˆ์Šต๋‹ˆ๋‹ค.

ํƒ€์‚ฌ ๋ฐฉ๋ฒ•

๋ฉ”์„œ๋“œ๋Š” ์ž์ฒด ๋ฐ์ดํ„ฐ๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ๋ณด๋‹ค ๋‹ค๋ฅธ ๊ฐœ์ฒด์˜ ๋ฐ์ดํ„ฐ๋ฅผ ํ›จ์”ฌ ๋” ์ž์ฃผ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค.

๋ถ€์ ์ ˆํ•œ ์นœ๋ฐ€๊ฐ

ํด๋ž˜์Šค๋Š” ๋‹ค๋ฅธ ํด๋ž˜์Šค์˜ ์„œ๋น„์Šค ํ•„๋“œ์™€ ๋ฉ”์†Œ๋“œ๋ฅผ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค.

๊ธด ์ˆ˜์—… ํ†ตํ™”

ํ•œ ํด๋ž˜์Šค๋Š” ๋‹ค๋ฅธ ํด๋ž˜์Šค๋ฅผ ํ˜ธ์ถœํ•˜์—ฌ ์„ธ ๋ฒˆ์งธ, ๋„ค ๋ฒˆ์งธ ๋“ฑ์˜ ๋ฐ์ดํ„ฐ๋ฅผ ์š”์ฒญํ•ฉ๋‹ˆ๋‹ค. ์ด๋ ‡๊ฒŒ ๊ธด ํ˜ธ์ถœ ์ฒด์ธ์€ ํ˜„์žฌ ํด๋ž˜์Šค ๊ตฌ์กฐ์— ๋Œ€ํ•œ ์˜์กด๋„๊ฐ€ ๋†’๋‹ค๋Š” ๊ฒƒ์„ ์˜๋ฏธํ•ฉ๋‹ˆ๋‹ค.

ํด๋ž˜์Šค ์ž‘์—… ๋”œ๋Ÿฌ

ํด๋ž˜์Šค๋Š” ๋‹ค๋ฅธ ํด๋ž˜์Šค์— ์ž‘์—…์„ ์ „๋‹ฌํ•˜๋Š” ๋ฐ์—๋งŒ ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค. ์–ด์ฉŒ๋ฉด ์ œ๊ฑฐํ•ด์•ผํ• ๊นŒ์š”?

๋ฆฌํŒฉํ† ๋ง ๊ธฐ๋ฒ•

์•„๋ž˜์—์„œ๋Š” ์„ค๋ช…๋œ ์ฝ”๋“œ ๋ƒ„์ƒˆ๋ฅผ ์ œ๊ฑฐํ•˜๋Š” ๋ฐ ๋„์›€์ด ๋˜๋Š” ์ดˆ๊ธฐ ๋ฆฌํŒฉํ† ๋ง ๊ธฐ์ˆ ์— ๋Œ€ํ•ด ์„ค๋ช…ํ•ฉ๋‹ˆ๋‹ค.

ํด๋ž˜์Šค ์„ ํƒ

ํด๋ž˜์Šค๊ฐ€ ์ˆ˜ํ–‰ํ•˜๋Š” ๊ธฐ๋Šฅ์ด ๋„ˆ๋ฌด ๋งŽ์•„ ๊ทธ ์ค‘ ์ผ๋ถ€๋ฅผ ๋‹ค๋ฅธ ํด๋ž˜์Šค๋กœ ์ด๋™ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด, ๊ฑฐ์ฃผ์ง€ ์ฃผ์†Œ๋„ ํฌํ•จํ•˜๋Š” ํด๋ž˜์Šค Human์™€ ์ „์ฒด ์ฃผ์†Œ๋ฅผ ์ œ๊ณตํ•˜๋Š” ๋ฉ”์„œ๋“œ๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค.
class Human {
   private String name;
   private String age;
   private String country;
   private String city;
   private String street;
   private String house;
   private String quarter;

   public String getFullAddress() {
       StringBuilder result = new StringBuilder();
       return result
                       .append(country)
                       .append(", ")
                       .append(city)
                       .append(", ")
                       .append(street)
                       .append(", ")
                       .append(house)
                       .append(" ")
                       .append(quarter).toString();
   }
}
์ฃผ์†Œ ์ •๋ณด์™€ ๋ฐฉ๋ฒ•(๋ฐ์ดํ„ฐ ์ฒ˜๋ฆฌ ๋™์ž‘)์„ ๋ณ„๋„์˜ ํด๋ž˜์Šค์— ๋ฐฐ์น˜ํ•˜๋Š” ๊ฒƒ์ด ์ข‹์Šต๋‹ˆ๋‹ค.
class Human {
   private String name;
   private String age;
   private Address address;

   private String getFullAddress() {
       return address.getFullAddress();
   }
}
class Address {
   private String country;
   private String city;
   private String street;
   private String house;
   private String quarter;

   public String getFullAddress() {
       StringBuilder result = new StringBuilder();
       return result
                       .append(country)
                       .append(", ")
                       .append(city)
                       .append(", ")
                       .append(street)
                       .append(", ")
                       .append(house)
                       .append(" ")
                       .append(quarter).toString();
   }
}

๋ฐฉ๋ฒ• ์„ ํƒ

๊ธฐ๋Šฅ์„ ํ•˜๋‚˜์˜ ๋ฉ”์†Œ๋“œ๋กœ ๊ทธ๋ฃนํ™”ํ•  ์ˆ˜ ์žˆ๋Š” ๊ฒฝ์šฐ ๋ณ„๋„์˜ ๋ฉ”์†Œ๋“œ์— ๋ฐฐ์น˜ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด, ์ด์ฐจ ๋ฐฉ์ •์‹์˜ ๊ทผ์„ ๊ณ„์‚ฐํ•˜๋Š” ๋ฐฉ๋ฒ•์€ ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค.
public void calcQuadraticEq(double a, double b, double c) {
    double D = b * b - 4 * a * c;
    if (D > 0) {
        double x1, x2;
        x1 = (-b - Math.sqrt(D)) / (2 * a);
        x2 = (-b + Math.sqrt(D)) / (2 * a);
        System.out.println("x1 = " + x1 + ", x2 = " + x2);
    }
    else if (D == 0) {
        double x;
        x = -b / (2 * a);
        System.out.println("x = " + x);
    }
    else {
        System.out.println("Equation has no roots");
    }
}
๊ฐ€๋Šฅํ•œ ์„ธ ๊ฐ€์ง€ ์˜ต์…˜ ๋ชจ๋‘์˜ ๊ณ„์‚ฐ์„ ๋ณ„๋„์˜ ๋ฐฉ๋ฒ•์œผ๋กœ ์˜ฎ๊ฒจ ๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค.
public void calcQuadraticEq(double a, double b, double c) {
    double D = b * b - 4 * a * c;
    if (D > 0) {
        dGreaterThanZero(a, b, D);
    }
    else if (D == 0) {
        dEqualsZero(a, b);
    }
    else {
        dLessThanZero();
    }
}

public void dGreaterThanZero(double a, double b, double D) {
    double x1, x2;
    x1 = (-b - Math.sqrt(D)) / (2 * a);
    x2 = (-b + Math.sqrt(D)) / (2 * a);
    System.out.println("x1 = " + x1 + ", x2 = " + x2);
}

public void dEqualsZero(double a, double b) {
    double x;
    x = -b / (2 * a);
    System.out.println("x = " + x);
}

public void dLessThanZero() {
    System.out.println("Equation has no roots");
}
๊ฐ ๋ฉ”์†Œ๋“œ์˜ ์ฝ”๋“œ๋Š” ํ›จ์”ฌ ๋” ์งง๊ณ  ๋ช…ํ™•ํ•ด์กŒ์Šต๋‹ˆ๋‹ค.

์ „์ฒด ๊ฐœ์ฒด ์ „์†ก

๋งค๊ฐœ๋ณ€์ˆ˜๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๋ฉ”์„œ๋“œ๋ฅผ ํ˜ธ์ถœํ•  ๋•Œ ๋‹ค์Œ๊ณผ ๊ฐ™์€ ์ฝ”๋“œ๋ฅผ ๋ณผ ์ˆ˜ ์žˆ๋Š” ๊ฒฝ์šฐ๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค.
public void employeeMethod(Employee employee) {
    // ะะตะบะพั‚ะพั€ั‹ะต ะดะตะนัั‚ะฒะธั
    double yearlySalary = employee.getYearlySalary();
    double awards = employee.getAwards();
    double monthlySalary = getMonthlySalary(yearlySalary, awards);
    // ะŸั€ะพะดะพะปะถะตะฝะธะต ะพะฑั€ะฐะฑะพั‚ะบะธ
}

public double getMonthlySalary(double yearlySalary, double awards) {
     return (yearlySalary + awards)/12;
}
์ด ๋ฐฉ๋ฒ•์—์„œ๋Š” employeeMethod๊ฐ’์„ ์–ป๊ณ  ์ด๋ฅผ ๊ธฐ๋ณธ ๋ณ€์ˆ˜์— ์ €์žฅํ•˜๊ธฐ ์œ„ํ•ด ์ตœ๋Œ€ 2์ค„์ด ํ• ๋‹น๋ฉ๋‹ˆ๋‹ค. ๋•Œ๋กœ๋Š” ์ด๋Ÿฌํ•œ ๋””์ž์ธ์— ์ตœ๋Œ€ 10์ค„์ด ์†Œ์š”๋˜๊ธฐ๋„ ํ•ฉ๋‹ˆ๋‹ค. ํ•„์š”ํ•œ ๋ฐ์ดํ„ฐ๋ฅผ ์ถ”์ถœํ•  ์ˆ˜ ์žˆ๋Š” ๋ฉ”์†Œ๋“œ์— ๊ฐ์ฒด ์ž์ฒด๋ฅผ ์ „๋‹ฌํ•˜๋Š” ๊ฒƒ์ด ํ›จ์”ฌ ์‰ฝ์Šต๋‹ˆ๋‹ค.
public void employeeMethod(Employee employee) {
    // ะะตะบะพั‚ะพั€ั‹ะต ะดะตะนัั‚ะฒะธั
    double monthlySalary = getMonthlySalary(employee);
    // ะŸั€ะพะดะพะปะถะตะฝะธะต ะพะฑั€ะฐะฑะพั‚ะบะธ
}

public double getMonthlySalary(Employee employee) {
    return (employee.getYearlySalary() + employee.getAwards())/12;
}
๊ฐ„๋‹จํ•˜๊ณ  ์งง๊ณ  ๊ฐ„๊ฒฐํ•ฉ๋‹ˆ๋‹ค.

ํ•„๋“œ๋ฅผ ๋…ผ๋ฆฌ์ ์œผ๋กœ ๊ทธ๋ฃนํ™”ํ•˜๊ณ  ๋ณ„๋„์˜ ํด๋ž˜์Šค์— ๋ฐฐ์น˜

์œ„์˜ ์˜ˆ๋Š” ๋งค์šฐ ๊ฐ„๋‹จํ•˜๊ณ  ์ด๋ฅผ ๋ณผ ๋•Œ ๋งŽ์€ ๊ฐœ๋ฐœ์ž๊ฐ€ "์‹ค์ œ๋กœ ์ด ์ž‘์—…์„ ์ˆ˜ํ–‰ํ•˜๋Š” ์‚ฌ๋žŒ์€ ๋ˆ„๊ตฌ์ž…๋‹ˆ๊นŒ?"๋ผ๋Š” ์งˆ๋ฌธ์„ ํ•  ์ˆ˜ ์žˆ์Œ์—๋„ ๋ถˆ๊ตฌํ•˜๊ณ  ๋งŽ์€ ๊ฐœ๋ฐœ์ž๋Š” ๋ถ€์ฃผ์˜, ์ฝ”๋“œ ๋ฆฌํŒฉํ† ๋ง์— ๋Œ€ํ•œ ์˜์ง€ ๋˜๋Š” ๋‹จ์ˆœํžˆ "ํ•  ๊ฒƒ์ž…๋‹ˆ๋‹ค"๋กœ ์ธํ•ด ๋น„์Šทํ•œ ๊ตฌ์กฐ์  ์˜ค๋ฅ˜.

๋ฆฌํŒฉํ† ๋ง์ด ํšจ๊ณผ์ ์ธ ์ด์œ 

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

๋ฆฌํŒฉํ† ๋ง์— ๋Œ€ํ•œ ์ถ”๊ฐ€ ์—ฐ๊ตฌ๋ฅผ ์œ„ํ•œ ๋ฆฌ์†Œ์Šค

๋ฆฌํŒฉํ† ๋ง์— ๊ด€ํ•œ ๊ฐ€์žฅ ์œ ๋ช…ํ•œ ์ฑ…์€ ใ€Ž๋ฆฌํŒฉํ† ๋งใ€์ด๋‹ค. ๊ธฐ์กด ์ฝ”๋“œ์˜ ๋””์ž์ธ ๊ฐœ์„ โ€(Martin Fowler ์ €). Joshua Kiriewski๊ฐ€ ์“ด ์ด์ „ ์ฑ…์ธ "Refactoring with Patterns"๋ฅผ ๊ธฐ๋ฐ˜์œผ๋กœ ์ž‘์„ฑ๋œ ๋ฆฌํŒฉํ† ๋ง์— ๊ด€ํ•œ ํฅ๋ฏธ๋กœ์šด ์ถœํŒ๋ฌผ๋„ ์žˆ์Šต๋‹ˆ๋‹ค. ํ…œํ”Œ๋ฆฟ์— ๋Œ€ํ•ด ๋งํ•˜๋ฉด. ๋ฆฌํŒฉํ† ๋งํ•  ๋•Œ ๊ธฐ๋ณธ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ๋””์ž์ธ ํŒจํ„ด์„ ์•„๋Š” ๊ฒƒ์€ ํ•ญ์ƒ ๋งค์šฐ ์œ ์šฉํ•ฉ๋‹ˆ๋‹ค. ๋‹ค์Œ์˜ ํ›Œ๋ฅญํ•œ ์ฑ…๋“ค์ด ๋„์›€์ด ๋  ๊ฒƒ์ž…๋‹ˆ๋‹ค:
  1. "๋””์ž์ธ ํŒจํ„ด" - Head First ์‹œ๋ฆฌ์ฆˆ์˜ Eric Freeman, Elizabeth Freeman, Kathy Sierra, Bert Bates ์ œ์ž‘;
  2. "์ฝ๊ธฐ ์‰ฌ์šด ์ฝ”๋“œ ๋˜๋Š” ์˜ˆ์ˆ ๋กœ์„œ์˜ ํ”„๋กœ๊ทธ๋ž˜๋ฐ" - Dustin Boswell, Trevor Faucher.
  3. ์•„๋ฆ„๋‹ต๊ณ  ์šฐ์•„ํ•œ ์ฝ”๋“œ์˜ ์›์น™์„ ์„ค๋ช…ํ•˜๋Š” Steve McConnell์˜ "Perfect Code".
๋ฆฌํŒฉํ† ๋ง์— ๊ด€ํ•œ ๋ช‡ ๊ฐ€์ง€ ๊ธฐ์‚ฌ:
  1. ์ •๋ง ํž˜๋“  ์ผ์ž…๋‹ˆ๋‹ค. ๋ ˆ๊ฑฐ์‹œ ์ฝ”๋“œ ๋ฆฌํŒฉํ† ๋ง์„ ์‹œ์ž‘ํ•ด ๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค .
  2. ๋ฆฌํŒฉํ† ๋ง ;
  3. ๋ชจ๋‘๋ฅผ ์œ„ํ•œ ๋ฆฌํŒฉํ† ๋ง .
    ์ฝ”๋ฉ˜ํŠธ
    TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
    GO TO FULL VERSION