Skip to content

Latest commit

ย 

History

History

ch09

โฌ…๏ธ 8์žฅ | 10์žฅ โžก๏ธ

9์žฅ ๋ฐ์ดํ„ฐ ์กฐ์งํ™”


Note

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

  1. ์–ด๋–ค ๊ฒฝ์šฐ์— ๋ฐ์ดํ„ฐ๋ฅผ ์ชผ๊ฐœ์•ผ ํ•˜๋Š”๊ฐ€
  2. ๊ฐ€๋ณ€ ๋ฐ์ดํ„ฐ์˜ ์œ ํšจ ๋ฒ”์œ„๋ฅผ ์–ด๋–ป๊ฒŒ ์ค„์ผ ์ˆ˜ ์žˆ๋Š”๊ฐ€
  3. ๋ฐ์ดํ„ฐ๋ฅผ ์ฐธ์กฐ๋กœ ๋‹ค๋ค„์•ผ ํ•˜๋Š”๊ฐ€ ๊ฐ’์œผ๋กœ ๋‹ค๋ค„์•ผ ํ•˜๋Š”๊ฐ€

p.329

๋ฐ์ดํ„ฐ ๊ตฌ์กฐ์— ์ง‘์ค‘ํ•œ ๋ฆฌํŒฉํ„ฐ๋ง

ํ•˜๋‚˜์˜ ๊ฐ’์ด ์—ฌ๋Ÿฌ ๋ชฉ์ ์œผ๋กœ ์‚ฌ์šฉ๋œ๋‹ค๋ฉด ํ˜ผ๋ž€๊ณผ ๋ฒ„๊ทธ๋ฅผ ๋‚ณ๋Š”๋‹ค. ๊ทธ๋Ÿฌ๋‹ˆ ์ด๋Ÿฐ ์ฝ”๋“œ๋ฅผ ๋ฐœ๊ฒฌํ•˜๋ฉด ๋ณ€์ˆ˜ ์ชผ๊ฐœ๊ธฐ๋ฅผ ์ ์šฉํ•ด ์šฉ๋„๋ณ„๋กœ ๋ถ„๋ฆฌํ•˜์ž.

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


9.1 ๋ณ€์ˆ˜ ์ชผ๊ฐœ๊ธฐ

p.330

๋Œ€์ž…์ด ๋‘ ๋ฒˆ ์ด์ƒ ์ด๋ค„์ง„๋‹ค๋ฉด ์—ฌ๋Ÿฌ ๊ฐ€์ง€ ์—ญํ• ์„ ์ˆ˜ํ–‰ํ•œ๋‹ค๋Š” ์‹ ํ˜ธ๋‹ค. ์—ญํ• ์ด ๋‘˜ ์ด์ƒ์ธ ๋ณ€์ˆ˜๊ฐ€ ์žˆ๋‹ค๋ฉด ์ชผ๊ฐœ์•ผ ํ•œ๋‹ค.

์—ญํ•  ํ•˜๋‚˜๋‹น ๋ณ€์ˆ˜ ํ•˜๋‚˜๋‹ค.

p.331

acc ๋ณ€์ˆ˜์— ๊ฐ’์ด ๋‘ ๋ฒˆ ๋Œ€์ž…๋œ๋‹ค๋Š” ์ ์ด๋‹ค.

function distanceTravelled(scenario, time) {
  let result;
- let acc = scenario.primaryForce / scenario.mass; // ๊ฐ€์†๋„(a) = ํž˜(F) / ์งˆ๋Ÿ‰(m)
  let primaryTime = Math.min(time, scenario.delay);
  result = 0.5 * acc * primaryTime * primaryTime; // ์ „ํŒŒ๋œ ๊ฑฐ๋ฆฌ
  let secondaryTime = time - scenario.delay;
  // ๋‘ ๋ฒˆ์งธ ํž˜์„ ๋ฐ˜์˜ํ•ด ๋‹ค์‹œ ๊ณ„์‚ฐ
  if (secondaryTime > 0) {
    let primaryVelocity = acc * scenario.delay;
-   acc = (scenario.primaryForce + scenario.secondaryForce) / scenario.mass;
    result +=
      primaryVelocity * secondaryTime +
      0.5 * acc * secondaryTime * secondaryTime;
  }
  return result;
}
  1. ๋ณ€์ˆ˜์— ์ƒˆ๋กœ์šด ์ด๋ฆ„์„ ์ง€์–ด์ฃผ๊ณ 
  2. ์„ ์–ธ ์‹œ const๋ฅผ ๋ถ™์—ฌ ๋ถˆ๋ณ€์œผ๋กœ ๋งŒ๋“ ๋‹ค.
  3. ๊ทธ๋Ÿฐ ๋‹ค์Œ ๋‘ ๋ฒˆ์งธ ๋Œ€์ž… ์ „๊นŒ์ง€์˜ ๋ชจ๋“  ์ฐธ์กฐ๋ฅผ ์ƒˆ๋กœ์šด ์ด๋ฆ„์œผ๋กœ ๋ฐ”๊พผ๋‹ค.
  4. ๊ทธ๋ฆฌ๊ณ  ๋‘ ๋ฒˆ์งธ๋กœ ๋Œ€์ž…ํ•  ๋•Œ ๋ณ€์ˆ˜๋ฅผ ๋‹ค์‹œ ์„ ์–ธํ•œ๋‹ค.

p.333

์‚ฌ์‹ค ์–ด๋–ค ๋ณ€์ˆ˜๋ฅผ ์จ๋„ ๋˜‘๊ฐ™์ด ๋™์ž‘ํ•˜์ง€๋งŒ, ์ด ์ฝ”๋“œ๊ฐ€ ์ž…๋ ฅ ๊ฐ’์— ๊ธฐ์ดˆํ•˜์—ฌ ๊ฒฐ๊ณผ๊ฐ’์„ ๋ˆ„์ ํ•ด ๊ณ„์‚ฐํ•œ๋‹ค๋Š” ์‚ฌ์‹ค์„ ๋” ๋ช…ํ™•ํžˆ ๋“œ๋Ÿฌ๋‚ธ ๊ฒƒ์ด๋‹ค. (์ฝ”๋“œ)


9.2 ํ•„๋“œ ์ด๋ฆ„ ๋น„๊พธ๊ธฐ

p.334

ํ”„๋กœ๊ทธ๋žจ ๊ณณ๊ณณ์—์„œ ์“ฐ์ด๋Š” ๋ ˆ์ฝ”๋“œ ๊ตฌ์กฐ์ฒด์˜ ํ•„๋“œ ์ด๋ฆ„๋“ค์€ ํŠนํžˆ ๋” ์ค‘์š”ํ•˜๋‹ค. ๋ฐ์ดํ„ฐ ๊ตฌ์กฐ๋Š” ํ”„๋กœ๊ทธ๋žจ์„ ์ดํ•ดํ•˜๋Š” ๋ฐ ํฐ ์—ญํ• ์„ ํ•œ๋‹ค.

๋‹ค๋ฅธ ์š”์†Œ์™€ ๋งˆ์ฐฌ๊ฐ€์ง€๋กœ ๊ฐœ๋ฐœ์„ ์ง„ํ–‰ํ• ์ˆ˜๋ก ๋ฐ์ดํ„ฐ๋ฅผ ๋” ์ž˜ ์ดํ•ดํ•˜๊ฒŒ ๋œ๋‹ค. ๋”ฐ๋ผ์„œ ๊ทธ ๊นŠ์–ด์ง„ ์ดํ•ด๋ฅผ ํ”„๋กœ๊ทธ๋žจ์— ๋ฐ˜๋“œ์‹œ ๋ฐ˜์˜ํ•ด์•ผ ํ•œ๋‹ค.

9.3 ํŒŒ์ƒ ๋ณ€์ˆ˜๋ฅผ ์งˆ์˜ ํ•จ์ˆ˜๋กœ ๋ฐ”๊พธ๊ธฐ

p.338

๊ทธ๋ ‡๋‹ค๊ณ  ๊ฐ€๋ณ€ ๋ฐ์ดํ„ฐ๋ฅผ ์™„์ „ํžˆ ๋ฐฐ์ œํ•˜๊ธฐ๋ž€ ํ˜„์‹ค์ ์œผ๋กœ ๋ถˆ๊ฐ€๋Šฅํ•  ๋•Œ๊ฐ€ ๋งŽ์ง€๋งŒ, ๊ฐ€๋ณ€ ๋ฐ์ดํ„ฐ์˜ ์œ ํšจ ๋ฒ”์œ„๋ฅผ ๊ฐ€๋Šฅํ•œ ํ•œ ์ขํ˜€์•ผ ํ•œ๋‹ค๊ณ  ํž˜์ฃผ์–ด ์ฃผ์žฅํ•ด๋ณธ๋‹ค.

๊ณ„์‚ฐ ๊ณผ์ •์„ ๋ณด์—ฌ์ฃผ๋Š” ์ฝ”๋“œ ์ž์ฒด๊ฐ€ ๋ฐ์ดํ„ฐ์˜ ์˜๋ฏธ๋ฅผ ๋” ๋ถ„๋ช…ํžˆ ๋“œ๋Ÿฌ๋‚ด๋Š” ๊ฒฝ์šฐ๋„ ์ž์ฃผ ์žˆ์œผ๋ฉฐ ๋ณ€๊ฒฝ๋œ ๊ฐ’์„ ๊นœ๋นกํ•˜๊ณ  ๊ฒฐ๊ณผ ๋ณ€์ˆ˜์— ๋ฐ˜์˜ํ•˜์ง€ ์•Š๋Š” ์‹ค์ˆ˜๋ฅผ ๋ง‰์•„์ค€๋‹ค.

์—ฌ๊ธฐ์—๋Š” ํ•ฉ๋‹นํ•œ ์˜ˆ์™ธ๊ฐ€ ์žˆ๋‹ค. ํ”ผ์—ฐ์‚ฐ์ž ๋ฐ์ดํ„ฐ๊ฐ€ ๋ถˆ๋ณ€์ด๋ผ๋ฉด ๊ณ„์‚ฐ ๊ฒฐ๊ณผ๋„ ์ผ์ •ํ•˜๋ฏ€๋กœ ์—ญ์‹œ ๋ถˆ๋ณ€์œผ๋กœ ๋งŒ๋“ค ์ˆ˜ ์žˆ๋‹ค. ๊ทธ๋ž˜์„œ ์ƒˆ๋กœ์šด ๋ฐ์ดํ„ฐ ๊ตฌ์กฐ๋ฅผ ์ƒ์„ฑํ•˜๋Š” ๋ณ€ํ˜• ์—ฐ์‚ฐtransformation operation์ด๋ผ๋ฉด ๋น„๋ก ๊ณ„์‚ฐ ์ฝ”๋“œ๋กœ ๋Œ€์ฒดํ•  ์ˆ˜ ์žˆ๋”๋ผ๋„ ๊ทธ๋Œ€๋กœ ๋‘๋Š” ๊ฒƒ๋„ ์ข‹๋‹ค.


9.4 ์ฐธ์กฐ๋ฅผ ๊ฐ’์œผ๋กœ ๋ฐ”๊พธ๊ธฐ

p.343

ํ•„๋“œ๋ฅผ ๊ฐ’์œผ๋กœ ๋‹ค๋ฃฌ๋‹ค๋ฉด ๋‚ด๋ถ€ ๊ฐ์ฒด์˜ ํด๋ž˜์Šค๋ฅผ ์ˆ˜์ •ํ•˜์—ฌ ๊ฐ’ ๊ฐ์ฒดValue Object๋กœ ๋งŒ๋“ค ์ˆ˜ ์žˆ๋‹ค. ๊ฐ’ ๊ฐ์ฒด๋Š” ๋Œ€์ฒด๋กœ ์ž์œ ๋กญ๊ฒŒ ํ™œ์šฉํ•˜๊ธฐ ์ข‹์€๋ฐ, ํŠนํžˆ ๋ถˆ๋ณ€์ด๊ธฐ ๋•Œ๋ฌธ์ด๋‹ค.

p.344

๊ทธ๋ž˜์„œ ๊ฐ’ ๊ฐ์ฒด๋Š” ๋ถ„์‚ฐ ์‹œ์Šคํ…œ๊ณผ ๋™์‹œ์„ฑ ์‹œ์Šคํ…œ์—์„œ ํŠนํžˆ ์œ ์šฉํ•˜๋‹ค.

p.346

์ด ํ…Œ์ŠคํŠธ์˜ ํ•ต์‹ฌ์€ ๋…๋ฆฝ๋œ ๊ฐ์ฒด๋ฅผ ๋‘ ๊ฐœ ์ƒ์„ฑํ•˜์—ฌ ๋™์น˜์„ฑ ๊ฒ€์‚ฌ๋ฅผ ์ˆ˜ํ–‰ํ–ˆ๋‹ค๋Š” ์ ์ด๋‹ค.

๐Ÿ’ก ์˜๊ฒฌ

์ฐธ์กฐ๋ฅผ ๋ณต์‚ฌํ•ด์•ผ ํ•˜๋Š” ์ผ์ด ์žˆ์—ˆ๋Š”๋ฐ, JSON.stringify์™€ JSON.parse๋ฅผ ์ˆœ์ฐจ์ ์œผ๋กœ ์‹คํ–‰ํ•ด์„œ ์ฐธ์กฐ๋ฅผ ๊ฐ’์œผ๋กœ ๋ฐ”๊ฟจ๋‹ค.


9.5 ๊ฐ’์„ ์ฐธ์กฐ๋กœ ๋ฐ”๊พธ๊ธฐ

p.347

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

p.348

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

p.349

๊ฐ์ฒด๋ฅผ ์–ด๋””์— ์ €์žฅํ•ด์•ผ ํ• ์ง€๋Š” ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์— ๋”ฐ๋ผ ๋‹ค๋ฅด๊ฒ ์ง€๋งŒ, ๊ฐ„๋‹จํ•œ ์ƒํ™ฉ์ด๋ผ๋ฉด ๋‚˜๋Š” ์ €์žฅ์†Œ ๊ฐ์ฒดrepository object๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ํŽธ์ด๋‹ค.

๐Ÿ’ก ์˜๊ฒฌ

์ €์žฅ์†Œ ๊ฐ์ฒด๋ผ๋Š” ๊ฒƒ์ด ์ „์—ญ store์™€ ๋น„์Šทํ•˜๊ฒŒ ๋Š๊ปด์กŒ๋‹ค.


9.6 ๋งค์ง ๋ฆฌํ„ฐ๋Ÿด ๋ฐ”๊พธ๊ธฐ

p.351

ํ•˜์ง€๋งŒ ์ฝ”๋“œ๋ฅผ ์ฝ๋Š” ์‚ฌ๋žŒ์ด ์ด ๊ฐ’์˜ ์˜๋ฏธ๋ฅผ ๋ชจ๋ฅธ๋‹ค๋ฉด ์ˆซ์ž ์ž์ฒด๋กœ๋Š” ์˜๋ฏธ๋ฅผ ๋ช…ํ™•ํžˆ ์•Œ๋ ค์ฃผ์ง€ ๋ชปํ•˜๋ฏ€๋กœ ๋งค์ง ๋ฆฌํ„ฐ๋Ÿด์ด๋ผ ํ•  ์ˆ˜ ์žˆ๋‹ค. ์˜๋ฏธ๋ฅผ ์•Œ๊ณ  ์žˆ๋‹ค๊ณ  ํ•ด๋„ ๊ฒฐ๊ตญ ๊ฐ์ž์˜ ๋จธ๋ฆฌ์—์„œ ํ•ด์„ํ•ด๋‚ธ ๊ฒƒ์ผ ๋ฟ์ด๋ผ์„œ, ์ด๋ณด๋‹ค๋Š” ์ฝ”๋“œ ์ž์ฒด๊ฐ€ ๋œป์„ ๋ถ„๋ช…ํ•˜๊ฒŒ ๋“œ๋Ÿฌ๋‚ด๋Š” ๊ฒŒ ์ข‹๋‹ค. ์ƒ์ˆ˜๋ฅผ ์ •์˜ํ•˜๊ณ  ์ˆซ์ž ๋Œ€์‹  ์ƒ์ˆ˜๋ฅผ ์‚ฌ์šฉํ•˜๋„๋ก ๋ฐ”๊พธ๋ฉด ๋  ๊ฒƒ์ด๋‹ค.

์ผ๋ฐ˜์ ์œผ๋กœ ํ•ด๋‹น ๊ฐ’์ด ์“ฐ์ด๋Š” ๋ชจ๋“  ๊ณณ์„ ์ ์ ˆํ•œ ์ด๋ฆ„์˜ ์ƒ์ˆ˜๋กœ ๋ฐ”๊ฟ”์ฃผ๋Š” ๋ฐฉ๋ฒ•์ด ๊ฐ€์žฅ ์ข‹๋‹ค.

์˜ˆ์ปจ๋ฐ ๋‚˜๋Š” aValue === "M"์„ aValue === MALE_GENDER๋กœ ๋ฐ”๊พธ๊ธฐ๋ณด๋‹ค isMale(aValue)๋ผ๋Š” ํ•จ์ˆ˜ ํ˜ธ์ถœ๋กœ ๋ฐ”๊พธ๋Š” ์ชฝ์„ ์„ ํ˜ธํ•œ๋‹ค.

p.352

๋ฐฉ๋ฒ•

  1. ์ƒ์ˆ˜๋ฅผ ์„ ์–ธํ•˜๊ณ  ๋งค์ง ๋ฆฌํ„ฐ๋Ÿด์„ ๋Œ€์ž…ํ•œ๋‹ค.
  2. ํ•ด๋‹น ๋ฆฌํ„ฐ๋Ÿด์ด ์‚ฌ์šฉ๋˜๋Š” ๊ณณ์„ ๋ชจ๋‘ ์ฐพ๋Š”๋‹ค.
  3. ์ฐพ์€ ๊ณณ ๊ฐ๊ฐ์—์„œ ๋ฆฌํ„ฐ๋Ÿด์ด ์ƒˆ ์ƒ์ˆ˜์™€ ๋˜‘๊ฐ™์€ ์˜๋ฏธ๋กœ ์“ฐ์˜€๋Š”์ง€ ํ™•์ธํ•˜์—ฌ, ๊ฐ™์€ ์˜๋ฏธ๋ผ๋ฉด ์ƒ์ˆ˜๋กœ ๋Œ€์ฒดํ•œ ํ›„ ํ…Œ์ŠคํŠธํ•œ๋‹ค.

โฌ…๏ธ 8์žฅ | โฌ†๏ธ ์œ„๋กœ | 10์žฅ โžก๏ธ