① SPA(Single page Application) 프레임워크

1. AngularJS 소개

② Front-End 에 MVC 패턴을 적용

- 페이지주소가 바뀌지 않으면서 또

다른 View를 동적으로 로드하여 사용하는것

- Model - 화면을 구성하는데 필요한 데이터

또는 화면을 구성하는데 필요한 데이터를 저장하는곳

- View - 화면

- Controller - 사용자의 요청에 맞는 데이터를 Model에 담거나 담긴 데이터를 view에 반영하는 로직

2. AngularJS의 특징

① 데이터 중심적

② 테스트 주도적

③ 선언적 HTML

④ 양방향 데이터 바인딩

- 대상Dom을 먼저 선택하여 출력하는 방식이 아님

- 뷰와 컨트롤러가 분리되어 테스트 친화적 구조

- 커스텀 테그 및 테그 내에서 속성을 통해

   단순한 구조의 DOM을 만들수있음

- 모델의 변경에 대하여 자동으로 데이터가 바인딩 됨

3. AngularJS의 초기화 과정

① Automatic Initialzation 페이지가 로딩되면서 

     자동 실행하도록 설정된 경우

② Manul Initialzation 페이지가 로드 된 후

    수동으로 실행하도록 설정된 경우

- DomContentLoaded 이벤트가 발생하면서

   이벤트 핸드러를 통해 실행

- Document.ready state 속성값이 complete이면 실행

① 문서내에 ng-app 지시자 확인

② 모듈 및 지시자와 연관된 모듈을 로딩

③ 애플리케이션 Injector생성

④ Dom트리를 순회하며 지시자들을 찾아

     매핑 지시자와 스코프를 결합해 모델의 변경을 뷰에 출력

4. AngularJS의 장점

① Dom 제어 기반방식보다 적은 양의 코드로 개발가능

② 구조화된 코드로 인해 향후 유지보수 비용 감소

③ 코드(모듈) 간의 의존성이 적어 유연성과 재사용성이 증가

④ 양방향 데이터 바인딩으로 인해 뷰의 갱신이 자동으로 이루어져 뷰를 업데이트 하는등의 번거로운 작업이 감소하고 모델(데이터)에 더욱 집중 가능

5. AngularJS의 단점

① 양방향 데이터 바인딩에서의

     성능 저하(Dirty-checking) 문제

② Dom 제어 방식이 아니므로

     Dom의 세밀한 제어가 필요한 경우의 적합하지 않음

③ 간단한 기능 구현이 아니라면 어느정도의 학습비용

④ 불필요할수있는 이벤트들의 자동 바인딩

⑤ 버전의 파편화

-1.3 이상부터 IE9 이상 지원

① 양방향 데이터 바인딩에서의

     성능 저하(Dirty-checking) 문제

양방향 데이터 바인딩을 위해 watch가 동작하는 경우

- HTML요소의 이벤트 핸들러가 동작하는 경우

DOM 이벤트(ng-click, ng-mousedown, ng-change, ng-checked 등)

- AJAX 통신의 결과가 도착한 경우

$http와 $resource에서 응답이 돌아왔을 때

- URL Hash값이 변경되었을 때

$location에서 URL을 변경한 후

- timer에 의해 발생된 tick 이벤트의 핸들러가 작동할 때

$timeout 이벤트가 발생한 후

1. 로드속도

서버로드

AngularJS

2. 바인딩에 따른 속도

단방향 바인딩

양방향 바인딩

6. AngularJS의 도입여부

7. AngularJS의 2.0 변화점

① 다른 언어로 구성 (typeScript ,  atScript)

Made with Slides.com