블로그 이미지
윤영식
Frontend Application Architecter, Full Stacker, KnowHow Dispenser and Bike Rider

Publication

Statistics Graph

Recent Comment

2017.09.06 17:55 Angular/Prototyping

Clarity CSS 프레임워크는 VMWare에서 만들어 진 오프소스로써 Twitter Bootstrap 과 같은 업무용 스타일 프레임워크이다. 부트스트랩에 식상한 터라 Clarity의 깔끔함을 JHipster에 적용해 본다. 




Clarity 사용해 보기

clarity가 어떻게 동작하는지 알기 위해 clarity-seed 프로젝트를 다운로드해서 확인해 보자.

$> git clone https://github.com/vmware/clarity-seed.git

$> cd clarity-seed

$> yarn install

$> yarn start

yarn start v0.18.1

$ ng serve

** NG Live Development Server is listening on localhost:4200,


http://localhost:4200 접속 화면




JHipster 설치

JHipster는 Spring Boot + ORM + Angular를 합쳐놓은 Generator이다. JHipster는 과거 yo 기반의 generator-jhipster 를 제공한다.

$> yarn global add yo

$> yarn global add bower

$> yarn global add gulp-cli

$> yarn global add generator-jhipster


generator-jhipster가 설치되었다면 특정위치로 이동해서 jhipster명령을 수행한다. 

- Monolithic으로 선택

- 프로젝트명칭 입력

- JWT 선택

- SQL 선택: MariaDB, development시에는 H2선택

- ehcache 선택

- Maven 선택

- WebSocket 선택

- Angular 4 선택

- libSass 선택

- i18N 선택: ko, en

$> jhipster

Welcome to the JHipster Generator v4.7.0

Documentation for creating an application: https://jhipster.github.io/creating-an-app/

Application files will be generated in folder: /Users/dowonyun/prototyping/jhipster/jamong-admin-seed

? (1/16) Which *type* of application would you like to create? (Use arrow keys)

Monolithic application (recommended for simple projects)

  Microservice application

  Microservice gateway

  [BETA] JHipster UAA server (for microservice OAuth2 authentication)


선택을 완료하면 yarn install이 자동 실행되어 한참을 설치한다. 





Eclipse 설치 및 설정

JHipster 는 Java와 Typescript 코드로 이루어져 있으므로 Eclipse 최신 버전인 Oxygen을 다운로드해 사용한다. JDK8을 기본 사용하므로 사전 설치하고, Eclipse설치가 끝나면 Help메뉴 맨 아래에 있는 Marketplace에서 다음을 설치한다.


- STS (Spring Tool Suite)

- Angular IDE 2017 CI 7

- Dark Theme 설치


테마를 Sublime Text나 Monoaki 를 입히고 싶다면 테마를 검색해서, Eclipse > General > Appearance에서 theme XML 파일을 import 한다. 아래 이미지는 테마를 입힌 후 상태로 "Editor Colors" 밑줄에 "Import a theme..." 이 있다.



설정이 끝났으면 eclipse > file > Import Projects from File System를 통해 생성된 소스를 import 한다.





JHipster 수행

JHipster를 수행하기 위해서는 두개의 명령을 필요로 한다. 서버 수행시 mvnw은 maven이 설치되어 있지 않으면 자동 설치하고 수행하는 명령을 담고 있다. 서버는 8080으로 Listen 을 하고 Angular 클라이언트는 NodeJS기반 Proxy를 통해 8080 포트로 요청을 보낸다.


- 서버 수행: .mvnw

- 클라이언트 수행: yarn start


$> mvnw

... 중략 ...

----------------------------------------------------------

Application 'JamongAdmin' is running! Access URLs:

Local: http://localhost:8080

External: http://218.38.137.28:8080

Profile(s): [swagger, dev]

----------------------------------------------------------


$> yarn start

[Browsersync] Proxying: http://localhost:9060

[Browsersync] Access URLs:

 ---------------------------------------

       Local: http://localhost:9000

    External: http://192.168.202.38:9000

 ---------------------------------------

          UI: http://localhost:3001

 UI External: http://192.168.202.38:3001

 ---------------------------------------


브라우져에서는 9000 로 접속한다. 아래 화면을 이제 Clarity css 프레임워크로 바꿔보자.





Twitter Bootstrap을 Clarity 로 교체하기

Clarity-seed와 JHipster 둘 다 @angular/cli를 기본으로 하고 있기 때문에 루트에 있는 .angular-cli.json에 Clarity 관련 설정을 한다. (설정 사항 참조)


- JHipster는 @ng-bootstrap 모듈을 사용하고, @ng-bootstrap/ng-bootstrap/bundles/ng-bootstrap.js를 사용한다.

- Clarity-seed는 clarity-angular 모듈을 사용한다.


일단, JHispter 프로젝트에서 Clarity관련 Icon 및 UI 설정을 해보자. 


Step 1) 설치

icon은 webcomponent를 사용하기 때문에 웹컴포넌트를 지원하지 않는 브라우져를 위해 polyfill을 설치한다. 

// icon 설치

$> npm install clarity-icons --save

$> npm install @webcomponents/custom-elements@1.0.0 --save


// ui 설치

$> npm install clarity-ui --save

$> npm install clarity-angular --save


Step 2) @angular/cli 설정

JHipster 프로젝트에 별도의 css

"apps": [{

... 중략 ...

       "styles": [

                "../../../node_modules/clarity-icons/clarity-icons.min.css",

                "../../../node_modules/clarity-ui/clarity-ui.min.css",

                "content/scss/vendor.scss",,

                "content/scss/global.scss"

        ],

        "scripts": [

                "../../../node_modules/@webcomponents/custom-elements/custom-elements.min.js",

                "../../../node_modules/clarity-icons/clarity-icons.min.js"

         ],

}]


Step 3) Angular Module 설정

clarity-angular를 사용하기 위해 Angular 모듈에 clarity 모듈을 설정한다. 

// src/main/webapp/app/app.module.ts 안에 

import { ClarityModule } from 'clarity-angular';


@NgModule({

    imports: [

        ...

        // jhipster-needle-angular-add-module JHipster will add new module here

        ClarityModule

    ],

    ...

})



Step 4) yarn start를 하면 @angular/animations 모듈일 없다는 오류가 뜬다. Clarity icon에서 animation 모듈을 사용하기 때문이다.

@angular/animations v4.3.2 버전을 추가한다.

$> npm install @angular/animations@4.3.2 --save






Clarity 컴포넌트 사용하기









<참조>

Clarity 시작하기

- Clarity Icons

신고
posted by peter yun 윤영식