Articles

Angular Single Page Applications(SPA):이점은 무엇입니까?

이 게시물에,우리는 것을 커버의 주요 혜택을 채택한 스파 건물을 구축하는 동안 우리의 모 응용 프로그램,그리고 대답하는 몇몇 아주 일반적인 질문에 대한 온천에서 일반적입니다.

이 게시물이 부분의 지속적인 각도 초보자를 위한 시리즈,여기에 완벽한 시:

  • 각도 초보자 가이드-시작(설정 환경)

  • 각도 초보자를위한 가이드:왜 각?, 최고의 혜택

  • 각도 초보자 가이드에 대한 구성 요소로 구성 vs 지시어를

  • Why 페이지 하나 응용 프로그램의 장점은 무엇입니까? 스파 란 무엇입니까?

왜 스파 아키텍처?

첫 번째 질문부터 시작합시다:왜 단일 페이지 응용 프로그램(SPAs)입니까? 이러한 유형의 응용 프로그램은 수년간 주변에 있었지만 아직 공개 인터넷에서 널리 보급되지는 않았습니다.그 이유는 무엇입니까?

거기에 대한 좋은 이유와 가까운 장래에 왜 그것이 바뀔 수 있는지에 대한 더 나은 이유가 모두 있습니다.,

스파했을 얻을 채택했는 많은 지난 몇 년 동안 건물의 전시의 일부 SaaS(Software as a Service)플랫폼이나 인터넷 서비스에서는 일반적인뿐만 아니라,건물에 대한 엔터프라이즈 데이터 중심의 양식을 많이 사용하는 응용 프로그램.

그러나 Angular 는 우리의 응용 프로그램을 SPAs 로 구축 할 수 있습니까?

대답이 없지 않지만,그것은 흥미로운 가능성을 가져다 주는 많은 혜택하는 어플리케이션을 구축하기 위한 방법입니다. 어떤 핵심 질문에 우리를 제공합니다:

왜 당신은 스파로 응용 프로그램을 구축하고자합니다?,이것은 종종 당연한 것으로 여겨지는 것입니다. 모두가 이런 식으로 응용 프로그램을 구축하고 있지만 그 큰 장점은 무엇입니까? 적어도 몇 가지 킬러 기능이 있어야합니다.프로덕션 배포와 같이 자주 언급되지 않는 기능부터 시작하겠습니다.

이해의 장점은 스파에서 사용 생산이 실제로도 주요 질문에 대답:

는 무엇입 한 페이지 응용 프로그램?

때로는 소프트웨어 개발의 이름이 잘 선택되지 않아 많은 혼란을 초래할 수 있습니다., 즉,확실히 용어 스파의 경우는 아니다:단일 페이지 응용 프로그램은 말 그대로 하나의 페이지가 있습니다!! 😊

를 보시려면 페이지 하나 응용 프로그램에서 작업,나는 당신을 초대합을 통해 머리 AngularUnivhttps://angular-university.io그 시작을 클릭하면 홈 페이지의 목록에서 최신 과정,그리고 상단에 메뉴입니다.

경우에 당신은 탐색을 시작 주위에,당신은 당신의 페이지의하지 않는 완전히 다시만 새로운 데이터 전송 전선을 통해 탐색하는 사용자를 통해서 응용 프로그램 예제 한 페이지의 응용 프로그램.,

드리겠에 대한 설명이 무엇입의 장점을 구축 응용 프로그램을 어떻게는 심지어 작동합니다.

Chrome Dev 도구를 사용하여 색인을 검사 해 보겠습니다.홈 페이지(또는 탐색하고 새로 고침을 치는 경우 다른 페이지)에서 다운로드되는 AngularUniv 웹 사이트의 html.

다운로드되는 페이지는 Chrome 네트워크 탭 패널에서 볼 수있는 첫 번째 요청입니다.

한 가지를 알아 보겠습니다.이 페이지는 거의 비어 있습니다! 태그를 제외하고는 여기에 많은 일이 없습니다.,

참고:실제 웹사이트 페이지 다운로드 또는 HTML 사전 렌더링을 사용하는 서버에서는 각도 범

주의 이름을 CSS and Javascript 뭉치:모든 CSS 고 심지어는 모든 자바 스크립트의 응용 프로그램(을 포함하는 각도) 심지어 오고 동일한 서버에서index.html–이에서 오는 완전히 다른 정적 server

이 경우에는 두 번들은 실제로에서 나오는 Amazon S3!,

또한,이름의 번들은 버전을 지정:그것은 타임스탬프를 포함합에서는 배포를 구축 실행되었는 배치하고 특정 응용 프로그램의 버전.

생산을 배포한 이점의 한 페이지 응용 프로그램

시나리오를 우리가 위에서 보는 것은 실제로 매우 멋진용의 단일 응용 프로그램 페이지:

단일 페이지 애플리케이션은 쉽게 배포하는 생산에서,그리고 심지어 버전 시간!,

단일 페이지로 응용 프로그램은 슈퍼 간단하게 배포하는 경우에 비해 더 많은 전통적인 서버 측의 렌더링 응용 프로그램:그것은 정말 하나의index.html파일과 함께,CSS 뭉치고 Javascript 있습니다.

이 3 개의 정적 파일은 Apache,Nginx,Amazon S3 또는 Firebase 호스팅과 같은 정적 컨텐츠 서버에 업로드 할 수 있습니다.

의 물론 응용 프로그램이 필요합하여 자유롭게 메시지를 백엔드 데이터를 가져올지만,그것은 별도의할 수 있는 서버 구축 필요한 경우와 완전히 다른 기술과 같은 노드,Java 또는 PHP.,

실제로는 경우에,우리는 우리의 나머지 API 또는 다른 유형의 백 엔드 노드,우리가 할 수도 그것을 구축에서는 타이프 라이터뿐만 아니라,그래서 사용할 수 있는 동일한 언어에 서버와 클라이언트,심지어 일부를 공유하는 코드 사이다.

한 페이지 응용 프로그램의 버전 관리에서 생산

의 또 다른 장점은 배포하는 우리의 프로 한 페이지로 응용 프로그램의 버전 관리와 롤백. 우리가해야 할 일은 빌드 출력을 버전 화하는 것입니다(위의 노란색으로 강조 표시된 CSS 및 JS 번들을 생성합니다).,

우리는 서버를 구성할 수 있습니다 제공하는 우리의 스파는 매개 변수를 지정하는 버전의 프론트 엔드 응용 프로그램을 구축하다:그것은 간단합니다!

이 형식의 배포는 저울을 아주 잘:정적 컨텐츠를 서버는 다음과 같 Nginx 할 수 있는 규모에 대한 매우 많은 수의 사용자.

의 물론,이러한 유형의 배포 및 버전에만 유효한 프로 우리의 일부 응용 프로그램이 적용되지 않는 백엔드 서버입니다. 그러나 여전히,그것은 가지고있는 중요한 이점입니다.그러나 프로덕션 배포는 단일 페이지 응용 프로그램의 유일한 장점입니까?, 확실히,여기에 또 다른 중요한 이점:

싱글 페이지 애플리케이션과 사용자 경험

경우에 당신이 이제까지 사용하는 웹 응용 프로그램은 끊임없이 다시로 모든 서버에서 거의 모든 사용자 상호 작용,당신은 당신이 알고 있는 응용 프로그램의 유형은 가난한 사용자 경험이 발생할 수 있습니다.

  • 지속적인 전체 페이지를 다시 로드

  • 또한 네트워크로 인해 다시고 앞으로 여행을 서버에 가져오는 모든 HTML.,

단일 페이지에 응용 프로그램,우리는 이 문제를 해결을 사용하여 근본적으로 다른 건축 접근 방식:

에서 스파,후 초기 페이지 로드,더 이상 HTML 얻을 수 있습니다. 대신 데이터 만 서버에서 요청됩니다(또는 서버로 전송됩니다).SPA 가 실행되는 동안 데이터 만 와이어를 통해 전송되므로 HTML 을 지속적으로 보내는 것보다 훨씬 적은 시간과 대역폭이 필요합니다. 스파에서 일반적으로 와이어를 넘어가는 페이로드 유형을 살펴 보겠습니다.,예를 들어 AngularUniv SPA 에서 코스를 클릭하면 와이어를 통해 HTML 이 전송되지 않습니다. 대신에,우리는 Ajax 는 요청을 받 JSON 페이로드의 모든 코스는 데이터가:

우리가 볼 수 있듯이,HTML 버전의 과정이 될 것이 훨씬 더 큰 크기에 비교했을 때 일반 JSON 으로 인해 모든 개폐 태그,또한 많은 중복 HTML 면 우리는 지속적으로 선적 유사한 페이지를 통해습니다.

예를 들어,같은 것들을 헤더와 바닥글 페이지의가 지속적으로 브라우저에 전송하지만 그들은 정말 변경되었습니다.,

그리고 이와 함께,우리는 여기서 두 번째로 큰 장점의 한 페이지 신청:훨씬 향상된 사용자 경험이 적기 때문에 전체 페이지를 다시 로드하고 더 나은 전체적인 성능이기 때문에 더 적은 대역폭이 필요합니다.

그렇다면 왜 우리는 어디에서나 스파를 사용하지 않습니까?

스파가 많은 장점을 가지고 있다면,왜 공공 인터넷에서 더 큰 규모로 채택되지 않았습니까? 그 좋은 이유가있다.

비교적 최근까지 Google 과 같은 검색 엔진은 단일 페이지 응용 프로그램을 올바르게 색인화하는 데 어려움을 겪었습니다. 그러나 오늘은 어떨까요?,

과거에는 그 사이에 사용되지 않은 특별한 아약스 크롤링 방식을 사용하는 몇 가지 권장 사항이있었습니다. 그렇다면 Google 은 이제 Ajax 를 완전히 렌더링 할 수 있습니까?

에 공식적인 발표,우리는 이 정보는 Google 검색은 지금 일반적으로 크롤링에 Ajax 있지만,일부 보고서는 아직 완전히 그렇게 할 수 있습니다.대신 프로그레시브 향상을 사용하는 것이 좋습니다. 그렇다면이 단계에서 공공 인터넷에서 스파를 사용할 수 있는지 또는 아직 사용할 수 없다는 것은 무엇을 의미합니까?

검색 엔진 친화적 인 스파?,

가능한 성능 및 사용자의 경험과 함께 스파 좋은 서구성:의 사용은 각 유니버설 사전 렌더링 엔진할 수 있습니다:

  • 사전 렌더링 응용 프로그램에 백엔드
  • 선박 HTML 브라우저와 함께 각
  • 고 각 부트스트랩 클라이언트 측에서와 이상 걸릴 페이지에는 스파

니다 스파에 더 자주하게 될 것이다.,

상상 SEO 친절한 버전의 아마존하는 것 자체가 새로 고쳐지지 않는 각 페이지에서 다시고 많이 향상된 성능과 사용자 경험하는 것을 가능성이 큰에 긍정적인 영향을 미치는 시간은 고객 사이트에 지출!

도록 이 기술의 장점 검색 엔진 친절 온천은 중요하고 더욱 그렇게 모바일에서,그리고 우리는 것이라 기대하는 이러한 유형의 SEO 친화적 인 스파 응용 프로그램이 될 것이 더 빈번하고 미래에도 대중에 인터넷습니다.그러나 이것은이 섹션의 마지막 질문에 여전히 답이 없습니다., 당신을 생각해야합니다 이 단계에서 읽은 후에 마지막 몇 가지 섹션:

경우에는 최소한의 HTML 로드된 서버에서 시작 시간는 방법을 다음 페이지 계속 시간에 따라 변화가?

이르는 우리가 마지막 질문이 섹션에서 가장 중요한 것은 아마도:

어떻게 한 페이지로도 작동합니까?

실제로 서버에서 아주 작은 HTML 만로드했기 때문에 어떻게 작동 할 수 있습니까? 응용 프로그램이 시작되면 데이터 만 와이어를 넘습니다. 그렇다면 새로운 HTML 은 어떻게 생겼습니까?,

브라우저가 표시하는 것을 변경하는 유일한 방법이기 때문에 새로운 HTML 이 어딘가에 생성되어야하기 때문에,맞습니까?

대답은 간단하고,그것을 함께 할 수 있는 방법으로 단일 응용 프로그램 페이지 실제로 일할 때에 비해 전통적인 서버 기반 응용 프로그램입니다.

에서 기존 응용 프로그램(을 포함하는 대부분의 오늘날의 공중 인터넷),데이터 HTML 로 변환(또는 렌더링)수행되는 서버 사이드에서 작동합니다.,

On the other hand,싱글 페이지 애플리케이션에서 그것을 많은 다른 방법으로.

에서 스파 응용 프로그램 시작 후,데이터를 HTML 변화 프로세스에서 이동되었습 서버 클라이언트 스파에 해당하는 파일의 엔진에서 실행되는 브라우저!

그리고 이 정보를 손에게 감싸까지 이 섹션에서 요약해서 키 포인트에 대한 단일 페이지 신청입니다.,–의 장점은 스파에는 키와 개념에 대해 그들이 어떻게 작업

응용 프로그램으로 스파이 우리에게 뜻깊은 수는 이점은 다음과 같습니다.

  • 우리는 우리를 가져올 수있을 것이 훨씬-개선 체험 사용자에게

  • 응용 프로그램을 느낄 것이기 때문에 빠르게 적은 대역폭 사용 과 없는 전체 페이지를 새로 고침으로 발생하는 사용자가 탐색을 통해 응용 프로그램

  • 응용 프로그램이 될 것입니다 훨씬 쉽게 배포에 생산,적어도 확실히 클라이언트 부:우리가 필요한 정체되는 서버를 최소한의 3 파:우리의 한 페이지 인덱스입니다.,html,CSS 번들 및 Javascript 번들.

  • 코드 분할을 사용하여 필요한 경우 번들을 여러 부분으로 나눌 수도 있습니다.

  • 프론트 엔드 응용 프로그램의 일부입니다 아주 간단한 버전으로덕션에서 허용,간단하게 배포하고 롤백하는 이전 버전의 프 필요한 경우

이것은 단지 하나의 가능한 배포 시나리오에서 스파의 생산.,

기타 생산 시나리오

기타 시나리오에는 다음이 포함됩니다 사전 렌더링의 대부분 응용 프로그램이 업로드 할 모든 것을 정적 호스팅 서버,메모리 캐싱하는 서버의 특정 페이지 않는 버전 관리는 DNS 를 사용하여,등등.

이것은 오늘보다 더 간단하게 검색 엔진 친절 온천,그래서 그들은 가능성이 증가 채택을 장래에,시나리오에서는 스파되지 않은 자주 사용됩니다.,

방법 스파 작품

하는 방식의 단 페이지 애플리케이션이 이러한 혜택을 연결하는 방식으로 그들이 내부적으로 작동:

  • startup 이후에만 데이터의 전송선로 JSON 페이로드하거나 일부 다른 형식입니다. 그러나 응용 프로그램이 실행 된 후 html 또는 CSS 가 더 이상 와이어를 통해 전송되지 않습니다.,

중요한 점을 이해하는 방법의 단 페이지 프로그램은 다음과 같다:

대신에 변환의 데이터를 HTML 서버에 보면 그것을 철사,스파에서 우리가 지금 이동하는 변환 프로세스에서 서버 클라이언트입니다.

변환이 일어나 마지막 두 번째 클라이언트 측에서 허용하는 우리에게 훨씬 향상된 사용자 경험을 사용합니다.이것이 스파의 장점을 확신시키기를 바랍니다., 그렇지 않은 경우 알려 주시기 바랍니다 그리고 그 경우가 아닌 이유 그래서 나는 더 나은 점의 일부를 개발할 수 있습니다.

또한,이 단계에서 나는 당신에게 곧바로 몇 가지 코드를 보여주고 싶습니다. 앵귤러로 작은 헬로 월드 스파를 만들고 거기에서 가져 가자. 우리가 소개 한 개념이 우리가 구축하려는 작은 응용 프로그램에 어떻게 매핑되는지 살펴 보겠습니다.

이 게시물이 스파의 주요 이점을 이해하는 데 도움이 되었으면 좋겠습니다.,

이 게시물이 부분의 지속적인 각도 초보자를 위한 시리즈,여기에 완벽한 시:

  • 각도 초보자 가이드-시작(설정 환경)

  • 각도 초보자를위한 가이드:왜 각? 최고의 혜택

  • 각도 초보자 가이드에 대한 구성 요소로 구성 vs 지시어를

  • Why 페이지 하나 응용 프로그램의 장점은 무엇입니까? 스파 란 무엇입니까?,

나는 당신을 초대 우리의 뉴스 레터를 구독하십시오면 알림을 받기 위해 더 많은 장이 나올:

경우 학습 시작 각도에 모습을 가지고,각도 초보자를위한 코스:

기타의 게시물에 각

또한 보고서 또 다른 인기 게시물을 찾을 수 있는 재미있다:

  • 시작으로 각-개발 환경에 모범 사례와 실,각 CLI,설정 IDE
  • 왜 페이지 하나 응용 프로그램의 장점은 무엇입니까? 스파 란 무엇입니까?,
  • Angular Smart Components vs Presentation Components:차이점은 무엇이며,각각을 사용할 때와 그 이유는 무엇입니까?
  • Angular 라우터를 구축하는 방법 탐색 메뉴로 스트랩 4 고 중첩된 노선
  • Angular 라우터 확장 투어 일반적인 위험을 피
  • 각 구성 요소의 기본
  • 각도를 구축하는 방법을 사용하여 앱 관측 데이터 서비스-함정을 피하기 위해
  • 소개하는 각도 양식 템플릿 중심의 대형 모델 기반
  • Angular ngFor 배우 모든 기능을 포함하여 trackBy,왜 그것은 단지 배열?,
  • Angular Universal In Practice-Angular
  • 로 SEO 친화적 인 단일 페이지 앱을 구축하는 방법 Angular 변경 감지는 실제로 어떻게 작동합니까?리>