์ƒˆ์†Œ์‹

์ธ๊ธฐ ๊ฒ€์ƒ‰์–ด

TL

21.09.22 TL. js - ์ƒ์„ฑ์ž ํ•จ์ˆ˜์— ์˜ํ•œ ๊ฐ์ฒด ์ƒ์„ฑ

  • -

๐Ÿ‰ Object ์ƒ์„ฑ์ž ํ•จ์ˆ˜

์ƒ์„ฑ์ž ํ•จ์ˆ˜๋ž€ new ์—ฐ์‚ฐ์ž์™€ ํ•จ๊ป˜ ํ˜ธ์ถœํ•˜์—ฌ ์ธ์Šคํ„ด์Šค๋ฅผ ์ƒ์„ฑํ•˜๋Š” ํ•จ์ˆ˜๋ฅผ ๋งํ•œ๋‹ค. Object ์™ธ์—๋„ String, Number, Boolean, Function, Array, Date, RegExp, Promise ๋“ฑ์˜ ๋นŒํŠธ์ธ ์ƒ์„ฑ์ž ํ•จ์ˆ˜๋ฅผ ์ œ๊ณตํ•œ๋‹ค.

Object๋กœ ๋นˆ ๊ฐ์ฒด๋ฅผ ์ƒ์„ฑ ํ›„, ํ”„๋กœํผํ‹ฐ ๋˜๋Š” ๋ฉ”์„œ๋“œ๋ฅผ ์ถ”๊ฐ€ํ•ด ๊ฐ์ฒด๋ฅผ ์™„์„ฑํ•  ์ˆ˜ ์žˆ๋‹ค.

const person = new Object();

person.name = 'Kim';
person.sayHello = () => {
	console.log('Hi My name is ' + this.name);
};

Object ์ƒ์„ฑ์ž ํ•จ์ˆ˜๋ฅผ ์ด์šฉํ•œ ๊ฒƒ๋ณด๋‹ค๋Š” ๊ฐ์ฒด ๋ฆฌํ„ฐ๋Ÿด์„ ์‚ฌ์šฉํ•˜๋Š” ํŽธ์ด ๋” ๊ฐ„ํŽธํ•˜๋‹ค.

๐Ÿ‰ ์ƒ์„ฑ์ž ํ•จ์ˆ˜

๐Ÿฅฅ ๊ฐ์ฒด ๋ฆฌํ„ฐ๋Ÿด์— ์˜ํ•œ ๊ฐ์ฒด ์ƒ์„ฑ ๋ฐฉ์‹์˜ ๋ฌธ์ œ์ 

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

๐Ÿฅฅ ์ƒ์„ฑ์ž ํ•จ์ˆ˜์— ์˜ํ•œ ๊ฐ์ฒด ์ƒ์„ฑ ๋ฐฉ์‹์˜ ์žฅ์ 

ํ…œํ”Œ๋ฆฟ์„ ์ด์šฉํ•ด ๋™์ผํ•œ ํ”„๋กœํผํ‹ฐ ๊ตฌ์กฐ์˜ ๊ฐ์ฒด๋ฅผ ์ƒ์„ฑํ•  ์ˆ˜ ์žˆ๋‹ค.

function Circle(radius) {
	this.radius = radius;
	this.getDiameter = function () {
		return 2 * this.radius;
	};
}

const circle1 = new Circle(5);
const circle2 = new Circle(10);

console.log(circle1.getDiameter());
console.log(circle2.getDiameter());
  • this๋Š” ๊ฐ์ฒด ์ž์‹ ์˜ ํ”„๋กœํผํ‹ฐ๋‚˜ ๋ฉ”์„œ๋“œ๋ฅผ ์ฐธ์กฐํ•˜๊ธฐ ์œ„ํ•œ ์ž๊ธฐ ์ฐธ์กฐ ๋ณ€์ˆ˜๋‹ค. this ๋ฐ”์ธ๋”ฉ(this๊ฐ€ ๊ฐ€๋ฆฌํ‚ค๋Š” ๊ฐ’)์€ ํ•จ์ˆ˜ ํ˜ธ์ถœ ๋ฐฉ์‹์— ๋”ฐ๋ผ ๋™์ ์œผ๋กœ ๊ฒฐ์ •๋œ๋‹ค.
    • ์ผ๋ฐ˜ ํ•จ์ˆ˜๋กœ์„œ ํ˜ธ์ถœ → ์ „์—ญ ๊ฐ์ฒด๋ฅผ ๊ฐ€๋ฆฌํ‚จ๋‹ค.
    • ๋ฉ”์„œ๋“œ๋กœ์„œ ํ˜ธ์ถœ → ๋ฉ”์„œ๋“œ๋ฅผ ํ˜ธ์ถœํ•œ ๊ฐ์ฒด(.์•ž์˜ ๊ฐ์ฒด) ex) person.height์˜ person
    • ์ƒ์„ฑ์ž ํ•จ์ˆ˜๋กœ์„œ ํ˜ธ์ถœ → ์ƒ์„ฑ์ž ํ•จ์ˆ˜๊ฐ€ ์ƒ์„ฑํ•  ์ธ์Šคํ„ด์Šค

์ด ๋•Œ new๋ฅผ ๋ถ™์ด์ง€ ์•Š๋Š”๋‹ค๋ฉด ์ƒ์„ฑ์ž ํ•จ์ˆ˜๊ฐ€ ์•„๋‹ˆ๋ผ ์ผ๋ฐ˜ ํ•จ์ˆ˜๋กœ ๋™์ž‘ํ•œ๋‹ค.

const circle3 = Circle(15);

// ์ผ๋ฐ˜ ํ•จ์ˆ˜๋กœ์„œ ํ˜ธ์ถœ๋œ Circle์€ ๋ฐ˜ํ™˜๋ฌธ์ด ์—†๊ธฐ ๋•Œ๋ฌธ์— ์•”๋ฌต์ ์œผ๋กœ undefined๋ฅผ ๋ฐ˜ํ™˜ํ•œ๋‹ค.
console.log(circle3); // undefined

// ์ผ๋ฐ˜ ํ•จ์ˆ˜๋กœ์„œ ํ˜ธ์ถœ๋œ Circle ๋‚ด์˜ this๋Š” ์ „์—ญ ๊ฐ์ฒด๋ฅผ ๊ฐ€๋ฆฌํ‚จ๋‹ค.
console.log(radius); // 15

๐Ÿฅฅ ์ƒ์„ฑ์ž ํ•จ์ˆ˜์˜ ์ธ์Šคํ„ด์Šค ์ƒ์„ฑ ๊ณผ์ •

new๋ฅผ ํ†ตํ•ด ์ƒ์„ฑ์ž ํ•จ์ˆ˜๋ฅผ ํ˜ธ์ถœํ•˜๋ฉด js ์—”์ง„์€ ๋‹ค์Œ๊ณผ ๊ฐ™์ด ์ธ์Šคํ„ด์Šค๋ฅผ ์ƒ์„ฑํ•˜๊ณ  ์ธ์Šคํ„ด์Šค๋ฅผ ์ดˆ๊ธฐํ™”ํ•œ ํ›„ ์•”๋ฌต์ ์œผ๋กœ ์ธ์Šคํ„ด์Šค๋ฅผ ๋ฐ˜ํ™˜ํ•œ๋‹ค.

  1. ์ธ์Šคํ„ด์Šค ์ƒ์„ฑ๊ณผ this ๋ฐ”์ธ๋”ฉ

์•”๋ฌต์ ์œผ๋กœ ๋นˆ ๊ฐ์ฒด๊ฐ€ ์ƒ์„ฑ๋˜๊ณ  this์— ๋ฐ”์ธ๋”ฉ๋œ๋‹ค. ์ด ์ฒ˜๋ฆฌ๋Š” ๋Ÿฐํƒ€์ž„ ์ด์ „์— ์‹คํ–‰๋œ๋‹ค.

  • ๋ฐ”์ธ๋”ฉ : ์‹๋ณ„์ž์™€ ๊ฐ’์„ ์—ฐ๊ฒฐํ•˜๋Š” ๊ณผ์ •์„ ์˜๋ฏธํ•œ๋‹ค. this๋Š” ํ‚ค์›Œ๋“œ๋กœ ๋ถ„๋ฅ˜๋˜์ง€๋งŒ ์‹๋ณ„์ž ์—ญํ• ์„ ํ•œ๋‹ค.
  1. ์ธ์Šคํ„ด์Šค ์ดˆ๊ธฐํ™”

๊ฐœ๋ฐœ์ž๊ฐ€ ๊ฐ์ฒด ๋‚ด์— ๊ธฐ์ˆ ํ•œ ๋‚ด์šฉ์„ ๋ฐ”ํƒ•์œผ๋กœ this์— ๋ฐ”์ธ๋”ฉ๋ผ ์žˆ๋Š” ์ธ์Šคํ„ด์Šค๋ฅผ ์ดˆ๊ธฐํ™”ํ•œ๋‹ค.

  1. ์ธ์Šคํ„ด์Šค ๋ฐ˜ํ™˜

์ƒ์„ฑ์ž ํ•จ์ˆ˜ ๋‚ด๋ถ€์˜ ๋ชจ๋“  ์ฒ˜๋ฆฌ๊ฐ€ ๋๋‚˜๋ฉด ์™„์„ฑ๋œ ์ธ์Šคํ„ด์Šค๊ฐ€ ๋ฐ”์ธ๋”ฉ๋œ this๊ฐ€ ์•”๋ฌต์ ์œผ๋กœ ๋ฐ˜ํ™˜๋œ๋‹ค. ๋งŒ์•ฝ this๊ฐ€ ์•„๋‹Œ ๋‹ค๋ฅธ ๊ฐ์ฒด๋ฅผ ๋ช…์‹œ์ ์œผ๋กœ ๋ฐ˜ํ™˜ํ•˜๋ฉด this๊ฐ€ ๋ฐ˜ํ™˜๋˜์ง€ ๋ชปํ•˜๊ณ  return ๋ฌธ์— ๋ช…์‹œ๋œ ๊ฐ์ฒด๊ฐ€ ๋ฐ˜ํ™˜๋œ๋‹ค.

function Circle(radius) {
	this.radius = radius;
	this.getDiameter = function () {
		return 2 * this.radius;
	};
	return {};
}


const circle = new Circle(1);
console.log(circle); // {}

ํ•˜์ง€๋งŒ ๋ช…์‹œ์ ์œผ๋กœ ์›์‹œ ๊ฐ’์„ ๋ฐ˜ํ™˜ํ•˜๋ฉด ์•”๋ฌต์ ์œผ๋กœ this๊ฐ€ ๋ฐ˜ํ™˜๋œ๋‹ค.

function Circle(radius) {
	this.radius = radius;
	this.getDiameter = function () {
		return 2 * this.radius;
	};
	return 100;
}


const circle = new Circle(1);
console.log(circle); // Circle {radius: 1, getDiameter: f}

 

๐Ÿฅฅ ๋‚ด๋ถ€ ๋ฉ”์„œ๋“œ [[Call]]๊ณผ [[Construct]]

ํ•จ์ˆ˜๋Š” ์ผ๋ฐ˜ ํ˜น์€ ์ƒ์„ฑ์ž ํ•จ์ˆ˜๋กœ ํ˜ธ์ถœํ•  ์ˆ˜ ์žˆ๋‹ค. ํ•จ์ˆ˜๋„ ๊ฐ์ฒด์ด๋ฏ€๋กœ ์ผ๋ฐ˜ ๊ฐ์ฒด์™€ ๋™์ผํ•˜๊ฒŒ ๋™์ž‘ํ•  ์ˆ˜ ์žˆ๋‹ค. ํ•จ์ˆ˜ ๊ฐ์ฒด๋Š” ์ผ๋ฐ˜ ๊ฐ์ฒด๊ฐ€ ๊ฐ€์ง€๊ณ  ์žˆ๋Š” ๋‚ด๋ถ€ ์Šฌ๋กฏ๊ณผ ๋‚ด๋ถ€ ๋ฉ”์„œ๋“œ๋ฅผ ๋ชจ๋‘ ๊ฐ€์ง€๊ณ  ์žˆ๊ธฐ ๋•Œ๋ฌธ์ด๋‹ค.

function foo() {}

foo.prop = 10;

foo.method = function () {
	console.log(this.prop);
}

foo.method();

์ฐจ์ด์ ๋„ ์žˆ๋‹ค. ์ผ๋ฐ˜ ๊ฐ์ฒด๋Š” ํ˜ธ์ถœํ•  ์ˆ˜ ์—†์ง€๋งŒ ํ•จ์ˆ˜๋Š” ํ˜ธ์ถœํ•  ์ˆ˜ ์žˆ๋‹ค. ๋”ฐ๋ผ์„œ ํ•จ์ˆ˜ ๊ฐ์ฒด๋Š” ์ผ๋ฐ˜ ๊ฐ์ฒด๊ฐ€ ๊ฐ–๊ณ  ์žˆ๋Š” ๋‚ด๋ถ€ ์Šฌ๋กฏ๊ณผ ๋‚ด๋ถ€ ๋ฉ”์„œ๋“œ๋ฅผ ํฌํ•จํ•ด ํ•จ์ˆ˜ ๊ฐ์ฒด๋งŒ์„ ์œ„ํ•œ [[Environment]], [[FormalParameters]] ๋“ฑ์˜ ๋‚ด๋ถ€ ์Šฌ๋กฏ๊ณผ [[Call]], [[Construct]] ๊ฐ™์€ ๋‚ด๋ถ€ ๋ฉ”์„œ๋“œ๋ฅผ ์ถ”๊ฐ€๋กœ ๊ฐ€์ง€๊ณ  ์žˆ๋‹ค.

ํ•จ์ˆ˜๊ฐ€ ์ผ๋ฐ˜ ํ•จ์ˆ˜๋กœ์„œ ํ˜ธ์ถœ๋˜๋ฉด ๋‚ด๋ถ€ ๋ฉ”์„œ๋“œ[[Call]]์ด ํ˜ธ์ถœ๋˜๊ณ  new ์—ฐ์‚ฐ์ž์™€ ํ•จ๊ป˜ ์ƒ์„ฑ์ž ํ•จ์ˆ˜๋กœ์„œ ํ˜ธ์ถœ๋˜๋ฉด ๋‚ด๋ถ€ ๋ฉ”์„œ๋“œ [[Construct]]๊ฐ€ ํ˜ธ์ถœ๋œ๋‹ค.

[[Call]]์„ ๊ฐ–๋Š” ํ•จ์ˆ˜ ๊ฐ์ฒด๋ฅผ collable์ด๋ผ ํ•˜๋ฉฐ, [[Construct]]๋ฅผ ๊ฐ–๋Š” ํ•จ์ˆ˜ ๊ฐ์ฒด๋ฅผ constructor๋ผ๊ณ  ํ•œ๋‹ค.

๋ชจ๋“  ํ•จ์ˆ˜๋Š” callable์ด์ง€๋งŒ constructor๋Š” ์•„๋‹ ์ˆ˜๋„ ์žˆ๋‹ค. ์ฆ‰, ๋ชจ๋“  ํ•จ์ˆ˜ ๊ฐ์ฒด๋Š” ํ˜ธ์ถœํ•  ์ˆ˜ ์žˆ์ง€๋งŒ ๋ชจ๋“  ํ•จ์ˆ˜ ๊ฐ์ฒด๋ฅผ ์ƒ์„ฑ์ž ํ•จ์ˆ˜๋กœ์„œ ํ˜ธ์ถœํ•  ์ˆ˜ ์žˆ๋Š” ๊ฒƒ์€ ์•„๋‹ˆ๋‹ค.

๐Ÿฅฅ constructor์™€ non-constructor์˜ ๊ตฌ๋ถ„

js ์—”์ง„์€ ํ•จ์ˆ˜ ์ •์˜๋ฅผ ํ‰๊ฐ€ํ•ด์„œ ํ•จ์ˆ˜ ๊ฐ์ฒด๋ฅผ ์ƒ์„ฑํ•  ๋•Œ ํ•จ์ˆ˜ ์ •์˜ ๋ฐฉ์‹์— ๋”ฐ๋ผ constructor์™€ non-constructor๋กœ ๊ตฌ๋ถ„ํ•œ๋‹ค.

  • constructor : ํ•จ์ˆ˜ ์„ ์–ธ๋ฌธ, ํ•จ์ˆ˜ ํ‘œํ˜„์‹, ํด๋ž˜์Šค
    • ํด๋ž˜์Šค๋„ ํ•จ์ˆ˜๋‹ค.
  • non-constructor : ๋ฉ”์„œ๋“œ, ํ™”์‚ดํ‘œ ํ•จ์ˆ˜
    • ECMAScript์—์„œ์˜ ๋ฉ”์„œ๋“œ๋Š” ES6์˜ ๋ฉ”์„œ๋“œ ์ถ•์•ฝ ํ‘œํ˜„๋งŒ์„ ์˜๋ฏธํ•œ๋‹ค.
      function foo() {}
      const bar = function () {};
      // ํ”„๋กœํผํ‹ฐ x์˜ ๊ฐ’์œผ๋กœ ํ• ๋‹น๋œ ๊ฒƒ์€ ์ผ๋ฐ˜ ํ•จ์ˆ˜๋กœ ์ •์˜๋œ ํ•จ์ˆ˜๋‹ค. ์ฆ‰, ๋ฉ”์„œ๋“œ๊ฐ€ ์•„๋‹ˆ๋‹ค.
      const baz = {
      	x: function () {}
      };
      
      new foo(); // foo {}
      new bar(); // bar {}
      
      new baz.x(); // x {}
      
      const arrow = () => {};
      
      new arrow(); // TypeError: arrow is not a constructor
      
      // ๋ฉ”์„œ๋“œ ์ •์˜: ES6์˜ ๋ฉ”์„œ๋“œ ์ถ•์•ฝ ํ‘œํ˜„๋งŒ ๋ฉ”์„œ๋“œ๋กœ ์ธ์ •ํ•œ๋‹ค.
      const obj = {
      	x() {}
      };
      
      new obj.x();โ€‹

๐Ÿฅฅ new.target

ES6์—์„œ๋Š” ์ƒ์„ฑ์ž ํ•จ์ˆ˜ new ์—ฐ์‚ฐ์ž ์—†์ด ํ˜ธ์ถœ๋˜๋Š” ๊ฒƒ์„ ๋ง‰๊ธฐ ์œ„ํ•ด new.tartget์„ ์ง€์›ํ•œ๋‹ค.

new.target์€ this์™€ ์œ ์‚ฌํ•˜๊ฒŒ constructor์ธ ๋ชจ๋“  ํ•จ์ˆ˜ ๋‚ด๋ถ€์—์„œ ์•”๋ฌต์ ์ธ ์ง€์—ญ ๋ณ€์ˆ˜์™€ ๊ฐ™์ด ์‚ฌ์šฉ๋˜๋ฉฐ ๋ฉ”ํƒ€ ํ”„๋กœํผํ‹ฐ๋ผ๊ณ  ๋ถ€๋ฅธ๋‹ค.

ํ•จ์ˆ˜ ๋‚ด๋ถ€์—์„œ new.target์„ ์‚ฌ์šฉํ•˜๋ฉด new ์—ฐ์‚ฐ์ž์™€ ํ•จ๊ป˜ ์ƒ์„ฑ์ž ํ•จ์ˆ˜๋กœ์„œ ํ˜ธ์ถœ๋˜์—ˆ๋Š”์ง€ ํ™•์ธํ•  ์ˆ˜ ์žˆ๋‹ค. new ์—ฐ์‚ฐ์ž์™€ ํ•จ๊ป˜ ์ƒ์„ฑ์ž ํ•จ์ˆ˜๋กœ์„œ ํ˜ธ์ถœ๋˜๋ฉด ํ•จ์ˆ˜ ๋‚ด๋ถ€์˜ new.target์€ ํ•จ์ˆ˜ ์ž์‹ ์„ ๊ฐ€๋ฆฌํ‚จ๋‹ค. new ์—ฐ์‚ฐ์ž ์—†์ด ์ผ๋ฐ˜ ํ•จ์ˆ˜๋กœ์„œ ํ˜ธ์ถœ๋œ ๋‚ด๋ถ€์˜ new.target์€ undefined๋‹ค.

function Circle(radius) {
	// new ์—ฐ์‚ฐ์ž์™€ ํ•จ๊ป˜ ํ˜ธ์ถœ๋˜์ง€ ์•Š์•˜๋‹ค๋ฉด new ์—ฐ์‚ฐ์ž์™€ ํ•จ๊ป˜ ์ƒ์„ฑ์ž ํ•จ์ˆ˜๋ฅผ
	// ์žฌ๊ท€ ํ˜ธ์ถœํ•˜์—ฌ ์ƒ์„ฑ๋œ ์ธ์Šคํ„ด์Šค๋ฅผ ๋ฐ˜ํ™˜ํ•œ๋‹ค.
	if (!new.target) {
		return new Circle(radius);
	}

	this.radius = radius;
	this.getDiameter = function () {
		return 2 * this.radius;
	};
}

// new ์—ฐ์‚ฐ์ž ์—†์ด ์ƒ์„ฑ์ž ํ•จ์ˆ˜๋ฅผ ํ˜ธ์ถœํ•ด๋„ new.target์„ ํ†ตํ•ด ์ƒ์„ฑ์ž ํ•จ์ˆ˜๋กœ์„œ ํ˜ธ์ถœ๋œ๋‹ค.
const circle = Circle(5);
console.log(circle.getDiameter());

๋งŒ์•ฝ ES6๋ฅผ ์‚ฌ์šฉํ•  ์ˆ˜ ์—†๋Š” ์ƒํ™ฉ์ด๋ผ๋ฉด ์Šค์ฝ”ํ”„ ์„ธ์ดํ”„ ์ƒ์„ฑ์ž ํŒจํ„ด์„ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋‹ค.

// if(!new.target)
if (!(this instanceof Circle))

๋Œ€๋ถ€๋ถ„์˜ ๋นŒํŠธ์ธ ํ•จ์ˆ˜๋“ค์€ new ์—ฐ์‚ฐ์ž์™€ ํ•จ๊ป˜ ํ˜ธ์ถœ๋˜์—ˆ๋Š”์ง€ ํ™•์ธ ํ›„ ์ ์ ˆํ•œ ๊ฐ’์„ ๋ฐ˜ํ™˜ํ•œ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ String, Number, Boolean ์ƒ์„ฑ์ž ํ•จ์ˆ˜๋Š” new ์—ฐ์‚ฐ์ž์™€ ํ•จ๊ป˜ ํ˜ธ์ถœํ•˜๋ฉด String, Number. Boolean ๊ฐ์ฒด๋ฅผ ์ƒ์„ฑํ•ด ๋ฐ˜ํ™˜ํ•˜์ง€๋งŒ, new ์—ฐ์‚ฐ์ž ์—†์ด๋Š” ๋ฌธ์ž์—ด, ์ˆซ์ž, ๋ถˆ๋ฆฌ์–ธ ๊ฐ’์„ ๋ฐ˜ํ™˜ํ•œ๋‹ค. ์ด ๊ฐ™์€ ํŠน์„ฑ์€ ๋ฐ์ดํ„ฐ ํƒ€์ž… ๋ณ€ํ™˜์—๋„ ์ด์šฉ๋œ๋‹ค.

let obj = new Object();
console.log(obj); // {}

obj = Object();
console.log(obj); // {}

const str = String(123);
console.log(str, typof str) // 123 string
Contents

ํฌ์ŠคํŒ… ์ฃผ์†Œ๋ฅผ ๋ณต์‚ฌํ–ˆ์Šต๋‹ˆ๋‹ค

์ด ๊ธ€์ด ๋„์›€์ด ๋˜์—ˆ๋‹ค๋ฉด ๊ณต๊ฐ ๋ถ€ํƒ๋“œ๋ฆฝ๋‹ˆ๋‹ค.