'전체 글'에 해당되는 글 32건

  1. 2018.10.28 Angular 프로젝트 파일 구성
  2. 2018.10.28 Angular CLI 로 Angular 환경 셋팅하기 #2

이어서 Angular.io 프로젝트 구성에 대해 살펴보겠습니다.

 

 

Angular.io의 quickstart 가이드에 따르면 src 폴더는 angular 컴포넌트 및 스타일, 이미지 등 app에서 사용할 요소를 정의하며, 그 외의 폴더는 app의 빌드, 테스트, 배포, 문서화 등의 설정을 정의한다고 합니다. 우리는 src 폴더에서 열심히 폭풍 코딩을 하고 이후에 프로젝트 루트 폴더의 각 설정파일을 이용해 각종 셋팅을 한다고 보시면 되겠습니다.

파일목적
e2e/End-to-end 테스트를 위한 폴더로 src 폴더와는 분리되야 한다고 합니다. 테스트시 e2e폴더의 내용으로 테스트 용 app 프로세스가 별도로 생성되기 때문이라고 합니다. tsconfig.e2e.json 파일에서 test 설정이 가능합니다.
node_modules/프로젝트 생성시 Node.js가 angular.io 실행을 위한 3rd party NPM 모듈을 이 폴더에 생성합니다.
.angular_cli.jsonAngular CLI에서 프로젝트 실행을 위한 로컬 설정을 담는 파일입니다. 프로젝트 별로 할당됩니다.
.editorconfigeditor 프로그램을 사용하여 angular 프로그래밍을 할때 에디터의 설정을 지정한 파일입니다. 대부분의 에디터에서 이 설정파일을 지원한다고 합니다.
.gitignoregit에 프로젝트를 등록하고 관리할 때 자동생성되는 파일까지 git에 커밋하는 현상을 막기 위한 설정파일입니다.
karma.conf.jsng test 명령을 사용하여 단위 테스트를 할때 사용되는 설정파일입니다.
package.json프로젝트 생성시 추가되는 NPM 모듈을 관리하는 파일입니다. custom NPM 모듈을 만드신 경우 여기에 정보를 추가하면 된다고 합니다.
protractor.conf.jsonng e2e 명령을 사용하여 End-to-end 테스트를 할떼 사용되는 설정파일 입니다.
README.md 프로젝트의 기본 document이며, 프로젝트 생성시 자동으로 생성됩니다.
tsconfig.jsontypescript 컴파일을 위한 설정입니다. 이 부분은 뒤에서 설명하겠습니다.
tslint.jsonng lint 명령을 사용할때 사용되는 설정파일 입니다.

 

angular 프로젝트의 기본 구성을 봤으니 이제 소스 파일 구성을 보겠습니다.


파일목적

app/app.component.

{ts, html, css, spec.ts}

 HTML 템플릿, CSS 스타일시트와 함께 Application에 포함된 컴포넌트 구성에서 root 컴포넌트에 해당하는 AppComponent를 정의합니다.
app/app.module.ts Angular의 application component 구성을 정의하는 AppModule을 선언합니다. ng generate module  명령으로 모듈을 생성하면 이 파일에 해당 모듈이 정의됩니다. 초기 생성시는 AppComponent만 선언되어 있습니다.
assets/* 공통으로 사용하는 이미지 파일 등을 보관하는 폴더입니다.
environments/* 프로젝트 빌드시 App에서 사용할 환경변수가 담긴 파일이 위치하며, 해당 파일들은 빌드 후 즉석에서 교체된다고 합니다. 설명으로 볼때 저희가 건드리는 게 아니라, 빌드 과정에서 자동으로 생성되서 실행단계 때 읽히는 것으로 보입니다.
favicon.ico 브라우저에서 특정 사이트에 접속하면 그 사이트의 아이콘이 title 영역 제일 왼쪽에 뜨죠? 그 아이콘 파일입니다.
index.html 이건 굳이 설명 안해도 다들 아실거라고 봅니다.
polyfills.ts 브라우저마다 웹 표준을 지원하는 정도가 다 다르다고 합니다. 그러한 차이를 없애고 모든 브라우저에서 똑같은 기능을 지원하도록 도와주는 javascript 라이브러리를 로드하기 위한 용도라고 합니다.
styles.css 프로젝트 내 모든 페이지에 공통적으로 적용되는 CSS style을 정의하는 용도로 사용합니다.
test.ts 단위 테스트를 할때 진입 포인트로 사용되는 파일입니다.
tsconfig.{app|spec}.tsapp - Angular 프로젝트 컴파일을 위한 typescript 컴파일러 설정 파일입니다.
spec - 단위 테스트를 위한 typescript 컴파일러 설정 파일입니다.

 

» 프로젝트의 src 폴더의 파일 구성을 보시면 자바스크립트 파일 대신 평소에는 못 보던 파일 확장자가 보이실 겁니다.

바로 .ts 라는 확장자인데요. typescript 소스파일입니다.

angular.io 는 바로 이 typescript를 기반으로 하고 있으므로 우리는 이걸 또 공부해야 하는군요........................할 게 점점 늘어나네 으아아아아

typescript 파일은 컴파일되면서 javascript 파일로 변환되어 Node.js 위에서 실행된다고 합니다.

즉, ng 명령으로 실행되는 angular-cli 모듈은 typescript 컴파일 -> Node.js 에서 프로젝트 실행 과정을 한번에 처리할 수 있도록 하는거네요.

 

typescript 문법은 인프런 같은 동영상 강의 사이트에서 배울 수 있으므로 여기서 따로 설명하지는 않겠습니다.

우리 목적은 Angular.io 를 이해하는게 우선이니까요.

그럼 다음에는 Angular 프로그래밍을 시작하겠습니다~

 

Posted by kevin.jeong.
,

Angular CLI 1편은 프로젝트 영역 생성 및 실행 방법에 대한 표스트였습니다.

이어서 2편은 CLI환경에서 프로젝트 안에 여러 컴포넌트를 구성하는 방법을 정리합니다.

1편의 셋팅을 그대로 이어서 하겠습니다.

 

프로젝트 안에서 컴포넌트를 구성할때 사용하는 명령어는 ng generate <type> <name>

또는 ng g <type> <name> 입니다. 같은 명령어인데 타이핑만 다를 뿐이라 저를 포함한 대부분이 후자를 입력하시겠네요.

Angular 안에서 적용가능한 컴포넌트 타입은 Component, Directive, Pipe, Service, Class, Guard, Interface, Enum, Module 이 있습니다.

 

실행해서 결과를 보겠습니다.

 

우선 모듈을 하나 만들고 그 안에 컴포넌트를 두개 만들었으며,

하나의 컴포넌트에는 interface, enum, directive, class를 만들고, 다른 하나에는 service, pipe, guard를 만들었습니다.

이런 방식은 제가 즉석에서 만든거라 실제 서비스할때 이런식으로 하면 당연히 큰일나겠죠;;

주는 component 또는 module에 class/enum/directive/interface를 혼합하고

service/pipe는 module/component 외의 영역에 생성하는 게 맞을거 같네요.

 

이 부분은 저도 경력이 그렇게 풍부하지 않기 때문에 뭐라고 말씀을 못드리겠네요.

일단 저 명령을 쓰면 저런식으로 파일이 생성되는구나 정도로만 생각하시면 될거 같습니다.

 

그 외의 Angular CLI 관련 정보는 https://github.com/angular/angular-cli 를 참고하시기 바랍니다~

 

 

Posted by kevin.jeong.
,