# TIL-20210713

# Today

  • 그 동안..
  • Javascript Deep dive

# Contents

# 그 동안..

거의 2주정도의 시간동안 블로그를 따로 작성하지 않았다. 일주일 정도는 주변 정리를 하는데 시간을 많이 보냈다. 따로 코드를 작성할 시간도 있었지만, 다시 전의를 불태우고자 시간을 조금 더 여유롭게 가지기로 했다. 그래도 간간히 면접이나 코딩테스트 등을 진행했다. 물론 깃(git)에 기록이 남지 않는 것이 많이 아쉽다.

앞으로는 github에 기록을 남길 수 있도록 수단을 정하기로 했다. 그리고 지난 주 부터는 면접내용을 조금 더 살펴보고 내가 준비해야하는 부분을 정리해 보았다.

내가 생각한 나의 개선이 필요한 점은,

  1. 모르는건 아니지만 전문적인 느낌이 부족하다.
    개발자로서 취업을 준비하는 것은 처음이다. 그러다보니 기술적인 질문에 어떤식의 답변을 준비해야 하는지 막막할 때가 많다. 내가 가지고 있는 정보를 상대방이 쉽게 알아들을 수 있도록 정리하는 기술이 부족하다는 느낌을 많이 받았다.

  2. 내가 겪은 경험을 조금 더 간결하게 설명할 필요가 있다. 첫 회사에서 개발자로 일한 경험등을 표현하는 과정이 다소 불안한 감이 있다. 아무래도 개발자가 아닌 포지션에서 이후 개발자 포지션으로 변경하는 과정의 설명이 들어가고 그 과정을 어떻게 개선해 갔는지 까지 표현하려고 하다보면 이야기가 다소 초점이 없는 것으로 보이는 상황이 연출된다.

  3. 코딩 테스트 연습이 더 필요하다. 아직 논리적인 사고를 구현하는 능력이 부족하다. 기본적인 알고리즘 형태를 기억해야 한다. 아직은 이론적인 동작 요령을 기억하기 때문에, 코드로 구현하는 과정은 그와 별개로 시간이 더 걸린다. 시간내에 코드를 작성하는 요령이 필요해 보인다.

# Javascript Deep Dive(깊게 톺아보기)

기본 강의나 표면적인 내용이외의 Javascript로 app을 구성하다보면 마주하는 문제들을 조금 더 심도있게 살펴보려 한다.

  • this란 무엇인가.
    javascript는 prototype기반의 인터프리터 언어이다. this란 이 과정에서 prototype의 inherit(상속)에서 관여하며, 실행 context 즉 실행 문맥이라고 할 수 있다.

  • nodejs와 chrome의 차이

    chrome에서 작도하는 javascript는 web기반의 실행은 웹 api를 제공한다.
    window, document객체를 가지고 있어 DOM을 조작할 수 있다.

    반면에, nodejs는 Javascript 실행 환경이다. ECMAscript를 기반으로한 Javascript 런타임으로, Javascript 코드를 웹 밖에서도 구동할 수 있는 환경을 구축하게 된다.
    이중에 우리는 http서버(웹서버)를 많이 사용한다.

    이 때문에, nodejs는 Module기능이 있고 web Javascript에서는 없다. 또한

  • ECMAscript란? ECMA는 비영리 단체로 js의 표준을 정하는 기관이다. 우리는 여러가지 브라우저를 사용하고 브라우저에서 공통적으로 동작할 수 있는 Javascript 표준이 필요한데, 이 표준을 정하는 기관이 ECMA이다. js는 ECMA에서 발표하는 ECMAscript를 기반으로 동작하며, 브라우저는 어떤 ECMA버전을 호환하느냐에 따라서 우리가 작성한 코드가 동작 할수도 하지 않을 수도 있다.

    때문에, 우리는 es5~es12(2021년 버전)까지 여러가지 버전중 어떤 js버전을 사용할지 선택해야 하며, 추가적으로 여러가지 버전의 ECMA를 호환하기 위해 Babel이라는 compiler를 사용하기도 한다.