전체 글
-
NodeJS - NodeJS 실행을 위한 JavaScript 문법1카테고리 없음 2022. 12. 26. 17:05
JavaScript ES2015+ const, let 먼저 const와 let이 공통적으로 가지는 특징인 블록 스코프(범위)에 대해 알아보자 var와 const if(true){ var x = 3; } console.log(x); //3 if(true){ const y = 3; } console.log(ㅛ); //Uncaught ReferenceError: y is not defined 위 코드에서 x는 정상적으로 출력되는데 y는 에러가 발생합니다. var는 함수 scope를 가지므로 if문의 블록과 관계없이 접근할 수 있다. 하지만 const와 let 블록 scope를 가지므로 블록밖에서는 변수에 접근할 수 없다. 블록의 범위는 if,while,for,function 등에서 볼 수 있는 중괄호 '{}'..
-
JavaScript - 프로토타입 체인개발언어/JavaScript 2022. 12. 26. 14:25
프로토타입 객체도 또 다시 상위 프로토타입 객테로부터 메소드와 속성을 상속 받을 수 있고 그 상위 프로토타입 객체도 마찬가지이다. 이를 **프로토타입 체인(prototype chain)**이라 부르며 다른 객체에 정의된 메소드와 속성을 한 객체에서 사용할 수 있도록 하는 근간이다. 정확히 말하자면 상속되는 속성과 메소드들은 각 객체가 아니라 객체의 생성자의 protorype이라는 속성에 정의되어 있다. JavaScript에서 객체 인스턴스와 프로토타입 간의 연결(많은 브라우저들이 생성자의 prototype 속성에서 파생된 __proto__속성으로 객체 인스턴스를 구현하고 있다.)이 구성되며 이 연결을 따라 프로토타입 체인을 타고 올라가며 속성과 메소드를 탐색한다. 프로토타입 체인 const myObjec..
-
배포 - Application소스 변경으로 다시 재build 시 효율적으로 하는 법Infra/CI-CD 2022. 12. 25. 18:43
어플리케이션 소스 변경으로 다시 빌드하는 것에 대한 문제점 어플리케이션을 만들다 보면 소스 코드를 계속 변경시켜줘야 하며 그에 따라 변경된 부분을 확인하면서 개발을 해나가야 합니다. 그래서 도커를 이용해서 어떻게 실시간으로 소스가 반영되게 하는지 알아 보겠습니다. 현재까지 도커 컨테이너로 어플을 실행한 순서 소스코드를 계속 변경시켜 변경 된 부분을 어플리케이션에 반영시키려면 위 그림과 같은 과정을 (이미지 부터)다시 반복해야 한다. local에 있는 server.js 코드 변경 소스를 바꾼이후에 해당 localhost환경에 접속해도 화면에는 여전히 "Hello World"가 표시된다. 위 과정을 반복하는 것의 비효율적인 점들 1. COPY ././ 이 부분때문에 소스에 변화를 시킨 부분은 server.j..
-
배포 - WORKING DIRECTRORY 명시해 주기Infra/CI-CD 2022. 12. 25. 17:49
Dockerfile의 WORKDIR 명령어 # Create app directory WORKDIR /usr/src/app Docker image는 해당 image안에서 어플리케이션 소스가 복사될 디렉토리를 생성하는 것이다. 그리고 생성 된 디렉토리는 어플리케이션의 working 디렉토리가 된다. 왜 따로 working 디렉토리가 있어야 할까? 현재 Node 이미지 속의 root 디렉토리에는 home,bin, dev 파일등이 있다. ls 명령어를 사용해서 node 안의 디렉토리 custom으로 build한 image의 root 디렉토리 기본으로 제공되는 node image와 다르게 node를 이용해서 server를 구축하기위한 여타 디렉토리와 file들이 들어 있는 것을 확인 할 수 있다. 즉 디렉토리와 ..
-
배포 - 생성한 이미지로 app 실행 시 접근이 안되는 이유(포트 맵핑)Infra/CI-CD 2022. 12. 25. 16:59
현재까지 컨테이너를 실행하기 위해 사용한 명령어 앞으로 컨테이너를 실행하기 위해 사용 할 명령어 새롭게 추가된 부분은 무엇을 위한 부분인가? 컨테이너 내부의 네트워트와 외부에 네트워크를 연결시켜 주어야 한다. 위와 같이 -p 옵션을 통해 Dcoker Container의 내부 포트와 외부 포트를 연결시켜준 뒤에 Docker Container을 띄우면 위 그림과 같이 도커 내부에 띄어진 node 서버에 외부에 브라우저를 통해 접근할 수 있는 것을 확인 할 수 있다. [출처 - https://www.inflearn.com/course/%EB%94%B0%EB%9D%BC%ED%95%98%EB%A9%B0-%EB%B0%B0%EC%9A%B0%EB%8A%94-%EB%8F%84%EC%BB%A4-ci/dashboard]
-
배포 - Dockerfile를 이용해서 Docker image buildInfra/CI-CD 2022. 12. 25. 15:25
package.json이 없다고 나오는 이유 (dockerfile copy) 앞으로 만들어야 할 dockerfile 완성본을 보면 COPY라는 것이 존재한다. 왜 이 COPY가 필요한지 package.json문제를 해결하면 서 알아본다. Dockerfile로 이미지를 만들때 Node 베이스 이미지를 사용을 해서 임시 컨테이너를 만든 다음에 임시 컨테이너로 실제 사용을 할 이미지를 만드는 것인데 Node 베이스 이미지를 임시컨테이너로 만들때 파일 스냅샷들이 존재한다. home, bin, dev 디렉토리 같이 많은 것들이 존재한다. 그래서 베이스 이미지에서 파일 스냅샷들을 임시컨테이너에 하드디스크에 먼저 넣어준다. 그 다음 FROM 명령어에 따라 컨테이너에 node:10 이미지를 먼저 넣는다. 그리고 그다음..
-
배포 - Dockerfile 작성하기Infra/CI-CD 2022. 12. 25. 14:23
Dockerfile 작성하기 Node.js 앱을 도커 환경에서 실행하려면 먼저 이미지를 생성하고 그 이미지를 이용해서 컨테이너를 실행한 후 그 컨테이너 안에서 Node.js앱을 실행해야 한다. 그래서 그 이미지를 작성하려면 Dockerfile을 먼저 작성해야 한다. 즉 Dockerfile은 도커 image를 만들기위한 지시서다. Dockerfile 명령어 Dockerfile에 적힌 명령어는 도커 서버에게 무엇을 하라고 알려주는 것이다. # 베이스 이미지를 명시해준다. FROM baseImage # 추가적으로 필요한 파일들을 다운로드 받는다. RUN command # 컨테이너 시작시 실행 될 명령어를 명시해준다. CMD ["executable"] FROM 이미지 생성시 기반이 되는 이미지 레이어이다. : ..
-
배포 - 도커를 통해 실행 시킬 간단한 Node.js 서버 만들기Infra/CI-CD 2022. 12. 25. 13:58
NodeJS공식 홈페이지에서 도커를 이용하여 NodeJS를 이용하는 예시부분을 사용하여 도커를 실전에 도입하는 연습을 한다. https://nodejs.org/ko/docs/guides/nodejs-docker-webapp/ Node.js 웹 앱의 도커라이징 | Node.js Node.js® is a JavaScript runtime built on Chrome's V8 JavaScript engine. nodejs.org - Dockerfile을 어떤식으로 작성하는지 중점적으로 다룬다. FROM node:10 WORKDIR /usr/src/app COPY package*.json ./ RUN npm install COPY .. EXPOSE 8080 CMD["node","server.js"] 도커 컨테이..