Tag Archives: TypeScript

node.ts로 애플리케이션 만들기

과학상자로 자동차를 만들면 안되는거시야

꽤나 잘 굴러가긴 하겠지만 말이야…

enum

아예 없으면 없나보다 할텐데 어설프게 있는게 더 극혐이다.

export enum ArticleEnum {
  ADOC, MD,
}

export class ArticleConstant {
  static readonly ADOC = 'ADOC'
  static readonly MD = 'MD'
}

export type ArticleType = 'ADOC' | 'MD'

export default ArticleType

괜찮은 구조인지는 모르겠지만 대략 이렇게 처리를 해 버렸다.
단순히 enum을 이용해서 ===비교를 하면
class 안의 article: ArticleEnum은 ADOC ArticleEnum.ADOC는 0이라는 값이 나온다
0나오는건 당연한거긴한데
비교하면 0이랑 비교하는것처럼 다 false가 나온다.

취소. 이상하다.. 비교가 잘 된다.
전에 이런종류의 에러를 본 것 같은데
error TS2365: Operator ‘===’ cannot be applied to types 

메모리 공유

브라우저단에서 클라이언트 프로그램을 만들 때는 큰 문제가 되지 않던 부분인 쓰레드 관련 부분도 …
노드를 빠르게 해 주는 장점이기도 하지만 단점이기도 한 이 부분…
메모리를 공유해야 할 일이 있을 때 IPC또는 클러스터링 수준의 아키텍처를 만들어내야한다.

노드의 빠른 속도의 근본 이유이기도 하다.
그래서 간단한 형태로 많은 리퀘스트를 받는 애플리케이션을 만들때는 유용할 것 같다.

익셉션 처리

좀만 잘못하면 자꾸 뒈져버리니…
언어의 문제라기보다는 적절한 프레임웤이 없는게 문제라고 해야할 것 같다.

표준형태 없는 코드의 문제

이건 타입스크립트의 문제이긴 하지만

import winston from 'winston'
import * as winston from 'winston'

이 두개가 뭐가 다를까…
namespace가 선언되어 있는 경우
class가 선언되어 있는 경우
default export가 선언되어 있는 경우에 따라 임포트 방식이 달라져야한다.

소스코드를 봐야된다. ide를 좋은거 써야겠지…도큐먼트는 제대로 안나온게 많으니까
표준없는 코드는 여기저기서 문제를 일으킨다. 프로젝트가 커질수록 문제도 커지겠고…

장난감으로는 장난감만 만들자

노드 백엔드는 토이프로젝트까지만 사용하는걸로

프로토타이핑으로는 괜찮은 것 같다.

처음 배우기가 쉽다고 하지만 스프링에서 쓰던만큼 셋팅을 하려고 하니까 이것도 시간이 만만찮게 걸리는건 별 수 없는 것 같다.

잘 갖춰진걸로 쉽게 만들려면 RoR이 좋겠고
노드는 진짜 개판으로 짜기만 좋다. 이것저것 갖추려면 시간은 어차피 그만큼 걸린다.

왓 Angular하고 AngularJS가 다른거라고?

Angular1 – AngujarJS (JavaScirpt)
Angular2 – Angular.io (TypeScript)

Frontend 진짜 질린다

….
Angular2가 나오면서 Anguar1은 Deprecated됐을거라고 생각했는데…
이게 아니었네
둘 다 개발중..

Angular1은 그냥 미련이 남아서 개발을 계속 하고 있는건가?
아니면 두가지가 분리된 모듈로 계속 개발이 되는건가

Angular1은 처음 나왔을때 데이터 바인딩 기능은 좋아보였는데
이부분만 제외하면 2로 완전 대체해도 되는거아닌가

2가 나오면 개발중단될거라고 한것같은데…
이거 구글에서 지원중단하면 이름바꿔가지고 계속 개발될 기세다

아니 지금 지원을 하고 있기는한가?

알수가없네…
지그 돌려보다 느낀건데 2가 1보다 로딩이 좀 느린느낌이 있긴하다
이것저것 올라가있는거긴한데 최초로딩에 2초정도 걸리고 화면전환할때 좀 죽는느낌이 있다
이런부분들 개선되는건가

FrontEnd개발 – Angular2 개발시작

node 기술혐오

node진영은 비슷한 기술이 너무 많아 선택장애가 생긴다.

angular, react, backbone, ember polymer

왓 시바 다섯개다.

https://gist.github.com/makmanalp/9b7f50aa16d21c2f9d37

당신이 ~~를 선택해야 하는 이유같은 글 많이 읽어봤는데 뭐 다 비슷했다.
결국, 구글과 TypeScript 때문에 Angular를 선택

(처음 나올때는 angularJS였는데 이제 TypeScript를 쓰고 앱을 만들때도 쓰기 때문일까…
영역을 확장하기 위해 Angular라고 이름이 바뀐 것 같다.)

Angular2 설치과정


npm -g install @angular/cli

이렇게 하면 설치가 된다고 하는데… 그리고 분명 되어야 하는데… 먼가 오류가 난다.
뭔가 이상했는데

node -v
0.xx

윈도우에서도 다시 설치하면서 찾아보니 2013년이었나..?
node 가 주력이 아닌 사람들은 다들 비슷한 상황일거다.

이거보고 삭제진행(Mac)
http://stackoverflow.com/questions/11177954/how-do-i-completely-uninstall-node-js-and-reinstall-from-beginning-mac-os-x

아래 명령 둘중에서 하나 실행시키면 되는데.. 오타나면 컴퓨터가 맛이갈수도 있겠다.

$ sudo rm -rf /usr/local/{lib/node{,/.npm,_modules},bin,share/man}/{npm*,node*,man1/node*}

$ sudo rm -rf /usr/local/bin/npm /usr/local/share/man/man1/node* /usr/local/lib/dtrace/node.d ~/.npm ~/.node-gyp /opt/local/bin/node opt/local/include/node /opt/local/lib/node_modules

한다음에 공식사이트에서 재설치했다.
https://nodejs.org

튜토리얼 진행

https://angular.io/docs/ts/latest/cli-quickstart.html


npm install -g @angular/cli

ng new my-app

angur2 기본프로젝트를 생성하고 나니….

의존성 관리를 npm으로 하고 karma라는게 깔린다.
빌드는 ng-cli가 하는 것 같고…

그리고 모르는게 추가돼있다.

karma, e2e ???

karma는 자바스크립트 테스트 러너 라고 한다
https://blog.outsider.ne.kr/1020

e2e도 유닛테스트 관련 프레임워크인 것 같다.

Anguar개발에 익숙해지고 최적환경을 구성하려면 시간이 좀 더 걸릴 듯 하다.

서버단이 아닌 프론트엔드 라이브러리가 npm에서 싸잡아 관리되는게 못마땅하니
Bower를 적용해야겠고
빌드도 일관성을 위해 gulp를 적용하는게 나을지 npm을 써야할지

며칠지나서 다시보니
bower는 Deprecated된 것 같다.
gulp, grunt도 대세에서 밀려난 것 같은데…
빌더가 아닌 Bundler라는 개념으로 webpack이 사용되고
의존성관리는 yarn과 npm으로 하고 있다.
yarn과 npm은 기능이 중복되는것같은데 왜 따로 있는건지