코딩/TIL

TIL #210214

나동 2021. 2. 14. 23:24

📚 TIL


자바스크립트 코딩의 기술

🍘 자바스크립트 코딩의 기술 스터디 6회

 

  • 주제 : 클래스로 인터페이스를 간결하게 유지하라
  • 시간 : 저녁 9시 10분

문제와 답

 

Q1 : 클래스를 선언하고 인스턴스를 생성해 보세요

 

A1 : class 키워드와 new 키워드 사용

 

class Animal {
  constructor(name) {
    this.name = name;
  }
}

const monkey = new Animal('monkey');

Q2 : ES5 스펙만으로 Class를 구현할수 있는가? 방법은?
A2 : function에 속성, 프로토타입에 메서드를 추가한다


Q3 : Class에 정의 된 method들은 어디에 연결이 돼있을까요?
A3 : 프로토타입에 연결되어 있다


Q4 : bind()를 사용해야되는 케이스를 알려주세요
A4 : this를 다루면서 오류가 발생할 때 문맥을 명시적을 정하기 위해 사용

 


Q5 : 게터와 세터로 속성설정, 변경을 하면 좋은 점과 나쁜점에 대해서 설명해주세요
A5 : 복잡도를 숨길 수 있다

클래스가 비대해진다, 메서드 호출인지 속성 설정인지 알기 힘들어진다, 디버깅 어렵고 테스트 어렵다


Q6 : 자바스크립트는 비공개 속성을 지원하지 않습니다. 이를 해결하기 위한 방법을 설명해주세요

A6 : 게터와 세터를 이용한다


Q7 : Generator를 사용함으로 가지는 장점과 단점은 무엇일까요?
A7 : 다른 개발자들이 클래스의 세부 구현 내용을 알 필요가 없다
복잡도를 숨기는 것이 디버깅을 더 어렵게 만든다


Q8 : 제너레이터로 FamilyTree에 이터러블 속성을 생성하여 가족들의 이름을 모두 출력해주세요.

 

 

A8 : class 속성에 제너레이터 추가

 

* [Symbol.iterator]() {
  let node = this.family;
  while (node) {
    yield node.name;
    node = node.child;
  }
}
...
console.log([...family]);

스터디 전

 

기분 이유 기대하는 것
10 오랜만에 스터디를 해서 문맥을 확실히 이해한다

 

스터디 후

 

기분 얻은 것 할 것
10 제너레이터를 확실히 이해했다 보내주신 영상 시청하기

 

필기노트

 

 

참고 링크 : 

Private class fields

developer.mozilla.org/ko/docs/Web/JavaScript/Reference/Classes/Private_class_fields

 

Private class fields - JavaScript | MDN

class 의 속성(property)들은 기본적으로 public 하며 class 외부에서 읽히고 수정될 수 있다. 하지만, ES2019 에서는 해쉬 # prefix 를 추가해 private class 필드를 선언할 수 있게 되었다.class ClassWithPrivateField {

developer.mozilla.org

 

지연 평가

armadillo-dev.github.io/javascript/whit-is-lazy-evaluation/

 

[Javascript] 지연 평가(Lazy evaluation) 를 이용한 성능 개선

컴퓨터 프로그래밍에서 느긋한 계산법(Lazy evaluation)은 계산의 결과 값이 필요할 때까지 계산을 늦추는 기법이다. 위키피디아에서 지연 평가를 설명하는 문장이다. 지연 평가는 필요 할 때까지

armadillo-dev.github.io

 

Symbol.iterator

developer.mozilla.org/ko/docs/Web/JavaScript/Reference/Global_Objects/Symbol/iterator

 

Symbol.iterator - JavaScript | MDN

잘 알려진 Symbol.iterator 심볼은 객체에 대응하는 기본 이터레이터를 지정합니다. for...of와 같이 사용됩니다. The source for this interactive example is stored in a GitHub repository. If you'd like to contribute to the inter

developer.mozilla.org

 


 

😁 오늘 한 일


 

📕 공부하기

- 오랜만에 스터디를 했다!

- 원래 어제 다 읽으려고 했는데 다 못읽어서 오늘 이어서 읽고 스터디에 참여했어요 ㅎㅎ

 

👩‍🏫 스터디하기

- 오늘은 문맥과 제너레이터, 프로토타입 어려운 부분이 많이 나왔어요

- 도움되는 영상과 자료 많이 보내주시니까 공부해야지!!

 

'코딩 > TIL' 카테고리의 다른 글

TIL #210216  (0) 2021.02.16
TIL #210215  (0) 2021.02.15
TIL #210213  (0) 2021.02.13
TIL #210212  (0) 2021.02.12
TIL #210211  (0) 2021.02.11