일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
- spring boot
- apache
- RabbitMQ
- clean code
- 페이스북
- tomcat
- Spring
- 리팩토링
- GC
- g1
- JPA
- 시큐리티
- Refactoring
- JWT
- 페이징
- assertj
- 스프링
- jvm
- 스프링부트
- load balancing
- OAuth
- Producer
- gdg
- 권한
- java
- 스프링 부트
- Security
- 클린코드
- 비동기
- oauth2
- Today
- Total
허원철의 개발 블로그
lonic Framework - Angular 본문
Ionic Framework 설치 방법 및 Angular 개념 정리한 자료 입니다.
Ionic
node 설치 후,
node.js command prompt 에서
1. cordova 설치
- npm install -g cordova
2. ionic 프레임워크 설치
- npm install -g ionic
3. android 와 java 환경변수 설정
- ANDROID_HOME : sdk 위치
4. 프로젝트 생성
- ionic start 프로젝트명 (플랫폼)
5. 플랫폼 추가
- ionic add platform android (default sdk version : 22)
6. 빌드 및 실행
- ionic build android
- ionic emulate android
- ionic run android
- ionic serve
- ionic serve -lab
({host}/ionic-lab : ios 와 android 비교 가능)
7. 애뮬
* ionicBox (android OS 기반 경량 애뮬)
8. 플러그인
-ionic plugin add {플러그인명}
※ Ionic Cloud 제공, Cloud 환경에서 배포파일 생성 가능
Angular
1. 데이터 바인딩
========================================================================
$scope
- 컨트롤러나 디렉티브의 유효 범위 내의 저장 공간
- 내붕에 정의된 모델이나 핸들러 함수에 접근 가능
※ 상위와 자식 컨트롤러간의 scope 공유 가능
(↔lsolate scope)
------------------------------------------------------------------------
$apply
- 모델값이 변경되면 자동으로 $digest loop 가 호출되어
모델의 변경을 확인 후 뷰를 업데이트
※ 3rd-party Library를 이용한 양방향 데이터 바인딩 경우 쓰임(jquery)
-------------------------------------------------------------------------
$watch
- $apply와 동일한 원리
(앵귤러 내부에서 사용되며, 특정 모델의 변경에 대한 함수 등록 가능)
-------------------------------------------------------------------------
2. 디렉티브 생성
=========================================================================
- HTML Compiler 가 HTML DOM를 돌면서 디렉티브 이름과 같은 DOM 요소를 찾음.
1) compile - DOM 요소를 돌면서 디렉티브를 찾음 (속성명, 태그명, 주석, 클래스명)
2) link - 디렉티브와 HTML이 상호작용 할 수 있도록 디렉티브에 listener를 등록
($watch 설정)
- 작명법
스크립트단 : 카멜 표기법
뷰단 : 스네이크 표기법
- 생성방법으로는 여러가지 룰이 있으며 규칙을 숙지하고 사용해야 함,
1) restrict (String = E, A, C, M)
- 옵션에 따른 매칭되는 태크명, 속성명, 클래스명, 주석으로 구분
2) templatev (String)
- html의 디렉티브를 사용한 부분을 보여줄 내용
3) templateUrl (String)
- template를 별도의 url에서 가져옴. 상대위치
4) replace (boolean)
- templateUrl 또는 template 의 내용을 추가할지 교체하지 설정
5) priority (int : Default = 0)
- 디렉토리별 우선순위 지정(↑)
6) transclude (boolean)
- ng-transclude를 이용하여 기존 원본 내용을 포함시킬지 결정
7) scope (boolean : Default = false)
- 부모객체 공유 여부
+ {...} : isolate/isolated scope를 새롭게 생성
(부모의 scope 값을 read/write 못하게 하기 위함,
접근하고 싶은경우 바인딩 전략 =, @, & 사용)
8) controller (function(){...})
- 다른 디렉티브와 통신하기 위한 역할을 하는 컨트롤러 명칭을 정의
- $scope 와 this 를 이용하여 data 및 function을 정의
(require 에 의해 액세스 가능)
9) require
- 다른 컨트롤러나 디렉티브의 컨트롤러에 this로 정의된 function을 사용할 때 선언
- 컨트롤러 이름을 설정 -> 컨트롤러 주입 -> link 내에서 컨트롤러의 this로 선언된
모든 function 사용 가능
- 추가 옵션
ⓐ 디렉티브 이름 앞에 ? 추가 시, 매칭되는 디렉티브 없어도 에러 x
ⓑ ^ 를 추가 시, DOM 요소들을 거슬러 올라가 해당 디렉티브를 찾음
10) compile
- DOM 요소를 해석하여 디렉티브로 변환하며 두 종류의 link function을 리턴
ⓐ preLink - link 전
ⓑ postLink - link 후(DOM 구조 변경 시에 사용)
11) link
- 데이터 바인딩을 위해 해당 디렉티브 DOM 요소의 이벤트 리스너를 등록
- 디렉티브의 대부분의 로직을 선언
- postlink만 지원
서비스.txt
3. 서비스
- 싱글톤(하나의 인스턴스만 존재)
=====================================================================
constant
- 공통으로 사용하는 환경값을 지정할 때 상수를 지정
- 사용자 정의 디렉티브에서 환경값을 가져다 쓰고 싶을 때 유용
---------------------------------------------------------------------
value
- constant 와 유사
- 최초 한번만 변경 가능
- 디렉티브에서 유용
- 계산 불가
---------------------------------------------------------------------
factory
- 일반적인 서비스
- 어떤 형태의 데이터 타입이라도 리턴 가능
- 값이 변경되면 해당 팩토리의 인스턴스를 사용하는 모든 값이 변경
- Revealing Module Pattern 식으로 작성
--------------------------------------------------------------------
service
- 자동적으로 인스턴스 생성(return 불필요)
--------------------------------------------------------------------
provider
- $get:function(){...} 필요 why? ) config를 통하여 provier 에 대한
환경설정이 가능
'web' 카테고리의 다른 글
Spring Boot - Social (Facebook) (411) | 2016.12.04 |
---|---|
Spring Boot - WebSocket (396) | 2016.12.04 |
Spring Boot - Rest (414) | 2016.12.04 |
Spring Boot - Security OAuth2 (384) | 2016.12.04 |
Spring Boot - Validator (424) | 2016.12.04 |