일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
- wil
- AWS
- 항해99
- JavaScript
- Load Balancer
- 생활코딩
- Node.js
- nginx
- MYSQL
- mongoose
- JWT
- npm
- 타입스크립트
- 메소드
- 프로그래머스
- nomadcoder
- https
- reduce
- Nodejs
- 조건문
- 노마드코더
- 자바스크립트
- Joi
- TypeScript
- it
- java
- elb
- mongodb
- ubuntu
- CORS
- Today
- Total
목록발자취 (23)
V-logue
정말 오랜만에, 블로그에 글을 쓰는데 기술면접도 준비할 겸 Node.js에 대해서 다시 알아보기로 결정했습니다. Javascript로 서버개발을 하고 있는 모든 서버 개발자의 면접 질문 중 단골 손님인 모두가 안다고 말하지만, 모두가 모르는 Node.js 그에 대해서 알아보자. what is node.js? node.js의 공식 홈페이지인 nodejs.org를 보면, node.js에 대해서 이렇게 말하고 있습니다. node.js는 오픈 소스 및 크로스 플랫폼의 Javascript 런타임 환경입니다. node.js는 브라우저 외부에서 Google Chrome의 V8 Javascript 엔진을 통해 실행되고, node.js의 성능이 향상됩니다. node.js앱은 모든 요청에 대해 스레드를 새롭게 생성하지 않..
왜 E2E 테스트를 작성해야 하는가? 1. 서비스의 특성 제가 담당하고 있는 측면 감시 서비스는 대게 각 서비스의 기능 간 의존성이 굉장히 강한 서비스입니다. A가 선행되지 않으면 B를 테스트할 수 없는 구조로 이루어져 있습니다. 회원가입같은 외부 디펜던시 없이 실행할 수 있는 기능들은 unit 테스트로도 충분히 그 기능의 실행을 보장할 수 있지만 만약, 특정 구성원의 거래내역을 확인하고 싶다면 관리자 회원가입 ⇒ 관리자가 개인 회원을 초대함 ⇒ 초대된 개인 회원이 초대를 승인함 ⇒ 초대된 회원이 구성원으로 들어감 ⇒ 구성원이 시험을 생성함 ⇒ 생성된 시험을 취소함 ⇒ 관리자가 구성원의 거래내역을 확인 같은 시나리오가 모두 존재해야 기능을 테스트할 수 있다고 칠 때 개인적으로 unit 테스트의 개별 단위..
Conclusions type SuperPrint = (a:x[], b:y) => x const superPrint : SuperPrint = (a) => a[0] const a = superPrint([1 ,2 , 3, 4], "x"); const b = superPrint([true, false, true, false], 1); const c = superPrint(["a", "b", "c", "d"], false); const d = superPrint([1,"2",true,"hello"], []); 이전까지 generic에 대해서 배워봤다. 하지만, 일상적으로 generic을 사용해 call signature를 사용하게 될 것이라고는 생각하지 않는다. 보통 다른 잘 만들어진 패키지, 라이브러리를 ..
Generic Recap type SuperPrint = (a:x[]) => x const superPrint : SuperPrint = (a) => a[0] const a = superPrint([1 ,2 , 3, 4]); const b = superPrint([true, false, true, false]); const c = superPrint(["a", "b", "c", "d"]); const d = superPrint([1,"2",true,"hello"]); 3-2강의에서 제네릭(Generic)이 placeholer를 사용해서 작성한 코드의 타입을 추론한다는 것을 알게 됐다. ts는 내 코드를 보고, superPrint가 placeholder를 각 a,b,c,d의 배열마다 있는 요소에서 발견된 ..
다형성(Polymorphism) 다형성이란 무엇일까? 그리스어로 Poly는 many, several, much, multi를 의미한다. 여러개의 각을 가지고 있고, 여러개의 면을 가지고 있다. morpho는 fomr(형태), structure(구조)란 뜻을 가지고 있다. 이것들을 조합하면 many(poly) + structure(morphos)이고, 결국 polymorphism이란 여러가지 다른 구조를 의미한다. 여러가지 다른 모양 etc... 이전에는 ts는 2~3개의 파라미터를 가질 수 있다고 했다. 또는 ts에서 함수는 string이나 object를 첫 번째 파라미터로 가질 수 있다고도 했다. 그렇기 때문에 이전에 이미 다형성에 대해서 체험해본 것과 같다. 이번 3-2강의에서는 배열을 받고, 그 배..
Overloading TS에서는 같은 이름의 함수를 다중으로 정의할 수 있고, 각 함수는 서로 다른 타입을 가져야 한다. 이와 같이 같은 이름의 함수를 다중으로 정의하고, 변수의 타입을 달리 정의하는 것을 TS에서 function Overloading 함수 오버로딩이라고 한다. typescript에서 Overload Signature는 overload 함수를 위해서만 사용된다. 실제로 많은 오버로딩된 함수를 작성할 일은 많지 않을 것이다. 그 대신, 대부분의 시간을 다른 사람들이 만든 패키지나 라이브러리 같은 것을 사용할 텐데 이런 패키지나 라이브러리는 Overloading을 매우 많이 사용한다. 그래서 제대로 이해하기 위해서는 Overloading이 무엇인지 이해하고 넘어가야 한다. 앞서서 배운 typ..
호출 시그니쳐(Call Signatures) function add(a , b){ return a + b } 위와 같은 코드가 작성됐을 때 TS는 (parameter) a: any , 'a' 매개 변수는 암시적으로 'any' 형식이지만, 사용량에서 더 나은 형식을 유추할 수 있습니다.ts(7044) 라는 a, b의 argument가 이상하다고 메세지를 보낸다. 그 이유는 아직 a, b의 type이 지정되지 않았기 때문이다. type이 지정되지 않는 argument(인수)는 any타입인데 TS는 any타입을 싫어한다. 위 코드에 타입을 줘야한다. function add(a : number, b : number){ return a + b } 다음은 다른 방법으로 위 코드를 표현해 볼건데, => 화살표 함수를..
Types of TS part Three Typescript에는 매우 독특한 몇 가지 타입이 존재한다." 독특하다고 말하는 이유는 이전 2_3.ts 에서 JS에서도 쓰이는 타입을 다뤘기 때문 number , string, boolean 등... 이제부터 등장할 type은 TS에서만 존재한다. TS의 Type Checker와 잘 소통한다. TS에서 중요한 포인트는 Type Checker와 소통하는 것이다. "unknown" 어떤 타입인지 모르는 변수는 TS에게 어떻게 말해야 하는걸까? 이런 상황일 때는 unknown을 사용하면 된다. let a : unknown; 위와 같이 선언하면 TS로부터 일종의 보호를 받게 된다. 어떤 작업을 하려고 할 때 이 변수의 타입을 먼저 확인하는 방식으로 보호된다. let ..