IoT 개발자를 위한 Embedded C에서 TDD를 해보자Taeyeop KimEmbedded C에서 TDD를 실천하기 위해 시도했던 경험과 방법을 기록해 보았습니다.
HW로부터 생기는 버그인지 SW로부터 생기는 버그인지 짐작조차 되지 않는 상황이 자주 발생한다면, TDD를 시작해보세요.
이 자료에서는 호스트 시스템(PC)에서 TDD를 실천하는 방법과 타깃 시스템(nRF51-DK)에서 TDD를 실천하는 방법을 기록하였습니다.
또한, nRF51-DK가 아닌 다른 보드를 가지고 있더라도 실천 가능합니다.
ktim610@gmail.com
IoT 개발자를 위한 Embedded C에서 TDD를 해보자Taeyeop KimEmbedded C에서 TDD를 실천하기 위해 시도했던 경험과 방법을 기록해 보았습니다.
HW로부터 생기는 버그인지 SW로부터 생기는 버그인지 짐작조차 되지 않는 상황이 자주 발생한다면, TDD를 시작해보세요.
이 자료에서는 호스트 시스템(PC)에서 TDD를 실천하는 방법과 타깃 시스템(nRF51-DK)에서 TDD를 실천하는 방법을 기록하였습니다.
또한, nRF51-DK가 아닌 다른 보드를 가지고 있더라도 실천 가능합니다.
ktim610@gmail.com
Angular2를 활용한 컴포넌트 중심의 개발Jin wookAngular2는 컴포넌트 중심의 개발 접근 방식에 대한 내용을 가집니다. 따라서 본 슬라이드도 컴포넌트 중심의 개발 접근 방식으로 Angular2를 바라보았습니다.
대략적인 내용은 다음과 같습니다.
- Angular2 History
- Angular2 핵심구성요소
- 컴포넌트 중심의 개발
- Angular2 주요개념
- Type Script에대한 설명
- 기타
필요하신 분에게 도움이 되었으면 좋겠습니다. 관련 코드는 다음 주소에 공유하였습니다.
https://github.com/DaeguDevGroup/angular2-bootstrap
- 내용이 업데이트되거나, 추가되면 설명에 이력을 남기겠습니다.
- 본 슬라이드에 오류가 있다면 코멘트 바랍니다.
*Change Log*
- 2016-05-14 : 슬라이드 첫 버전을 업로드
AngularJS 2, version 1 and ReactJSKenneth CeyerAngularJS 2는 올해 릴리징된 프론트엔드 도구 중 가장 쿨하고 섹시한 도구라고 독자는 믿고있습니다.
AngularJS 2를 실무환경에 적용함으로 얻는 이점.
AngularJS 2와 1의 차이점과 성능.
그리고 ReactJS와 AngularJS 2를 비교하여 퍼포먼스 데이터를 보여줍니다.
마지막으로 AngularJS 2 사용을 위한 번들러(Bundler) 그 중 Webpack, Systemjs, JSPM에 대해서도 안내합니다.
해당 자료는 XECon 2016에 발표되었습니다.
Use JavaScript more strictly (feat. TypeScript, flow)Mark Lee[DevFest Seoul 2018] JavaScript 에 Type System 을 도입하는 대표적인 방법인 Flow 와 TypeScript 를 알아본다. TypeScript 의 strict 모드를 이용해서 좀 더 견고한 JavaScript 어플리케이션을 만드는 방법에 대해 공유한다.
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 버젼을 최신으로 따라오는걸 기대하지는 못한다.