SPA(Single Page Application)의 단점으로 부각되는 SEO 문제를 해결하기 위해서 각 page마다 고유한 URL을 부여하는 Routing 기능이 Angular Framework에도 제공한다.
Angular Universal
SSR(Server Side Rendering)을 할 수 있도록 하는 Angular Module
Angular Routing
Routing은 Source에서 Destination까지의 경로를 결정하는 기능이다.
Application에서 Routing이란 어떤 View에서 다른 View로 View를 전환하는 Navigation을 관리하는 기능을 의미한다.
a Element의 href attribute를 이용하면 브라우저의 주소창 URL이 바뀌며 새로운 html 페이지를 렌더링한다. 이 과정에서 화면 깜빡임이 발생한다. 이를 보완하기 위한 AJAX는 브라우저 주소창의 주소가 변경되지 않아 브라우저의 뒤로가기, 앞으로가기 등의 history 관리가 되지 않는다. 하나의 주소로 동작하는 AJAX 방식은 SEO도 되지 않는다.
Angular는 위의 문제점을 보완한 2가지의 Location strategy를 제공한다.
PathLocationStrategy : HTML5 History pushState 기반 Navigation Strategy
HashLocationStrategy : Hasy 기반 Navigation Strategy
Angular Form은 Template-driven Forms와 Ractive Forms를 제공한다.
Template-driven Forms
간단한 form (Form Control 한두개)을 구성할 때 사용
Reactive Forms
복잡한 form을 구성할 때 사용
Form은 Client side에서 중요한 역할을 한다. 사용자의 입력을 서버로 전송하고 페이지를 전환할 수 있는 element이다. Server는 많은 Client 요청을 처리하므로 form을 통해서 받은 사용자 입력의 유효성 검사(validation)를 Client side에서 하는 것이 기본이다.
Reactive Programming is programming with asynchronous data streams.You can listen to that stream and react accordingly.
Reactive Programming은 비동기적 데이터 스트림을 처리하는 프로그래밍 패러다임이다. Data stream이란 연속적인 데이터의 흐름을 말한다. Reactive Programming은 모든 것을 stream으로 본다. Event, AJAX 요청 등 모든 data stream을 시간 순서에 의해 전달되는 stream으로 처리한다.
최근 참여한 FrontEndgame 컨퍼런스에서 Functional Programming과 Reactive Programming을 융합한 FRP에 대한 발표가 있었는데 이제 Reactive Programming을 공부해본다.