20210730

1929 단어 TILTIL

Facts & Feelings

코어 자바스크립트 독서

  • 객체 전용 메서드
  • 프로토타입 체이닝

자바스크립트에서 객체 전용 메서드는 다음과 같이 static 메서드로 지정되어 있다. 배열 전용 메서드가 prototype 에 들어있는 것과는 다르게 되어 있다. arr.every(i -> i !== 0) 과 같이 단순하게 체이닝하면 좋을텐데, 왜 이렇게 되어 있는 걸까?

const object = {};

Object.values(object);

// 왜 배열 전용 메서드 처럼 Array.prototype 에 들어있지 않을까?

이유는 이와 같다. 자바스크립트는 프로토타입 기반의 객체지향을 따르고 있다. 이 구조에서는 프로토타입 체이닝을 통해서 상속을 구현한다. 체이닝을 통해 원형 객체를 따라가다 보면, 최상단에는 Object 가 위치하고 있다.

만약, 객체 전용 메서드를 Object.prototype 에 배치한다면, 모든 타입의 자바스크립트 객체들이 해당 메서드를 참조할 수 있게 된다. 그래서, 설사 object 전용 메서드를 prototype 에 추가하더라도, 그것은 모든 타입의 객체가 쓸 수 있게 되어버린다. 이 때문에 자바스크립트에서는 object 의 전용메서드를 Object.values() 와 같이 static method 로 설계하였다.

이력서 작성

요 며칠간 이력서를 작성하면서 어려움을 많이 겪었다. 자신이 쓴것을 여러번 수정해야했는데 그것이 참 고역이었다. 어렵게 느껴졌던 점은, 무엇이 잘못되었는지 명확하게 알수없는 것이었다.

명확성을 되찾기 위해, 내가 작성한 부분이 어떤 점에서 이상한지를 명시적으로 적어보고, 말을 해보며 고치는 연습을 했다. 이 부분은 ~~ 해서 이상하다, ~~ 을 빼고 ~~ 으로 대체해보자. 라는 식이었다. 매일 새로운 버전의 이력서를 만들어, 여러가지 버전의 이력서를 두고 어떤 부분이 변화된 건지 알 수 있도록 했다.

물론 위의 작업을 훌륭하게 수행하지는 못했다. 하다가 지쳐서 에라 모르겠다하는 순간도 많았다. 하지만, 무언가를 잘하게 되는것이 모두 학습이라고 하고, 이력서를 작성하는 것도 그 중 하나라면 적절한 방향이었다고 생각한다.

피드백을 더 받았어야 했는데, 뭔가 시간을 뺏는것 같아 요청을 하지 못했다. 이런부분도 아쉽다.

Findings

  • 모든 일에 명확성을 더 키우자.
  • 성공보다는 성장, 목표보다는 계획을 통해 자유로워지자.

Affirmation

  • 나는 급할수록 더욱 분명하게 행동하는 사람이다.

좋은 웹페이지 즐겨찾기