
강좌 & 팁
오늘부터 AngularJS에 대해서 다루어보도록 하겠습니다. AngularJS가 무엇인가에 대해서는 여기서는 따로 다루지 않겠습니다.
Node.js가 대세이니 express와 bower를 기본으로 사용해보도록 하겠습니다.
준비
우선 express-generator를 설치해서 seed를 만들어보도록 하겠습니다.
1 2 3 4 5 | root@02b57f4f051f: /app # npm install -g express-generator /usr/local/bin/express -> /usr/local/lib/node_modules/express-generator/bin/express express-generator@4.9.0 /usr/local/lib/node_modules/express-generator ├── commander@1.3.2 (keypress@0.1.0) └── mkdirp@0.5.0 (minimist@0.0.8) |
위와 같이 express-generator를 우선 설치합니다.
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 | root@02b57f4f051f: /app # express create : . create : . /package .json create : . /app .js create : . /public create : . /public/javascripts create : . /public/images create : . /public/stylesheets create : . /public/stylesheets/style .css create : . /routes create : . /routes/index .js create : . /routes/users .js create : . /views create : . /views/index .jade create : . /views/layout .jade create : . /views/error .jade create : . /bin create : . /bin/www install dependencies: $ cd . && npm install run the app: $ DEBUG=app . /bin/www |
express-generator를 사용해서 seed를 만들었습니다.
npm install 명령을 통해서 필요한 패키지들을 설치합니다.
bower가 설치되어있지 않으시면 npm install -g bower 명령을 이용해서 설치합니다.
그리고 아래의 내용을 .bowerrc 라는 파일로 저장합니다.
1 2 3 | { "directory": "public/components" } |
이제 bower를 사용해서 AngularJS를 설치합니다.
1 2 3 4 5 6 | root@02b57f4f051f: /app # bower install --allow-root angularjs bower angularjs #* cached git://github.com/angular/bower-angular.git#1.3.3 bower angularjs #* validate 1.3.3 against git://github.com/angular/bower-angular.git#* bower angularjs #~1.3.3 install angularjs#1.3.3 angularjs #1.3.3 public/components/angularjs |
여기까지 해서 작업의 준비가 끝이 났습니다.
Binding
이제 원래 하려고 했던 AngularJS의 가장 기본이 되는 binding에 대해서 살펴보도록 하겠습니다.
아주 간단하게 public/index.html을 만들어보겠습니다.
1 2 3 4 5 6 7 8 9 | <!DOCTYPE html> < html > < head > < title >Binding</ title > </ head > < body > < script type = "text/javascript" src = "components/angularjs/angular.js" ></ script > </ body > </ html > |
브라우저로 확인해보면 타이틀만 Binding으로 나오고 아무것도 표시되지 않을 것입니다.
다음을 추가해봅시다.
1 2 3 4 5 6 7 8 9 10 11 12 | <!DOCTYPE html> < html > < head > < title >Binding</ title > </ head > < body > < div ng-app = "" > < h1 >{{2 + 2}}</ h1 > </ div > < script type = "text/javascript" src = "components/angularjs/angular.js" ></ script > </ body > </ html > |
브라우저를 열어보면 {{2+2}}로 표시되는 것이 아니라 4로 표시될 것입니다.
AngularJS에서는 {{...}}안의 내용은 코드로 인식하여 표시하게 됩니다.
이제 ng-model tag를 사용하여 실제 binding을 해보도록 하겠습니다.
코드를 아래와 같이 수정해봅시다.
1 2 3 4 5 6 7 8 9 10 11 12 13 | <!DOCTYPE html> < html > < head > < title >Binding</ title > </ head > < body > < div ng-app = "" > < input type = "text" ng-model = "data.message" > < h1 >{{data.message}}</ h1 > </ div > < script type = "text/javascript" src = "components/angularjs/angular.js" ></ script > </ body > </ html > |
브라우저로 확인해보면 텍스트 입력창이 하나 있습니다. 여기에 텍스트를 입력하면 바로 아래에 텍스트 입력창에 있는 글이 그대로 표시될 것입니다.
텍스트 입력창에 있는 ng-model tag는 입력되는 값을 data.message라는 변수에 넣어주고, 이것은 실시간으로 {{data.message}}에 반영되는 것입니다.
여기까지 해서 AngularJS의 ng-model을 사용하여 데이터를 바인딩하는 것을 살펴보았습니다.