넀이버 λΆ€μŠ€νŠΈμ½”μŠ€/[λΆ€μŠ€νŠΈμ„œν¬ν„°μ¦ˆ3κΈ°]μžλ°”μŠ€ν¬λ¦½νŠΈμ˜ μ‹œμž‘

[λΆ€μŠ€νŠΈμ½”μŠ€]μžλ°”μŠ€ν¬λ¦½νŠΈμ˜ μ‹œμž‘(객체 순회, ν”„λ‘œνΌν‹°μ™€ λ©”μ†Œλ“œ, ν™œμš©λ²•)

mmin.h 2021. 2. 11. 14:05

μ•ˆλ…•ν•˜μ„Έμš” λΆ€μŠ€ν„°μ½”μŠ€ 3κΈ° μ„œν¬ν„°μ¦ˆ ν—ˆλΈŒμž…λ‹ˆλ‹€. 🌿

λΆ€μŠ€ν„°μ½”μŠ€λž€?

컀λ„₯νŠΈμž¬λ‹¨μ€ 넀이버가 μ„€λ¦½ν•œ λΉ„μ˜λ¦¬ ꡐ윑 μž¬λ‹¨μž…λ‹ˆλ‹€.
μ†Œν”„νŠΈμ›¨μ–΄ 개발자 μ–‘μ„± ꡐ윑 ν”„λ‘œκ·Έλž¨, λΆ€μŠ€νŠΈμ½”μŠ€μ™€ ν•¨κ»˜
λ‹Ήμ‹ μ˜ 개발 컀리어λ₯Ό μ—…κ·Έλ ˆμ΄λ“œν•˜μ„Έμš”!

 

제 ν¬μŠ€νŒ…μ€ κ°•μ˜ λ‚΄ 생각해보기와 μˆ˜μ—…μ—μ„œ λ‹€λ£¨λŠ” μ½”λ“œλ₯Ό 직접 ν¬λ‘¬ν™”λ©΄μ—μ„œ 확인 ν•΄λ³Ό 수 μžˆλ„λ‘ μ§„ν–‰ν•©λ‹ˆλ‹€. κ΄€λ ¨λœ κ°œλ…κ³Ό κ°•μ˜λŠ” ν•¨κ»˜ μ˜¬λ €λ“œλ¦¬λŠ” λ§ν¬μ—μ„œ 확인해보싀 수 μžˆμŠ΅λ‹ˆλ‹€. 

www.boostcourse.org/cs124/joinLectures/52258

 

μžλ°”μŠ€ν¬λ¦½νŠΈμ˜ μ‹œμž‘

λΆ€μŠ€νŠΈμ½”μŠ€ 무료 κ°•μ˜

www.boostcourse.org

 


이번 κ°•μ˜μ—μ„œλŠ” 객체에 μžˆλŠ” λͺ¨λ“  값듀을 κ°€μ Έμ˜€λŠ” 방법에 λŒ€ν•΄μ„œ μ•Œμ•„λ΄…μ‹œλ‹€. λ°°μ—΄μ—μ„œλŠ” λ°˜λ³΅λ¬Έμ„ μ‚¬μš©ν–ˆμ—ˆμ£ . μ΄λŸ¬ν•œ κΈ°λŠ₯을 보고 **순회(iteration)**이라고 λΆ€λ¦…λ‹ˆλ‹€.

κ°μ²΄μ—μ„œλŠ” for inμ΄λΌλŠ” 것을 μ‚¬μš©ν•˜κ²Œ λ©λ‹ˆλ‹€. λ‹€μŒμ˜ μ½”λ“œλ₯Ό μ‚΄νŽ΄λ΄…μ‹œλ‹€.

var coworkers = {
  "programmer": "egoing",
  "designer": "leezche"
};

for(var key in coworkers) {
  document.write(key+'<br>');
}

for을 μ“°λ©΄ coworkers에 μžˆλŠ” 이름듀을 ν•˜λ‚˜μ”© κ°€μ Έμ˜€κ²Œ λ©λ‹ˆλ‹€. 그리고 이 이름을 μ°¨λ‘€λŒ€λ‘œ key에 λ„£μ–΄μ€λ‹ˆλ‹€. 그러면 κ·Έ key듀이 μ°¨λ‘€λŒ€λ‘œ 좜λ ₯되겠죠. 결과적으둜 programmer와 designerκ°€ 좜λ ₯될 κ²λ‹ˆλ‹€.

κ·Έλ ‡λ‹€λ©΄ 이름 λŒ€μ‹  κ·Έ 이름에 ν•΄λ‹Ήν•˜λŠ” 값을 좜λ ₯ν•˜κ³  μ‹Άλ‹€λ©΄ μ–΄λ–»κ²Œ ν•˜λ©΄ λ κΉŒμš”? 이 keyλ₯Ό μ΄μš©ν•˜λ©΄ λ©λ‹ˆλ‹€. λ‹€μŒκ³Ό 같이 μ½”λ“œλ₯Ό μž‘μ„±ν•˜λ©΄ λ©λ‹ˆλ‹€.

for(var key in coworkers) {
  document.write(coworkers[key]+'<br>');
}

생각해보기

μ§€λ‚œ κ°•μ˜μ˜ <생각해보기>μ—μ„œ λ§Œλ“€μ—ˆλ˜ countriesλΌλŠ” κ°μ²΄μ—μ„œ, λͺ¨λ“  객체의 이름과 값을 ν•œ 쀄씩 좜λ ₯ν•˜λŠ” μ½”λ“œλ₯Ό λ§Œλ“€μ–΄ λ΄…μ‹œλ‹€.

<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>

<body>
    <h1>Object</h1>
    <h2>Create</h2>
    <script>
        var coworkers = {
            "programmer": "egoing",
            "desiger": "leezche"
        };
        document.write("programmer : " + coworkers.programmer + "<br>");
        document.write("designer : " + coworkers.desiger + "<br>");
        coworkers.bookkeeper = "duru";
        document.write("bookkeeper : " + coworkers.bookkeeper + "<br>");
        coworkers["data scientist"] = "taeho";
        document.write(" data scientist: " + coworkers["data scientist"] + "<br>");

        var countries = {
            "asia": "korea"
        };
        countries.europe = "england";
        document.write("asia : " + countries.asia + "<br>");
        document.write("europe  : " + countries.europe + "<br>");
    </script>
    <br>
    <!-- 객체의 순회 -->
    <script>
        for (var key in coworkers) {
            document.write(key + " : " + coworkers[key] + '<br>');
        }
        // 생각해보기
        for (var key in countries) {
            document.write(key + " : " + countries[key] + '<br>');
        }
    </script>

</body>

</html>


객체(ν”„λ‘œνΌν‹°μ™€ λ©”μ†Œλ“œ)

https://www.boostcourse.org/cs124/lecture/194641

 

μžλ°”μŠ€ν¬λ¦½νŠΈμ˜ μ‹œμž‘

λΆ€μŠ€νŠΈμ½”μŠ€ 무료 κ°•μ˜

www.boostcourse.org

객체의 λ©”μ†Œλ“œ

κ°μ²΄μ—λŠ” λ‹€μ–‘ν•œ 것듀을 담을 수 μžˆμŠ΅λ‹ˆλ‹€. μ‹¬μ§€μ–΄λŠ” ν•¨μˆ˜κΉŒμ§€ 담을 수 있죠.

예λ₯Ό λ“€μ–΄μ„œ μ§€λ‚œ μ‹œκ°„κΉŒμ§€ μ‚¬μš©ν–ˆλ˜ coworkersλΌλŠ” 객체λ₯Ό μƒκ°ν•΄λ΄…μ‹œλ‹€. μš°λ¦¬λŠ” 이 객체에 μƒˆλ‘œμš΄ ν•¨μˆ˜, 즉 λ©”μ†Œλ“œλ₯Ό μΆ”κ°€ν•  κ²λ‹ˆλ‹€. λ°”λ‘œ showAll()μ΄λΌλŠ” λ©”μ†Œλ“œμ΄μ£ . λ‹€μŒκ³Ό 같이 μž‘μ„±ν•  수 μžˆμŠ΅λ‹ˆλ‹€.

coworkers.showAll = function() {
  for (var key in coworkers) {
    document.write(key + ' : ' + coworkers[key] + '<br>');
  }
}

즉, coworkersμ—μ„œλ§Œ μ‚¬μš©ν•  수 μžˆλŠ” showAllμ΄λΌλŠ” λ©”μ†Œλ“œλ₯Ό μΆ”κ°€ν•˜κ²Œ 된 κ²ƒμž…λ‹ˆλ‹€.

ν•˜μ§€λ§Œ 이 방법은 κ·Έλ ‡κ²Œ 쒋은 방법은 μ•„λ‹™λ‹ˆλ‹€. μ™œλƒν•˜λ©΄ cowerkersλΌλŠ” λ³€μˆ˜ 이름이 λ°”λ€Œλ©΄ ν•¨μˆ˜λ₯Ό μˆ˜μ •ν•΄μ•Ό ν•˜κΈ° λ•Œλ¬Έμ΄μ£ . 이 λ•Œ μ‚¬μš©ν•˜λŠ” 것이 λ°”λ‘œ thisμž…λ‹ˆλ‹€. coworkers λŒ€μ‹ μ— 이 λ©”μ†Œλ“œκ°€ 쓰인 객체λ₯Ό κ°€λ¦¬ν‚€λŠ” thisλ₯Ό μ‚¬μš©ν•΄μ£Όλ©΄ λ©λ‹ˆλ‹€. λ‹€μŒκ³Ό 같이 μˆ˜μ •ν•  수 있겠죠.

coworkers.showAll = function() {
  for (var key in this) {
    document.write(key + ' : ' + this[key] + '<br>');
  }
}

객체의 ν”„λ‘œνΌν‹°

μ΄λ ‡κ²Œ κ°μ²΄μ— ν•΄λ‹Ήν•˜λŠ” ν•¨μˆ˜λ“€μ€ λ©”μ†Œλ“œλΌκ³  λΆ€λ¦…λ‹ˆλ‹€. 그리고 κ°μ²΄μ— ν•΄λ‹Ήν•˜λŠ” λ³€μˆ˜λ“€λ„ 있죠. 예λ₯Ό λ“€λ©΄ coworkers.programmerμ—μ„œ programmer에 ν•΄λ‹Ήν•˜λŠ” κ²ƒλ“€μž…λ‹ˆλ‹€. 이런 λ³€μˆ˜λ“€μ€ **ν”„λ‘œνΌν‹°(property)**라고 λΆ€λ¦…λ‹ˆλ‹€.

 

생각해보기

쑰건문을 μ‚¬μš©ν•΄μ„œ keyκ°€ programmer일 λ•Œλ§Œ 좜λ ₯ν•˜λŠ” λ©”μ†Œλ“œ printProgrammer()을 λ§Œλ“€μ–΄ λ΄…μ‹œλ‹€.

cowerkers.printProgrammer = fucntion(){ 
	for(var key in this){ 
	if(key == 'programmer'){
		document.write(this[key] + '<br>');
	}
}

객체의 ν™œμš©

https://www.boostcourse.org/cs124/lecture/194642/

 

μžλ°”μŠ€ν¬λ¦½νŠΈμ˜ μ‹œμž‘

λΆ€μŠ€νŠΈμ½”μŠ€ 무료 κ°•μ˜

www.boostcourse.org

객체의 ν™œμš©

객체 첫 κ°•μ˜μ—μ„œ 봀던 예제λ₯Ό λ‹€μ‹œ ν•œ 번 μ‚΄νŽ΄λ΄…μ‹œλ‹€. 첫 κ°•μ˜μ—μ„œ μš°λ¦¬λŠ” λ§Žμ€ ν•¨μˆ˜λ“€μ„ λ§Œλ“€μ—ˆκ³ , 이 ν•¨μˆ˜λ“€μ˜ 이름이 κ²ΉμΉ˜μ§€ μ•Šλ„λ‘ ν•˜κΈ° μœ„ν•΄μ„œ λ§Žμ€ λ…Έλ ₯을 κΈ°μšΈμ˜€μŠ΅λ‹ˆλ‹€. 이번 κ°•μ˜μ—μ„œλŠ” κ°μ²΄λ₯Ό ν™œμš©ν•΄μ„œ 이런 λ¬Έμ œμ λ“€μ„ ν•΄κ²°ν•΄ λ΄…μ‹œλ‹€.

λ¨Όμ € BodyλΌλŠ” μ΄λ¦„μ˜ 객체λ₯Ό λ‹€μŒκ³Ό 같이 λ§Œλ“€μ–΄ λ΄…μ‹œλ‹€.

var Body = {
  setColor: function (color) {
    document.querySelector('body').style.color = color;
  },
  setBackgroundColor: function (color) {
    document.querySelector('body').style.backgroundColor = color;
  }
}

링크에 λŒ€ν•΄μ„œλ„ μ΄λŸ¬ν•œ μž‘μ—…μ„ ν•˜κΈ° μœ„ν•΄μ„œ LinksλΌλŠ” 객체λ₯Ό λ§Œλ“€μ–΄ λ΄…μ‹œλ‹€.

var Links = {
  setColor: function (color) {
    var alist = document.querySelectorAll('a');
    var i = 0;
    while (i < alist.length) {
      alist[i].style.color = color;
      i = i + 1;
    }
  }
}

μ΄λ ‡κ²Œ λ§Œλ“€λ©΄ Body와 Links에 λͺ¨λ‘ setColorμ΄λΌλŠ” ν•¨μˆ˜κ°€ μ‘΄μž¬ν•˜κ²Œ λ©λ‹ˆλ‹€. ν•˜μ§€λ§Œ 이 λ‘˜μ„ μ‚¬μš©ν•  λ•Œμ—λŠ” λ‹€μŒκ³Ό 같이 λ‹€λ₯΄κ²Œ μ‚¬μš©ν•˜κ²Œ λ©λ‹ˆλ‹€.

Body.setColor('black');
Links.setColor('powderblue');

ν•¨μˆ˜μ˜ 이름이 같아도 λ‹€λ₯Έ 객체에 μ†Œμ†λœ λ©”μ†Œλ“œμ΄κΈ° λ•Œλ¬Έμ— 좩돌이 μΌμ–΄λ‚˜μ§€ μ•ŠλŠ” 것이죠.

<script>
        var Links = {
            setColor:function(color){
                var alist = document.querySelectorAll('a');
                var i = 0;
                while (i < alist.length){
                    alist[i].style.color = color;
                    i = i + 1; 
                }
            }
        }
        var Body = {
            setColor: function(color){
                document.querySelector('body').style.color = color;
            },
            setBackgroundColor:function (color){
                document.querySelector('body').style.backgroundColor = color;
            }
        }
        function nightDayHandler(self) {
            var target = document.querySelector('body');
            if (self.value === 'night') {
                Body.setBackgroundColor('black');
                Body.setColor('white');
                Links.setColor('powderblue');
                self.value = 'day';
            }else {
                Body.setBackgroundColor('white');
                Body.setColor('black');
                Links.setColor('blue');
                self.value = 'night';
                
            }
        }
        
    </script>

생각해보기

이번 κ°•μ˜μ—μ„œ μˆ˜μ •ν•œ μ½”λ“œκ°€ μ΄μ „μ˜ μ½”λ“œμ— λΉ„ν•΄μ„œ 더 쒋아진 점은 λ¬΄μ—‡μΌκΉŒμš”?

 

κ°μ²΄λ§ˆλ‹€ μ„œλ‘œ μ—°κ΄€λœ λ©”μ†Œλ“œλ“€μ„ 정리해놓아 보기 κΉ”λ”ν•΄μ‘Œλ‹€. μ„œλ‘œ λ‹€λ₯Έ 객체 λ‚΄μ˜ λ©”μ†Œλ“œ 이름은 μ€‘λ³΅λ˜μ–΄λ„ 되기 λ•Œλ¬Έμ— 이름이 κ°„λ‹¨ν•΄μ‘Œλ‹€.


ν€΄μ¦ˆλ„ μ†μ‰½κ²Œ μ“±μ“±~! μ—¬λŸ¬λΆ„λ“€λ„ μ–Όλ§ˆ 남지 μ•Šμ•˜μœΌλ‹ˆ λΉ λ₯΄κ²Œ λ”°λΌμ˜΅μ‹œλ‹€~!


www.boostcourse.org/

 

λ‹€ ν•¨κ»˜ 배우고 μ„±μž₯ν•˜λŠ” λΆ€μŠ€νŠΈμ½”μŠ€

λΆ€μŠ€νŠΈμ½”μŠ€(boostcourse)λŠ” λͺ¨λ‘ ν•¨κ»˜ 배우고 μ„±μž₯ν•˜λŠ” λΉ„μ˜λ¦¬ SW 온라인 ν”Œλž«νΌμž…λ‹ˆλ‹€.

www.boostcourse.org

github.com/hhhminme

 

hhhminme - Overview

κΎΈμ€€νžˆ 곡뢀쀑인 초보 κ°œλ°œμžμ§€λ§μƒ hub@kakao.com. hhhminme has 12 repositories available. Follow their code on GitHub.

github.com