Responsive Advertisement

JavaScript Template Strings: ํ…œํ”Œ๋ฆฟ ๋ฌธ์ž์—ด์˜ ๊ฐœ๋…๊ณผ ํ™œ์šฉ๋ฒ•

JavaScript์—์„œ ํ…œํ”Œ๋ฆฟ ๋ฌธ์ž์—ด(Template Strings) ๋˜๋Š” ํ…œํ”Œ๋ฆฟ ๋ฆฌํ„ฐ๋Ÿด(Template Literals)์€ ES6(ECMAScript 2015)์—์„œ ๋„์ž…๋œ ๊ฐ•๋ ฅํ•œ ๊ธฐ๋Šฅ ์ค‘ ํ•˜๋‚˜๋กœ, ๋ฌธ์ž์—ด์„ ์ฒ˜๋ฆฌํ•˜๋Š” ๋ฐ ๋งค์šฐ ์œ ์šฉํ•ฉ๋‹ˆ๋‹ค. ํ…œํ”Œ๋ฆฟ ๋ฌธ์ž์—ด์„ ์‚ฌ์šฉํ•˜๋ฉด ์—ฌ๋Ÿฌ ์ค„์˜ ๋ฌธ์ž์—ด์„ ์‰ฝ๊ฒŒ ์ž‘์„ฑํ•˜๊ฑฐ๋‚˜, ๋ณ€์ˆ˜์™€ ํ‘œํ˜„์‹์„ ๋ฌธ์ž์—ด ๋‚ด์— ์‚ฝ์ž…ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ด ๊ธ€์—์„œ๋Š” JavaScript ํ…œํ”Œ๋ฆฟ ๋ฌธ์ž์—ด์˜ ๊ฐœ๋…๊ณผ ๋‹ค์–‘ํ•œ ํ™œ์šฉ ๋ฐฉ๋ฒ•์„ ์‚ดํŽด๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค.

ํ…œํ”Œ๋ฆฟ ๋ฌธ์ž์—ด(Template Strings)์ด๋ž€?

ํ…œํ”Œ๋ฆฟ ๋ฌธ์ž์—ด์€ ๊ธฐ์กด์˜ ์ž‘์€ ๋”ฐ์˜ดํ‘œ(')๋‚˜ ํฐ ๋”ฐ์˜ดํ‘œ(") ๋Œ€์‹ , ๋ฐฑํ‹ฑ(backtick, `)์œผ๋กœ ๊ฐ์‹ธ์„œ ์ž‘์„ฑํ•˜๋Š” ๋ฌธ์ž์—ด์ž…๋‹ˆ๋‹ค. ์ด๋ฅผ ํ†ตํ•ด ์ผ๋ฐ˜ ๋ฌธ์ž์—ด๋ณด๋‹ค ๋” ๋งŽ์€ ๊ธฐ๋Šฅ์„ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค.

let text = `์ด๊ฒƒ์€ ํ…œํ”Œ๋ฆฟ ๋ฌธ์ž์—ด์ž…๋‹ˆ๋‹ค!`;

ํ…œํ”Œ๋ฆฟ ๋ฌธ์ž์—ด์€ ๋‹ค์Œ๊ณผ ๊ฐ™์€ ์žฅ์ ๋“ค์„ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค:

  • ์—ฌ๋Ÿฌ ์ค„ ๋ฌธ์ž์—ด ์ž‘์„ฑ
  • ๋ฌธ์ž์—ด ๋‚ด์— ๋ณ€์ˆ˜์™€ ํ‘œํ˜„์‹ ์‚ฝ์ž…
  • ๊ฐ€๋…์„ฑ ๋†’์€ ๋ฌธ์ž์—ด ์ฒ˜๋ฆฌ

ํ…œํ”Œ๋ฆฟ ๋ฌธ์ž์—ด์˜ ์ฃผ์š” ๊ธฐ๋Šฅ

1. ์—ฌ๋Ÿฌ ์ค„ ๋ฌธ์ž์—ด ์ž‘์„ฑ

ํ…œํ”Œ๋ฆฟ ๋ฌธ์ž์—ด์„ ์‚ฌ์šฉํ•˜๋ฉด ์—ฌ๋Ÿฌ ์ค„์— ๊ฑธ์นœ ๋ฌธ์ž์—ด์„ ์‰ฝ๊ฒŒ ์ž‘์„ฑํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๋ฐฑํ‹ฑ(`) ์•ˆ์— ์ค„๋ฐ”๊ฟˆ ๋ฌธ์ž๋ฅผ ํฌํ•จ์‹œํ‚ฌ ์ˆ˜ ์žˆ์œผ๋ฉฐ, ์ด๋Š” ๊ธฐ์กด ๋ฌธ์ž์—ด์—์„œ \n์„ ์‚ฌ์šฉํ•ด์•ผ ํ–ˆ๋˜ ๋ถˆํŽธํ•จ์„ ํ•ด์†Œํ•ด์ค๋‹ˆ๋‹ค.

let message = `์ด๊ฒƒ์€ ์—ฌ๋Ÿฌ ์ค„์— ๊ฑธ์นœ
ํ…œํ”Œ๋ฆฟ ๋ฌธ์ž์—ด ์˜ˆ์‹œ์ž…๋‹ˆ๋‹ค.
๋ฐฑํ‹ฑ์„ ์‚ฌ์šฉํ•˜์—ฌ ์ž‘์„ฑํ•ฉ๋‹ˆ๋‹ค.`;

console.log(message);

์œ„ ์˜ˆ์ œ์—์„œ๋Š” ์—ฌ๋Ÿฌ ์ค„์— ๊ฑธ์นœ ๋ฌธ์ž์—ด์„ ์ž‘์„ฑํ•˜๊ณ  ์ถœ๋ ฅํ•ฉ๋‹ˆ๋‹ค. ์ค„๋ฐ”๊ฟˆ์ด ๊ทธ๋Œ€๋กœ ์œ ์ง€๋˜๋ฏ€๋กœ, ๊ฐ€๋…์„ฑ์ด ๋›ฐ์–ด๋‚ฉ๋‹ˆ๋‹ค.

2. ๋ณ€์ˆ˜์™€ ํ‘œํ˜„์‹ ์‚ฝ์ž… (๋ฌธ์ž์—ด ๋ณด๊ฐ„)

ํ…œํ”Œ๋ฆฟ ๋ฌธ์ž์—ด์„ ์‚ฌ์šฉํ•˜๋ฉด ๋ณ€์ˆ˜์™€ ํ‘œํ˜„์‹์„ ์‰ฝ๊ฒŒ ๋ฌธ์ž์—ด ๋‚ด์— ์‚ฝ์ž…ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ด๋ฅผ ๋ฌธ์ž์—ด ๋ณด๊ฐ„(String Interpolation)์ด๋ผ๊ณ  ํ•˜๋ฉฐ, ${} ๊ตฌ๋ฌธ์„ ์‚ฌ์šฉํ•˜์—ฌ ๋ณ€์ˆ˜๋‚˜ ํ‘œํ˜„์‹์„ ๋ฌธ์ž์—ด ์•ˆ์— ํฌํ•จ์‹œํ‚ฌ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

let name = "Alice";
let age = 25;

let message = `์•ˆ๋…•ํ•˜์„ธ์š”, ์ œ ์ด๋ฆ„์€ ${name}์ด๊ณ  ๋‚˜์ด๋Š” ${age}์‚ด์ž…๋‹ˆ๋‹ค.`;
console.log(message);  // ๊ฒฐ๊ณผ: "์•ˆ๋…•ํ•˜์„ธ์š”, ์ œ ์ด๋ฆ„์€ Alice์ด๊ณ  ๋‚˜์ด๋Š” 25์‚ด์ž…๋‹ˆ๋‹ค."

์œ„ ์˜ˆ์ œ์—์„œ ${name}๊ณผ ${age}๋Š” ๋ณ€์ˆ˜์˜ ๊ฐ’์„ ๋ฌธ์ž์—ด์— ์‚ฝ์ž…ํ•˜์—ฌ ์ถœ๋ ฅํ•ฉ๋‹ˆ๋‹ค. ์ด ๋ฐฉ์‹์€ ๊ธฐ์กด์˜ ๋ฌธ์ž์—ด ์—ฐ๊ฒฐ ๋ฐฉ์‹๋ณด๋‹ค ํ›จ์”ฌ ๊ฐ„๊ฒฐํ•˜๊ณ  ์ง๊ด€์ ์ž…๋‹ˆ๋‹ค.

3. ํ‘œํ˜„์‹ ์‚ฝ์ž…

ํ…œํ”Œ๋ฆฟ ๋ฌธ์ž์—ด ๋‚ด์—์„œ๋Š” ๋‹จ์ˆœํ•œ ๋ณ€์ˆ˜๋ฟ๋งŒ ์•„๋‹ˆ๋ผ, ๊ณ„์‚ฐ์‹๊ณผ ํ•จ์ˆ˜ ํ˜ธ์ถœ ๋“ฑ์˜ ํ‘œํ˜„์‹(Expression)๋„ ์‚ฝ์ž…ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

let a = 10;
let b = 20;

let result = `a + b = ${a + b}`;
console.log(result);  // ๊ฒฐ๊ณผ: "a + b = 30"

์œ„ ์˜ˆ์ œ์—์„œ๋Š” ${a + b} ํ‘œํ˜„์‹์„ ๋ฌธ์ž์—ด ๋‚ด์—์„œ ๊ณ„์‚ฐํ•˜์—ฌ ๊ฒฐ๊ณผ๋ฅผ ์‚ฝ์ž…ํ•ฉ๋‹ˆ๋‹ค. ์ด๋ฅผ ํ†ตํ•ด ๋™์ ์œผ๋กœ ๊ณ„์‚ฐ๋œ ๊ฐ’์„ ๋ฌธ์ž์—ด์— ํฌํ•จํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

4. ํ•จ์ˆ˜ ํ˜ธ์ถœ ์‚ฝ์ž…

ํ…œํ”Œ๋ฆฟ ๋ฌธ์ž์—ด ์•ˆ์—์„œ ํ•จ์ˆ˜๋ฅผ ํ˜ธ์ถœํ•˜์—ฌ ๊ทธ ๊ฒฐ๊ณผ๋ฅผ ๋ฐ”๋กœ ๋ฌธ์ž์—ด์— ํฌํ•จํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

function greet(name) {
    return `Hello, ${name}!`;
}

let message = `${greet("Bob")}`;
console.log(message);  // ๊ฒฐ๊ณผ: "Hello, Bob!"

ํ•จ์ˆ˜๋ฅผ ํ˜ธ์ถœํ•˜์—ฌ ๊ทธ ๊ฒฐ๊ณผ๋ฅผ ํ…œํ”Œ๋ฆฟ ๋ฌธ์ž์—ด์— ์‚ฝ์ž…ํ•˜๋Š” ๋ฐฉ์‹์œผ๋กœ, ๋™์ ์ธ ์ฝ˜ํ…์ธ ๋ฅผ ์‰ฝ๊ฒŒ ์ƒ์„ฑํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

ํ…œํ”Œ๋ฆฟ ๋ฌธ์ž์—ด๊ณผ ๊ธฐ์กด ๋ฌธ์ž์—ด ์—ฐ๊ฒฐ ๋ฐฉ์‹ ๋น„๊ต

ํ…œํ”Œ๋ฆฟ ๋ฌธ์ž์—ด์„ ์‚ฌ์šฉํ•˜๋ฉด ๊ธฐ์กด์˜ ๋ฌธ์ž์—ด ๊ฒฐํ•ฉ ๋ฐฉ์‹๋ณด๋‹ค ๋” ๊ฐ„๊ฒฐํ•˜๊ฒŒ ๋ฌธ์ž์—ด์„ ์ฒ˜๋ฆฌํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๋‹ค์Œ์€ ๊ธฐ์กด ๋ฌธ์ž์—ด ๊ฒฐํ•ฉ ๋ฐฉ์‹๊ณผ ํ…œํ”Œ๋ฆฟ ๋ฌธ์ž์—ด์„ ๋น„๊ตํ•œ ์˜ˆ์ œ์ž…๋‹ˆ๋‹ค.

๊ธฐ์กด ๋ฌธ์ž์—ด ๊ฒฐํ•ฉ ๋ฐฉ์‹

let name = "Alice";
let age = 25;

let message = "์•ˆ๋…•ํ•˜์„ธ์š”, ์ œ ์ด๋ฆ„์€ " + name + "์ด๊ณ  ๋‚˜์ด๋Š” " + age + "์‚ด์ž…๋‹ˆ๋‹ค.";
console.log(message);

ํ…œํ”Œ๋ฆฟ ๋ฌธ์ž์—ด ๋ฐฉ์‹

let name = "Alice";
let age = 25;

let message = `์•ˆ๋…•ํ•˜์„ธ์š”, ์ œ ์ด๋ฆ„์€ ${name}์ด๊ณ  ๋‚˜์ด๋Š” ${age}์‚ด์ž…๋‹ˆ๋‹ค.`;
console.log(message);

ํ…œํ”Œ๋ฆฟ ๋ฌธ์ž์—ด์„ ์‚ฌ์šฉํ•œ ๋ฐฉ์‹์ด ํ›จ์”ฌ ๊ฐ„๊ฒฐํ•˜๋ฉฐ, ๊ฐ€๋…์„ฑ์ด ๋›ฐ์–ด๋‚ฉ๋‹ˆ๋‹ค. ๊ธฐ์กด ๋ฐฉ์‹์—์„œ๋Š” ๋ฌธ์ž์—ด๊ณผ ๋ณ€์ˆ˜๋ฅผ ๋ฐ˜๋ณต์ ์œผ๋กœ ๊ฒฐํ•ฉํ•ด์•ผ ํ–ˆ์ง€๋งŒ, ํ…œํ”Œ๋ฆฟ ๋ฌธ์ž์—ด์—์„œ๋Š” ${} ๊ตฌ๋ฌธ๋งŒ์œผ๋กœ ์‰ฝ๊ฒŒ ์ฒ˜๋ฆฌํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

HTML ๋ฌธ์ž์—ด ์ƒ์„ฑ์— ํ…œํ”Œ๋ฆฟ ๋ฌธ์ž์—ด ์‚ฌ์šฉ

ํ…œํ”Œ๋ฆฟ ๋ฌธ์ž์—ด์€ HTML ์ฝ˜ํ…์ธ ๋ฅผ ๋™์ ์œผ๋กœ ์ƒ์„ฑํ•  ๋•Œ๋„ ์œ ์šฉํ•˜๊ฒŒ ์‚ฌ์šฉ๋ฉ๋‹ˆ๋‹ค. ์—ฌ๋Ÿฌ ์ค„์— ๊ฑธ์นœ HTML ๊ตฌ์กฐ๋ฅผ ์‰ฝ๊ฒŒ ์ž‘์„ฑํ•˜๊ณ , ๋™์ ์ธ ๋ฐ์ดํ„ฐ๋ฅผ ์‚ฝ์ž…ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

let name = "John";
let age = 30;

let html = `
  

${name}

๋‚˜์ด: ${age}

`; console.log(html);

์œ„ ์˜ˆ์ œ์—์„œ๋Š” ํ…œํ”Œ๋ฆฟ ๋ฌธ์ž์—ด์„ ์‚ฌ์šฉํ•˜์—ฌ HTML ๊ตฌ์กฐ๋ฅผ ์ƒ์„ฑํ•˜๊ณ , ๋ณ€์ˆ˜ name๊ณผ age ๊ฐ’์„ ์‚ฝ์ž…ํ–ˆ์Šต๋‹ˆ๋‹ค. HTML ํ…œํ”Œ๋ฆฟ์„ ๋™์ ์œผ๋กœ ์ž‘์„ฑํ•  ๋•Œ ๋งค์šฐ ์œ ์šฉํ•œ ๋ฐฉ์‹์ž…๋‹ˆ๋‹ค.

๊ฒฐ๋ก 

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

๋Œ“๊ธ€ ์“ฐ๊ธฐ