Skip to content

Latest commit

ย 

History

History

ch10

โฌ…๏ธ 9์žฅ | 11์žฅ โžก๏ธ

10์žฅ ์กฐ๊ฑด๋ถ€ ๋กœ์ง ๊ฐ„์†Œํ™”

Note

'์กฐ๊ฑด๋ถ€ ๋กœ์ง ๊ฐ„์†Œํ™”' ์ฑ•ํ„ฐ๋Š” ๋‹ค์Œ ์งˆ๋ฌธ์„ ์ค‘์‹ฌ์œผ๋กœ ์ฝ์–ด๋‚˜๊ฐ€์‹œ๋ฉด ์ข‹์Šต๋‹ˆ๋‹ค.

  1. ์™œ ์กฐ๊ฑด์˜ ์˜๋„๊ฐ€ ๋“œ๋Ÿฌ๋‚˜์•ผ ํ•˜๋Š”๊ฐ€
  2. ์–ด๋–ป๊ฒŒ ํ•˜๋ฉด ์กฐ๊ฑด์˜ ์˜๋„๊ฐ€ ๋“œ๋Ÿฌ๋‚˜๋Š”๊ฐ€
  3. ๋ฌด์—‡์„ ํ†ตํ•ด ๋ณต์žกํ•œ ์กฐ๊ฑด์„ ๋ถ„๋ฆฌํ•˜๊ณ  ๊ตฌ์กฐํ™”ํ•  ์ˆ˜ ์žˆ๋Š”๊ฐ€

10.1 ์กฐ๊ฑด๋ฌธ ๋ถ„ํ•ดํ•˜๊ธฐ

p. 354

์กฐ๊ฑด์„ ๊ฒ€์‚ฌํ•˜๊ณ  ๊ทธ ๊ฒฐ๊ณผ์— ๋”ฐ๋ฅธ ๋™์ž‘์„ ํ‘œํ˜„ํ•œ ์ฝ”๋“œ๋Š” ๋ฌด์Šจ ์ผ์ด ์ผ์–ด๋‚˜๋Š”์ง€๋Š” ์ด์•ผ๊ธฐํ•ด์ฃผ์ง€๋งŒ '์™œ' ์ผ์–ด๋‚˜๋Š”์ง€๋Š” ์ œ๋Œ€๋กœ ๋งํ•ด์ฃผ์ง€ ์•Š์„ ๋•Œ๊ฐ€ ๋งŽ์€ ๊ฒƒ์ด ๋ฌธ์ œ๋‹ค.

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

p. 356

๋ชจ๋‘ ๋๋‚ฌ๋‹ค๋ฉด ์ทจํ–ฅ์— ๋”ฐ๋ผ ์ „์ฒด ์กฐ๊ฑด๋ฌธ์„ 3ํ•ญ ์—ฐ์‚ฐ์ž๋กœ ๋ฐ”๊ฟ”์ค„ ์ˆ˜๋„ ์žˆ๋‹ค.

charge = summer() ? summerCharge() : regularCharge();

function summer() {
  return !aDate.isBefore(plan.summerStart) && !aDate.isAfter(plan.summerEnd);
}

function summerCharge() {
  return quantity * plan.summerRate;
}

function regularCharge() {
  return quantity * plan.regularRate + plan.regularServiceCharge;
}

๐Ÿ’ก ์˜๊ฒฌ

  • 3ํ•ญ ์—ฐ์‚ฐ์ž์— ํ•จ์ˆ˜๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๋ถ€๋ถ„์ด ์ธ์ƒ์ ์ด์—ˆ๊ณ  ํ•จ์ˆ˜๋„ ํ•˜๋‚˜์˜ ๊ฐ’์ด์—ˆ์ง€ ํ•˜๊ณ  ๋‹ค์‹œ ํ•œ๋ฒˆ ๊นจ๋‹ฌ์•˜์Šต๋‹ˆ๋‹ค.

10.2 ์กฐ๊ฑด์‹ ํ†ตํ•ฉํ•˜๊ธฐ

p. 357

์ฒซ์งธ, ์—ฌ๋Ÿฌ ์กฐ๊ฐ์œผ๋กœ ๋‚˜๋‰œ ์กฐ๊ฑด๋“ค์„ ํ•˜๋‚˜๋กœ ํ†ตํ•ฉํ•จ์œผ๋กœ์จ ๋‚ด๊ฐ€ ํ•˜๋ ค๋Š” ์ผ์ด ๋” ๋ช…ํ™•ํ•ด์ง„๋‹ค.

๋‘ ๋ฒˆ์งธ ์ด์œ ๋Š” ์ด ์ž‘์—…์ด ํ•จ์ˆ˜ ์ถ”์ถœํ•˜๊ธฐ๊นŒ์ง€ ์ด์–ด์งˆ ๊ฐ€๋Šฅ์„ฑ์ด ๋†’๊ธฐ ๋•Œ๋ฌธ์ด๋‹ค.

ํ•จ์ˆ˜ ์ถ”์ถœํ•˜๊ธฐ๋Š” '๋ฌด์—‡'์„ ํ•˜๋Š”์ง€๋ฅผ ๊ธฐ์ˆ ํ•˜๋˜ ์ฝ”๋“œ๋ฅผ '์™œ' ํ•˜๋Š”์ง€๋ฅผ ๋งํ•ด์ฃผ๋Š” ์ฝ”๋“œ๋กœ ๋ฐ”๊ฟ”์ฃผ๋Š” ํšจ๊ณผ์ ์ธ ๋„๊ตฌ์ž„์„ ๊ธฐ์–ตํ•˜์ž.

p. 358

๋‹ค์‹œ ๋งํ•ด ์ง„์งœ๋กœ ๋…๋ฆฝ๋œ ๊ฒ€์‚ฌ๋“ค์ด๋ผ๊ณ  ํŒ๋‹จ๋˜๋ฉด ์ด ๋ฆฌํŒฉํ„ฐ๋ง์„ ํ•ด์„œ๋Š” ์•ˆ ๋œ๋‹ค.

๐Ÿ’ก ์˜๊ฒฌ

  • ํด๋ฆฐ ์ฝ”๋“œ์— ๋”ฐ๋ฅด๋ฉด if๋ฌธ ์กฐ๊ฑด์‹์—๋Š” ๊ธ์ •๋ฌธ์œผ๋กœ ์ ๋Š” ๊ฒŒ ์ข‹๋‹ค๊ณ  ํ•ฉ๋‹ˆ๋‹ค. ๋‡Œ ๊ตฌ์กฐ์ƒ ์ดํ•ดํ•˜๊ธฐ ์‰ฝ๋‹ค๊ณ  ํ•˜๋„ค์š”.

10.3 ์ค‘์ฒฉ ์กฐ๊ฑด๋ฌธ์„ ๋ณดํ˜ธ ๊ตฌ๋ฌธ์œผ๋กœ ๋ฐ”๊พธ๊ธฐ

p. 360

function getPayAmount() {
  if (isDead) return deadAmount();
  if (isSeparated) return separatedAmount();
  if (isRetired) return retiredAmount();
  return normalPayAmount();
}

๐Ÿ’ก ์˜๊ฒฌ

  • ์—ด ๋ฒˆ ๋“ฃ๋Š” ๊ฒƒ๋ณด๋‹ค ํ•œ ๋ฒˆ ๋ณด๋Š” ๊ฒƒ์ด ๋” ๋‚ซ๋‹ค๊ณ  ํ•˜๋Š”๋ฐ ์ด ์ฝ”๋“œ๋Š” ์ง๊ด€์ ์ด๋ผ ๊ธฐ์–ตํ•˜๊ธฐ ์‰ฌ์šธ ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค.

p. 361

๋‘ ๋ฒˆ์งธ ๊ฒ€์‚ฌ ํ˜•ํƒœ๋ฅผ ํ”ํžˆ ๋ณดํ˜ธ ๊ตฌ๋ฌธguard clause์ด๋ผ๊ณ  ํ•œ๋‹ค.

์ด์™€ ๋‹ฌ๋ฆฌ, ๋ณดํ˜ธ ๊ตฌ๋ฌธ์€ "์ด๊ฑด ์ด ํ•จ์ˆ˜์˜ ํ•ต์‹ฌ์ด ์•„๋‹ˆ๋‹ค. ์ด ์ผ์ด ์ผ์–ด๋‚˜๋ฉด ๋ฌด์–ธ๊ฐ€ ์กฐ์น˜๋ฅผ ์ทจํ•œ ํ›„ ํ•จ์ˆ˜์—์„œ ๋น ์ ธ๋‚˜์˜จ๋‹ค"๋ผ๊ณ  ์ด์•ผ๊ธฐํ•œ๋‹ค.

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

p. 363

์˜ˆ์‹œ: ์กฐ๊ฑด ๋ฐ˜๋Œ€๋กœ ๋งŒ๋“ค๊ธฐ

<๋ฆฌํŒฉํ„ฐ๋ง ์ „>

function adjustedCapital(anInstrument) {
  let result = 0;
  if (anInstrument.capital > 0) {
    if (anInstrument.interestRate > 0 && anInstrument.duration > 0) {
      result =
        (anInstrument.income / anInstrument.duration) *
        anInstrument.adjustmentFactor;
    }
  }
  return result;
}

<๋ฆฌํŒฉํ„ฐ๋ง ํ›„>

function adjustedCapital(anInstrument) {
  if (
    anInstrument.capital <= 0 ||
    anInstrument.interestRate <= 0 ||
    anInstrument.duration <= 0
  )
    return 0;
  return (
    (anInstrument.income / anInstrument.duration) *
    anInstrument.adjustmentFactor
  );
}

๐Ÿ’ก ์˜๊ฒฌ

  • ์˜ˆ์‹œ์—์„œ AND ์กฐ๊ฑด์„ NOT์œผ๋กœ ๋ฌถ์€ ๋‹ค์Œ ๋‹ค์‹œ ํ’€์–ด์„œ ํ†ตํ•ฉํ•˜๋Š” ๋ฐฉ์‹์— ๊ฐํƒ„ํ–ˆ์Šต๋‹ˆ๋‹ค.
  • ์‹ค๋ฌด์—์„œ ์ด๋Ÿฐ ์ค‘์ฒฉ๋œ if๋ฌธ์„ ์ข…์ข… ๋งŒ๋‚˜๋Š”๋ฐ ์ฒ˜๋ฆฌํ•˜๋Š” ๊ณผ์ •์ด ์ธ์ƒ ๊นŠ์—ˆ์Šต๋‹ˆ๋‹ค.

10.4 ์กฐ๊ฑด๋ถ€ ๋กœ์ง์„ ๋‹คํ˜•์„ฑ์œผ๋กœ ๋ฐ”๊พธ๊ธฐ

p. 367

ํƒ€์ž…์„ ์—ฌ๋Ÿฌ ๊ฐœ ๋งŒ๋“ค๊ณ  ๊ฐ ํƒ€์ž…์ด ์กฐ๊ฑด๋ถ€ ๋กœ์ง์„ ์ž์‹ ๋งŒ์˜ ๋ฐฉ์‹์œผ๋กœ ์ฒ˜๋ฆฌํ•˜๋„๋ก ๊ตฌ์„ฑํ•˜๋Š” ๋ฐฉ๋ฒ•์ด ์žˆ๋‹ค.

๊ธฐ๋ณธ ๋™์ž‘์„ ์œ„ํ•œ case๋ฌธ๊ณผ ๊ทธ ๋ณ€ํ˜• ๋™์ž‘์œผ๋กœ ๊ตฌ์„ฑ๋œ ๋กœ์ง์„ ๋– ์˜ฌ๋ฆด ์ˆ˜ ์žˆ๋‹ค.

๋‹คํ˜•์„ฑ์€ ๊ฐ์ฒด ์ง€ํ–ฅ ํ”„๋กœ๊ทธ๋ž˜๋ฐ์˜ ํ•ต์‹ฌ์ด๋‹ค. ํ•˜์ง€๋งŒ (์œ ์šฉํ•œ ๊ธฐ๋Šฅ๋“ค์ด ๋Š˜ ๊ทธ๋ ‡๋“ฏ) ๋‚จ์šฉํ•˜๊ธฐ ์‰ฝ๋‹ค. ์‹ค์ œ๋กœ ๋ชจ๋“  ์กฐ๊ฑด๋ถ€ ๋กœ์ง์„ ๋‹คํ˜•์„ฑ์œผ๋กœ ๋Œ€์ฒดํ•ด์•ผ ํ•œ๋‹ค๊ณ  ์ฃผ์žฅํ•˜๋Š” ์‚ฌ๋žŒ๋„ ๋งŒ๋‚œ ์ ์ด ์žˆ๋‹ค. ๋‚˜๋Š” ๊ทธ ๊ฒฌํ•ด์—๋Š” ๋™์˜ํ•˜์ง€ ์•Š๋Š”๋‹ค. ์กฐ๊ฑด๋ถ€ ๋กœ์ง ๋Œ€๋ถ€๋ถ„์€ ๊ธฐ๋ณธ ์กฐ๊ฑด๋ฌธ์ธ if/else์™€ switch/case๋กœ ์ด๋ค„์ง€๊ธฐ ๋•Œ๋ฌธ์ด๋‹ค. ํ•˜์ง€๋งŒ ์•ž์„œ ์ด์•ผ๊ธฐํ•œ ๋ฐฉ๋ฒ•๋“ค๋กœ ๊ฐœ์„ ํ•  ์ˆ˜ ์žˆ๋Š” ๋ณต์žกํ•œ ์กฐ๊ฑด๋ถ€ ๋กœ์ง์„ ๋ฐœ๊ฒฌํ•˜๋ฉด ๋‹คํ˜•์„ฑ์ด ๋ง‰๊ฐ•ํ•œ ๋„๊ตฌ์ž„์„ ๊นจ๋‹ซ๊ฒŒ ๋œ๋‹ค.

p. 375

์˜ˆ์‹œ: ๋ณ€ํ˜• ๋™์ž‘์„ ๋‹คํ˜•์„ฑ์œผ๋กœ ํ‘œํ˜„ํ•˜๊ธฐ

๐Ÿ’ก ์˜๊ฒฌ

  • ์ด๋ฒˆ ์˜ˆ์‹œ ์ฝ”๋“œ๋Š” ์‹ค๋ฌด์— ๊ฐ€์žฅ ๊ฐ€๊นŒ์šด ์ฝ”๋“œ๋ผ ๋งŽ์€ ๋„์›€์ด ๋œ ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค.

p. 377

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

p. 379

๊ทธ๋Ÿฐ ๋‹ค์Œ ์ ์ ˆํ•œ ๋ณ€ํ˜• ํด๋ž˜์Šค๋ฅผ ๋ฐ˜ํ™˜ํ•ด์ค„ ํŒฉํ„ฐ๋ฆฌ ํ•จ์ˆ˜๋ฅผ ๋งŒ๋“ ๋‹ค.

๐Ÿ’ก ์˜๊ฒฌ

  • ํŒฉํ„ฐ๋ฆฌ ํ•จ์ˆ˜๋ž€ ์–ด๋–ค ํ•จ์ˆ˜๊ฐ€ ๊ฐ์ฒด๋ฅผ ๋ฐ˜ํ™˜ํ•˜๋Š” ํ•จ์ˆ˜๋ฅผ ๋œปํ•œ๋‹ค๊ณ  ํ•ฉ๋‹ˆ๋‹ค. ์ด๋Ÿฐ ํŒจํ„ด๋„ ์žˆ๊ตฌ๋‚˜ ํ•˜๊ณ  ์ƒ๊ฐํ–ˆ์Šต๋‹ˆ๋‹ค.

10.5 ํŠน์ด ์ผ€์ด์Šค ์ถ”๊ฐ€ํ•˜๊ธฐ

p. 388

์ด์ฒ˜๋Ÿผ ์ฝ”๋“œ๋ฒ ์ด์Šค์—์„œ ํŠน์ • ๊ฐ’์— ๋Œ€ํ•ด ๋˜‘๊ฐ™์ด ๋ฐ˜์‘ํ•˜๋Š” ์ฝ”๋“œ๊ฐ€ ์—ฌ๋Ÿฌ ๊ณณ์ด๋ผ๋ฉด ๊ทธ ๋ฐ˜์‘๋“ค์„ ํ•œ ๋ฐ๋กœ ๋ชจ์œผ๋Š” ๊ฒŒ ํšจ์œจ์ ์ด๋‹ค.

ํŠน์ˆ˜ํ•œ ๊ฒฝ์šฐ์˜ ๊ณตํ†ต ๋™์ž‘์„ ์š”์†Œ ํ•˜๋‚˜์— ๋ชจ์•„์„œ ์‚ฌ์šฉํ•˜๋Š” ํŠน์ด ์ผ€์ด์Šค ํŒจํ„ดSpecial Case Pattern์ด๋ผ๋Š” ๊ฒƒ

ํŠน์ด ์ผ€์ด์Šค๋Š” ์—ฌ๋Ÿฌ ํ˜•ํƒœ๋กœ ํ‘œํ˜„ํ•  ์ˆ˜ ์žˆ๋‹ค. ํŠน์ด ์ผ€์ด์Šค ๊ฐ์ฒด์—์„œ ๋‹จ์ˆœํžˆ ๋ฐ์ดํ„ฐ๋ฅผ ์ฝ๊ธฐ๋งŒ ํ•œ๋‹ค๋ฉด ๋ฐ˜ํ™˜ํ•  ๊ฐ’๋“ค์„ ๋‹ด์€ ๋ฆฌํ„ฐ๋Ÿด ๊ฐ์ฒด ํ˜•ํƒœ๋กœ ์ค€๋น„ํ•˜๋ฉด ๋œ๋‹ค. ๊ทธ ์ด์ƒ์˜ ์–ด๋–ค ๋™์ž‘์„ ์ˆ˜ํ–‰ํ•ด์•ผ ํ•œ๋‹ค๋ฉด ํ•„์š”ํ•œ ๋ฉ”์„œ๋“œ๋ฅผ ๋‹ด์€ ๊ฐ์ฒด๋ฅผ ์ƒ์„ฑํ•˜๋ฉด ๋œ๋‹ค.

p. 389

์ด๋ฒˆ ๋ฆฌํŒฉํ„ฐ๋ง์˜ ๋Œ€์ƒ์ด ๋  ์†์„ฑ์„ ๋‹ด์€ ๋ฐ์ดํ„ฐ ๊ตฌ์กฐ(ํ˜น์€ ํด๋ž˜์Šค)์—์„œ ์‹œ์ž‘ํ•˜์ž.

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

p. 391

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

๐Ÿ’ก ์˜๊ฒฌ

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

p. 398

์˜ˆ์‹œ: ๋ณ€ํ™˜ ํ•จ์ˆ˜ ์ด์šฉํ•˜๊ธฐ

์•ž์˜ ๋‘ ์˜ˆ๋Š” ๋ชจ๋‘ ํด๋ž˜์Šค์™€ ๊ด€๋ จ ์žˆ์ง€๋งŒ, ๋ณ€ํ™˜ ๋‹จ๊ณ„๋ฅผ ์ถ”๊ฐ€ํ•˜๋ฉด ๊ฐ™์€ ์•„์ด๋””์–ด๋ฅผ ๋ ˆ์ฝ”๋“œ์—๋„ ์ ์šฉํ•  ์ˆ˜ ์žˆ๋‹ค.

๐Ÿ’ก ์˜๊ฒฌ

  • ์ด์ „ ์˜ˆ์‹œ์™€ ๋‹ค๋ฅด๊ฒŒ ํ•จ์ˆ˜๋กœ ๋ฆฌํŒฉํ„ฐ๋งํ•˜๋Š” ๊ณผ์ •์„ ๋ณด์—ฌ์ฃผ๊ณ  ์žˆ๋Š”๋ฐ ์ผ๋ถ€ ํ”„๋กœํผํ‹ฐ๋งŒ ๋ฐ˜ํ™˜ํ•˜๋Š” ๋ฐฉ์‹์„ ์ธ์ƒ ๊นŠ๊ฒŒ ๋ดค์Šต๋‹ˆ๋‹ค.

10.6 ์–ด์„œ์…˜ ์ถ”๊ฐ€ํ•˜๊ธฐ

p. 404

์–ด์„œ์…˜์€ ํ•ญ์ƒ ์ฐธ์ด๋ผ๊ณ  ๊ฐ€์ •ํ•˜๋Š” ์กฐ๊ฑด๋ถ€ ๋ฌธ์žฅ

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

๋‹จ์œ„ ํ…Œ์ŠคํŠธ๋ฅผ ๊พธ์ค€ํžˆ ์ถ”๊ฐ€ํ•˜์—ฌ ์‚ฌ๊ฐ์„ ์ขํžˆ๋ฉด ์–ด์„œ์…˜๋ณด๋‹ค ๋‚˜์„ ๋•Œ๊ฐ€ ๋งŽ๋‹ค. ํ•˜์ง€๋งŒ ์†Œํ†ต ์ธก๋ฉด์—์„œ๋Š” ์–ด์„œ์…˜์ด ์—ฌ์ „ํžˆ ๋งค๋ ฅ์ ์ด๋‹ค.

p. 406

ํ•œํŽธ ์–ด์„œ์…˜์„ ๋‚จ๋ฐœํ•˜๋Š” ๊ฒƒ ์—ญ์‹œ ์œ„ํ—˜ํ•˜๋‹ค. ๋‚˜๋Š” ์ฐธ์ด๋ผ๊ณ  ์ƒ๊ฐํ•˜๋Š” ๊ฐ€์ • ๋ชจ๋‘์— ์–ด์„œ์…˜์„ ๋‹ฌ์ง€๋Š” ์•Š๋Š”๋‹ค. '๋ฐ˜๋“œ์‹œ ์ฐธ์ด์–ด์•ผ๋งŒ ํ•˜๋Š”' ๊ฒƒ๋งŒ ๊ฒ€์‚ฌํ•œ๋‹ค.

๐Ÿ’ก ์˜๊ฒฌ

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

10.7 ์ œ์–ด ํ”Œ๋ž˜๊ทธ๋ฅผ ํƒˆ์ถœ๋ฌธ์œผ๋กœ ๋ฐ”๊พธ๊ธฐ

p. 407

์ œ์–ด ํ”Œ๋ž˜๊ทธ๋ž€ ์ฝ”๋“œ์˜ ๋™์ž‘์„ ๋ณ€๊ฒฝํ•˜๋Š” ๋ฐ ์‚ฌ์šฉ๋˜๋Š” ๋ณ€์ˆ˜๋ฅผ ๋งํ•˜๋ฉฐ, ์–ด๋”˜๊ฐ€์—์„œ ๊ฐ’์„ ๊ณ„์‚ฐํ•ด ์ œ์–ด ํ”Œ๋ž˜๊ทธ์— ์„ค์ •ํ•œ ํ›„ ๋‹ค๋ฅธ ์–ด๋”˜๊ฐ€์˜ ์กฐ๊ฑด๋ฌธ์—์„œ ๊ฒ€์‚ฌํ•˜๋Š” ํ˜•ํƒœ๋กœ ์“ฐ์ธ๋‹ค.

ํ•จ์ˆ˜์—์„œ ํ•  ์ผ์„ ๋‹ค ๋งˆ์ณค๋‹ค๋ฉด ๊ทธ ์‚ฌ์‹ค์„ return๋ฌธ์œผ๋กœ ๋ช…ํ™•ํžˆ ์•Œ๋ฆฌ๋Š” ํŽธ์ด ๋‚ซ์ง€ ์•Š์„๊นŒ?

p. 410

๊ทธ๋ฆฌ๊ณ  ์ด ์ฝ”๋“œ๋ฅผ ๋ณด๊ณ  ์žˆ์ž๋‹ˆ, ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ๋„ ์–ด์„œ ๋‹ค์Œ๊ณผ ๊ฐ™์€ ๊ทผ์‚ฌํ•œ ์ง‘ํ•ฉ ์—ฐ์‚ฐ์„ ์ง€์›ํ•ด์คฌ์œผ๋ฉด ํ•˜๋Š” ๋งˆ์Œ์ด ๊ฐ„์ ˆํ•ด์ง„๋‹ค.

['์กฐ์ปค', '์‚ฌ๋ฃจ๋งŒ'].isDisjointWith(people);

๐Ÿ’ก ์˜๊ฒฌ

  • ์›๋ž˜ ์ฝ”๋“œ๋ณด๋‹ค ์ง‘ํ•ฉ ์—ฐ์‚ฐ์„ ์“ด ์œ„ ์ฝ”๋“œ๊ฐ€ ์ฐธ ๊น”๋”ํ•œ๋ฐ์š”. ์ด๋Ÿฐ ํ•จ์ˆ˜๊ฐ€ ์žˆ์—ˆ์œผ๋ฉด ์ข‹๊ฒ ๋‹ค๊ณ  ์ƒ๊ฐํ–ˆ์Šต๋‹ˆ๋‹ค.
  • ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ ์“ฐ๋ฉด์„œ ๋‹ค๋ฅธ ์–ธ์–ด์— ์žˆ๋Š” ๊ธฐ๋Šฅ์ด ์žˆ์œผ๋ฉด ์ข‹๊ฒ ๋‹ค๊ณ  ์ƒ๊ฐํ•œ ์  ์žˆ์œผ์‹ ๊ฐ€์š”? ์˜ˆ๋ฅผ ๋“ค์–ด, ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ์—์„œ๋Š” ์ž…์ถœ๋ ฅ์ด ์‰ฝ์ง€ ์•Š์•˜๋˜ ๊ฒฝํ—˜์ด ์žˆ์Šต๋‹ˆ๋‹ค.
  • a[:3]์ฒ˜๋Ÿผ ์Šฌ๋ผ์ด์Šค ๋ฌธ๋ฒ•์ด ์žˆ์œผ๋ฉด ์ข‹๊ฒ ๋‹ค๊ณ  ์ƒ๊ฐํ–ˆ์–ด์š”.
  • a[-1] ๊ฐ™์€ ๋ฌธ๋ฒ•๋„ ์žˆ์œผ๋ฉด ์ข‹๊ฒ ์–ด์š”. a.at(-1)์„ ์“ฐ๋ฉด ๊ฐ€๋Šฅํ•˜๋‹ค๊ณ  ํ•˜๋Š”๋ฐ ์ตœ์‹  ๋ฌธ๋ฒ•์ด๋ผ ์‚ฌ์šฉํ•˜์ง€ ๋ชปํ•˜๋Š” ๊ฒฝ์šฐ๋„ ์žˆ์–ด์š”.
  • ๋ฌธ์ž์—ด์„ ๋ฐฐ์—ด์ฒ˜๋Ÿผ ๋‹ค๋ฃฐ ์ˆ˜ ์žˆ๋Š” ๊ฑด ํŽธํ•ด์š”. Java๋Š” ๋ฌธ์ž์—ด์„ ๋‹ค๋ฃจ๊ธฐ ์–ด๋ ค์›Œ์„œ ์ฝ”๋”ฉ ํ…Œ์ŠคํŠธ ๋ณผ ๋•Œ ๋ฌธ์ž์—ด ๊ด€๋ จ ๋ฌธ์ œ๋Š” Java ๋ง๊ณ  ๋‹ค๋ฅธ ์–ธ์–ด๋กœ ํ‘ผ๋‹ค๊ณ  ํ•˜์‹œ๋Š” ๋ถ„๋„ ์žˆ๋”๋ผ๊ณ ์š”.
  • ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ์—์„œ๋Š” Array.length = 3๊ณผ ๊ฐ™์€ ๋ฐฉ์‹์œผ๋กœ ๋ฐฐ์—ด์—์„œ ์š”์†Œ๋ฅผ ์ œ๊ฑฐํ•  ์ˆ˜๋„ ์žˆ๋Š”๋ฐ ๋‹ค๋ฅธ ์–ธ์–ด์—์„œ๋Š” ๋ง๋„ ์•ˆ ๋˜๋Š” ์ผ์ธ ๊ฒฝ์šฐ๋„ ์žˆ์Šต๋‹ˆ๋‹ค.

โฌ…๏ธ 9์žฅ | โฌ†๏ธ ์œ„๋กœ | 11์žฅ โžก๏ธ