일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- JWT
- Load Balancer
- https
- nginx
- 타입스크립트
- mongoose
- TypeScript
- AWS
- CORS
- wil
- nomadcoder
- elb
- JavaScript
- java
- 생활코딩
- MYSQL
- Nodejs
- 메소드
- Joi
- 항해99
- reduce
- 프로그래머스
- npm
- ubuntu
- mongodb
- 자바스크립트
- Node.js
- 조건문
- it
- 노마드코더
- Today
- Total
목록Node.js (10)
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앱은 모든 요청에 대해 스레드를 새롭게 생성하지 않..
Overloading TS에서는 같은 이름의 함수를 다중으로 정의할 수 있고, 각 함수는 서로 다른 타입을 가져야 한다. 이와 같이 같은 이름의 함수를 다중으로 정의하고, 변수의 타입을 달리 정의하는 것을 TS에서 function Overloading 함수 오버로딩이라고 한다. typescript에서 Overload Signature는 overload 함수를 위해서만 사용된다. 실제로 많은 오버로딩된 함수를 작성할 일은 많지 않을 것이다. 그 대신, 대부분의 시간을 다른 사람들이 만든 패키지나 라이브러리 같은 것을 사용할 텐데 이런 패키지나 라이브러리는 Overloading을 매우 많이 사용한다. 그래서 제대로 이해하기 위해서는 Overloading이 무엇인지 이해하고 넘어가야 한다. 앞서서 배운 typ..
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 ..
Types of TS part Two "ReadOnly" TS에는 readonly 속성을 추가할 수 있다. ReadOnly 속성은 요소들을 읽기전용으로 만들 수 있다. JS는 기본적으로 이런 동작이 존재하지 않는다. 하지만, TS에는 이런 동작을 구현하고 싶다면 구현을 도와주는 보호 장치가 존재한다. Player type이 name이라는 속성을 가지는데, 이 요소는 ReadOnly가 될 것이다. type Player = { readonly name : Name, age? : Age } readonly라는 뜻은, 누군가 Player의 name을 수정하려고 시도하면, TS가 수정 하려는 시도를 멈춰준다는 뜻이다. 즉, 수정 불가능하게 읽기 전용으로 만든다. Choi.name = "Kim" name은 읽기 전..
항해99의 프로젝트 마지막 주차를 앞두고, 이메일 인증기능을 만들게 됐다. 우리 런데브(renDev)는 유저의 이메일을 아이디로 사용하고 , 유저와 유저간 소통이 이메일을 통해도 이루어지기 때문에, 유저가 실제 자신이 사용하는 email을 회원가입시 인증을 진행하고 가입하는게 무척 건설적이라는 나의 의견으로 내가 밀어붙여 만들기로 했다. 전부터 생각 했던건데 이번 프로젝트를 진행하면서 꼭 필요한 기능이라고 생각했다. 실제 유저의 이메일을 기반으로 한다면 좀 더 확실한 서비스를 제공할 수 있다는 생각이 지배적이었기 때문에 반드시 반드시 필요했고, 유저 피드백때도 등장했던 내용이다. 일단 Node에서 메일을 보내기 위해서는 npm의 패키지인 nodemailer가 필요하다 npm install nodemail..
Nginx와 proxy에 대해서 좀 정리를 해보려고 한다. 일단 기본적으로 Proxy란 프록시 서버는 클라이언트가 자신을 통해서 다른 네트워크 서비스에 간접적으로 접속할 수 있게 해 주는 컴퓨터 시스템이나 응용 프로그램을 가리킨다. 서버와 클라이언트 사이에 중계기로서 대리로 통신을 수행하는 것을 가리켜 '프록시', 그 중계 기능을 하는 것을 프록시 서버라고 부른다. 그러니까 Proxy = 대리 즉, 남을 대신하여 일을 처리하는 것을 의미한다. 일반적으로 Proxy라고 하면, 범용적인 의미로 사용될 확률이 높기 때문에 여기서 내가 말하고자 하는 Proxy는 Network Proxy이다. 결국 Proxy Server란 대신 일을 처리해주는 서버를 말한다. 일반적으로 Proxy Server는 캐시/보안/트래픽..
기존에 만들었던 로그인 기능에서 jwt malformed에러가 계속해서 발생해서, 이를 수정하게 됐다. 기본적으로 jwt malformed에러는 token값이 유효하지 않거나, Null 혹은 이상한 값일 때 발생하는데, 내 코드를 살펴보면, const { authorization } = req.headers; console.log("헤더입니다: " , authorization) if (!authorization && authorization === null && authorization === undefined){ res.status(401).json({ errorMessage: "토큰의 값이 유효하지 않습니다."}) return next(); } if (authorization.split(" ").le..
Multer - S3로 다중 파일을 업로드 하던 중 다음의 에러가 발생했다. MulterError: Unexpected field 에측하지 못한 필드가 발생했다는 건데, form-data를 보낼 때 사용된 html input의 name값과 router.post에서 받고 있는 name값이 달라서 발생했다. 사진으로 보여주자면, Thunder request를 통해 보내고 있는 formdata의 input name값과 현재 field로 정의된 upload.fields의 name값이 일치하지 않아서 발생한 것이다. posterUrl인데 postUrl로 사용하고 있었다.