๊ณ ์ „์ ์ธ ์–•์€ ๋ณต์‚ฌ์™€ ๊นŠ์€ ๋ณต์‚ฌ ๋ฐฉ๋ฒ•

2023. 2. 2. 20:57ยท๐Ÿ–ฅ๏ธ Language/Core Javascript

์™œ?

์–•์€ ๋ณต์‚ฌ์™€ ๊นŠ์€ ๋ณต์‚ฌ๋ฅผ ์•Œ์•„์•ผํ•˜๋Š” ์ด์œ ๋Š” ๋ถˆ๋ณ€๊ฐ์ฒด๋ฅผ ๋งŒ๋“ค๊ธฐ ์œ„ํ•จ์ด๋‹ค.

 

์šฐ๋ฆฌ๋Š” ์ฐธ์กฐํ˜• ๋ฐ์ดํ„ฐ์ธ ๊ฐ์ฒด์˜ ๊ธฐ๋ณธ์  ์„ฑ์งˆ์ด ๊ฐ€๋ณ€์„ฑ์ธ๊ฑธ ์•Œ๊ณ  ์žˆ๋‹ค.(์ด์ „๊ธ€ ์ฐธ๊ณ )

 

๋•Œ๋ฌธ์— ๊ทธ ๊ฐ์ฒด ์ž์ฒด๋ฅผ ์ƒ์„ฑํ•ด ๋ถˆ๋ณ€๊ฐ์ฒด๋ฅผ ๋งŒ๋“ค ํ•„์š”๊ฐ€ ์žˆ๋‹ค.

 

์—ฌ๊ธฐ์„œ ์‚ฌ์šฉ๋˜๋Š”๊ฒŒ ์–•์€๋ณต์‚ฌ, ๊นŠ์€๋ณต์‚ฌ์ด๋‹ค.

 

์–•์€ ๋ณต์‚ฌ๋Š” ๊ฐ์ฒด ์•ˆ์— ๋˜ ๊ฐ์ฒด๊ฐ€ ์žˆ์„๋•Œ๋Š” ์šฐ๋ฆฌ๊ฐ€ ๋งˆ์ฃผํ•œ ๋ฌธ์ œ์—์„œ ๋ฒ—์–ด๋‚  ์ˆ˜ ์—†๋‹ค.

 

ํ•˜์ง€๋งŒ ๊นŠ์€ ๋ณต์‚ฌ๋Š” ๊ฐ์ฒด ์•ˆ์— ์žˆ๋Š” ๊ฐ์ฒด๊นŒ์ง€ ๊ทธ ๊ฐ์ฒด ์ž์ฒด๋ฅผ ๋ณต์‚ฌ ์‹œํ‚ค๊ธฐ ๋•Œ๋ฌธ์— ์™„์ „ํ•œ ๋ถˆ๋ณ€ ๊ฐ์ฒด๋ฅผ ๋งŒ๋“ค ์ˆ˜ ์žˆ๋‹ค.

 

๋ถˆ๋ณ€๊ฐ์ฒด๋ฅผ ๋งŒ๋“œ๋Š” ๋ฐฉ๋ฒ•์—๋Š” ์—ฌ๋Ÿฌ๊ฐ€์ง€ ๋„๊ตฌ, ํ”„๋ ˆ์ž„์›Œํฌ๊ฐ€ ์žˆ๋‹ค๊ณ  ํ•œ๋‹ค.

 

์ด๋ฒˆ ํฌ์ŠคํŒ…์—์„  ๊ณ ์ „์ ์œผ๋กœ ํ•จ์ˆ˜๋ฅผ ๋งŒ๋“ค์–ด ๋ถˆ๋ณ€๊ฐ์ฒด๋ฅผ ๋งŒ๋“ค์–ด ๋ณด๋ ค๊ณ ํ•œ๋‹ค.


์–•์€ ๋ณต์‚ฌ

์–•์€ ๋ณต์‚ฌ๋Š” ๋ฐ”๋กœ ์•„๋ž˜ ๋‹จ๊ณ„์˜ ๊ฐ’๋งŒ ๋ณต์‚ฌํ•˜๋Š” ๋ฐฉ๋ฒ•์ด๋‹ค

์ฝ”๋“œ๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™๋‹ค.

var  = shallowCopy = (target) => {
	var result = {};
  	for(var prop in target){
    	result[prop] = target[prop];
    }
  	return result;
}

for in ๋ฌธ๋ฒ•์„ ํ™œ์šฉํ•ด result ๊ฐ์ฒด์— target๊ฐ์ฒด์˜ ํ”„๋กœํผํ‹ฐ๋ฅผ ๋ณต์‚ฌํ•˜๋Š” ํ•จ์ˆ˜๋‹ค.

์ฝ”๋“œ๊ฐ€ ์ž˜ ์ž‘๋™๋˜๋Š”์ง€ ๋ณด์ž.

var student1 = {
  name: "jaeyun",
  info: {
    age: 24,
    height: 174,
  },
};

๊ฐ์ฒด๊ฐ€ ๋‹ค์Œ๊ณผ ๊ฐ™์„๋•Œ name๊ณผ age๋ฅผ ๊ฐ๊ฐ ๋ณ€๊ฒฝํ•œ ๊ฒฐ๊ณผ๋‹ค

์ค‘์ฒฉ๋œ ๊ฐ์ฒด์—์„  ์ฐธ์กฐํ˜• ๋ฐ์ดํ„ฐ๊ฐ€ ์ €์žฅ๋œ ํ”„๋กœํผํ‹ฐ๋ฅผ ๋ณต์‚ฌํ•  ๋•Œ ๊ทธ ์ฃผ์†Ÿ๊ฐ’๋งŒ ๋ณต์‚ฌํ•˜๊ธฐ ๋•Œ๋ฌธ์— age๊ฐ€ student1, student2๋ชจ๋‘ ๋ณ€๊ฒฝ๋œ๊ฑธ ๋ณผ ์ˆ˜ ์žˆ๋‹ค.

์ด๋Ÿฐ ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•˜๊ธฐ ์œ„ํ•ด ๊นŠ์€ ๋ณต์‚ฌ๊ฐ€ ํ•„์š”ํ•˜๋‹ค.


๊นŠ์€ ๋ณต์‚ฌ

์–ด๋–ป๊ฒŒ ๊นŠ์€ ๋ณต์‚ฌ๋ฅผ ๊ตฌํ˜„ํ• ์ง€ ๊ณ ๋ฏผํ•˜๋‹ค๊ฐ€ ์žฌ๊ท€ํ•จ์ˆ˜๋ฅผ ์ƒ๊ฐํ–ˆ๋Š”๋ฐ ์•„๋‹ˆ๋‚˜ ๋‹ค๋ฅผ๊นŒ ์ฑ…์—์„œ๋„ ์žฌ๊ท€ํ•จ์ˆ˜๋ฅผ ํ†ตํ•ด ๊นŠ์€ ๋ณต์‚ฌ๋ฅผ ๊ตฌํ˜„ํ–ˆ๋‹ค!

์ฝ”๋“œ๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™๋‹ค.

var deepCopy = (target) => {
  var result = {};
  if (typeof target === "object" && target !== null) {
    for (var prop in target) {
      result[prop] = deepCopy(target[prop]);
    }
  } else {
    result = target;
  }
};

๋˜‘๊ฐ™์€ ์˜ˆ์ œ๋กœ ํ™•์ธํ•ด ๋ณด๊ฒ ๋‹ค.

๊ธธ๋™์ด์˜ ๋‚˜์ด๋งŒ ๋ฐ”๋€๊ฑธ ๋ณด๋‹ˆ ๊นŠ์€ ๋ณต์‚ฌ๊ฐ€ ์ž˜ ์ด๋ฃจ์–ด์ง„๊ฑธ ์•Œ ์ˆ˜ ์žˆ๋‹ค.

JSON์„ ์ด์šฉํ•œ ๊นŠ์€ ๋ณต์‚ฌ ๋ฐฉ๋ฒ•

๊ฐ์ฒด๋ฅผ JSON๋ฌธ๋ฒ•์œผ๋กœ ํ‘œํ˜„๋œ ๋ฌธ์ž์—ด๋กœ ๋ณ€ํ™˜ ์ „ํ™˜ํ–ˆ๋‹ค๊ฐ€ ๋‹ค์‹œ JSON ๊ฐ์ฒด๋กœ ๋ฐ”๊พธ๋Š” ๊ฒƒ์ด๋‹ค.

์ฝ”๋“œ๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™๋‹ค.

var JSONCopy = (target) => {
	return JSON.parse(JSON.stringify(target));
};

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


์ฐธ๊ณ ์ž๋ฃŒ: [๋„์„œ] ์ฝ”์–ด ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ

'๐Ÿ–ฅ๏ธ Language > Core Javascript' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๋‹ค๋ฅธ ๊ธ€

์ž๋ฐ” ์Šคํฌ๋ฆฝํŠธ ๋ณ€์ˆ˜ ๋ณต์‚ฌ์™€ ํ• ๋‹น  (0) 2023.02.02
์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ๋Š” ๋ฐ์ดํ„ฐ๋ฅผ ์–ด๋–ป๊ฒŒ ์ €์žฅํ• ๊นŒ?  (0) 2023.01.29
'๐Ÿ–ฅ๏ธ Language/Core Javascript' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๋‹ค๋ฅธ ๊ธ€
  • ์ž๋ฐ” ์Šคํฌ๋ฆฝํŠธ ๋ณ€์ˆ˜ ๋ณต์‚ฌ์™€ ํ• ๋‹น
  • ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ๋Š” ๋ฐ์ดํ„ฐ๋ฅผ ์–ด๋–ป๊ฒŒ ์ €์žฅํ• ๊นŒ?
jaeyunim
jaeyunim
  • jaeyunim
    ๋ฐฅ๋ฐฅ๋ฐฅqkq
    jaeyunim
  • ์ „์ฒด
    ์˜ค๋Š˜
    ์–ด์ œ
    • ๐Ÿ“š ja2yun000 NOTE (43)
      • ๐Ÿง‘‍๐Ÿ’ผ ๋„คํŠธ์›Œํฌ ๋…ธํŠธ (0)
      • โ˜๏ธ ํด๋ผ์šฐ๋“œ (0)
      • โœ๏ธ ํšŒ๊ณ ๋ก (1)
      • ๐Ÿ–ฅ๏ธ Language (8)
        • Core Javascript (3)
        • Vanila Javascript (5)
      • ๐Ÿ”ง Library (7)
        • React JS (5)
        • WebSocket (2)
      • ๐Ÿงฑ Framework (12)
        • Node.js (9)
        • Django (3)
      • ๐Ÿ“ ์ฝ”๋”ฉํ…Œ์ŠคํŠธ ์—ฐ์Šต (8)
      • ๐Ÿคฏ ๋ฐ์ดํ„ฐ๊ตฌ์กฐ์™€ ์•Œ๊ณ ๋ฆฌ์ฆ˜ (7)
      • ๐Ÿค” ์žก๋‹คํ•œ ์ง€์‹ (0)
  • ๋ธ”๋กœ๊ทธ ๋ฉ”๋‰ด

    • ๐ŸŒˆ github.com
    • ํƒœ๊ทธ
    • ๋ฐฉ๋ช…๋ก
  • ๋งํฌ

  • ๊ณต์ง€์‚ฌํ•ญ

  • ์ธ๊ธฐ ๊ธ€

  • ํƒœ๊ทธ

    JS
    nodejs
    ์žฅ๊ณ  url
    JavaScript
    pipenv
    socket.io
    ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ
    ์žฅ๊ณ 
    ํ‹ฐ์Šคํ† ๋ฆฌ์ฑŒ๋ฆฐ์ง€
    ์œ ํŠœ๋ธŒ ํด๋ก ์ฝ”๋”ฉ
    ์ฝ”๋”ฉํ…Œ์ŠคํŠธ
    Django
    C์–ธ์–ด
    Mongo
    ๋กœ๊ทธ์ธapi
    ์•Œ๊ณ ๋ฆฌ์ฆ˜
    React
    Core JavaScript
    ํ™”์‚ดํ‘œ ํ•จ์ˆ˜
    useEffect
    dfs
    ์˜ค๋ธ”์™„
    ๊นƒํ—ˆ๋ธŒ ๋กœ๊ทธ์ธ
    ์ด์ง„ ํƒ์ƒ‰ ์•Œ๊ณ ๋ฆฌ์ฆ˜
    ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค
    allow function
    ์ธ์ ‘๋ฆฌ์ŠคํŠธ
    ์žฅ๊ณ  ์•ฑ
    reactjs
    Express
  • ์ตœ๊ทผ ๋Œ“๊ธ€

  • ์ตœ๊ทผ ๊ธ€

  • hELLOยท Designed By์ •์ƒ์šฐ.v4.10.1
jaeyunim
๊ณ ์ „์ ์ธ ์–•์€ ๋ณต์‚ฌ์™€ ๊นŠ์€ ๋ณต์‚ฌ ๋ฐฉ๋ฒ•
์ƒ๋‹จ์œผ๋กœ

ํ‹ฐ์Šคํ† ๋ฆฌํˆด๋ฐ”