다양한 플랫폼과 기술에 있어서 많은 애플리케이션을 개발해온 14년 경력의 프로페셔널 소프트웨어 개발자다. ISV에서 근무했으며, 엔터프라이즈에서의 자원 계획 애플리케이션, 콘텐츠 관리 시스템, 보험 및 금융 소프트웨어 제품을 개발했다. 현재는 고등교육 부분에서 웹 애플리케이션 개발자로 활약하고 있다.
또한 팩트출판사의 『닷넷 개발자를 위한 AngularJS』(에이콘, 2016)의 저자며, 블로그(http://alexvpop.blogspot.co.uk/)를 운영하고 있다. 이 블로그에서는 .NET, 자바스크립트, 다양한 소프트웨어 엔지니어링 주제에 대한 기술적 자료를 제공한다.
최근 2, 3년간 웹 개발 상황은 향후 대세가 스마트폰과 태블릿이 될 정도로 극적으로 변모했다. 모바일 웹 교통량이 2013년만해도 상당히 늘어 전체 웹 교통량의 거의 1/3에 달했으며 이 증가세는 당분간 계속될 것이라고 예측된다. 이제 웹사이트는 광범위한 장치와 폼 팩터(form factor)로 운영될 것이므로 다양한 브라우저 클라이언트를 지원해야 한다. 하지만 자바, 어도비 플래시, 실버라이트(Silverlight)와 같은 브라우저 플러그인을 바탕으로 한 웹 애플리케이션은 이들 플러그인이 모든 장치에서 가능하지 않거나 지원하지 않는 문제점을 드러냈다.
이러한 변화에 발 맞추어 모든 주요 브라우저 업체는 HTML5와 CSS3 같은 웹 표준과 ECMAScript 5.1, 그리고 다가올 ECMAScript 6와 같은 자바스크립트 표준을 정의하고 구현하는 작업에 속도를 높였다. 이들 표준 모두가 마무리되거나 완전하진 않지만 모든 업체에서 계속적으로 브라우저를 발표하면서 표준 지원, 그리고 클라이언트 측 콘텐츠와 코드의 성능을 계속 향상시켰다. 더 커진 개발 커뮤니티도 다양한 도구와 라이브러리를 제공해 표준화 노력에 한 몫을 했다. 이들 도구와 라이브러리는 구형 브라우저에까지 웹 표준 지원을 확대했고, 공통 프로그래밍 모델에서 비슷한 기능의 각기 다른 브라우저 구현들을 하나로 통합했다.
개방형 표준, 도구, 라이브러리에 바탕을 둔 새로운 웹 개발 생태계가 출현했다. 그것은 HTML, CSS, 자바스크립트를 구닥다리로 여기는 것이 아니라 오히려 포용하면서 최근 웹 애플리케이션 제작의 확고한 기반으로 사용했다. 이런 상황에서 브라우저 플러그인에 바탕을 둔 애플리케이션은 HTML, CSS, 자바스크립트에 바탕을 둔 새 버전으로 점차 교체됐다. 콘텐츠를 나타내고 조작하기 위해 클라이언트 브라우저 능력을 최대한 활용하는 데 초점을 맞추다 보니 싱글 페이지 애플리케이션(SPA, single-page application)이라는 새 형태의 애플리케이션을 채택하게 됐다. 이것은 구글 메일과 구글 지도 웹 애플리케이션으로 인기를 끌게 됐는데, 이들 애플리케이션은 반응이 뛰어나고 사용하기에 쉬우며 데스크톱 애플리케이션과 유사한 룩앤필(look and feel)을 갖추었다. 싱글 페이지 애플리케이션은 대체로 초기 애플리케이션 요청에 따라 서버 측에서 준비해 준 내용과 초기 자원을 확보해 두고, 그 이후의 모든 요청에 대해서는 클라이언트 측 코드를 사용해 필요한 자원을 로드해 내용을 표시한다. 또한 싱글 페이지 애플리케이션에는 물리적 진입점 역할을 하는 하나 이상의 정적 페이지가 있다. 마이크로소프트와 구글은 원도우 스토어 앱과 크롬 앱 형태의 자사 운영체제용 소프트웨어 개발 킷에서 이런 형식의 애플리케이션에게 일급객체를 만들어 주었다. 크로스 플랫폼 모바일 개발에서도 폰갭/아파치 코르도바와 같은 프레임워크에 있는 HTML, CSS, 자바스크립트를 받아들였다. 오피스용 앱, 그리고 오피스 2013의 셰어 포인트와 단품인 셰어포인트 2013용 앱에서 마이크로소프트가 도입한 것과 같이 싱글 페이지 애플리케이션은 개발 모델에 있어 소비자 중심의 애플리케이션에서 기업 중심의 애플리케이션으로 변화했다.
싱글 페이지 애플리케이션을 포함한 최근 웹 애플리케이션 제작에는 반응형 웹 디자인(responsive web design, 애플리케이션이 브라우저 클라이언트 분석과 방향에 잘 적용될 경우)과 단계적 향상(애플리케이션이 브라우저 클라이언트 능력과 이용가능 네트워크 연결에 바탕을 둔 다른 콘텐츠를 제공할 경우)과 같이 개발 방법을 잘 채택해야 한다. 빠른 원형 만들기의 요구, 풍부한 클라이언트 기능, 큰 규모의 자바스크립트 코드 기반을 유지 관리해야만 하는 현실에선 전형적인 데스크톱 애플리케이션 개발과 비교할 때 개발 과정이 도전적이고 비용이 들게 마련이다.
2006년 이후로 제이쿼리 출현과 대량 채택, 그리고 그 플러그인 생태계로 인해 리치 클라이언트(rich client) 특징 문제가 해결됐다. 점점 더 복잡한 자바스크립트 코드기반은 2008년에 QUnit, 2010년엔 재스민(Jasmine)과 같은 테스트 프레임워크 채택, 그리고 2010년에 Backbone.js와 Knockout.js 같은 새 애플리케이션 프레임워크가 다뤄지기 시작했다. 애플리케이션 프레임워크는 ASP.NET 모델 뷰 컨트롤러(MVC, Model-View-Controller) 같은 서버 측 웹 애플리케이션 프레임워크에 공통인 소프트웨어 디자인 패턴의 유도체를 구현 중에 있었다. 이 패턴은 애플리케이션 데이터 같은 컴포넌트, 모델이 나타내는 비즈니스 규칙, 뷰(View)가 나타내는 모양이나 형식의 애플리케이션 데이터 표현 간에 개별로 구분한다. 컨트롤러 컴포넌트는 중앙에 자리잡고 모델과 데이터를 주고받으며 뷰를 업데이트하거나 모델에 전달되는 뷰 변경 사항에 응답한다. 이러한 추상화는 더 좋은 코드 재사용(여러 뷰는 동일한 모델을 사용할 수 있음), 테스트 가능성(컨트롤러는 뷰로부터 격리되어 테스트될 수 있음), 더 효율적인 개발 작업흐름(예를 들면 개발자가 컨트롤러에서 작업하는 동안, 디자이너는 뷰를 수정할 수 있음)과 같은 이점을 준다.
같은 시기에 AngularJS라는 또 다른 자바스크립트 프레임워크가 구글에서 개발됐다. 이 프레임워크는 MVC 패턴을 바탕으로 하고 있는데, 강력한 점은 새 요소와 서술적 행동을 추가해 HTML을 향상시키고 확장할 수 있으며 모듈적이고 설정 가능한 코드 유닛을 사용해 시작부터 테스트될 수 있었다. 2012년에 1.0 버전을 필두로 2013년부터 그 인기가 점점 올라가더니 2013년 후반에 1.2 버전이 나오고 2014년 1월에 ng-conf라는 첫 번째 회의가 개최되면서 호황기를 맞았다.
마이크로소프트 사는 싱글 페이지 애플리케이션의 대중성에 발 맞춰 비주얼 스튜디오 2012에 이러한 새 애플리케이션 패러다임에 대해 지원하기 시작했다. 비주얼 스튜디오 2013에서는 지원이 강화되어 최근 두 개의 비주얼 스튜디오 확장으로 AngularJS를 훌륭하게 지원한다. 이제 닷넷 개발자라면 AngularJS를 배워야 할 때가 무르익었다.
이 책의 주 초점은 닷넷 개발 도구와 프레임워크라는 상황에서 AngularJS로 최신 웹 애플리케이션을 빠르게 원형으로 만들어 제작하는 것이다. 이 책은 독자가 ASP.NET, ASP.NET MVC, Silverlight, WCF와 같은 마이크로소프트 기술을 사용해 이미 웹사이트, 웹 애플리케이션, 또는 웹 서비스를 구축했고 HTML5, CSS3, JavaScript, 제이쿼리, ASP.NET MVC를 안다는 가정 하에서 쓰여졌다.