본문 바로가기

분류 전체보기100

도커 파일 작성하기 / 도커 볼륨(volume) FROM node:10WORKDIR /usr/src/appCOPY package.json ./RUN npm installCOPY ./ ./CMD ["node","server.js"] FROM alpine 베이스 이미지가 아닌 node 이미지를 사용하는 이유베이스 이미지를 alpine 으로 변경한 다음 'docker build .' 명령어 이용해 빌드해 보면, 도커 이미지를 생성하는 중에 npm not found 라는 에러가 뜬다. 이는 alpine 이미지에 가장 최소한의 경량화된 파일만 들어가 있기 때문에 npm 을 사용하기 위한 파일이 들어있지 않기 때무니다.따라서 npm을 사용하지 못하는 alpine 베이스 이미지 대신 npm을 사용할 수 있는 node 이미지를 사용한다. COPY를 두번으로 나눈 이.. 2025. 2. 27.
도커 파일 작성하기 # 베이스 이미지를 명시합니다.FROM baseImage# 추가로 필요한 파일들을 내려받습니다.RUN command# 컨테이너 시작 시 실행할 명령어를 명시합니다.CMD [ "executable" ] FROM이미지 생성 시 기반이 되는 이미지 레이어 명시: 형식으로 작성태그를 붙이지 않으면 자동으로 가장 최신 버전으로 내려받음ex) ubuntu:14.04RUN도커 이미지가 생성되기 전 수행할 셸 명령어CMD컨테이너가 시작됐을 때 실행할 파일 또는 셸 스크립트도커 파일 내에서 한번만 쓸 수 있음 2025. 2. 26.
기본적인 도커 클라이언트 명령어 도커 이미지의 내부 파일 구조 보기docker run ls 컨테이너 나열하기docker ps 컨테이너 이름 변경하기docker rename  모든 컨테이너 나열docker ps -a 도커 컨테이너 생성하고 실행하기docker run => docker create , docker start 명령어를 합친 명령어 도커 컨테이너 중지docker stop => 진행 중인 프로세스를 정리하는 시간을 가진 후 컨테이너 중단 도커 컨테이너 즉시 중지docker kill  도커 컨테이너 삭제docker rm => 실행 중인 컨테이너를 삭제하려고 하면 오류가 발생한다. 중지된 모든 컨테이너 삭제하기docker rm `docker ps -a -q` 도커 이미지 삭제하기docker rmi  사용하지 않는 데이터 삭제하.. 2025. 2. 26.
도커 이미지가 포함하고 있는것 도커 이미지는 응용프로그램을 실행하는데 필요한 모든것을 포함하고 있습니다. 따라서 도커 이미지를 이용해 도커 컨테이너를 생성하고 애플리케이션을 생성할 수 있습니다. 이때 이미지가 포함하고 있는 필요한 모든 것은 무엇일까요? 응용 프로그램을 실행하는데 필요한 모든 것컨테이너가 시작될 때 실행할 명령어 도커 이미지를 이용해 도커 컨테이너를 만들면 컨테이너 안에서 애플리케이션을 실행합니다. 만약 run kakaotalk 이란 명령어를 입력해 카카오톡 애플리케이션을 실행할 수 있다면, 이 명령어를 이미지가 가지고 있어야 합니다. 실행하고자 하는 프로그램을 구성하는 파일 스냅숏명령어만 있다면 카카오톡을 실행할 수 없습니다. 명령어와 함께 카카오톡을 실행할 때 필요한 파일들도 이미지가 가지고 있어야 합니다.파일 스.. 2025. 2. 23.
터미널에 docker run hello-world 명령어를 입력하면 어떻게 될까? PS C:\Users> docker run hello-worldUnable to find image 'hello-world:latest' locallylatest: Pulling from library/hello-worlde6590344b1a5: Pull completeDigest: sha256:e0b569a5163a5e6be84e210a2587e7d447e08f87a0e90798363fa44a0464a1e8Status: Downloaded newer image for hello-world:latestHello from Docker!This message shows that your installation appears to be working correctly.To generate this messag.. 2025. 2. 23.
글로벌 서비스를 위한 timezone 이해하기 Timezone 이란?동일한 로컬 시간을 따르는 지역을 의미하며, 주로 해당 국가에 의해 법적으로 지정된다.=> 즉, 정치나 경제적인 이유로 변경이 될 수도 있다. 실제로 우리나라도 변경된 사례가 있다고 한다.보통 국가별로 각자의 고유한 타임존을 가지고 있으며, 면적이 큰 나라들은 지역별로 각지 다른 타임존을 사용할 수도 있다.GMT, UTC, Offset이란?GMT (GreenWich Mean Time) 옛날에는 시간의 개념이 희박했다. 생활권이 그리 넓지 않았기에 각지 지역마다 시간을 다르게 표시했고, 한마디로 '표준'이라는게 없었다. 하지만 기차가 발명되고 사람들의 생활권이 넓어지며 시간 표준이 필요해졌다!그렇게 생겨난게 영국 그리니치 천문대를 기준으로 하는 태양시간이다.UTC (Coordinate.. 2025. 1. 8.
운영체제 프로세스와 스레드의 차이프로세스는 실행중인 프로그램을 뜻합니다. 스택, 힙, 데이터, 코드로 이루어져있고 각 프로세스들은 이 자원을 공유하지 않는다. 최소 1개의 스레드(메인 스레드)를 가지고 있습니다.그리고 스레드는 프로세스의 실행의 단위입니다. 프로세스 내에서 스택만 할당받고, 그 이외의 메모리 영역을 다른 스레드와 공유하기 때문에 다른 스레드의 실행 결과를 즉시 확인할 수 있습니다. 멀티 프로세스와 멀티 스레드의 특징멀티 프로세스는 프로세스들 간의 자원을 공유하지 않습니다. 그렇기 때문에 차지하는 메모리가 멀티 스레드에 비해 크지만, 한 프로세스에서 문제가 발생해도 다른 프로세스에 영향을 미치지 않는다는 특징이 있습니다.멀티 스레드는 스택 외에 다른 자원들을 다른 스레드와 공유합니다. 그렇기 때문에.. 2024. 7. 3.
[JS] n개의 최소공배수 문제 설명두 수의 최소공배수(Least Common Multiple)란 입력된 두 수의 배수 중 공통이 되는 가장 작은 숫자를 의미합니다. 예를 들어 2와 7의 최소공배수는 14가 됩니다. 정의를 확장해서, n개의 수의 최소공배수는 n 개의 수들의 배수 중 공통이 되는 가장 작은 숫자가 됩니다. n개의 숫자를 담은 배열 arr이 입력되었을 때 이 수들의 최소공배수를 반환하는 함수, solution을 완성해 주세요.  문제 풀이const gcd = (a,b) => { if(b === 0){ return a; }else if(a%b === 0){ return b; }else{ return gcd(b, a%b); };}const lcm = (a,b) =.. 2024. 7. 3.
[JS] 점프와 순간 이동 문제OO 연구소는 한 번에 K 칸을 앞으로 점프하거나, (현재까지 온 거리) x 2 에 해당하는 위치로 순간이동을 할 수 있는 특수한 기능을 가진 아이언 슈트를 개발하여 판매하고 있습니다. 이 아이언 슈트는 건전지로 작동되는데, 순간이동을 하면 건전지 사용량이 줄지 않지만, 앞으로 K 칸을 점프하면 K 만큼의 건전지 사용량이 듭니다. 그러므로 아이언 슈트를 착용하고 이동할 때는 순간 이동을 하는 것이 더 효율적입니다. 아이언 슈트 구매자는 아이언 슈트를 착용하고 거리가 N 만큼 떨어져 있는 장소로 가려고 합니다. 단, 건전지 사용량을 줄이기 위해 점프로 이동하는 것은 최소로 하려고 합니다. 아이언 슈트 구매자가 이동하려는 거리 N이 주어졌을 때, 사용해야 하는 건전지 사용량의 최솟값을 return하는 s.. 2024. 6. 29.