S06L05 – ๋ฐฉ๋ฒ•๊ณผ ํ•จ์ˆ˜

html

JavaScript์—์„œ Methods์™€ Functions ๋งˆ์Šคํ„ฐํ•˜๊ธฐ: ํฌ๊ด„์ ์ธ ๊ฐ€์ด๋“œ

๋ชฉ์ฐจ

์†Œ๊ฐœ

"JavaScript์—์„œ Methods์™€ Functions ๋งˆ์Šคํ„ฐํ•˜๊ธฐ"์— ์˜ค์‹  ๊ฒƒ์„ ํ™˜์˜ํ•ฉ๋‹ˆ๋‹ค. ์ด ๊ฐ€์ด๋“œ๋Š” JavaScript ํ”„๋กœ๊ทธ๋ž˜๋ฐ์—์„œ functions์™€ methods์˜ ํž˜์„ ์ดํ•ดํ•˜๊ณ  ํ™œ์šฉํ•  ์ˆ˜ ์žˆ๋„๋ก ๋„์™€์ค๋‹ˆ๋‹ค. ๊ธฐ์ดˆ๋ฅผ ์ดํ•ดํ•˜๊ณ ์ž ํ•˜๋Š” ์ดˆ๋ณด์ž๋“  ์ฝ”๋”ฉ ์‹ค๋ ฅ์„ ํ–ฅ์ƒ์‹œํ‚ค๋ ค๋Š” ๊ฐœ๋ฐœ์ž๋“ , ์ด eBook์€ ์ด๋Ÿฌํ•œ ํ•„์ˆ˜ ๊ฐœ๋…์— ๋Œ€ํ•œ ๋ช…ํ™•ํ•˜๊ณ  ๊ฐ„๊ฒฐํ•œ ํƒ๊ตฌ๋ฅผ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค.

์ด ๊ฐ€์ด๋“œ์—์„œ๋Š” ๋‹ค์Œ์„ ๋‹ค๋ฃฐ ๊ฒƒ์ž…๋‹ˆ๋‹ค:

  • functions์™€ methods์˜ ์ •์˜ ๋ฐ ๋ชฉ์ .
  • arrow functions๊ณผ regular functions์˜ ์ฐจ์ด.
  • ํ•จ์ˆ˜๋ฅผ ์ƒ์„ฑํ•˜๊ณ  ํ˜ธ์ถœํ•˜๋Š” ๋ฐฉ๋ฒ•.
  • methods์˜ ์ดํ•ด์™€ objects์—์˜ ์ ์šฉ.
  • ์ž์„ธํ•œ ์„ค๋ช…๊ณผ ์ฝ”๋“œ ์Šค๋‹ˆํŽซ์„ ํฌํ•จํ•œ ์‹ค์šฉ์ ์ธ ์˜ˆ์ œ.

์ด eBook์„ ๋๊นŒ์ง€ ์ฝ์œผ๋ฉด JavaScript ํ”„๋กœ์ ํŠธ์—์„œ functions์™€ methods๋ฅผ ํšจ๊ณผ์ ์œผ๋กœ ์‚ฌ์šฉํ•˜๋Š” ๋ฐ ํ•„์š”ํ•œ ํƒ„ํƒ„ํ•œ ๊ธฐ์ดˆ๋ฅผ ๊ฐ–์ถ”๊ฒŒ ๋  ๊ฒƒ์ž…๋‹ˆ๋‹ค.

JavaScript์—์„œ Functions ์ดํ•ดํ•˜๊ธฐ

Functions๋ž€?

Functions๋Š” JavaScript์˜ ํ•ต์‹ฌ ๋นŒ๋”ฉ ๋ธ”๋ก ์ค‘ ํ•˜๋‚˜์ž…๋‹ˆ๋‹ค. ํŠน์ • ์ž‘์—…์„ ์ˆ˜ํ–‰ํ•˜๋„๋ก ์„ค๊ณ„๋œ ์žฌ์‚ฌ์šฉ ๊ฐ€๋Šฅํ•œ ์ฝ”๋“œ ๋ธ”๋ก์ž…๋‹ˆ๋‹ค. Functions๋Š” ์ฝ”๋“œ๋ฅผ DRY(Don't Repeat Yourself)ํ•˜๊ฒŒ ์œ ์ง€ํ•˜๊ณ  ์กฐ์งํ™”ํ•˜๋Š” ๋ฐ ๋„์›€์ด ๋ฉ๋‹ˆ๋‹ค.

Functions์˜ ์ฃผ์š” ํŠน์„ฑ:

  • ์žฌ์‚ฌ์šฉ์„ฑ: ํ•œ ๋ฒˆ ์ž‘์„ฑํ•˜๊ณ  ์—ฌ๋Ÿฌ ๋ฒˆ ์‚ฌ์šฉ.
  • ๋ชจ๋“ˆ์„ฑ: ๋ณต์žกํ•œ ๋ฌธ์ œ๋ฅผ ๊ด€๋ฆฌ ๊ฐ€๋Šฅํ•œ ๋ถ€๋ถ„์œผ๋กœ ๋ถ„ํ•ด.
  • ์œ ์ง€๋ณด์ˆ˜์„ฑ: ๋””๋ฒ„๊น… ๋ฐ ์—…๋ฐ์ดํŠธ๊ฐ€ ์šฉ์ด.

Function์˜ ๊ธฐ๋ณธ ๊ตฌ๋ฌธ:

Arrow Functions ๋Œ€ Regular Functions

JavaScript๋Š” functions๋ฅผ ์ •์˜ํ•˜๋Š” ๋‘ ๊ฐ€์ง€ ์ฃผ์š” ๋ฐฉ๋ฒ•์„ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค: regular functions๊ณผ arrow functions. ์ด๋“ค ๊ฐ„์˜ ์ฐจ์ด๋ฅผ ์ดํ•ดํ•˜๋Š” ๊ฒƒ์€ ํšจ์œจ์ ์ด๊ณ  ์ฝ๊ธฐ ์‰ฌ์šด ์ฝ”๋“œ๋ฅผ ์ž‘์„ฑํ•˜๋Š” ๋ฐ ์ค‘์š”ํ•ฉ๋‹ˆ๋‹ค.

Regular Functions

Regular functions๋Š” function ํ‚ค์›Œ๋“œ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์ •์˜๋ฉ๋‹ˆ๋‹ค.

์˜ˆ์ œ:

ํŠน์„ฑ:

  • Hoisting: ์ฝ”๋“œ์—์„œ ์ •์˜๋˜๊ธฐ ์ „์— ํ˜ธ์ถœํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
  • Context (this): ํ˜ธ์ถœ๋˜๋Š” ๋ฐฉ์‹์— ๋”ฐ๋ผ ๋™์ ์œผ๋กœ ๊ฒฐ์ •๋ฉ๋‹ˆ๋‹ค.

Arrow Functions

Arrow functions๋Š” ๋” ๊ฐ„๊ฒฐํ•œ ๊ตฌ๋ฌธ์„ ์ œ๊ณตํ•˜๋ฉฐ regular functions์™€ ๋‹ค๋ฅธ ๋™์ž‘์„ ๊ฐ€์ง‘๋‹ˆ๋‹ค.

์˜ˆ์ œ:

ํŠน์„ฑ:

  • Hoisting ์—†์Œ: ์ •์˜๋˜๊ธฐ ์ „์— ํ˜ธ์ถœํ•  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค.
  • Lexical this: ์ฃผ๋ณ€ ์Šค์ฝ”ํ”„์—์„œ this๋ฅผ ์ƒ์†๋ฐ›์Šต๋‹ˆ๋‹ค.

๋น„๊ต ํ‘œ: Arrow Functions ๋Œ€ Regular Functions

ํŠน์ง• Regular Functions Arrow Functions
๊ตฌ๋ฌธ function functionName() {} const functionName = () => {}
Hoisting ์˜ˆ ์•„๋‹ˆ์˜ค
this Context ๋™์  Lexical (์ƒ์†๋จ)
Constructor ์‚ฌ์šฉ ์ƒ์„ฑ์ž๋กœ ์‚ฌ์šฉ ๊ฐ€๋Šฅ ์ƒ์„ฑ์ž๋กœ ์‚ฌ์šฉ ๋ถˆ๊ฐ€
arguments ๊ฐ์ฒด ์‚ฌ์šฉ ๊ฐ€๋Šฅ ์‚ฌ์šฉ ๋ถˆ๊ฐ€
๊ฐ„๊ฒฐ์„ฑ ๋” ์žฅํ™ฉํ•จ ๋” ๊ฐ„๊ฒฐํ•จ

Functions ํ˜ธ์ถœํ•˜๊ธฐ

Function์„ ํ˜ธ์ถœํ•˜๋Š” ๊ฒƒ์€ ์ด๋ฆ„์œผ๋กœ ํ˜ธ์ถœํ•˜๊ณ  ํ•„์š”ํ•œ ์ธ์ˆ˜๋ฅผ ์ „๋‹ฌํ•˜๋Š” ๊ฒƒ์„ ํฌํ•จํ•ฉ๋‹ˆ๋‹ค.

์˜ˆ์ œ:

Functions ์ง์ ‘ ํ˜ธ์ถœํ•˜๊ธฐ:

Functions๋Š” ๋‹ค๋ฅธ functions๋‚˜ methods ๋‚ด์—์„œ ์ง์ ‘ ํ˜ธ์ถœํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์˜ˆ์ œ:

Methods ์‹ฌํ™”

Methods๋ž€?

Methods๋Š” objects์™€ ์—ฐ๊ด€๋œ functions์ž…๋‹ˆ๋‹ค. ์ด๋“ค์€ ์ž์‹ ์ด ์†ํ•œ object์— ๋Œ€ํ•ด ์ˆ˜ํ–‰ํ•  ์ˆ˜ ์žˆ๋Š” ๋™์ž‘์„ ๋‚˜ํƒ€๋ƒ…๋‹ˆ๋‹ค.

์˜ˆ์ œ:

Functions์™€ Methods์˜ ์ฐจ์ด

Functions์™€ Methods๋Š” ํŠน์ • ์ž‘์—…์„ ์ˆ˜ํ–‰ํ•˜๋„๋ก ์„ค๊ณ„๋œ ์ฝ”๋“œ ๋ธ”๋ก์ด๋ผ๋Š” ์ ์—์„œ ์œ ์‚ฌํ•˜์ง€๋งŒ, ์ฃผ์š” ์ฐจ์ด๋Š” ๊ทธ๋“ค์˜ ์—ฐ๊ด€์„ฑ๊ณผ ํ˜ธ์ถœ ๋ฐฉ์‹์— ์žˆ์Šต๋‹ˆ๋‹ค.

์ธก๋ฉด Function Method
์—ฐ๊ด€์„ฑ ๋…๋ฆฝ์ , ์–ด๋–ค object์—๋„ ๋ฐ”์ธ๋”ฉ๋˜์ง€ ์•Š์Œ object์™€ ์—ฐ๊ด€๋จ
ํ˜ธ์ถœ ์ด๋ฆ„์œผ๋กœ ์ง์ ‘ ํ˜ธ์ถœ object์˜ ์  ํ‘œ๊ธฐ๋ฒ•์„ ์‚ฌ์šฉํ•˜์—ฌ ํ˜ธ์ถœ
Context (this) Function ํ˜ธ์ถœ ๋ฐฉ์‹์— ๋”ฐ๋ผ ๋‹ฌ๋ผ์ง ๋Œ€๊ฐœ method๊ฐ€ ์†ํ•œ object๋ฅผ ์ฐธ์กฐ
์‚ฌ์šฉ ์‚ฌ๋ก€ ์ผ๋ฐ˜์ ์ธ ์ž‘์—… ๊ด€๋ จ๋œ object์— ํŠน์ •ํ•œ ์ž‘์—…

Method์™€ Function์˜ ์˜ˆ์ œ:

์‹ค์šฉ์ ์ธ ์˜ˆ์ œ

Functions ์ƒ์„ฑ ๋ฐ ์‚ฌ์šฉํ•˜๊ธฐ

JavaScript์—์„œ arrow functions์™€ regular functions๋ฅผ ์ƒ์„ฑํ•˜๊ณ  ์‚ฌ์šฉํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ์‚ดํŽด๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค.

Arrow Function ์˜ˆ์ œ

์„ค๋ช…:

  1. ์ •์˜: add ํ•จ์ˆ˜๋Š” ๋‘ ๊ฐœ์˜ ๋งค๊ฐœ๋ณ€์ˆ˜ a์™€ b๋ฅผ ๋ฐ›๋Š” arrow function ๊ตฌ๋ฌธ์„ ์‚ฌ์šฉํ•˜์—ฌ ์ •์˜๋˜์—ˆ์Šต๋‹ˆ๋‹ค.
  2. Return ๋ฌธ: a์™€ b์˜ ํ•ฉ์„ ๋ฐ˜ํ™˜ํ•ฉ๋‹ˆ๋‹ค.
  3. ํ˜ธ์ถœ: ํ•จ์ˆ˜๋Š” 10๊ณผ 35๋ผ๋Š” ์ธ์ˆ˜๋กœ ํ˜ธ์ถœ๋˜๋ฉฐ, ๊ฒฐ๊ณผ๊ฐ€ ์ฝ˜์†”์— ๊ธฐ๋ก๋ฉ๋‹ˆ๋‹ค.

Regular Function ๋ณ€ํ™˜

์œ„์˜ arrow function์„ regular function์œผ๋กœ ๋ณ€ํ™˜ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค:

์ฃผ์š” ๋ณ€๊ฒฝ ์‚ฌํ•ญ:

  • arrow ๊ตฌ๋ฌธ์„ function ํ‚ค์›Œ๋“œ๋กœ ๊ต์ฒดํ–ˆ์Šต๋‹ˆ๋‹ค.
  • const ์„ ์–ธ์„ ์ œ๊ฑฐํ–ˆ์Šต๋‹ˆ๋‹ค.

Objects์— Methods ์ ์šฉํ•˜๊ธฐ

Methods๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด objects ๋‚ด์— ์บก์Šํ™”๋œ ๋ฐ์ดํ„ฐ์— ๋Œ€ํ•ด ์ž‘์—…์„ ์ˆ˜ํ–‰ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๋ฌธ์ž์—ด ์กฐ์ž‘์„ ์˜ˆ์ œ๋กœ ์‚ดํŽด๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค.

์„ค๋ช…:

  1. String Object: name์€ ๋ฌธ์ž์—ด ํ”„๋ฆฌ๋ฏธํ‹ฐ๋ธŒ์ž…๋‹ˆ๋‹ค. JavaScript์—์„œ ๋ฌธ์ž์—ด ํ”„๋ฆฌ๋ฏธํ‹ฐ๋ธŒ๋Š” methods๊ฐ€ ํ˜ธ์ถœ๋  ๋•Œ ์ž๋™์œผ๋กœ String ๊ฐ์ฒด๋กœ ๋ž˜ํ•‘๋ฉ๋‹ˆ๋‹ค.
  2. Method ํ˜ธ์ถœ: toUpperCase method๊ฐ€ name์— ํ˜ธ์ถœ๋˜์–ด ๋Œ€๋ฌธ์ž๋กœ ๋ณ€ํ™˜๋ฉ๋‹ˆ๋‹ค.
  3. ๊ฒฐ๊ณผ: ๋Œ€๋ฌธ์ž๋กœ ๋ณ€ํ™˜๋œ ๋ฌธ์ž์—ด์ด upperName์— ์ €์žฅ๋˜๊ณ  ์ฝ˜์†”์— ๊ธฐ๋ก๋ฉ๋‹ˆ๋‹ค.

์ฝ”๋“œ ๋‹จ๊ณ„๋ณ„ ๋ถ„์„

Functions์™€ Methods ๊ฒฐํ•ฉํ•˜๊ธฐ

Functions์™€ Methods๋ฅผ ํ•˜๋‚˜์˜ ์˜ˆ์ œ์— ๊ฒฐํ•ฉํ•˜์—ฌ ์–ด๋–ป๊ฒŒ ์ƒํ˜ธ ์ž‘์šฉํ•˜๋Š”์ง€ ์‚ดํŽด๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค.

์„ค๋ช…:

  1. Function ์ •์˜: concatenate ํ•จ์ˆ˜๋Š” ๋‘ ๊ฐœ์˜ ๋ฌธ์ž์—ด์„ ๋ฐ›์•„ ์ด๋ฅผ ์—ฐ๊ฒฐํ•ฉ๋‹ˆ๋‹ค.
  2. Function ํ˜ธ์ถœ ๋ฐ Method ํ˜ธ์ถœ: ํ•จ์ˆ˜๋Š” 'hello, '์™€ 'world'๋ผ๋Š” ์ธ์ˆ˜๋กœ ํ˜ธ์ถœ๋˜๊ณ , ๊ฒฐ๊ณผ ๋ฌธ์ž์—ด์€ ์ฆ‰์‹œ toUpperCase method์— ์ „๋‹ฌ๋ฉ๋‹ˆ๋‹ค.
  3. ๊ฒฐ๊ณผ: ์ตœ์ข… ๋Œ€๋ฌธ์ž ๋ฌธ์ž์—ด 'HELLO, WORLD'๊ฐ€ ์ฝ˜์†”์— ๊ธฐ๋ก๋ฉ๋‹ˆ๋‹ค.

๊ฒฐ๋ก 

์ด ํฌ๊ด„์ ์ธ ๊ฐ€์ด๋“œ์—์„œ๋Š” JavaScript์—์„œ functions์™€ methods์˜ ๊ธฐ๋ณธ ๊ฐœ๋…์„ ํƒ๊ตฌํ–ˆ์Šต๋‹ˆ๋‹ค. ๋…๋ฆฝ์ ์ธ functions์™€ object์™€ ์—ฐ๊ด€๋œ methods์˜ ์ฐจ์ด๋ฅผ ์ดํ•ดํ•˜๋Š” ๊ฒƒ์€ ๊นจ๋—ํ•˜๊ณ  ํšจ์œจ์ ์ด๋ฉฐ ์œ ์ง€๋ณด์ˆ˜ ๊ฐ€๋Šฅํ•œ ์ฝ”๋“œ๋ฅผ ์ž‘์„ฑํ•˜๋Š” ๋ฐ ์ค‘์š”ํ•ฉ๋‹ˆ๋‹ค.

์ฃผ์š” ์š”์•ฝ:

  • Functions๋Š” ํŠน์ • ์ž‘์—…์„ ์ˆ˜ํ–‰ํ•˜๋Š” ์žฌ์‚ฌ์šฉ ๊ฐ€๋Šฅํ•œ ์ฝ”๋“œ ๋ธ”๋ก์œผ๋กœ, regular ๋˜๋Š” arrow ๊ตฌ๋ฌธ์„ ์‚ฌ์šฉํ•˜์—ฌ ์ •์˜ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
  • Methods๋Š” objects์™€ ์—ฐ๊ด€๋œ functions๋กœ, object์˜ ๋ฐ์ดํ„ฐ์— ๋Œ€ํ•ด ์ž‘์—…์„ ์ˆ˜ํ–‰ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
  • Arrow Functions๋Š” ๋” ๊ฐ„๊ฒฐํ•œ ๊ตฌ๋ฌธ์„ ์ œ๊ณตํ•˜๋ฉฐ, lexical this ๋ฐ”์ธ๋”ฉ์„ ๊ฐ€์ง€๊ณ  ์žˆ์–ด ํŠน์ • ์‹œ๋‚˜๋ฆฌ์˜ค์— ์ ํ•ฉํ•ฉ๋‹ˆ๋‹ค.
  • Regular Functions๋Š” this ์ปจํ…์ŠคํŠธ์™€ ์ƒ์„ฑ์ž ์‚ฌ์šฉ์— ๋” ๋งŽ์€ ์œ ์—ฐ์„ฑ์„ ์ œ๊ณตํ•˜์—ฌ ๋‹ค์–‘ํ•œ ์ƒํ™ฉ์—์„œ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์ด๋Ÿฌํ•œ ๊ฐœ๋…์„ ๋งˆ์Šคํ„ฐํ•จ์œผ๋กœ์จ JavaScript ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์‹ค๋ ฅ์„ ํ–ฅ์ƒ์‹œ์ผœ ๋ณด๋‹ค ๊ฒฌ๊ณ ํ•˜๊ณ  ํ™•์žฅ ๊ฐ€๋Šฅํ•œ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ๊ฐœ๋ฐœํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์ฐธ๊ณ : ์ด ๊ฒŒ์‹œ๋ฌผ์€ AI์— ์˜ํ•ด ์ƒ์„ฑ๋˜์—ˆ์Šต๋‹ˆ๋‹ค.







Share your love