ݺߣ

ݺߣShare a Scribd company logo
최˳섭 Software Engineer
목차
소개
Angular2(Typescript) 도입
Typescript를 쓰면서 일어났던 의문과 해결
Typescript를 쓰고 느낀점
소개
10월 11월 12월 1월 2월 3월
2016 2017
6months
Angular2 (Typescript) 도입
AngularJS 1 Angular 2
ES6 Dart Typescript
Angular2 (Typescript) 도입
ES6 Dart Typescript
Angular2 (Typescript) 도입
인텔리센스
OOP
Interface
앵귤러가 Typescript로 만들어졌다.
지원이 많다.
1.
2.
3.
4.
5.
Angular2 (Typescript) 도입
1.인텔리센스
실제로 쓰면서 장점
● 컴파일 시점에 타입체크
● 코드 자동생성
● 코드 탐색
생산성 있는 개발 가능
2.OOP
실제로 쓰면서 장점
● 한 눈에 비교되는 js, ts 코드
● Angular2 컴포넌트화 프로그래밍하기 용이
2.OOP
실제로 쓰면서 장점
Typescript는 Javascript가 대규모
어플리케이션에 적합하지않다는 고객사의
불평에 대응하기위해 만든언어
- Typescript Project Leader
3.Interface
실제로 쓰면서 장점
● 좋은 설계는 잘 정의된 인터페이스와 같다는 말이 있습니다.
● 팀원이 짠 코드도 자동완성을 할 수 있습니다.
4.앵귤러2의 메인코드가 Typescript
실제로 쓰면서 장점
● rxjs는 이름은 js지만 Typescript로 만들어졌다.
4.앵귤러2의 메인코드가 Typescript
실제로 쓰면서 장점
@ViewChild(CustomComponent) myCustomComponent;
● es7에 포함되는 데코레이터(@)를 앵귤러에서 쓸 수 있는 것은 모두 Typescript 덕.
5.지원이 많다
실제로 쓰면서 장점
Visual Studio Code의
LSP(Language Server Protocol)
(http://langserver.org/)
1
2
3
5.지원이 많다
실제로 쓰면서 장점
● 다양한 지원
● 활발한 Open source
● 커뮤니티
Q. 외부 자바스크립트 라이브러리를 쓰려면?
Typescript를 쓰면서 일어났던 문제점과 해결
jQuery 사용하기
declare var jQuery: any;
this.schedule = jQuery(this.el.nativeElement.children[0]);
this.schedule.fullCalendar('refetchResources');
var jQuery: any; // 이것도 같은 결과이다.
Q. 외부 자바스크립트 라이브러리를 커스텀
하려면?
Typescript를 쓰면서 일어났던 문제점과 해결
달력 헤더 부분 개발을 위해 fullcalendar.js 를 썼다.
(https://fullcalendar.io/)
Q. 외부 자바스크립트 라이브러리를 커스텀
하려면?
Typescript를 쓰면서 일어났던 문제점과 해결
해결책
=> 복붙 ( 복사 + 붙여넣기 )
Q. 외부 자바스크립트 라이브러리를 커스텀
하려면?
Typescript를 쓰면서 일어났던 문제점과 해결
Angular Calendar 프로젝트 추천
(https://github.com/mattlewis92/angular-calendar)
1. jQuery를 끌어다 쓰려합니다.
2. 매핑되는 jQuery.d.ts를 찾아보아야합니다.
3. 두가지 방법이 있습니다.
a. typing 프로그램 검색합니다.
b. https://github.com/DefinitelyTyped/DefinitelyTyped
4. jQuery.d.ts 를 확인해보니 최신 jQuery3는 지원하지않습니다.
a. 이슈: https://github.com/DefinitelyTyped/DefinitelyTyped/issues/13258
5. 최신 기능이 .d.ts에 없을 수도 있다는 것을 알 수 있습니다.
해결책 ⇒ 직접 기여
Q. 외부 라이브러리를 쓸 때 타이핑버젼도
고려해야한다.
Typescript를 쓰면서 일어났던 문제점과 해결
Q. 외부 라이브러리를 쓸 때 타이핑버젼도
고려해야한다.
Typescript를 쓰면서 일어났던 문제점과 해결
특정 jQuery버전을 사용하고 싶을 때 제공된 것 중 어떤 .d.ts버전을
사용해야하는가?
https://www.npmjs.com/package/@types/jquery 의 버전 리스트(왼쪽 사진)
중에 골라야 합니다.
Q1. 저 버전이 그래서 jQuery 버전이랑 어떤 관련이 있나?
Q2. DefinitelyTyped/DefinitelyTyped 의 커밋중에 어떤 버전인가?
해결책 ⇒ 직접 받아서 commit이랑 비교해서
해결하였습니다.
(git bisect + md5sum 돌다리두드리기)
Q. Typescript 버전 업
Typescript를 쓰면서 일어났던 문제점과 해결
Typescript 1.8 Typescript 2.0
Angular와 같이 같은 시기에 넘어갈 수 있어서 문제
없었음
Q. Typescript 버전 업
Typescript를 쓰면서 일어났던 문제점과 해결
Typescript 2.0 Typescript 2.1
Angular 쪽이 준비되어 있지 않아서 이슈가 있었음
- Typescript 2.1에서는 Angular가 NgModule을 제대로 확인하지 못함.
- 최신 2.1.4 버젼을 못 쓰고, 2.0.10으로 고정해서 썼음.
Angular4 에서는 해당 이슈 해결
Q. 반대로 라이브러리가 precompiled 되면?
Typescript를 쓰면서 일어났던 문제점과 해결
반대로 어떤 Angular 라이브러리가 Typescript 2.1+로 precompiled 되어 있을 경우, 이를 Typescript 2.0
환경의 Angular에서 불러오려고 하면 같은 문제가 생김.
해결책
1. 라이브러리를 포크해서, 새 임시 브랜치를 팝니다.
2. package.json을 수정해서 typescript 2.0 환경으로 맞춰줍니다.
3. 다시 빌드합니다.
4. 테스트를 돌려줍니다.
5. 커밋을 합니다.
6. 그리고 그 커밋을 우리 프로젝트에서 사용하는 것으로 해결 (아래 이미지)
Q. Inoic2 으로 넘어갈 때 문제점과 해결
Typescript를 쓰면서 일어났던 문제점과 해결
웹 프로젝트의 컴포넌트를 그대로 넘겨받아 사용할 수 있었다.
단, Ionic이 Angular 버젼을 최신으로 따라오는걸 기대하지는 못한다.
“강력하다.”
Typescript를 쓰고
“어렵지 않다.”
“서버도
Typescript로
가자.”
“신뢰성 있는
코드를 작성 할 수
있다.”
개발팀의 느낀점
Thank you
Ad

Recommended

TDD
TDD
Henry Lee
GKAC 2015 Apr. - 테스트 코드에서 코드 커버리지까지
GKAC 2015 Apr. - 테스트 코드에서 코드 커버리지까지
GDG Korea
Welcome to Android Studio
Welcome to Android Studio
WonKyun Lim
파이썬 TDD 101
파이썬 TDD 101
정주 김
청강대 특강 - 프로젝트 제대로 해보기
청강대 특강 - 프로젝트 제대로 해보기
Chris Ohk
코드 리뷰 시스템 소개
코드 리뷰 시스템 소개
Young-Ho Cha
[TECHCON 2019: MOBILE - Android]4.쪼개지고 나누어지는 안드로이드
[TECHCON 2019: MOBILE - Android]4.쪼개지고 나누어지는 안드로이드
NAVER Engineering
프로젝트 관리 및 지켜야 할 사항들
프로젝트 관리 및 지켜야 할 사항들
Lee Geonhee
0503.1 vs n
0503.1 vs n
민정 김
C++과 TDD
C++과 TDD
선협 이
Git flow
Git flow
Wonjun Hwang
플리토 코드리뷰 - Code Review in Flitto
플리토 코드리뷰 - Code Review in Flitto
Yongjun Kim
IoT 개발자를 위한 Embedded C에서 TDD를 해보자
IoT 개발자를 위한 Embedded C에서 TDD를 해보자
Taeyeop Kim
Dagger 2.0 을 활용한 의존성 주입
Dagger 2.0 을 활용한 의존성 주입
승용 윤
200820 NAVER TECH CONCERT 15_Code Review is Horse(코드리뷰는 말이야)(feat.Latte)
200820 NAVER TECH CONCERT 15_Code Review is Horse(코드리뷰는 말이야)(feat.Latte)
NAVER Engineering
Tdd with JUnit 1
Tdd with JUnit 1
Junyoung Lee
TDD&Refactoring Day 02: TDD
TDD&Refactoring Day 02: TDD
Suwon Chae
Effective c++ item45
Effective c++ item45
진화 손
타입스크립트 잘 사용하기
타입스크립트 잘 사용하기
SanghoYun
오픈소스 소프트웨어 개발, 어디서부터 시작하는게 좋을까요? @ CNU(충남대)
오픈소스 소프트웨어 개발, 어디서부터 시작하는게 좋을까요? @ CNU(충남대)
Jaewon Choi
Flipper 불완전 정복
Flipper 불완전 정복
Sewon Ann
NDC13: DVCS와 코드리뷰 그리고 자동화를 통한 쾌속 개발
NDC13: DVCS와 코드리뷰 그리고 자동화를 통한 쾌속 개발
Jinuk Kim
Code Review - DevOn2013
Code Review - DevOn2013
호정 이
Doxygen 사용법
Doxygen 사용법
YoungSu Son
Angular2를 위한 타입스크립트
Angular2를 위한 타입스크립트
Jin wook
Angular2 톺아보기
Angular2 톺아보기
철민 배
[하코사세미나]미리보는 대규모 자바스크립트 어플리케이션 개발
[하코사세미나]미리보는 대규모 자바스크립트 어플리케이션 개발
정석 양
[114]angularvs react 김훈민손찬욱
[114]angularvs react 김훈민손찬욱
NAVER D2
Angular2 가기전 Type script소개
Angular2 가기전 Type script소개
Dong Jun Kwon

More Related Content

What's hot (17)

0503.1 vs n
0503.1 vs n
민정 김
C++과 TDD
C++과 TDD
선협 이
Git flow
Git flow
Wonjun Hwang
플리토 코드리뷰 - Code Review in Flitto
플리토 코드리뷰 - Code Review in Flitto
Yongjun Kim
IoT 개발자를 위한 Embedded C에서 TDD를 해보자
IoT 개발자를 위한 Embedded C에서 TDD를 해보자
Taeyeop Kim
Dagger 2.0 을 활용한 의존성 주입
Dagger 2.0 을 활용한 의존성 주입
승용 윤
200820 NAVER TECH CONCERT 15_Code Review is Horse(코드리뷰는 말이야)(feat.Latte)
200820 NAVER TECH CONCERT 15_Code Review is Horse(코드리뷰는 말이야)(feat.Latte)
NAVER Engineering
Tdd with JUnit 1
Tdd with JUnit 1
Junyoung Lee
TDD&Refactoring Day 02: TDD
TDD&Refactoring Day 02: TDD
Suwon Chae
Effective c++ item45
Effective c++ item45
진화 손
타입스크립트 잘 사용하기
타입스크립트 잘 사용하기
SanghoYun
오픈소스 소프트웨어 개발, 어디서부터 시작하는게 좋을까요? @ CNU(충남대)
오픈소스 소프트웨어 개발, 어디서부터 시작하는게 좋을까요? @ CNU(충남대)
Jaewon Choi
Flipper 불완전 정복
Flipper 불완전 정복
Sewon Ann
NDC13: DVCS와 코드리뷰 그리고 자동화를 통한 쾌속 개발
NDC13: DVCS와 코드리뷰 그리고 자동화를 통한 쾌속 개발
Jinuk Kim
Code Review - DevOn2013
Code Review - DevOn2013
호정 이
Doxygen 사용법
Doxygen 사용법
YoungSu Son
플리토 코드리뷰 - Code Review in Flitto
플리토 코드리뷰 - Code Review in Flitto
Yongjun Kim
IoT 개발자를 위한 Embedded C에서 TDD를 해보자
IoT 개발자를 위한 Embedded C에서 TDD를 해보자
Taeyeop Kim
Dagger 2.0 을 활용한 의존성 주입
Dagger 2.0 을 활용한 의존성 주입
승용 윤
200820 NAVER TECH CONCERT 15_Code Review is Horse(코드리뷰는 말이야)(feat.Latte)
200820 NAVER TECH CONCERT 15_Code Review is Horse(코드리뷰는 말이야)(feat.Latte)
NAVER Engineering
TDD&Refactoring Day 02: TDD
TDD&Refactoring Day 02: TDD
Suwon Chae
Effective c++ item45
Effective c++ item45
진화 손
타입스크립트 잘 사용하기
타입스크립트 잘 사용하기
SanghoYun
오픈소스 소프트웨어 개발, 어디서부터 시작하는게 좋을까요? @ CNU(충남대)
오픈소스 소프트웨어 개발, 어디서부터 시작하는게 좋을까요? @ CNU(충남대)
Jaewon Choi
Flipper 불완전 정복
Flipper 불완전 정복
Sewon Ann
NDC13: DVCS와 코드리뷰 그리고 자동화를 통한 쾌속 개발
NDC13: DVCS와 코드리뷰 그리고 자동화를 통한 쾌속 개발
Jinuk Kim
Code Review - DevOn2013
Code Review - DevOn2013
호정 이

Similar to Angualr2에서 typescript 활용하기 (19)

Angular2를 위한 타입스크립트
Angular2를 위한 타입스크립트
Jin wook
Angular2 톺아보기
Angular2 톺아보기
철민 배
[하코사세미나]미리보는 대규모 자바스크립트 어플리케이션 개발
[하코사세미나]미리보는 대규모 자바스크립트 어플리케이션 개발
정석 양
[114]angularvs react 김훈민손찬욱
[114]angularvs react 김훈민손찬욱
NAVER D2
Angular2 가기전 Type script소개
Angular2 가기전 Type script소개
Dong Jun Kwon
Angular2를 활용한 컴포넌트 중심의 개발
Angular2를 활용한 컴포넌트 중심의 개발
Jin wook
AngularJS 2, version 1 and ReactJS
AngularJS 2, version 1 and ReactJS
Kenneth Ceyer
[Td 2015]java script에게 형(type)이 생겼어요. typescript(박용준)
[Td 2015]java script에게 형(type)이 생겼어요. typescript(박용준)
Sang Don Kim
Angular 살짝 해보고 발표.
Angular 살짝 해보고 발표.
ChangHyeon Bae
07. type system
07. type system
Han JaeYeab
ᅩᅳᅵᆺ-ᅡᅳ-ᅳᆨᄀơᆼ.
ᅩᅳᅵᆺ-ᅡᅳ-ᅳᆨᄀơᆼ.
이정환
Ionic2로 Type script+Angular2.0 따라하기 1
Ionic2로 Type script+Angular2.0 따라하기 1
이경주 이경주
Use JavaScript more strictly (feat. TypeScript, flow)
Use JavaScript more strictly (feat. TypeScript, flow)
Mark Lee
Angular 기본 개념 잡기
Angular 기본 개념 잡기
장˳ 한
01. basic types
01. basic types
Han JaeYeab
[1A4]자바스크립트 라이브러리 개발 운영 경험기
[1A4]자바스크립트 라이브러리 개발 운영 경험기
NAVER D2
deview2014
deview2014
yongwoo Jeon
Angular는 사실 어렵지 않습니다.
Angular는 사실 어렵지 않습니다.
장˳ 한
Angular 2 rc5 조사
Angular 2 rc5 조사
Rjs Ryu
Angular2를 위한 타입스크립트
Angular2를 위한 타입스크립트
Jin wook
Angular2 톺아보기
Angular2 톺아보기
철민 배
[하코사세미나]미리보는 대규모 자바스크립트 어플리케이션 개발
[하코사세미나]미리보는 대규모 자바스크립트 어플리케이션 개발
정석 양
[114]angularvs react 김훈민손찬욱
[114]angularvs react 김훈민손찬욱
NAVER D2
Angular2 가기전 Type script소개
Angular2 가기전 Type script소개
Dong Jun Kwon
Angular2를 활용한 컴포넌트 중심의 개발
Angular2를 활용한 컴포넌트 중심의 개발
Jin wook
AngularJS 2, version 1 and ReactJS
AngularJS 2, version 1 and ReactJS
Kenneth Ceyer
[Td 2015]java script에게 형(type)이 생겼어요. typescript(박용준)
[Td 2015]java script에게 형(type)이 생겼어요. typescript(박용준)
Sang Don Kim
Angular 살짝 해보고 발표.
Angular 살짝 해보고 발표.
ChangHyeon Bae
ᅩᅳᅵᆺ-ᅡᅳ-ᅳᆨᄀơᆼ.
ᅩᅳᅵᆺ-ᅡᅳ-ᅳᆨᄀơᆼ.
이정환
Ionic2로 Type script+Angular2.0 따라하기 1
Ionic2로 Type script+Angular2.0 따라하기 1
이경주 이경주
Use JavaScript more strictly (feat. TypeScript, flow)
Use JavaScript more strictly (feat. TypeScript, flow)
Mark Lee
Angular 기본 개념 잡기
Angular 기본 개념 잡기
장˳ 한
[1A4]자바스크립트 라이브러리 개발 운영 경험기
[1A4]자바스크립트 라이브러리 개발 운영 경험기
NAVER D2
Angular는 사실 어렵지 않습니다.
Angular는 사실 어렵지 않습니다.
장˳ 한
Angular 2 rc5 조사
Angular 2 rc5 조사
Rjs Ryu
Ad

Angualr2에서 typescript 활용하기

  • 2. 목차 소개 Angular2(Typescript) 도입 Typescript를 쓰면서 일어났던 의문과 해결 Typescript를 쓰고 느낀점
  • 3. 소개 10월 11월 12월 1월 2월 3월 2016 2017 6months
  • 5. ES6 Dart Typescript Angular2 (Typescript) 도입
  • 6. ES6 Dart Typescript Angular2 (Typescript) 도입
  • 8. 1.인텔리센스 실제로 쓰면서 장점 ● 컴파일 시점에 타입체크 ● 코드 자동생성 ● 코드 탐색 생산성 있는 개발 가능
  • 9. 2.OOP 실제로 쓰면서 장점 ● 한 눈에 비교되는 js, ts 코드 ● Angular2 컴포넌트화 프로그래밍하기 용이
  • 10. 2.OOP 실제로 쓰면서 장점 Typescript는 Javascript가 대규모 어플리케이션에 적합하지않다는 고객사의 불평에 대응하기위해 만든언어 - Typescript Project Leader
  • 11. 3.Interface 실제로 쓰면서 장점 ● 좋은 설계는 잘 정의된 인터페이스와 같다는 말이 있습니다. ● 팀원이 짠 코드도 자동완성을 할 수 있습니다.
  • 12. 4.앵귤러2의 메인코드가 Typescript 실제로 쓰면서 장점 ● rxjs는 이름은 js지만 Typescript로 만들어졌다.
  • 13. 4.앵귤러2의 메인코드가 Typescript 실제로 쓰면서 장점 @ViewChild(CustomComponent) myCustomComponent; ● es7에 포함되는 데코레이터(@)를 앵귤러에서 쓸 수 있는 것은 모두 Typescript 덕.
  • 14. 5.지원이 많다 실제로 쓰면서 장점 Visual Studio Code의 LSP(Language Server Protocol) (http://langserver.org/) 1 2 3
  • 15. 5.지원이 많다 실제로 쓰면서 장점 ● 다양한 지원 ● 활발한 Open source ● 커뮤니티
  • 16. Q. 외부 자바스크립트 라이브러리를 쓰려면? Typescript를 쓰면서 일어났던 문제점과 해결 jQuery 사용하기 declare var jQuery: any; this.schedule = jQuery(this.el.nativeElement.children[0]); this.schedule.fullCalendar('refetchResources'); var jQuery: any; // 이것도 같은 결과이다.
  • 17. Q. 외부 자바스크립트 라이브러리를 커스텀 하려면? Typescript를 쓰면서 일어났던 문제점과 해결 달력 헤더 부분 개발을 위해 fullcalendar.js 를 썼다. (https://fullcalendar.io/)
  • 18. Q. 외부 자바스크립트 라이브러리를 커스텀 하려면? Typescript를 쓰면서 일어났던 문제점과 해결 해결책 => 복붙 ( 복사 + 붙여넣기 )
  • 19. Q. 외부 자바스크립트 라이브러리를 커스텀 하려면? Typescript를 쓰면서 일어났던 문제점과 해결 Angular Calendar 프로젝트 추천 (https://github.com/mattlewis92/angular-calendar)
  • 20. 1. jQuery를 끌어다 쓰려합니다. 2. 매핑되는 jQuery.d.ts를 찾아보아야합니다. 3. 두가지 방법이 있습니다. a. typing 프로그램 검색합니다. b. https://github.com/DefinitelyTyped/DefinitelyTyped 4. jQuery.d.ts 를 확인해보니 최신 jQuery3는 지원하지않습니다. a. 이슈: https://github.com/DefinitelyTyped/DefinitelyTyped/issues/13258 5. 최신 기능이 .d.ts에 없을 수도 있다는 것을 알 수 있습니다. 해결책 ⇒ 직접 기여 Q. 외부 라이브러리를 쓸 때 타이핑버젼도 고려해야한다. Typescript를 쓰면서 일어났던 문제점과 해결
  • 21. Q. 외부 라이브러리를 쓸 때 타이핑버젼도 고려해야한다. Typescript를 쓰면서 일어났던 문제점과 해결 특정 jQuery버전을 사용하고 싶을 때 제공된 것 중 어떤 .d.ts버전을 사용해야하는가? https://www.npmjs.com/package/@types/jquery 의 버전 리스트(왼쪽 사진) 중에 골라야 합니다. Q1. 저 버전이 그래서 jQuery 버전이랑 어떤 관련이 있나? Q2. DefinitelyTyped/DefinitelyTyped 의 커밋중에 어떤 버전인가? 해결책 ⇒ 직접 받아서 commit이랑 비교해서 해결하였습니다. (git bisect + md5sum 돌다리두드리기)
  • 22. Q. Typescript 버전 업 Typescript를 쓰면서 일어났던 문제점과 해결 Typescript 1.8 Typescript 2.0 Angular와 같이 같은 시기에 넘어갈 수 있어서 문제 없었음
  • 23. Q. Typescript 버전 업 Typescript를 쓰면서 일어났던 문제점과 해결 Typescript 2.0 Typescript 2.1 Angular 쪽이 준비되어 있지 않아서 이슈가 있었음 - Typescript 2.1에서는 Angular가 NgModule을 제대로 확인하지 못함. - 최신 2.1.4 버젼을 못 쓰고, 2.0.10으로 고정해서 썼음. Angular4 에서는 해당 이슈 해결
  • 24. Q. 반대로 라이브러리가 precompiled 되면? Typescript를 쓰면서 일어났던 문제점과 해결 반대로 어떤 Angular 라이브러리가 Typescript 2.1+로 precompiled 되어 있을 경우, 이를 Typescript 2.0 환경의 Angular에서 불러오려고 하면 같은 문제가 생김. 해결책 1. 라이브러리를 포크해서, 새 임시 브랜치를 팝니다. 2. package.json을 수정해서 typescript 2.0 환경으로 맞춰줍니다. 3. 다시 빌드합니다. 4. 테스트를 돌려줍니다. 5. 커밋을 합니다. 6. 그리고 그 커밋을 우리 프로젝트에서 사용하는 것으로 해결 (아래 이미지)
  • 25. Q. Inoic2 으로 넘어갈 때 문제점과 해결 Typescript를 쓰면서 일어났던 문제점과 해결 웹 프로젝트의 컴포넌트를 그대로 넘겨받아 사용할 수 있었다. 단, Ionic이 Angular 버젼을 최신으로 따라오는걸 기대하지는 못한다.