본문 바로가기

전체 글

(133)
Docker - Docker 기본적인 명령어 1.ls ex) docker run alpine ls 설명 1. Alpine 이미지를 이용해서 컨테이너를 생성. 2. 생성할 때 Alpine 이미지 안에 들어있던 파일 스냅샷들 (bin, dev, etc 등등..)이 컨테이너 안에 있는 하드 디스크로 다운로드됨 3. 이미지 이름 뒤에 다른 명령어를 더 붙여서 원래 이미지 안에 들어있는 기본 커맨드는 무시가 되고 ls 명령어가 실행됨 하지만 어떻게 Alpine 이미지를 이용해 ls 명령어를 실행 가능? 1. Alpine 이미지 파일 스냅샷 안에 이미 ls를 사용 가능하게 하는 파일이 있음. hello-world 이미지로는 ls 명령어 사용 불가능 1. docker run hello-world ls 하면 아래와 같은 오류가 뜸. 설명을 보면 excutable..
Docker - 이미지로 컨테이너 만들기 이미지는 응용 프로그램을 실행하는데 필요한 모든 것을 포함하고 있습니다. 그러면 그 필요한 것이 무엇일까요? 1. 컨테이너가 시작될 때 실행되는 명령어 ex) run kakaotalk 2. 파일 스냅숏 ex) 컨테이너에서 카카오톡을 실행하고 싶다면 카카오톡 파일 (카카오톡을 실행하는데 필요한 파일) 스냅숏 * 파일 스냅숏은 디렉터리나 파일을 카피한 것 이미지로 컨테이너 만드는 순서 1. Docker 클라이언트에 docker run 입력해줍니다. 2. 도커 이미지에 있는 파일 스냅샷을 컨테이너 하드 디스크에 옮겨 줍니다. 3. 이미지에서 가지고 있는 명령어 (컨테이너가 실행될때 사용될 명령어를)를 이용해서 카카오톡을 실행시켜줍니다.
Docker - Docker 의 흐름 및 Vm,Docker 비교 Docker를 사용할때 1. 먼저 도커 CLI에 커맨드를 입력한다. 2. 그러면 도커 서버 (도커 Daemon)이 그 커맨드를 받아서 그것에 따라 이미지를 생성하든 컨테이너를 실행하든 모든 작업을 하게 된다. 실제로 CLI에서 커맨드를 입력해보기 1. docker run hello-world 설명 1. 도커 클라이언트에 다가 커맨드를 입력하니 클라이언트에서 도커 서버로 요청을 보낸다. 2. 서버에서 hello-world라는 이미지가 이미 로컬에 cache가 되어 있는지 확인 3. 현재는 없기에 Unable to find image ~라는 문구가 2번째 줄에 표시 4. 그러면 Docker Hub이라는 이미지가 저장되어 있는 곳에 가서 그 이미지를 가져오고 로컬에 Cache로 보관한다. 5. 그 후 이제는 ..
Docker - Docker란? Docker란 컨테이너를 사용하여 응용프로그램을 더 쉽게 만들고 배포하고 실행할 수 있도록 설계된 도구 이며 컨테이너 기 반의 오픈소스 가상화 플랫폼이며 생태계입니다. 도커는 컨테이너 기반의 오픈소스 가상화 플랫폼입니다. 컨테이너라 하면 배에 실는 네모난 화물 수송용 박스를 생각할 수 있는데 각각의 컨테이너 안에는 옷, 신발, 전자제품, 술, 과일등 다양한 화물을 넣을 수 있고 규격화되어 컨테이너선이나 트레일러등 다양한 운송수단으로 쉽게 옮길 수 있습니다. 서버에서 이야기하는 컨테이너도 이와 비슷한데 다양한 프로그램, 실행환경을 컨테이너로 추상화하고 동일한 인터페이스를 제공하여 프로그램의 배포 및 관리를 단순하게 해줍니다. 백엔드 프로그램, 데이터베이스 서버, 메시지 큐등 어떤 프로그램도 컨테이너로 추상..
Nest.js - validation 클래스 유효성 검사기 (TypeScript가 필요하며 앱이 바닐라 JavaScript를 사용하여 작성된 경우에는 사용할 수 없습니다.) Nest는 클래스 유효성 검사기 라이브러리와 잘 작동합니다. 이 강력한 라이브러리를 사용하면 데코레이터 기반 유효성 검사를 사용할 수 있습니다. 데코레이터 기반 유효성 검사는 처리된 속성에 액세스할 수 있으므로 특히 Nest의 Pipe 기능 과 결합할 때 매우 강력 합니다. metatype시작하기 전에 필요한 패키지를 설치해야 합니다. $ npm i --save class-validator class-transformer 이것들이 설치되면 CreateCatDto클래스에 몇 가지 데코레이터를 추가할 수 있습니다. 여기에서 이 기술의 중요한 이점을 볼 수 있습니다. Crea..
Nest.Js - mongoDB 연결 MongoDB Nest는 MongoDB 데이터베이스와 통합하는 두 가지 방법을 지원합니다. 여기 에 설명된 MongoDB용 커넥터가 있는 내장 TypeORM 모듈 을 사용하거나 가장 인기 있는 MongoDB 객체 모델링 도구인 Mongoose 를 사용할 수 있습니다. 이 장에서는 전용 패키지 를 사용하여 후자를 설명합니다 . 필요한 종속성 을 설치하여 시작하십시오 . $ npm i @nestjs/mongoose mongoose MongooseModule설치 프로세스가 완료되면 루트로 가져올 수 있습니다. app.module.ts import { Module } from '@nestjs/common'; import { MongooseModule } from '@nestjs/mongoose'; @Module..
Js-async와 await async와 await async와 await라는 특별한 문법을 사용하면 프라미스를 좀 더 편하게 사용할 수 있습니다. async, await는 놀라울 정도로 이해하기 쉽고 사용법도 어렵지 않습니다. async 함수 async 키워드부터 알아봅시다. async는 function 앞에 위치합니다. async function f() { return 1; } function 앞에 async를 붙이면 해당 함수는 항상 프라미스를 반환합니다. 프라미스가 아닌 값을 반환하더라도 이행 상태의 프라미스(resolved promise)로 값을 감싸 이행된 프라미스가 반환되도록 합니다. 아래 예시의 함수를 호출하면 result가 1인 이행 프라미스가 반환됩니다. 직접 확인해 봅시다. async function f() { ..
JS- setTimeout setTimeout과 setInterval을 이용한 호출 스케줄링 일정 시간이 지난 후에 원하는 함수를 예약 실행(호출)할 수 있게 하는 것을 '호출 스케줄링(scheduling a call)'이라고 합니다. 호출 스케줄링을 구현하는 방법은 두 가지가 있습니다. setTimeout을 이용해 일정 시간이 지난 후에 함수를 실행하는 방법 setInterval을 이용해 일정 시간 간격을 두고 함수를 실행하는 방법 자바스크립트 명세서엔 setTimeout과 setInterval가 명시되어있지 않습니다. 하지만 시중에 나와 있는 모든 브라우저, Node.js를 포함한 자바스크립트 호스트 환경 대부분이 이와 유사한 메서드와 내부 스케줄러를 지원합니다. setTimeout 문법: let timerId = setTim..