anchor.diff:  .l-main-section#E
   
   :marked
  +  ## ECMA스크립트 (ECMAScript)
     ## ECMAScript
   .l-sub-section
     :marked
  +    [공식적인 자바스크립트 언어 명세](https://en.wikipedia.org/wiki/ECMAScript)를 말합니다.
  +    
       The [official JavaScript language specification](https://en.wikipedia.org/wiki/ECMAScript).
   
  +    가장 최근에 정의된 자바스크립트 버전은 [ECMA스크립트 2016](http://www.ecma-international.org/ecma-262/7.0/) ("ES2016" 또는 "ES7"라고도 함)입니다.
  +    많은 Angular 2 개발자들은 이 버전의 자바스크립트를 사용하거나 또는 이 버전과 호환이 되도록 지원하고자 하는
  +    [타입스크립트](#typesScript)와 같은 파생언어들로 애플리케이션을 작성하게 될 것입니다.
  +    
       The latest approved version of JavaScript is
       [ECMAScript 2016](http://www.ecma-international.org/ecma-262/7.0/)
       (AKA "ES2016" or "ES7") and many Angular 2 developers will write their applications
       either in this version of the language or a dialect that strives to be
       compatible with it such as [TypeScript](#typesScript).
   
  +    대부분의 모던 브라우저들은 오래된 "ECMAScript 5" (AKA ES5) 표준만을 지원합니다.
  +    ES2016, ES2015 또는 파생언어로 작성된 애플리케이션들은 ES5 자바스크립트로 "[트랜스파일](#transpile)"되어야 합니다.
  +    
       Most modern browsers today only support the much older "ECMAScript 5" (AKA ES5) standard.
       Applications written in ES2016, ES2015 or one of their dialects must be "[transpiled](#transpile)"
       to ES5 JavaScript.
   
  +    물론, Angular 2로 개발할 때 ES5를 사용하기를 선택할 수도 있습니다.
  +    
       Angular 2 developers may choose to write in ES5 directly.
   
   :marked
     ## ES2015
  -.l-sub-section
  -  :marked
  +  ## ES2015
  +.l-sub-section
  +  :marked
  +    [ECMAScript](#ecmascript) 2015의 약어입니다.
  +    
       Short hand for [ECMAScript](#ecmascript) 2015.
   :marked
     ## ES6
  -.l-sub-section
  -  :marked
  +  ## ES6
  +.l-sub-section
  +  :marked
  +    [ECMAScript](#ecmascript) 2015의 약어입니다.
  +    
       Short hand for [ECMAScript](#ecmascript) 2015.
   :marked
     ## ES5
  -.l-sub-section
  -  :marked
  +  ## ES5
  +.l-sub-section
  +  :marked
  +    [ECMAScript](#ecmascript) 5의 약어로, 대부분의 모던 브라우저들이 지원하는 자바스크립트 버전입니다.
  +    [ECMAScript](#ecmascript)를 참조하세요.
  +    
       Short hand for [ECMAScript](#ecmascript) 5, the version of JavaScript run by most modern browsers.
       See [ECMAScript](#ecmascript).
   
  
positive.code: 
        .alert.is-important
          :marked
            Always include the parentheses `()` when applying a decorator.
            A decorator is a **function** that must be called when applied.
  
  :marked
    ## Dependency Injection
  .l-sub-section
    :marked
      Dependency Injection is both a design pattern and a mechanism
      for creating and delivering parts of an application to other
      parts of an application that request them.
  
      Angular developers prefer to build applications by defining many simple parts
      that each do one thing well and then wire them together at runtime.
  
      These parts often rely on other parts. An Angular [Component](#component)
      part might rely on a service part to get data or perform a calculation. When a
      part "A" relies on another part "B", we say that "A" depends on "B" and
      that "B" is a dependency of "A".
  
      We can ask a "Dependency Injection System" to create "A"
      for us and handle all the dependencies.
      If "A" needs "B" and "B" needs "C", the system resolves that chain of dependencies
      and returns a fully prepared instance of "A".
  
      Angular provides and relies upon its own sophisticated
      [Dependency Injection](dependency-injection.html) system
      to assemble and run applications by "injecting" application parts
      into other application parts where and when needed.
  
      At the core there is an [`Injector`](#injector) that returns dependency values on request.
      The expression `injector.get(token)` returns the value associated with the given token.
  
  
negative.code: 
      Learn more in the [Dependency Injection](!{docsLatest}/guide/dependency-injection.html) chapter.
  :marked
    ## 지시자 (Directive)
    ## Directive
  .l-sub-section
    :marked
      브라우저 DOM에서 HTML 엘리먼트를 생성하고, 고치고, 이들과 상호작용하는 Angular 클래스입니다.
      지시자는 Angular의 가장 핵심적인 기능입니다.
      
      An Angular class responsible for creating, re-shaping, and interacting with HTML elements
      in the browser DOM. Directives are Angular's most fundamental feature.
  
      지시자는 거의 항상 HTML 엘리먼트 또는 속성과 연동됩니다.
      보통 이런 엘리먼트나 속성 자체를 지시자라고 합니다.
      Angular가 HTML 템플릿에서 지시자를 찾으면 그에 일치하는 지시자 클래스의 인스턴스를 만들고
      그 인스턴스에 브라우저 DOM 중 해당하는 부분의 컨트롤을 넘겨줍니다.
      
      A Directive is almost always associated with an HTML element or attribute.
      We often refer to such an element or attribute as the directive itself.
      When Angular finds a directive in an HTML template,
      it creates the matching directive class instance
      and gives that instance control over that portion of the browser DOM.
  
      `<my-directive>`와 같이 커스텀 지시자와 연동하는 커스텀 HTML 마크업을 만들 수도 있습니다.
      네이티브 HTML을 작성하는 것과 같이 커스텀 마크업을 HTML 템플릿에 추가하면 됩니다.
      이 경우, 지시자가 HTML 자체를 확장한 것이 됩니다.
      
      Developers can invent custom HTML markup (e.g., `<my-directive>`) to
      associate with their custom directives. They add this custom markup to HTML templates
      as if they were writing native HTML. In this way, directives become extensions of
      HTML itself.
  
      지시자는 다음 세 카테고리 중 하나에 속합니다:
      
      Directives fall into one of three categories:
  
      1. [컴포넌트](#component).
      애플리케이션 로직과 HTML 템플릿을 결합하여 애플리케이션 [뷰]를 렌더합니다.
      컴포넌트는 보통 HTML 엘리먼트들로 표현됩니다.
      Angular 앱의 중요한 구성요소로 아주 많이 사용하게 될 것입니다.
      
      [Components](#component) that combine application logic with an HTML template to
      render application [views]. Components are usually represented as HTML elements.
      They are the building blocks of an Angular application and the
      developer can expect to write a lot of them.
  
      2. [속성 지시자](#attribute-directive).
      다른 HTML 엘리먼트, 속성, 프로퍼티와 컴포넌트들의 행동을 탐지하고 변경할 수 있습니다.
      보통 HTML 속성으로 표현하기 때문에 이런 이름을 갖게 되었습니다.
      
      [Attribute Directives](#attribute-directive) that can listen to and modify the behavior of
      other HTML elements, attributes, properties, and components. They are usually represented
      as HTML attributes, hence the name.
  
      3. [구조형 지시자](#structural-directive).
      일반적으로 HTML의 요소나 자식요소들을 더하거나, 빼거나, 조작하여 HTML 레이아웃을 만들거나 수정할 때 사용합니다.
      
      1. [Structural Directives](#structural-directive), a directive responsible for
      shaping or re-shaping HTML layout, typically by adding, removing, or manipulating
      elements and their children.
  