Angular2 | 컴포넌트 기본 코드 | app.component.ts
앞에서 Angular 기본적인 파일 구성에 대해 설명했었다. 그것으로 src 폴더에 있는 app 폴더 안에 컨포넌트 파일이 준비되어 샘플에서는 app.component 라는 컴포넌트 파일이 포함되어 있다는 것을 알 수 있었다.
이 app.component의 내용이 어떻게 되어 있는지 알게 되면, 컴포넌트가 어떻게 만들어지고 있는지 알 수 있다. 그럼 app.component.ts에서 대해서 보도록 하자.
app.component.ts는 TypeScript 스크립트 파일이다. 아래에 디폴트 그대로 작성되어 있는 내용은 아래와 같다.
import { Component } from '@angular/core';
@Component({
selector: 'app-root',
templateUrl: './app.component.html',
styleUrls: ['./app.component.css']
})
export class AppComponent {
title = 'app';
}
이것이 Angular 컴포넌트의 소스 코드이다. 이것을 좀 더 정리보면 다음과 같다.
import { Component } from '@angular/core';
@Component(……설정 정보……)
export class 컴포넌트명 {
……필요한 정보……
}
처음에 import는 모듈을 로드하기 위한 것이다. Angular에서는 다양한 기능이 준비되어 있는데, 모두 모듈화되어 있다. 모듈은 이 import라는 것을 사용하여 로드한다. 이것은 아래와 같은 식으로 작성한다.
import 로드하는 객체 from 모듈 지정;
로드하는 객체는 {} 안에 콤마(,)로 구분하여 여러 개를 작성할 수 있다.
여기서는 @angula /core
라는 모듈에 있는 Component라는 것을 로드한다. 이는 다음에 있는 @Component
라는 어노테이션 객체이다.
어노테이션라는 것은 코드에 다양한 정보를 추가하기 위한 것이다. 이 @Component
는 아래에 정의된 클래스에 콤포넌트로 사용하기 위한 여러 기능을 포함되이 있는 것이다. 쉽게 말하면, 클래스 정의 앞에 @Component
어노테이션을 지정하면, 그 클래스는 컨포넌트로 인식되게 된다는 것이다.
@Component 설정 및 export되는 클래스
그럼, @Component 어노테이션을 살펴 보도록 하자. 이 어노테이션 다음 ()에는 인수로 객체가 지정되어 있다. 이 객체에 컴포넌트에 전달되는 각종 설정 정보가 포함된다. 여기에서 지정되어 있는 것은 다음과 같은 항목이다.
-
moduled : 모듈 이름을 지정한다. 여기에서는 module.id 값이 지정되어 있다. 모듈의 ID를 그대로 moduleId로 설정하는 것이다.
-
selector : 이것은 컨포넌트를 식별하기 위한 이름이다. 여기에서는
app-root
로 지정되어 있어서, 이 컴포넌트는app-root
라는 이름으로 식별된다. 이는<app-root>
라는 태그에 이 컴포넌트를 사용할 수 있게 된다. -
templateUrl : 컴포넌트의 표시에 사용하는 템플릿 파일의 URL을 지정한다. 여기에서는 app.component.html를 지정하고 있다.
styleUrls : 이것은 스타일 시트의 URL을 지정하는 것이다. 이것은 배열되어 있고, 사용하는 CSS 파일을 모와서 지정한다. 여기에서는 app.component.css 만 사용하도록 되어 있다.
이 중에 가장 중요한 것은 selector와 templateUrl이다. selector는 컴포넌트를 HTML에 배치할 때 사용자 정의 태그명을 지정하고, templateUrl에는 사용하는 템플릿 파일을 지정한다. 이 2가지를 모르면 어떤 파일을 어떻게 수정해야 할지 알 수가 없다.
■ export 의한 클래스 내보내기
그런데, @Component
어노테이션을 붙여서 생성되는 것은 ‘AppComponent “라는 클래스이다. 이는 export class 클래스명
이라는 형태로 작성되어 있다. export는 객체 내보내기(외부에서 사용할 수 있도록)하는 것이다. export한 클래스는 import으로 다른 위치에서 로드해서 이용할 수 있다.
여기에서는 AppComponent 클래스를 export할 때에, title이라는 변수에 값을 대입하고 있다. 여기에 대입된 값은 이 후에 템플릿에서 사용할 수 있다.
이것으로 AppComponent를 컴포넌트의 기본 소스 코드가 어떻게 되어 있는지 알게 되었다.