전체 글
-
NodeJS global로 설치하고 목록확인개발언어/Node.js 2022. 8. 18. 18:30
🚫중요 노트 npm에서 글로벌로 패키지를 설치할때 왠만하면 sudo(파워권한)로 설치하지 않는 것이 좋다. 왜냐하면 보안에 안전하지 않기 때문이고, 최대한 피해야한다. npm i -h 위 와 같은 명령어를 terminal에 입력하면 여러가지 option들과 package를 설치하는데 필요한 내용들을 확인 할 수 있다. npm install [/] npm install [/]@ npm install은 하나 package 전체를 다 받을 수도 있고, 또 package안에 잘게잘게 작은 package가 나눠져있다면, 나눠져 있는 package중 일부만 다운받을 수도 있다. npm install github URL에서도 받아 올 수 있다. aliases: add, i, in, ins, inst, insta, i..
-
NodeJS - npm 라이브러리 버전관리개발언어/Node.js 2022. 8. 18. 17:17
버전관리 보통 프로젝트는 major 버전 1부터 시작한다. 출시한 버전에 버그가 발생하거나 사소한 오류들을 잡을 때는 patch 정보를 업데이트해야 한다. 즉 오류들을 바로 잡아서 재배포를 할때는 patch버전을 한단계 올려서 1.0.1로 배포하게 된다.이러한 포맷에 버전 정보는 개발자들 사이에 약속이다. 중간에 조금더 기능이 추가되거나 어떤 작은 기능들이 추가 되었을 경우 minor의 숫자를 한단계 올려서 배포하게 된다. 즉 버전 1.1.0으로 업데이트가 되면 무언가 새로운 기능이 추가된 것이다. 그리고 기존에 기능에서 정말 다른 기능이 추가되거나 기존에 기능들이 대부분 수정이 되는 등 의 변화가 생기면 major를 한단계 올려서 배포를 해야한다. 즉 버전1 과는 다른 차원이 다른 제품을 만들었을 때..
-
NodeJS - npm 기본사항개발언어/Node.js 2022. 8. 18. 16:18
Package.json 모든 라이브러리에 대한 정보를 가지고 있는 파일이다. 프로젝트의 이름 그리고 프로젝트에 관련된 정보들 가령 버전정보,사용 라이브러리, 해당 라이브러리에 버전에 대한 정보도 포함되어 있다. npm init npm install library Npx budled with npm5.2+ tool for executing packages npm은 특정한 라이브러리를 다운로드 받아서 설치하는 개념이라면, npx는 라이브러리를 따로 로컬 PC에 저장하지 않고, 바로 실행할 수 있게 해준다. 그래서 개별적으로 실행가능한 JavaScript tool이나 scipt가 있다면, npx를 통해서 이용할 수도 있다. npm CLI CLI Commands https://docs.npmjs.com/cli/..
-
Docker 외부 이미지의 사용& 실행Infra/컨테이너 2022. 8. 13. 18:17
Container는 이미지를 기반으로 한다. 실제로 Container를 실행 할 수 있도록 이미지를 생성하고, 가져오는 두가지의 방법이 존재한다. 1.이미 존재하는 이미지를 사용하는 것이다. 동료에 의해 구축된Image(Custom) 일반적이여서 미리 구축된 공식 Image 커뮤니티에서 공유한 Image Docker Hub 도커 허브에서 찾을 수 있는 위와 같은 노드 이미지는 누구나 사용할 수 있으며, NodeJS 공식 팀에서 배포, 생성, 유지, 관리한다. Docker Hub에서 공식 image run 하기 docker run node 위 와 같이 터미널에 명령어를 입력하고 엔터를 누르면 자동으로 도커 허브에서 Image를 가져온다. 이제 도커 허브에서 최신 노드 이미지를 다운로드하고 컴퓨터에 다운로드..
-
Docker Images & ContainersInfra/컨테이너 2022. 8. 13. 13:46
Containers 컨테이너는 결국 애플리케이션, 웹사이트, 노드 서버 혹은 애플리케이션을 실행하는 전체 환경 등등 무엇이든 포함하는 작은 패키지이다. 즉, 컨테이너에는 소프트웨어 실행 유닛이 존재한다. 결국 그 유닛을 Container를 사용하는 입장에서 실행하게 된다. 도커로 작업할 때, Image라는 dissolver 개념도 필요하다. Image는 템플릿, 즉 Container의 블루 프린트가 될 것이기 때문이다. 또한 이미지는 실제로 코드와 코드를 실행하는데 필요한 도구를 포함 한다. 이런 준비된 Image를 바탕으로 컨테이너가 실행되고 그때 작성된 코드가 실행 되게 한다. *dissolver : 용해[분해, 분리]기 장치 우리는 모든 설정과 명령 코드가 포함된 이미지를 한번에 생성할 수 있다. ..
-
Nest.js Interceptors 사용하기FrameWork/Nest.js 2022. 8. 7. 16:09
Interceptor의 역할 Nest.js에서 AOP 패턴의 특징을 차용한 것으로 예) // A -> B -> C -> D // A -> C -> D // A -> E -> F -> D -> G // Z -> A -> X -> D 언 뜻 보면 각 4개의 router에 공통점이 없는 듯이 보이지만, 잘 찾아보면 A가 먼저 실행되고, 끝 부분에는 D가 실행된다는 공통점이 있다. 다시 말해 4개의 router 모두다 middleware A와 D는 공통적으로 거쳐간다는 것 을 알 수 있다. 이런 A와 D와 같은 middleware들을 한번 정의해서 필요 할때마다 쓸 수 있도록 재 사용성을 갖도록 하는 것이 Intercepter의 존재의 이유이자 역할이다. Interceptor의 실행 순서 middleware 1..
-
Next.js custom decorator만들기FrameWork/Nest.js 2022. 8. 7. 15:15
ExecutionContext(실행Context) (data: unknown, ctx: ExecutionContext) => { const response = ctx.switchToHttp().getResponse(); return response.locals.jwt; } 실행 context이다. switchToHttp(),switchRpc(),switchToWs()같은 것들이 있는 이유는 Nest.js 프레임워크를 사용할 때 HTTP server만 가능한 것이 아니라 동시에 한 server안에서 웹소켓,Rpc,HTTP server 이 세가지 종류를 동시에 돌릴 수 있다. 그것들을 모두 하나의 실행 context에서 관리를 하고, 하나의 실행 context안에서 만약에 3개가 동시에 돌아가고 있다고 가정..
-
Nest.js 커스텀 Middleware 만들기FrameWork/Nest.js 2022. 8. 4. 17:00
Request와 Response 변수를 사용하는 경우 @ApiResponse({ status: 200, description: '성공', type: UserDto, }) @ApiOperation({ summary: '로그인' }) @Post('login') login(@Req() req) { return req.user; } 웬만하면 Request와 Response 객체는 사용하지 않는 것이 좋다. 그렇게 되면 어떤 특정한 플랫폼에 종속되서 나중에 바꾸기도 어려워지고 test하기도 어려워진다. 보통 express의 경우 res.locals.jwt에 jwt token을 많이 넣는다. express에서는 res.locals가 middleware간에 공유할 수 있느 변수 역할을 해주기 때문이다. custorm..