250x250
Rainbow๐ŸŒˆCoder
My dev Note๐Ÿ“’
Rainbow๐ŸŒˆCoder
์ „์ฒด ๋ฐฉ๋ฌธ์ž
์˜ค๋Š˜
์–ด์ œ
  • ๋ถ„๋ฅ˜ ์ „์ฒด๋ณด๊ธฐ (411)
    • ๊ณต์ง€์‚ฌํ•ญ (0)
    • Debugger (10)
      • Visual Studio Debugger (1)
      • Chrome DevTools (3)
      • Visual Studio Code Debugger (4)
      • eclipse (1)
      • intelliJ (1)
    • OOP (2)
      • OOP (2)
    • TypeScript (54)
      • ํƒ€์ž…์Šคํฌ๋ฆฝํŠธ TypeScript (54)
    • Javascript (87)
      • Javascript (45)
      • Node.js (19)
      • React (5)
      • FE ๊ฐœ๋ฐœํ™˜๊ฒฝ์„ค์ • (3)
      • React์™€ Node ๊ฐ™์ด ๋•Œ๋ ค์žก๊ธฐ (6)
      • next.js (2)
      • pixi.js (7)
    • ๋งˆํฌ์—… (23)
      • Html & Css (23)
    • C# (80)
      • C# (12)
      • ์ด๊ฒƒ์ด C#์ด๋‹ค (68)
    • C++ (30)
      • c++ (27)
      • win api (3)
    • Unity (18)
      • Unity(๊ธฐ์ดˆ) (8)
      • Unity(C#์ค‘๊ธ‰) (5)
      • ์œ ๋‹ˆํ‹ฐ ํฌํ†ค(๋„คํŠธ์›Œํฌ) (4)
      • unity c# MyCode (1)
    • Java & Spring (29)
      • Java (11)
      • ์Šคํ”„๋ง (8)
      • Java Algorithm (9)
      • Javs Data Structures (1)
    • ์ž๋ฃŒ๊ตฌ์กฐ์™€ ์•Œ๊ณ ๋ฆฌ์ฆ˜ (15)
      • ์ž๋ฃŒ๊ตฌ์กฐ (5)
      • ์•Œ๊ณ ๋ฆฌ์ฆ˜ (10)
    • ํ˜•์ƒ๊ด€๋ฆฌ (15)
      • Git (11)
      • ์†Œ์ŠคํŠธ๋ฆฌ (3)
    • ๊ทธ๋ž˜ํ”ฝ์Šค (7)
      • WebGl (7)
    • AWS (3)
      • aws (3)
    • ๋ฆฌ๋ˆ…์Šค (5)
      • ๋ฆฌ๋ˆ…์Šค (5)
    • ์ฑ… ๋ฆฌ๋ทฐ (13)
      • ํด๋ฆฐ์ฝ”๋“œ(์ฑ…๋ฆฌ๋ทฐ) (3)
      • ์œ ์ง€๋ณด์ˆ˜๊ฐ€๋Šฅํ•œ์ฝ”๋”ฉ์˜๊ธฐ์ˆ C#ํŽธ(์ฑ…๋ฆฌ๋ทฐ) (1)
      • ๋ฆฌํŒฉํ† ๋ง(์ž๋ฐ”์Šคํฌ๋ฆฝํŠธํŒ) (9)
    • Server (2)
      • ๊ฒŒ์ž„ ์„œ๋ฒ„(๋„คํŠธ์›Œํฌ, ๋ฉ€ํ‹ฐ์“ฐ๋ ˆ๋“œ,OS) (2)
    • ์„ค๊ณ„, ์•„ํ‚คํ…์ณ (4)
    • ํŒŒ์ด์ฌ (5)
    • ๋””์ž์ธํŒจํ„ด (2)
    • mocha (2)
    • Jest (1)
    • Spine (1)
    • ์ธ๊ณต์ง€๋Šฅ (1)
      • ํ˜ผ์ž๊ณต๋ถ€ํ•˜๋Š”๋จธ์‹ ๋Ÿฌ๋‹+๋”ฅ๋Ÿฌ๋‹ (1)

๋ธ”๋กœ๊ทธ ๋ฉ”๋‰ด

  • ํ™ˆ
  • ํƒœ๊ทธ
  • ๋ฐฉ๋ช…๋ก

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

์ธ๊ธฐ ๊ธ€

ํƒœ๊ทธ

  • ์ปดํฌ์ง€์…˜
  • MySQL
  • ใ…ฃใ„ท
  • ์œ„์ž„

์ตœ๊ทผ ๋Œ“๊ธ€

์ตœ๊ทผ ๊ธ€

ํ‹ฐ์Šคํ† ๋ฆฌ

hELLO ยท Designed By ์ •์ƒ์šฐ.
Rainbow๐ŸŒˆCoder

My dev Note๐Ÿ“’

[์ค‘๊ธ‰ ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ] ๊ฐ์ฒด ์ฐธ์ดˆ, ๊ฐ์ฒด ๋ณต์‚ฌ, ๋ฐฐ์—ด ์ปจํŠธ๋กค ์‹ฌํ™”
Javascript/Javascript

[์ค‘๊ธ‰ ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ] ๊ฐ์ฒด ์ฐธ์ดˆ, ๊ฐ์ฒด ๋ณต์‚ฌ, ๋ฐฐ์—ด ์ปจํŠธ๋กค ์‹ฌํ™”

2022. 3. 24. 16:35
728x90

 

https://youtu.be/4_WLS9Lj6n4

https://youtu.be/9tbjjZb65ng

**

๊ฐ์ฒด์—์„œ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋Š” ๋ช‡๊ฐ€์ง€ ๋ฉ”์†Œ๋“œ๋“ค(์ฝ”๋”ฉ์•™๋งˆ๋‹˜ ์œ ํŠœ๋ธŒ ๊ฐ•์ขŒ ์บก์ฒ˜)
์ฝ”๋”ฉ์•™๋งˆ๋‹˜ ์˜์ƒ ์บก์ฒ˜ : ์œ„์™€ ๊ฐ™์ด ๊ฐ์ฒด๋ฅผ ๋ณต์ œํ•ด์•ผ ํ•œ๋‹ค.

const user = {

     name:'Mike',

     age:30

}

์œ„์™€ ๊ฐ™์ด user๋ผ๋Š” ๊ฐ์ฒด๊ฐ€ ์žˆ์„ ๋•Œ,

๋ณต์ œ(๊นŠ์€ ๋ณต์‚ฌ)๋ฅผ ํ•˜๊ธฐ ์œ„ํ•ด์„œ

const cloneUser = user; 

์œ„์™€ ๊ฐ™์ด ์ž‘์„ฑํ•˜๋ฉด ๊ธฐ๋Œ€ํ–ˆ๋˜ ํšจ๊ณผ(๊ฐ์ฒด๋ฅผ ๋ณต์‚ฌํ•ด์„œ ๋„ฃ๋Š”๋‹ค)๋ฅผ ์–ป์„ ์ˆ˜ ์—†๋‹ค.(์›์ธ: ์•„๋ž˜ ์บก์ฒ˜ ์ฐธ๊ณ )

์•„๋ž˜ ์บก์ฒ˜๋ฅผ ์ฐธ๊ณ ํ•˜๋ฉด ์•Œ ์ˆ˜ ์žˆ๋“ฏ์ด

cloneUser๋Š” ํž™์— ๋‹ด๊ธด user๋ฅผ ๋ž˜ํผ๋Ÿฐ์Šคํ•˜๋Š” ๋ž˜ํผ๋Ÿฐ์Šค ๋ณ€์ˆ˜๊ฐ€ ๋œ๋‹ค.(์–•์€ ๋ณต์‚ฌ)(๊ฐ์ฒด๋ฅผ ์ฐธ์กฐํ•˜๋Š” ๊ฐ’์ด ๋“ค์–ด๊ฐ„๋‹ค)

๋”ฐ๋ผ์„œ 

cloneUser.age=44; ์‹์œผ๋กœ cloneUser์˜ ํ”„๋กœํผํ‹ฐ ๊ฐ’์„ ๋ฐ”๊พธ์–ด๋ฒ„๋ฆฌ๋ฉด user.age์˜ ๋‚˜์ด๋„ ๋™๊ธฐํ™”๋˜์–ด ๋ณ€๊ฒฝ๋˜๋Š” ๊ฒƒ์„ ์•„๋ž˜ ์˜ˆ์ œ๋ฅผ ํ†ตํ•ด ํ™•์ธํ•˜์˜€๋‹ค.

      let a = "age";
      let user = {
        name: "Jane",
        [a]: 20,
        [1 + 2]: 3,
        ["์•ˆ๋…•" + "ํ•˜์„ธ์š”"]: "hello",
        sayHello: function () {
          console.log(this.์•ˆ๋…•ํ•˜์„ธ์š”, " ", this.name);
        },
      };
      console.log(user.name, "์˜ ๋‚˜์ด๋Š” ", user.age); //Jane ์˜ ๋‚˜์ด๋Š”  20
      const cloneUser = user;
      cloneUser.age = 44;
      console.log(cloneUser.name, "์˜ ๋‚˜์ด๋Š” ", cloneUser.age); //Jane ์˜ ๋‚˜์ด๋Š”  44
      console.log(user.name, "์˜ ๋‚˜์ด๋Š” ", user.age); //Jane ์˜ ๋‚˜์ด๋Š”  44

 

 

์œค์ธ์„ฑ๋‹˜ ์œ ํŠœ๋ธŒ ๊ฐ•์ขŒ ์ค‘์—์„œ ์บก์ฒ˜

 

 

      let a = "age";
      let user = {
        name: "Jane",
        [a]: 20,
      };
      const newUser = Object.assign({}, user);
      newUser.name = "Tom";
      console.log(JSON.stringify(user)); //{"name":"Jane","age":20}
      console.log(JSON.stringify(newUser)); //{"name":"Tom","age":20}

๋ณ€์ˆ˜ a๋Š” ๊ฐ์ฒด user ์•ˆ์—์„œ computed property(๊ณ„์‚ฐ๋œ ํ”„๋กœํผํ‹ฐ)๊ฐ€ ๋œ๋‹ค.

์‹ฌ์ง€์–ด ์ด๋Ÿฐ ๊ฒƒ๋„ ๋œ๋‹ค.

      let a = "age";
      let user = {
        name: "Jane",
        [a]: 20,
        [1 + 2]: 3,
      };
      const newUser = Object.assign({}, user);
      newUser.name = "Tom";
      console.log(JSON.stringify(user)); //{"3":3,"name":"Jane","age":20}
      console.log(JSON.stringify(newUser)); //{"3":3,"name":"Tom","age":20}

[1+2] ์ฒ˜๋Ÿผ ์‹์„ ๋„ฃ๋Š” ๊ฒƒ๋„ ๊ฐ€๋Šฅํ•˜๋‹ค.

 

์ง€๊ธˆ๊นŒ์ง€ ๋ฐฐ์šด ๊ฒƒ๋“ค๋กœ ์‹ค์Šต

      let a = "age";
      let user = {
        name: "Jane",
        [a]: 20,
        [1 + 2]: 3,
        ["์•ˆ๋…•" + "ํ•˜์„ธ์š”"]: "hello",
        sayHello: function () {
          console.log(this.์•ˆ๋…•ํ•˜์„ธ์š”, " ", this.name);
        },
      };
      const newUser = Object.assign({}, user);
      newUser.name = "Tom";
      console.log(JSON.stringify(user));
      console.log(JSON.stringify(newUser));
      user.sayHello();

 

 

์ฝ”๋”ฉ์•™๋งˆ๋‹˜ ์บก์ฒ˜

 

      let a = "age";
      let user = {
        name: "Jane",
        [a]: 20,
        [1 + 2]: 3,
        ["์•ˆ๋…•" + "ํ•˜์„ธ์š”"]: "hello",
        sayHello: function () {
          console.log(this.์•ˆ๋…•ํ•˜์„ธ์š”, " ", this.name);
        },
      };
      console.log(user.name, "์˜ ๋‚˜์ด๋Š” ", user.age); //Jane ์˜ ๋‚˜์ด๋Š”  20
      const cloneUser = user;
      cloneUser.age = 44;
      console.log(cloneUser.name, "์˜ ๋‚˜์ด๋Š” ", cloneUser.age); //Jane ์˜ ๋‚˜์ด๋Š”  44
      console.log(user.name, "์˜ ๋‚˜์ด๋Š” ", user.age); //Jane ์˜ ๋‚˜์ด๋Š”  44
      const newUser = Object.assign({}, user);
      newUser.name = "Tom";
      console.log(JSON.stringify(user)); //{"3":3,"name":"Jane","age":44,"์•ˆ๋…•ํ•˜์„ธ์š”":"hello"}
      console.log(JSON.stringify(newUser)); //{"3":3,"name":"Tom","age":44,"์•ˆ๋…•ํ•˜์„ธ์š”":"hello"}
      user.sayHello(); //hello   Jane
      const exUser = Object.assign({}, cloneUser);
      console.log(JSON.stringify(exUser)); //{"3":3,"name":"Jane","age":44,"์•ˆ๋…•ํ•˜์„ธ์š”":"hello"}
      exUser.name = "ํ™ฉํƒœ์ž";
      console.log(JSON.stringify(cloneUser.name)); //"Jane"
      console.log(JSON.stringify(exUser.name)); //"ํ™ฉํƒœ์ž"
      let specialK = {
        school: "SeoulUniv",
      };
      console.log(JSON.stringify(specialK)); //{"school":"SeoulUniv"}
      const specialPerson = Object.assign(specialK, user);
      console.log(JSON.stringify(specialK)); //{"3":3,"school":"SeoulUniv","name":"Jane","age":44,"์•ˆ๋…•ํ•˜์„ธ์š”":"hello"}

๊ทธ๋ฆฌํ•˜์—ฌ.. ์œ„์™€ ๊ฐ™์ด ์‹ค์Šต์„ ํ•ด๋ณด์•˜๋‹ค(๊ฒฐ๊ณผ๋Š” ์ฃผ์„์—!)

 

๋ณ‘ํ•ฉํ•˜๋Š” ๋А๋‚Œ์ธ ๊ฒƒ์ด๋‹ค

 

์ฒซ๋ฒˆ์งธ ์ธ์ž๊ฐ์ฒด์™€ ๋‘๋ฒˆ์งธ ์ธ์ž ๊ฐ์ฒด ๊ธฐ์กด ํ”„๋กœํผํ‹ฐ ํ‚ค๊ฐ€ ๊ฐ™๋‹ค๋ฉด

๋‘๋ฒˆ์งธ ๊ฐ์ฒด ์ธ์ž(๊ฐ์ฒด) ์† ํ‚ค์˜ ๊ฐ’์œผ๋กœ ๋ฎ์–ด์”Œ์›Œ์ง„๋‹ค.

๋‘๊ฐœ ์ด์ƒ์˜ ๊ฐ์ฒด๋„ ํ•ฉ์น  ์ˆ˜ ์žˆ๋‹ค.

let info1 = {
        menu: "๋Œ€๊ฐœ์ •์‹",
      };

      let info2 = {
        ํ›„์‹: "coffee",
      };

      let ํšŒ์‹ = {
        people: 9,
        date: "2022/02/24",
      };

      Object.assign(ํšŒ์‹, info1, info2);
      console.log(JSON.stringify(ํšŒ์‹)); //{"people":9,"date":"2022/02/24","menu":"๋Œ€๊ฐœ","ํ›„์‹":"coffee"}

๊ฐ์ฒด์˜ ํ‚ค๋ฅผ ๋ฐฐ์—ด๋กœ ๋ฐ˜ํ™˜!

let info1 = {
        menu: "๋Œ€๊ฐœ์ •์‹",
      };

      let info2 = {
        ํ›„์‹: "coffee",
      };

      let ํšŒ์‹ = {
        people: 9,
        date: "2022/02/24",
      };

      Object.assign(ํšŒ์‹, info1, info2);
      console.log(JSON.stringify(ํšŒ์‹)); //{"people":9,"date":"2022/02/24","menu":"๋Œ€๊ฐœ","ํ›„์‹":"coffee"}
      console.log(JSON.stringify(Object.keys(ํšŒ์‹))); //["people","date","menu","ํ›„์‹"]

let info1 = {
        menu: "๋Œ€๊ฐœ์ •์‹",
      };

      let info2 = {
        ํ›„์‹: "coffee",
      };

      let ํšŒ์‹ = {
        people: 9,
        date: "2022/02/24",
      };

      Object.assign(ํšŒ์‹, info1, info2);
      console.log(JSON.stringify(ํšŒ์‹)); //{"people":9,"date":"2022/02/24","menu":"๋Œ€๊ฐœ","ํ›„์‹":"coffee"}
      console.log(JSON.stringify(Object.keys(ํšŒ์‹))); //["people","date","menu","ํ›„์‹"]
      console.log(JSON.stringify(Object.values(ํšŒ์‹))); //[9,"2022/02/24","๋Œ€๊ฐœ์ •์‹","coffee"]

ํ‚ค์™€ ๊ฐ’์„ ์Œ์œผ๋กœ ๋ฌถ์–ด์„œ ๋ฐฐ์—ด๋กœ ๋ฐ˜ํ™˜ํ•ด์คŒ

let info1 = {
        menu: "๋Œ€๊ฐœ์ •์‹",
      };

      let info2 = {
        ํ›„์‹: "coffee",
      };

      let ํšŒ์‹ = {
        people: 9,
        date: "2022/02/24",
      };

      Object.assign(ํšŒ์‹, info1, info2);
      console.log(JSON.stringify(ํšŒ์‹)); //{"people":9,"date":"2022/02/24","menu":"๋Œ€๊ฐœ","ํ›„์‹":"coffee"}
      console.log(JSON.stringify(Object.keys(ํšŒ์‹))); //["people","date","menu","ํ›„์‹"]
      console.log(JSON.stringify(Object.values(ํšŒ์‹))); //[9,"2022/02/24","๋Œ€๊ฐœ์ •์‹","coffee"]
      console.log(JSON.stringify(Object.entries(ํšŒ์‹))); //[["people",9],["date","2022/02/24"],["menu","๋Œ€๊ฐœ์ •์‹"],["ํ›„์‹","coffee"]]

  const array = [
        ["name", "Hong GilDong"],
        ["gender", "man"],
        ["job", "programmer"],
      ];
      const employee = Object.fromEntries(array);

      console.log(JSON.stringify(employee));//{"name":"Hong GilDong","gender":"man","job":"programmer"}

      function makeObj(key, val) {
        return { [key]: val };
      }

      const staff = makeObj("gender", "female");

      const information1 = {
        name: "yumi",
      };

      const information2 = {
        age: 22,
      };
      console.log(
        JSON.stringify(Object.assign(staff, information1, information2))
      ); //{"gender":"female","name":"yumi","age":22}

<๋น„ํŒŒ๊ดด์  ์ฒ˜๋ฆฌ, ํŒŒ๊ดด์ฒ™ ์ฒ˜๋ฆฌ>

์ดˆ๊ธฐ ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ๊ฐ€ ํƒœ๋™๋  ์‹œ์ ์—๋Š” ํ•˜๋“œ์›จ์–ด ๋ฐœ์ „์ด ๋ฏธ๋ฏธํ–ˆ๊ธฐ ๋•Œ๋ฌธ์— ๋ฉ”๋ชจ๋ฆฌ ๊ด€๋ฆฌ ์ฐจ์›์—์„œ ๋ฉ”์„œ๋“œ๋“ค์˜ ํŠน์ง•์ด 'ํŒŒ๊ดด์  ์ฒ˜๋ฆฌ'์˜€๋‹ค.

ํ•˜์ง€๋งŒ ๊ทผ๋ž˜ ์™€์„œ๋Š” ๋ฉ”๋ชจ๋ฆฌ๊ฐ€ ๋„˜์ณ๋‚˜๋ฉฐ, ํ”„๋กœ๊ทธ๋žจ์ƒ ๋ณตํ•ฉ์ž๋ฃŒํ˜•๋“ค์ด ์›๋ณธ์„ ์œ ์ง€ํ•˜๊ณ  ์žˆ์–ด์•ผ ์•ˆ์ „ํ•œ ๊ฒฝ์šฐ๊ฐ€ ๋งŽ์œผ๋ฏ€๋กœ 2010๋…„ ์ดํ›„์˜ ์ž๋ฐ”์Šคํฌ๋ฆฝ์— ์ถ”๊ฐ€๋œ ๋ฉ”์„œ๋“œ๋“ค์€ '๋น„ํŒŒ๊ดด์  ์ฒ˜๋ฆฌ'๋ฅผ ์ง€์›ํ•œ๋‹ค.

...์•„์‰ฝ๊ฒŒ๋„ ํ•จ์ˆ˜์™€ ๋ฉ”์„œ๋“œ ์ด๋ฆ„๋งŒ ๋ณด๊ณ  ์ฒ˜๋ฆฌ์˜ ํŠน์ง•์ด ํŒŒ๊ดด์ ์ธ์ง€ ๋น„ํŒŒ๊ดด์ ์ธ์ง€ ์•Œ ์ˆ˜ ์—†๋‹ค.

์ดˆ๊ธฐ๋ถ€ํ„ฐ ์žˆ์—ˆ๋˜ push()๋Š” ํŒŒ๊ดด์  ์ฒ˜๋ฆฌ์ด๋‹ค.๐Ÿฅฒ

 

<const์˜ ์ปจ์…‰์€ ์Šคํƒ์˜์—ญ(๊ฐ’ํ˜•์‹)์—์„œ๋งŒ ์ ์šฉ๋œ๋‹ค>

      const choiceNum = 7;
      choiceNum = 777;//Uncaught TypeError: Assignment to constant variable
      const numbers = [1, 2, 3];
      numbers.push(4);
      console.log(JSON.stringify(numbers)); //[1,2,3,4]

const๋กœ ์„ ์–ธํ•œ ์Šคํƒ์— ์ ์šฉ๋œ ๊ฐ’์ž๋ฃŒํ˜•์€ ๋ณ€๊ฒฝ ์‹œ๋„๊ฐ€ ์ฐจ๋‹จ๋œ๋‹ค.

๋ฐฐ์—ด์€ const๋กœ ์„ ์–ธํ–ˆ๋‹ค๋ฉด ๋ณ€์ˆ˜๋ช…์€ ํž™์— ์„ ์–ธ๋œ ๋ฐฐ์—ด์˜ ์ฃผ์†Œ์ผ ๋ฟ์ด๊ณ  ์‹ค์ œ ๊ฐ’์€ ํž™์— ์žˆ๋‹ค.

๋ฐฐ์—ด์˜ ์ด๋ฆ„์€ ๋ฐฐ์—ด์˜ ์‹œ์ž‘ ์ฃผ์†Œ์ด๋‹ค!์˜ ๊ฐœ๋…์„ ๋– ์˜ฌ๋ฆฌ๋ฉด ์‰ฝ๋‹ค.


//main ์–ธ์–ด๊ฐ€ C#์ด๊ธฐ ๋•Œ๋ฌธ์—, ์ž ์‹œ ๋น„๊ตํ•˜๋ ค๊ณ  c# ๊ธฐ์ค€ ์–‘์งˆ์˜ ๋ธ”๋กœ๊ทธ๊ธ€๋“ค์„ ์ฐธ๊ณ ํ•ด์„œ ํ™•์ธ

https://glassnabi.tistory.com/8

http://daplus.net/c-%EB%B0%B0%EC%97%B4-%ED%9E%99-%EB%B0%8F-%EC%8A%A4%ED%83%9D-%EB%B0%8F-%EA%B0%92-%EC%9C%A0%ED%98%95/ 

 

๋ฐฐ์—ด์˜ ์ด๋ฆ„์€ ๋ฐฐ์—ด์˜ ์‹œ์ž‘ ์ฃผ์†Œ์ด๋‹ค!

1. ์ด ๊ธ€์„ ์ฝ๊ธฐ ์ „์— ๋ด์•ผ ํ•  ๋‚ด์šฉ ์ด ๊ธ€์€ ์•„๋ž˜์— ๋งํฌํ•œ ๊ธ€์— ์—ฐ๊ฒฐ๋˜๋Š” ๋‚ด์šฉ์ž…๋‹ˆ๋‹ค. ๋”ฐ๋ผ์„œ ์•„๋ž˜์˜ ๊ธ€์„...

blog.naver.com

https://www.sysnet.pe.kr/2/0/12624

 

.NET Framework: 1055. C# - struct/class๊ฐ€ ์Šคํƒ/ํž™์— ํ• ๋‹น๋˜๋Š” ์‚ฌ๋ก€ ์ •๋ฆฌ

.NET Framework: 1055. C# - struct/class๊ฐ€ ์Šคํƒ/ํž™์— ํ• ๋‹น๋˜๋Š” ์‚ฌ๋ก€ ์ •๋ฆฌ [๋งํฌ ๋ณต์‚ฌ], [๋งํฌ+์ œ๋ชฉ ๋ณต์‚ฌ] ์กฐํšŒ: 1848 ๊ธ€์“ด ์‚ฌ๋žŒ ์ •์„ฑํƒœ (techsharer at outlook.com) ํ™ˆํŽ˜์ด์ง€ ์ฒจ๋ถ€ ํŒŒ์ผ ๋ถ€๋ชจ๊ธ€ ๋ณด์ด๊ธฐ/๊ฐ์ถ”๊ธฐ C# - struc

www.sysnet.pe.kr

 

  ๊ฐ’ํ˜•์‹ ์ฐธ์กฐํ˜•์‹
์ €์žฅ์œ„์น˜ ์Šคํƒ ํž™ ๋ฉ”๋ชจ๋ฆฌ
ํ• ๋‹น๋œ ๊ณณ์— ์ €์žฅ๋˜๋Š” ๋ฐ์ดํ„ฐ ์ž…๋ ฅํ•œ ๋ฐ์ดํ„ฐ ๋ฐ์ดํ„ฐ๊ฐ€ ์œ„์น˜ํ•œ๊ณณ์˜ ์ฐธ์กฐ
ํŠน์ง• ํ•ด๋‹น ๋ฉ”์†Œ๋“œ ์‹คํ–‰์ด ์ข…๋ฃŒ๋˜๋ฉด ์‚ฌ๋ผ์ง

int a = 1;
int b = a;
์œ„์˜ a,b์˜ ๊ฐ’์ค‘ ์–ด๋А ํ•˜๋‚˜์˜ ๊ฐ’์„ ์ˆ˜์ •ํ•ด๋„ ๋‹ค๋ฅธ์ชฝ์—๋Š” ์˜ํ–ฅ์„ ๋ผ์น˜์ง€ ์•Š๋Š”๋‹ค
GC์— ์˜ํ•ด ์ •๋ฆฌ๋จ.

์„œ๋กœ ๋‹ค๋ฅธ ๋‘ ๋ณ€์ˆ˜๊ฐ€ ๊ฐ™์€ ๋ฐ์ดํ„ฐ๋ฅผ ์ฐธ์กฐํ•œ๋‹ค๋ฉด ํ•œ๊ฐœ์˜ ๋ณ€์ˆ˜๊ฐ’์„ ๋ณ€๊ฒฝํ•˜๋ฉด ๋‹ค๋ฅธ ๋ณ€์ˆ˜๋„ ์˜ํ–ฅ์„ ๋ฐ›๋Š”๋‹ค.

๋ณ€ํ™˜ ๊ฐ’ํ˜•์‹ -> ์ฐธ์กฐํ˜•์‹
Boxing
์ฐธ์กฐํ˜•์‹ -> ๊ฐ’ํ˜•์‹
UnBoxing
๋ณต์‚ฌ ์–•์€๋ณต์‚ฌ ๊นŠ์€๋ณต์‚ฌ
์˜ˆ ๊ตฌ์กฐ์ฒด(์ˆซ์ž(๋ถ€๋™์†Œ์ˆ˜์ ,decimal),bool, ์‚ฌ์šฉ์ž์ •์˜๊ตฌ์กฐ์ฒด), ์—ด๊ฑฐํ˜•: bool, char, byte, decimal, double, enum, float, int long, short, sbyte, struct, uint, ulong, ushort class, interface, delegate, object, string

C#์—๋Š” ๊ฐ’ ํ˜•์‹๊ณผ ์ฐธ์กฐ ํ˜•์‹์ด๋ผ๋Š” ๋‘ ๊ฐ€์ง€ ๋ฐ์ดํ„ฐ ํ˜•์‹์ด ์žˆ์Šต๋‹ˆ๋‹ค. ์‘์šฉ ํ”„๋กœ๊ทธ๋žจ์˜ ์„ฑ๋Šฅ์ด ์ค‘์š”ํ•˜๊ฑฐ๋‚˜ C#์˜ ๋ฐ์ดํ„ฐ ๋ฐ ๋ฉ”๋ชจ๋ฆฌ ๊ด€๋ฆฌ ๋ฐฉ์‹์— ๊ด€์‹ฌ์ด ์žˆ๋Š” ๊ฒฝ์šฐ์—๋Š” ๋‘ ํ˜•์‹์˜ ์ฐจ์ด์ ์„ ์•Œ์•„์•ผ ํ•ฉ๋‹ˆ๋‹ค. ์ฐจ์ด์ ์€ ์ด๋“ค ํ˜•์‹์ด ๋ณต์‚ฌ๋˜๋Š” ๋ฐฉ์‹์— ๋”ฐ๋ผ ๋‚˜๋‰˜๊ฒŒ ๋œ๋‹ค.

๊ฐ’ํ˜•์‹์˜ ๋ฐ์ดํ„ฐ๋Š” ํ•ญ์ƒ ๊ฐ’์œผ๋กœ ๋ณต์‚ฌ๋˜์ง€๋งŒ, ์ฐธ์กฐํ˜•์‹ ๋ฐ์ดํ„ฐ๋Š” ํ•ญ์ƒ ์ฐธ์กฐ๋กœ ๋ณต์‚ฌ๋œ๋‹ค.

 

 ๊ฐ’ ํ˜•์‹ (Value Type)
๊ฐ’ ํ˜•์‹์„ ๊ธฐ๋ฐ˜์œผ๋กœ ํ•œ ๋ณ€์ˆ˜์—๋Š” ๊ฐ’์ด ์ง์ ‘ ํฌํ•จ๋ฉ๋‹ˆ๋‹ค. ๊ฐ’ ํ˜•์‹ ๋ณ€์ˆ˜ ํ•˜๋‚˜๋ฅผ ๋‹ค๋ฅธ ๋ณ€์ˆ˜์— ๋Œ€์ž…ํ•˜๋ฉด ๋ณ€์ˆ˜์— ํฌํ•จ๋œ ๊ฐ’์ด ๋ณต์‚ฌ๋ฉ๋‹ˆ๋‹ค.
๋ชจ๋“  ๊ฐ’ ํ˜•์‹์€ ์•”์‹œ์ ์œผ๋กœ System.ValueType์—์„œ ํŒŒ์ƒ.

 

๊ฐ’ ํ˜•์‹์€ ๊ธฐ๋ณธ์ ์œผ๋กœ ๊ตฌ์กฐ์ฒด์™€ ์—ด๊ฑฐํ˜•์œผ๋กœ ๊ตฌ๋ถ„ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

๋˜ ์—ฌ๊ธฐ์„œ ๊ตฌ์กฐ์ฒด๋Š” ์ˆซ์ž(์ •์ˆ˜ , ๋ถ€๋™ ์†Œ์ˆ˜์  , decimal ) , bool , ์‚ฌ์šฉ์ž ์ •์˜ ๊ตฌ์กฐ์ฒด๋กœ ๊ตฌ๋ถ„ ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

 

๊ฐ’ ํ˜•์‹์€ ์Šคํƒ์— ํ• ๋‹น๋œ ๋ฉ”๋ชจ๋ฆฌ์— ๋‚ด์šฉ์„ ์ €์žฅํ•ฉ๋‹ˆ๋‹ค. 

์•„๋ž˜ ๊ฒฝ์šฐ์—๋Š” ์Šคํƒ์ด๋ผ๋Š” ๋ฉ”๋ชจ๋ฆฌ ์˜์—ญ์— ๊ฐ’ 7์ด ์ €์žฅ๋ฉ๋‹ˆ๋‹ค.

 

๋ณ€์ˆ˜๊ฐ€ ์ •์˜๋œ ๋ฉ”์„œ๋“œ์˜ ์‹คํ–‰์ด ์ข…๋ฃŒ๋˜์–ด ๋ณ€์ˆ˜๊ฐ€ ๋ฒ”์œ„๋ฅผ ๋ฒ—์–ด๋‚˜๋ฉด ๊ฐ’์ด ์Šคํƒ์—์„œ ์‚ญ์ œ๋ฉ๋‹ˆ๋‹ค.

 

 ์ฐธ์กฐ ํ˜•์‹ ( Reference Type)
์ฐธ์กฐ ํ˜•์‹ ๋ณ€์ˆ˜์˜ ๊ฒฝ์šฐ ๊ฐœ์ฒด ์ž์ฒด๊ฐ€ ์•„๋‹ˆ๋ผ ๊ฐœ์ฒด์— ๋Œ€ํ•œ ์ฐธ์กฐ๊ฐ€ ๋ณต์‚ฌ๋ฉ๋‹ˆ๋‹ค.
์ฐธ์กฐ ํ˜•์‹์—์„œ๋Š” ๋‘ ๊ฐ€์ง€ ๋ณ€์ˆ˜๊ฐ€ ๊ฐ™์€ ๊ฐœ์ฒด๋ฅผ ์ฐธ์กฐํ•  ์ˆ˜ ์žˆ์œผ๋ฏ€๋กœ ํ•œ ๋ณ€์ˆ˜์— ๋Œ€ํ•œ ์ž‘์—…์ด ๋‹ค๋ฅธ ๋ณ€์ˆ˜์—์„œ ์ฐธ์กฐํ•˜๋Š” ๊ฐœ์ฒด์— ์˜ํ–ฅ์„ ๋ฏธ์น  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๊ฐ’ ํ˜•์‹์—์„œ๋Š” ๊ฐ ๋ณ€์ˆ˜์— ๋ฐ์ดํ„ฐ์˜ ์ž์ฒด ์‚ฌ๋ณธ์ด ๋“ค์–ด ์žˆ์œผ๋ฉฐ ํ•œ ๋ณ€์ˆ˜์˜ ์ž‘์—…์ด ๋‹ค๋ฅธ ๋ณ€์ˆ˜์— ์˜ํ–ฅ์„ ๋ฏธ์น  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค

 

์ฐธ์กฐ ํ˜•์‹์œผ๋กœ๋Š” ํด๋ž˜์Šค , ์ธํ„ฐํŽ˜์ด์Šค , ๋ธ๋ฆฌ๊ฒŒ์ดํŠธ๊ฐ€ ์žˆ์œผ๋ฉฐ,

๊ธฐ๋ณธ์ ์œผ๋กœ ๋‹ค์ด๋‚˜๋ฏน , ์˜ค๋ธŒ์ ํŠธ , ์ŠคํŠธ๋ง์˜ ๊ธฐ๋ณธ ์ฐธ์กฐ ํ˜•์‹๋„ ์ œ๊ณตํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค.

 

์Šคํƒ์„ ์‚ฌ์šฉํ•˜๋ฉด ํšจ์œจ์ ์ด์ง€๋งŒ ๊ฐ’ ํ˜•์‹์˜ ์ˆ˜๋ช…์ด ์ œํ•œ๋˜๋ฏ€๋กœ ์„œ๋กœ ๋‹ค๋ฅธ ํด๋ž˜์Šค ๊ฐ„์— ๋ฐ์ดํ„ฐ๋ฅผ ๊ณต์œ ํ•˜๋Š” ๋ฐ๋Š” ์ ํ•ฉํ•˜์ง€ ์•Š๋‹ค.

๋ฐ˜๋Œ€๋กœ ํด๋ž˜์Šค ๋˜๋Š” ๋ฐฐ์—ด์˜ ์ธ์Šคํ„ด์Šค์™€ ๊ฐ™์€ ์ฐธ์กฐ ํ˜•์‹์€ ํž™์ด๋ผ๋Š” ๋‹ค๋ฅธ ๋ฉ”๋ชจ๋ฆฌ ์˜์—ญ์— ํ• ๋‹น๋œ๋‹ค. 

์•„๋ž˜ ๋ฐฐ์—ด์„ ๊ตฌ์„ฑํ•˜๋Š” 10๊ฐœ์˜ ์ •์ˆ˜์— ํ•„์š”ํ•œ ๊ณต๊ฐ„์ด ํž™์— ํ• ๋‹น๋ฉ๋‹ˆ๋‹ค.

 

1
int[] numbers = new int[10];
cs

 

์ด ๋ฉ”๋ชจ๋ฆฌ๋Š” ๋ฉ”์„œ๋“œ๊ฐ€ ์ข…๋ฃŒ๋˜์–ด๋„ ํž™์— ๋ฐ˜ํ™˜๋˜์ง€ ์•Š์œผ๋ฉฐ, C#์˜ ๊ฐ€๋น„์ง€ ์ˆ˜์ง‘ ์‹œ์Šคํ…œ์—์„œ ์ด ๋ฉ”๋ชจ๋ฆฌ๊ฐ€ ๋” ์ด์ƒ ํ•„์š”ํ•˜์ง€ ์•Š๋‹ค๊ณ  ํŒ๋‹จํ•  ๋•Œ์—๋งŒ ํšŒ์ˆ˜๋œ๋‹ค. ์ฐธ์กฐ ํ˜•์‹์„ ์„ ์–ธํ•˜๋ฉด ์˜ค๋ฒ„ํ—ค๋“œ๊ฐ€ ์ปค์ง€์ง€๋งŒ ์ฐธ์กฐ ํ˜•์‹์€ ๋‹ค๋ฅธ ํด๋ž˜์Šค์—์„œ ์•ก์„ธ์Šคํ•  ์ˆ˜ ์žˆ๋‹ค๋Š” ์žฅ์ ์ด ์žˆ๋‹ค.

 

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


์ถœ์ฒ˜: https://cho22.tistory.com/56 [๊ฒŒ์ž„ ๊ฐœ๋ฐœ์ž]

https://parksh86.tistory.com/114


  const choiceNum = 7;
      choiceNum = 777; //Uncaught TypeError: Assignment to constant variable
      const numbers = [1, 2, 3];
      numbers.push(4);
      console.log(JSON.stringify(numbers)); //[1,2,3,4]
      const numbers = [4, 5, 6];//Uncaught SyntaxError: Identifier 'numbers' has already been declared

const๋กœ ์ดˆ๊ธฐํ™”ํ•œ ๋ฐฐ์—ด ๊ฐ์ฒด์— ์•„์˜ˆ ๋‹ค๋ฅธ ๋ฐฐ์—ด ๊ฐ์ฒด๋ฅผ ๋ฎ์–ด์”Œ์šฐ๋Š” ํ–‰์œ„๋Š” ๋ง‰ํžˆ์ง€๋งŒ,

ํž™์— ์žˆ๋Š” ๊ฐ์ฒด ๋‚ด์šฉ์„ ์ง€์ง€๊ณ  ๋ณถ๊ณ  ์ž๋ฅด๊ณ  ํ•˜๋Š” ํ•จ์ˆ˜๋“ค์€ const๋กœ ๋ฐ•ํ˜€์žˆ์–ด๋„ ํŒŒ๊ดด์  ์ฒ˜๋ฆฌ๊ฐ€ ์ž˜ ์ด๋ฃจ์–ด์ง„๋‹ค.

 

 

<๋ฐฐ์—ด ๋‚ด๋ถ€์—์„œ ํŠน์ • ๊ฐ’์„ ๊ฐ€์ง„ ์š”์†Œ ๋ชจ๋‘ ์ œ๊ฑฐํ•˜๊ธฐ>

      const ์ƒ์กด์ž = ["์ˆ˜์ง„", "๊ฒฝ์ˆ˜", "zombie", "ํ˜œ๋ฏธ", "zombie"];
      const ์ธ๋ฅ˜ = ์ƒ์กด์ž.filter((item) => item !== "zombie");
      console.log(JSON.stringify(์ƒ์กด์ž));//["์ˆ˜์ง„","๊ฒฝ์ˆ˜","zombie","ํ˜œ๋ฏธ","zombie"]
      console.log(JSON.stringify(์ธ๋ฅ˜)); //["์ˆ˜์ง„","๊ฒฝ์ˆ˜","ํ˜œ๋ฏธ"]

<์ตœ์ข… ์ •๋ฆฌ>

์œค์ธ์„ฑ๋‹˜ ์œ ํŠœ๋ธŒ ๋ฌด๋ฃŒ ๊ฐ•์ขŒ ์บก์ฒ˜

      const dieUser = {
        blood: "A",
      };
      const kei = dieUser;
      console.log(JSON.stringify(kei));//{"blood":"A"}
      const sumi = { blood: "B" };
728x90

'Javascript > Javascript' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๋‹ค๋ฅธ ๊ธ€

[๊ธฐ์ดˆ ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ] ๋“œ๋ฆผ์ฝ”๋”ฉ by ์—˜๋ฆฌ๋‹˜ ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ ๊ธฐ์ดˆ ๊ฐ•์˜ (ES5+) ์‹œ๋ฆฌ์ฆˆ ์ •์ฃผํ–‰ ๊ธฐ๋ก  (0) 2022.03.25
[์ค‘๊ธ‰ ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ] ์‹ฌ๋ณผ  (0) 2022.03.24
[์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ] ๋‚œ์ˆ˜ ์ƒ์„ฑ  (0) 2022.03.23
ํŠธ๋Ÿผํ”„ ์นด๋“œ ๋’ค์ง‘๊ธฐ ์˜ˆ์ œ  (0) 2022.03.23
[์ž๋ฐ” ์Šคํฌ๋ฆฝํŠธ] ์ฆ‰์‹œ์‹คํ–‰ํ•จ์ˆ˜... ๊ทธ๋ฆฌ๊ณ  ํด๋กœ์ €  (0) 2022.03.21
    'Javascript/Javascript' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๋‹ค๋ฅธ ๊ธ€
    • [๊ธฐ์ดˆ ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ] ๋“œ๋ฆผ์ฝ”๋”ฉ by ์—˜๋ฆฌ๋‹˜ ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ ๊ธฐ์ดˆ ๊ฐ•์˜ (ES5+) ์‹œ๋ฆฌ์ฆˆ ์ •์ฃผํ–‰ ๊ธฐ๋ก
    • [์ค‘๊ธ‰ ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ] ์‹ฌ๋ณผ
    • [์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ] ๋‚œ์ˆ˜ ์ƒ์„ฑ
    • ํŠธ๋Ÿผํ”„ ์นด๋“œ ๋’ค์ง‘๊ธฐ ์˜ˆ์ œ
    Rainbow๐ŸŒˆCoder
    Rainbow๐ŸŒˆCoder
    ๋ชฐ๋ผ๋„ ๊ฒฐ๊ตญ์€ ์•„๋Š” ๊ฐœ๋ฐœ์ž, ๊ทธ๋Ÿฐ ์‚ฌ๋žŒ์ด ๋˜๊ธฐ ์œ„ํ•œ ๋งค์ผ์˜ ํ•œ๊ฑธ์Œ

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