anchor.diff:  - var _promise = _Promise.toLowerCase()
   
   :marked
  +  # 데이터 가져오기와 저장하기
     # Getting and Saving Data
  +
  +  이해관계자들은 진행상황에 감사하고 있습니다.
  +  이제 그들은 서버에서 히어로 데이터를 가져오고,
  +  사용자가 추가, 수정, 삭제, 그리고 변경사항을 다시 서버에 저장하길 원합니다.
   
     Our stakeholders appreciate our progress.
     Now they want to get the hero data from a server, let users add, edit, and delete heroes,
     and save these changes back to the server.
   
  +  이 챕터에서는 애플리케이션이 원격 서버의 웹 API에 대한 HTTP 호출을 하도록 만들어보겠습니다.
  +
     In this chapter we teach our application to make the corresponding HTTP calls to a remote server's web API.
   
  +  이 파트의 <live-example></live-example>을 실행해 보세요.
  +
     Run the <live-example></live-example> for this part.
   
   .l-main-section
   :marked
  +  ## 지나온 여정
     ## Where We Left Off
  +
  +  [이전 챕터](toh-pt5.html)에서는 대시보드와 고정된 히어로 목록 사이를 이동하고,
  +  그러는 동안에 선택된 히어로를 수정하는 것을 배웠습니다.
  +  이 부분이 이번 챕터의 시작 지점입니다.
   
     In the [previous chapter](toh-pt5.html), we learned to navigate between the dashboard and the fixed heroes list, editing a selected hero along the way.
     That's our starting point for this chapter.
   
   block start-server-and-watch
     :marked
  +    ### 지속적인 앱 트랜스파일링과 실행
       ### Keep the app transpiling and running
  +
  +    터미널/콘솔 창을 열고, 
  +    TypeScript 컴파일러를 실행해 변경사항을 감시하도록 하고, 서버를 구동합니다.
   
       Open a terminal/console window and enter the following command to
       start the TypeScript compiler, start the server, and watch for changes:
  
positive.code:     npm start
  
  :marked
    The application runs and updates automatically as we continue to build the Tour of Heroes.
  
  .l-main-section#http-providers
  h1 Providing HTTP Services
  block http-library
    :marked
      The `HttpModule` is ***not*** a core Angular module.
      It's Angular's optional approach to web access and it exists as a separate add-on module called `@angular/http`,
      shipped in a separate script file as part of the Angular npm package.
  
      Fortunately we're ready to import from `@angular/http` because `systemjs.config` configured *SystemJS* to load that library when we need it.
  
  :marked
    ### Register for HTTP services
  
  block http-providers
    :marked
      Our app will depend upon the Angular `http` service which itself depends upon other supporting services.
      The `HttpModule` from `@angular/http` library holds providers for a complete set of HTTP services.
  
      We should be able to access these services from anywhere in the application.
      So we register them all by adding `HttpModule` to the `imports` list of the `AppModule` where we
      bootstrap the application and its root `AppComponent`.
  
    +makeExample('app/app.module.ts', 'v1','app/app.module.ts (v1)')
  
    :marked
      Notice that we supply `!{_HttpModule}` as part of the *imports* !{_array} in root NgModule `AppModule`.
  
  .l-main-section
  :marked
    ## Simulating the web API
  
    We recommend registering application-wide services in the root
    `!{_AppModuleVsAppComp}` *providers*.  <span if-docs="dart">Here we're
    registering in `main` for a special reason.</span>
  
    Our application is in the early stages of development and far from ready for production.
    We don't even have a web server that can handle requests for heroes.
    Until we do, *we'll have to fake it*.
  
    We're going to *trick* the HTTP client into fetching and saving data from
    a mock service, the *in-memory web API*.
    <span if-docs="dart"> The application itself doesn't need to know and
    shouldn't know about this.  So we'll slip the in-memory web API into the
    configuration *above* the `AppComponent`.</span>
  
    Here is a version of <span ngio-ex>!{_appModuleTsVsMainTs}</span> that performs this trick:
  
  +makeExcerpt(_appModuleTsVsMainTs, 'v2')
  
  block backend
    :marked
      We're importing the  `InMemoryWebApiModule` and adding it to the module `imports`.
      The  `InMemoryWebApiModule` replaces the default `Http` client backend &mdash;
      the supporting service that talks to the remote server &mdash;
      with an  _in-memory web API alternative service_.
  
    +makeExcerpt(_appModuleTsVsMainTs, 'in-mem-web-api', '')
  
    :marked
      The `forRoot` configuration method takes an `InMemoryDataService` class
      that primes the in-memory database as follows:
  
  +makeExample('app/in-memory-data.service.ts', 'init')(format='.')
  
  p This file replaces the #[code #[+adjExPath('mock-heroes.ts')]] which is now safe to delete.
  
  block dont-be-distracted-by-backend-subst
    .alert.is-helpful
      :marked
        This chapter is an introduction to the !{_Angular_http_library}.
        Please don't be distracted by the details of this backend substitution. Just follow along with the example.
  
        Learn more later about the in-memory web API in the [HTTP client chapter](../guide/server-communication.html#!#in-mem-web-api).
        Remember, the in-memory web API is only useful in the early stages of development and for demonstrations such as this Tour of Heroes.
  
negative.code:   Although we made significant *internal* changes to `getHeroes()`, the public signature did not change.
    We still return a !{_Promise}. We won't have to update any of the components that call `getHeroes()`.
  
    Our stakeholders are thrilled with the added flexibility from the API integration.
    Now they want the ability to create and delete heroes.
  
    Let's see first what happens when we try to update a hero's details.
  