MEAN Stack Front to Back (MEANAuthApp)

Slides:



Advertisements
Similar presentations
NCS National Competency Standard NCS 가이드 1 1 학생을 위한 사용자 지침서 GUIDE YONAMNCS National Competency Standard 직업기초능력진단시스템 관리부서 : NCS 지원센터 2016·02·10.
Advertisements

ChartSNS Final BlackHole 한규학 이경찬 최규연 김보경 전승현. 왜이런 거죠 ? 리비아 사 태로 차질 이 생겼어 요. 그러므로 이러한 압축 된 차트를 가지고 토론 을 하기 위 해선 / 명확한 의견 을 표현하는 것이 필요합 니다. 그러므로 이러한 압축.
1 Push 알림서비스 시나리오 및 시스템 구축방안 Push 알림서비스 시나리오 및 시스템 구축방안 IBK 기업은행 신채널제휴팀 붙임 4.
Project : Version: 1.0Date: Pages: 학생용 매뉴얼 > LG Media Center Application 개발 완료 보고서 Title : 개발개요 및 주요기능 사용자 매뉴얼 - 학생용한신대학교 스마트 출결관리 시스템 1 한신대학교.
더존다스 경영전략과 비젼 1 ERP 개발부문
프로젝트 제안서 날씨대로 기분대로 팀원 박효민 신준범 정민섭 안성원
시스템 개요 진화 과정 RIA & X-Internet Web Client/Server Main FRame
루틴스(EVA-EDMS)제품소개서 EVA(Enterprise Value Approach_기업자산 가치로서의 접근)
- SW_Desing Study Group -
IoT(사물인터넷) 보안 2016년 2학기 4. 라즈베리파이 카메라.
MEAN Stack Front to Back (MEANAuthApp)
2002/3/20 HTML 2002/3/20
Chapter14 위치 정보 & 모바일 HTML5 Programming.
HTML과 CSS HTML과 CSS 세미나에 오신 것을 환영합니다.
암호학 응용 Applied cryptography
소비자 만족도 설문조사 결과.
IoT(사물인터넷) 보안 2016년 2학기 3. 라즈베리파이와 node.js.
개발자에게 SharePoint Services 란 무엇인가?
추석특집: 특별프로 대한민국 NO.1 약사를 찾아서 약사와 함께하는 인터뷰 추석 뉴스.
웹어플리케이션 보안 Web application security
채팅 서버 만들기 10장 Do it! Node.js 프로그래밍 이지스퍼블리싱 제공 강의 교안 2017/03
Wi-Fi 기반 NATE 서비스 제공 -설명회-
Install & Simulation VLSI 시스템 설계
InstallShield Professional Services ( Services Pack / Education / Consulting ) ㈜소프트뱅크 커머스.
MEAN Stack Front to Back (MEANAuthApp)
HTML5 웹 프로그래밍 입문(교수용) 2장.HTML5 문서의 기본.
3주차 Android Application ANDROID App..
MEAN Stack Front to Back (MEANAuthApp)
ASP.NET Mobile Controls
웹 어플리케이션 보안 2016년 2학기 8. MEAN APP – USER CRM.
DataStage 운영자 지침서 Operator’s Guide
트위터 크롤링.
MEAN Stack Front to Back (MEANAuthApp)
Bot Framework Hello World Bot과 Telegram에서 대화 하기
Chapter02 시맨틱 웹을 위한 요소 HTML5 Programming.
우리집닷컴 Style Guide 우리집닷컴 Web Style Guide Web Planner 김 영실.
U+ Biz 그룹웨어 Mobile Office User Guide.
개요 설립 배경 및 목적 • 정부는 2005년 전면 발효된 “생명윤리 및 안전에 관한 법률”에 근거, 개인의 유전정보 보호와 근거없는 유전자검사의 상업적 이용 제한, 유전자검사기관의 정확도를 관리하는 장치를 만들었다. 한국유전자검사평가원은 정부로부터 유전자검사기관에 대한.
세금계산서 사용자 매뉴얼 2012년12월 IT사업부 백화점정보팀 상품정보파트 전자세금계산서 매뉴얼.
암호학 응용 Applied cryptography
파피루스 사이트 웹기획서.
Cairngorm(캔곰) : Flex UI 프레임워크
웹 어플리케이션 보안 2016년 2학기 2. Node routing.
JavaScript COOKIE Chapter 10 Part III
IOS Press
MEAN Stack Front to Back
MEAN Stack Front to Back (MEANAuthApp)
인터넷응용프로그래밍 JavaScript(array).
Ch 04. 애니메이션 송재철.
MEAN Stack Front to Back (MEANAuthApp)
MEAN Stack Front to Back (MEANAuthApp)
IoT(사물인터넷) 보안 2016년 2학기 3. 라즈베리파이와 node.js.
Stocker Controller System 소개
게임웹사이트운영 [3] 블록과 목록.
1장. HTML5 소개 To Flash 정보영재세미나 1 김태영교수님 홍창의.
예술치료 실습보고서 미술치료 음악치료 모래상자치료 연극치료 학 교 : 백석대학원 학 과 : 특수심리치료
프로젝트 포트폴리오 요약 프로젝트 종류 프로젝트 이력 역할 주요 기술 : Windows System Application
MEAN Stack Front to Back (MEANAuthApp)
NGTV CF투표함에서 실시한 카이홀맨 광고효과조사 결과 보고
MEAN Stack Front to Back (MEANAuthApp)
웹어플리케이션보안 난수화 토큰인증 중부대학교 정보보호학과 이병천 교수.
용인송담대학교 LMS (교수모드) Version 1.0.
Node Red 컴퓨터공학과 오동근 1.
Smart Mobile & Unique Technology
비축사업 전자계약시스템 도입 용역 사용자매뉴얼(업체담당자용) Version 1.0.
확 인 서 본인은 LG전자㈜ 한국서비스 협력사 공모 지원에 있어 아래의 내용을 확인합니다.
AJAX Technology for Web2.0
3. 웹사이트의 목적에 따른 분류 - 비상업적 사이트
K PaaS-TA 앱 개발.
MEAN Stack Front to Back (MEANAuthApp)
Presentation transcript:

MEAN Stack Front to Back (MEANAuthApp) 5. Angular Components & Routes

목차 1. 환경 구축 2. Express Setup & Routes 3. User Model and Register 4. API authentication and Token 5. Angular Components & Routes 6. Register Component, Validation & Flash messages 7. Auth Service & User Registration 8. Login & Logout 9. Protected Requests & Auth Guard 10. App Deployment to Heroku

이 장에서 할 일 Frontend 웹페이지 작성 Angular 프레임워크 이용 방법 https://angular.io/ https://cli.angular.io/

Frontend 프레임워크 Battle

Angular Angular 란? 구글이 제공하는 Frontend framework 홈페이지 https://angular.io/ 현재 버전 Angular 8

Angular CLI https://cli.angular.io/ The Angular CLI makes it easy to create an application that already works, right out of the box. It already follows our best practices! 웹서비스를 쉽게 제작할 수 있는 Command Line Interface 도구

Angular CLI 사용 방법 Angular/cli 글로벌 설치 새로운 App 생성 생성된 App 폴더로 이동 잘 만들어진 기본 웹페이지 포맷을 제공  이후 필요에 따라 컴포넌트를 추가, 수정

Angular 환경 설정 Angular cli 설치 > npm install -g @angular/cli > npm install --save-dev @angular/cli@latest 에러 발생시 최신버전으로 로컬 설치 > ng version 설치된 Angular의 버전 확인

Angular 환경 설정 Angular cli 설치 npm install -g @angular/cli ng version

Angular 환경 설정 새로운 App 생성 현재 프로젝트 폴더로 이동: > cd meanauthapp > ng new angular-src (새로운 앱 생성 명령) ? Angular routing? Yes (라우팅 기능 사용 여부) ? Stylesheet format? SCSS (스타일시트 사용 방식 지정) angular-src라는 이름으로 새로운 앱 생성

Angular-src App 생성 새로운 폴더 angular-src 생성 각종 패키지/파일들이 자동 설치됨 angular-src/node_modules 폴더에 패키지 설치 src/app 폴더에 주요 소스파일 존재함

App 실행 App 폴더로 이동 App 실행 브라우저로 확인 > cd angular-src > ng serve -o http://localhost:4200/ 4200은 Angular의 기본 포트번호

app.module.ts 설명 meanauthapp/angular-src/src/app/app.module.ts 메인 앱 모듈 메인 앱 컴포넌트를 포함, 선언, 시작, 출력 @NgModule은 모듈을 나타내는 decorator

app.module.ts 설명 app.module.ts는 각종 모듈, 컴포넌트, 서비스들을 결합 하는 장소 declarations: 컴포넌트를 추가하는 장소 imports: 모듈을 추가하는 장소 providers: 서비스를 추가하는 장소 bootstrap: 시작 컴포넌트를 지정

app.component.ts 설명 meanauthapp/angular-src/src/app/app.component.ts 메인 앱 컴포넌트 DOM 생성 지시자 Html 파일 Scss 파일 스타일 지정 title 변수 선언 @Component는 컴포넌트를 나타내는 decorator

app.component.html 설명 meanauthapp/angular-src/src/app/app.component.html 브라우저의 메인 화면 모습을 지정하는 템플릿 파일 title = angular-src 변수가 반영됨 기본 템플릿 파일이 매우 복잡…

app.component.html 수정 App.component.html <h1>Welcome to {{title}}!</h1> <router-outlet></router-outlet> <router-outlet></router-outlet> 부분만 남기고 나머지는 삭제 H1 태그로 타이틀 작성 title변수의 적용 확인

Typescript Typescript란? https://www.typescriptlang.org/ 마이크로소프트가 개발하고 관리하는 오픈소스 프로그래밍 언어 확장자는 *.ts 자바스크립트의 확장버전으로 컴파일하여 자바스크립트 출력

컴포넌트 생성하기 홈페이지 제작에 필요한 세부 컴포넌트들 컴포넌트 생성하기 Navbar : 메뉴 내비게이션 Login : 로그인 페이지 Register : 등록 페이지 Profile : 프로필 페이지 Dashboard : 사용자 대쉬보드 페이지 Home: 메인 홈페이지 컴포넌트 생성하기 angular-cli 이용하여 컴포넌트 생성 app 폴더 안에 components 폴더 생성 Components 폴더로 이동 > ng g component 컴포넌트명 컴포넌트란? 페이지 등과 같이 UI를 가지는 구성요소

Navbar 컴포넌트 Navbar 컴포넌트 생성 > ng g component navbar

Navbar 컴포넌트 navbar.component.html navbar.component.ts

Navbar 컴포넌트 ng g 명령으로 생성된 navbar 컴포넌트는 app.module.ts에 자동 등록됨

Navbar 컴포넌트 Navbar.component.html을 화면에 출력하려면 DOM 지시자 app-navbar를 이용하여 App.component.html에 <app-navbar></app-navbar>를 포함시킴

나머지 컴포넌트들을 생성 >ng g component login >ng g component register >ng g component home >ng g component dashboard >ng g component profile

나머지 컴포넌트들을 생성 Components 폴더에 생성 생성된 컴포넌트들이 app.module.ts 파일에 자동 등록

Bootstrap 스타일 적용 Index.html 파일 수정 Meanauthapp/angular-src/src/index.html Bootstrap 스타일시트, 자바스크립트 적용 Bootstrap.min.css 제목 수정 등

Bootstrap 스타일 적용 App.component.html 파일 수정 Meanauthapp/angular-src/src/app/app.component.html Bootstrap의 container 클래스 적용 가운데 정렬 레이아웃 적용 Title 태그의 제목 수정됨

라우터 생성 App-routing.module.ts 파일 수정 RouterModule 읽어오기 필요한 컴포넌트 객체 생성 routes 변수 생성 각 루트에 컴포넌트 등록 RouterModule 등록

각각의 지정된 path가 잘 동작함을 확인 (login, register, dashboard, profile) 라우터 생성 App.component.html 파일에 router-outlet 추가 상단에 navbar 하단에 router-outlet 각각의 지정된 path가 잘 동작함을 확인 (login, register, dashboard, profile)

메뉴 만들기 Bootstrap의 Navbar 컴포넌트 이용하여 Bootstrap 스타 일 메뉴 작성 https://getbootstrap.com/docs/4.3/components/navbar/ Navbar 소스 복사하여 Navbar.component.html 파일에 붙여넣기 파일을 다음과 같이 수정

메뉴 만들기 Navbar/navbar.component.html 파란색 메뉴바 로고에 / 링크 왼쪽 정렬 메뉴 <nav class="navbar navbar-expand-lg navbar-dark bg-primary">   <a class="navbar-brand" href="/">MeanAuthApp</a>   <button class="navbar-toggler" type="button" data-toggle="collapse" data-target="#navbarSupportedContent"     aria-controls="navbarSupportedContent" aria-expanded="false" aria-label="Toggle navigation">     <span class="navbar-toggler-icon"></span>   </button>   <div class="collapse navbar-collapse" id="navbarSupportedContent">     <ul class="navbar-nav mr-auto">       <li class="nav-item"><a class="nav-link" routerLink='/'>Home</a></li>     </ul>       <li class="nav-item"><a class="nav-link" routerLink='/login'>Login</a></li>       <li class="nav-item"><a class="nav-link" routerLink='/register'>Register</a></li>   </div> </nav> 로고에 / 링크 왼쪽 정렬 메뉴 오른쪽 정렬 메뉴 필요한 메뉴들을 추가

완성! 메뉴 만들기 App.component.html <app-navbar></app-navbar> <div class="container">   <router-outlet></router-outlet> </div> 상단에 navbar 표시 하단에 router-outlet 표시 완성! 메뉴 동작 테스트 잘 동작함!