강좌 & 팁
오늘부터 AngularJS에 대해서 다루어보도록 하겠습니다. AngularJS가 무엇인가에 대해서는 여기서는 따로 다루지 않겠습니다.
Node.js가 대세이니 express와 bower를 기본으로 사용해보도록 하겠습니다.
준비
우선 express-generator를 설치해서 seed를 만들어보도록 하겠습니다.
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를 우선 설치합니다.
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 라는 파일로 저장합니다.
{ "directory": "public/components" }
이제 bower를 사용해서 AngularJS를 설치합니다.
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을 만들어보겠습니다.
<!DOCTYPE html> <html> <head> <title>Binding</title> </head> <body> <script type="text/javascript" src="components/angularjs/angular.js"></script> </body> </html>
브라우저로 확인해보면 타이틀만 Binding으로 나오고 아무것도 표시되지 않을 것입니다.
다음을 추가해봅시다.
<!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을 해보도록 하겠습니다.
코드를 아래와 같이 수정해봅시다.
<!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을 사용하여 데이터를 바인딩하는 것을 살펴보았습니다.