여태 express 길게 공부해왔다. 자유도는 정말 좋았지만 뭔가 딱딱함? 이 느껴지지 않았다. 그래서 NestJS라는 것을 알고 이를 공부해보려고 한다. 사실 TypeScript 공부도 이를 위한 빌드업이라고 할까...? 우선 NestJS란 뭔지 공식 사이트에서 간단하게 알아봤다.Nest (NestJS)는 효율적이고 확장 가능한 Node.js 서버 측 애플리케이션을 구축하기 위한 프레임워크입니다.이것은 알겠다. 큰 특징은 다음에 있다. - 프로그레시브 자바스크립트 사용- TypeScript로 빌드되고 완벽하게 지원- OOP (객체 지향 프로그래밍 Object Oriented Programming)- FP (함수형 프로그래밍 Functional Programming)- FRP (함수형 반응형 프로그래밍 ..
전체 글
언제나 코드를 작성해야 할 때 고려해야 되는 것은 재사용성이다. Java와 같이 아주 강한 객체지향 언어와 같이 재사용이 가능한 컴포넌트를 만들게 도와주는 것은 TypeScript에도 존재한다. 이름은 제네릭(Generic)이다. 먼저 들어온 인수를 무조건 반환하는 함수를 만들어보자.function fun(num : number):number { return num;}이는 "any" 타입으로도 작성이 가능하다.function fun(num : any):any { return num;}"any" 타입을 사용한다는 것은 num이 어떤 타입이든 받고 반환한다는 의미에서 제네릭이라 할 수 있다. 하지만 이는 반환을 할 때 본질적인 타입을 잃게 된다. 만약 number타입의 값이 들어온다면 반환은 number가 ..
오늘 지나가다가 아주 신기한 문법을 봐서 적어두려고 한다.예전에 의문이 들었던 게 object의 value 값 자리에 변수 명을 넣어도 됐지만 key 값에는 변수 명을 넣지 못할까?라는 의문을 가졌었다. 그러나 가능했다! 그것은 Computed Property Name 이라는 녀석이다. 사용법은 간단하다."[ ]" 대괄호를 사용하면 된다. 아래 예시를 보자무척 신기하다. 여기에 함수도 넣을 수 있다고 한다. 아직 어떠한 경우에 사용해야될 지 생각은 안 해봤지만 유용하게 쓰일 것 같다는 생각이 든다.ES6의 문법이라던데 아직 모르는 것이 많은 것 같다.
프로필 사진의 변경을 담당하는 API에서 이미지를 그대로 받아와 저장소에 저장하기에는 용량이 너무 크다는 무리가 있었고 가지각색의 용량을 가진 이미지들을 반환해주는데 속도를 보장할 수 없었다. 나는 프로필 이미지를 받으면 프로필 상에 작게 표시해주고 크게 보여줄 일은 없기 때문에 이미지를 압축해 저장소에 저장을 하는 방법을 생각해보았다. sharp는 이를 도와주는 라이브러리이다.나는 sharp로 이미지 크기를 줄인 후 multer로 저장소에 저장하는 방식으로 구현을 했다. sharp를 설치해준다.npm install sharp// 혹은 (yarn을 사용한다면)yarn add sharp다음은 sharp를 importconst sharp = require("sharp") 형식은 아래와 같이 사용해주면 된다...
전에 봤듯이 TypeScript에서 Object 타입을 선언할 때 interface와 type을 이용한다.TypeScript는 객체를 Object를 선언하고 바로 접근하려면 안되는 것을 볼 수 있다. 그래서 우리는 object에 이용할 때는 interface를 사용한다.object만 선언하고 사용했을 때랑 다르게 UserInfo라는 interface를 선언한 후 user의 name에 접근하니 오류 메시지를 띄우지 않는다. 잠깐.여기서 Interface란상호 간에 정의한 약속 혹은 규칙을 의미하며 TypeScript에서의 인터페이스는 보통 다음과 같은 범주에 대해 약속을 정의한다고 한다.- 객체의 속성과 속성의 타입- 함수의 파라미터- 삼수의 반환 타입- 배열과 객체를 접근하는 방식- 클레스 Interfa..
TypeScript의 기본 타입은 JavaScript와 거의 동일한 데이터 타입을 지원하며, 열거 타입을 이용하면 더 편리하게 사용할 수 있다고 한다. Type 목록1. Boolean2. Number3. String4. Array5. Tuple6. Enum7. Any8. Void9. Null and Undefined10. Never11. Object 1. Boolean참/거짓 (true/false) 값let isDone: boolean = flase; 2. NumberTypeScript의 모든 숫자는 부동 소수 값이다. 16진수, 10진수 리터럴에 더불어 2진수 8진수 리터럴도 지원함.let decimal: number = 6;let hex: number = 0xf00d;let binary: number..