일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- it
- Node.js
- 타입스크립트
- mongodb
- java
- 프로그래머스
- reduce
- AWS
- mongoose
- nginx
- https
- 생활코딩
- 조건문
- 노마드코더
- CORS
- 메소드
- nomadcoder
- wil
- JWT
- JavaScript
- npm
- MYSQL
- TypeScript
- 항해99
- Joi
- elb
- Nodejs
- 자바스크립트
- Load Balancer
- ubuntu
- Today
- Total
목록전체 글 (77)
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 테스트의 개별 단위..
Children Component가 props를 전달받지 않을 때 생기는 에러인 모양 props를 전달받지 않는 컴포넌트의 타입을 any로 넣고 해결했다. import './Card.css'; function Card() { return ; }; export default Card; // 이전 에러가 나던 코드 import './Card.css'; function Card(props: any) { return ; }; export default Card; // 에러가 해결된 코드
회사생활을 하던 중, FE에서 원인을 알 수 없는 DB 에러가 발생했다고 해서 찾아봤다. 우리는 하나의 Pool에 Connection을 생성해서 사용하는 방식을 채용하고 있는데, 저번에는 finally에서 connection.release()가 먹히지 않아 커넥션이 터지더니 이번에는 원인을 알 수 없는 에러가 떠버렸다. Can't add new command when connection is in closed state 인터넷을 찾아보니, pool을 다시 생성해서 connection을 만들라는 말이 있어서, 그렇게 해보니 에러가 뜨지 않았다. 검색결과 정확히 하나의 원인을 찾기 어려운 문제였기 때문에 일단 해결한 것으로 만족. try ~ catch로 createPool을 감싸고, connection을 만..
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의 배열마다 있는 요소에서 발견된 ..
항해 99를 수료하고 나서, 이 글을 작성하게 됐다. 1. 항해 99를 선택한 이유 처음 항해를 선택한 이유는, 항해 1기를 수료한 친구의 추천과 가장 먼저 무언가를 배울 수 있는, 배움의 기회가 있었기 때문이었다. 당장 시작할 수 있고, 가격적으로 커다란 부담이 없으며 이미 이곳을 거쳐 개발자로서 현업에서 일하고 있는 지인이 내가 항해를 선택하게 된 이유였다. 2. 항해 99 장단점 * 장점 항해 99의 장점이라면, 정말로 빠르게 개발이 무엇인지에 대해서 감을 잡을 수 있다는 것이다. 첫 주차에 아무것도 모르는 핏덩이들을 대리고 게시판이든 뭐든 작은 프로젝트를 진행시키는 것부터 시작해서 점진적으로 개인 블로그를 만들고, 클론코딩과 마지막 실전 프로젝트를 통해 한 사람의 개발자로서 깊이는 모르겠으나 빠르..
다형성(Polymorphism) 다형성이란 무엇일까? 그리스어로 Poly는 many, several, much, multi를 의미한다. 여러개의 각을 가지고 있고, 여러개의 면을 가지고 있다. morpho는 fomr(형태), structure(구조)란 뜻을 가지고 있다. 이것들을 조합하면 many(poly) + structure(morphos)이고, 결국 polymorphism이란 여러가지 다른 구조를 의미한다. 여러가지 다른 모양 etc... 이전에는 ts는 2~3개의 파라미터를 가질 수 있다고 했다. 또는 ts에서 함수는 string이나 object를 첫 번째 파라미터로 가질 수 있다고도 했다. 그렇기 때문에 이전에 이미 다형성에 대해서 체험해본 것과 같다. 이번 3-2강의에서는 배열을 받고, 그 배..