728x90
728x90

전체 글 284

[Docker] 호스트 환경 변수 vs 컨테이너 환경 변수

호스트 컴퓨터(내 PC나 서버) 설정된 환경 변수가 컨테이너 내부에도 자동으로 적용될까요?결론은 "그렇지 않다" 입니다. 도커 컨테이너 내부는 별개의 환경이기 때문에, 호스트의 환경변수는 자동으로 컨테이너와 공유되지 않습니다. 1. 철저히 분리된 컨테이너 내부와 호스트도커 컨테이너는 호스트 운영체제의 커널을 공유하되, 네임스페이스와 cgroups 등을 통해 격리된 환경을 만듦따라서,컨테이너는 호스트 프로세스나 네트워크 설정을 직접 볼 수 없음환경 변수 역시 호스트와 별개로 관리즉, 호스트 컴퓨터에서 export MY_ENV=hello 같은 식으로 환경 변수를 설정해도, 컨테이너는 이를 알 수가 없음각 컨테이너가 가지고 있는 환경 변수는 도커가 직접 부여한 값들만 존재예시)호스트에서 환경변수를 다음과 같이..

Docker 2025.03.23

[Docker] 도커가 컨테이너를 실행하는 원리

우리가 docker run 명령어를 통해 컨테이너를 실행할 때는 다음과 같은 과정을 거쳐 컨테이너가 실행되게 됩니다.Docker CLI -> Docker Engine -> containerd -> runc -> 호스트 OS 커널각 단계를 하나하나 자세히 알아보겠습니다. Docker CLI 와 Docker Engine도커 CLI (Docker Command Line interface)터미널에 입력하는 docker run, docker pull 등의 명령어는 Docker API를 호출하는 클라이언트웹으로 비유하자면 브라우저 역할도커 API도커 엔진이 제공하는 REST 기반 API기본적으로 로컬에서만 호출하도록 설정되어 있지만, 엔진 설정을 바꾸면 네트워크로도 접근 가능Docker CLI가 보낸 요청을 받아서..

Docker 2025.03.23

[Java] 11054. 가장 긴 바이토닉 부분 수열

https://www.acmicpc.net/problem/11054 문제 접근 과정 바이토닉 수열의 정의먼저 증가하다가 그 이후 감소하는 수열.예시: [1, 3, 5, 4, 2]각 위치를 기준으로 생각할 때,왼쪽에서 오른쪽으로 봤을 때 증가 수열의 길이를 구함.오른쪽에서 왼쪽으로 감소하는 수열의 길이를 따로 구함.그 후 두 결과를 합치면 바이토닉 수열이 됩니다.DP 정의 방법increase[i] : i번째 수가 마지막인 증가하는 수열 중 가장 긴 길이decrease[i] : i번째 수가 처음인 감소하는 수열 중 가장 긴 길이increase: 왼쪽→오른쪽 방향으로 증가 수열 길이decrease : 오른쪽→왼쪽 방향으로 감소 수열 길이점화식increase[i] = Math.max(increase[i], in..

[Java] 11722. 가장 긴 감소하는 부분 수열

https://www.acmicpc.net/problem/11722 문제 접근 과정 주어진 배열에서 각 원소를 마지막 원소로 하는 최장 증가 부분 수열의 길이를 저장하는 dp 배열을 사용점화식:dp[i] = max(dp[j] + 1) (단, j  array[j] 최종적으로 dp 배열에서 최댓값을 찾으면 가장 긴 증가하는 부분 수열의 길이를 구할 수 있습니다. 코드import java.io.*;import java.util.*;public class Main { public static void main(String[] args) throws IOException { BufferedReader br = new BufferedReader(new InputStreamReader(System.in));..

Docker에서 MongoDB 데이터 로컬 JSON 파일로 가져오기

MongoDB 데이터 JSON으로 내보내기 (mongoexport)먼저 실행 중인 MongoDB 컨테이너 내부에서 데이터를 내보내야 합니다.  sudo docker exec mongoexport \ --db= \ --collection="" \ --out=/data/.json \ --jsonArray docker exec: 실행 중인 컨테이너 내부에서 명령어 실행  : MongoDB가 실행 중인 Docker 컨테이너 이름  mongoexport: MongoDB 데이터를 JSON 또는 CSV로 내보내는 도구 --db=: 내보낼 데이터베이스 이름 --collection="": 내보낼 컬렉션 이름 --out=/data/.json: 컨테이너 내부에 저장할 파일 경로 --jsonArray:..

Docker 2025.02.21

[SvelteKit][TypeScript] Cannot find module '$env/dynamic/private' or its corresponding type declarations.

문제SvelteKit에서 VITE에서 PUBLIC, PRIVATE를 이용하는 형식으로 바꾸는 중에 발생한 오류입니다.import { env } from "$env/dynamic/private";Cannot find module '$env/dynamic/private' or its corresponding type declarations.tsconfig.json에서 아래와 같은 설정을 사용 중이었습니다.{ "include": [ "src/**/*", "svelte.config.js", "types/**/*" ], "exclude": [ "node_modules" ]} 문제 원인TypeScript는 tsconfig.json의 include와 exclude 설정에 따라 검사할 파일의 범위를 제한합니다...

[Java] 11055. 가장 큰 증가하는 부분 수열

점화식 초기 상태각 원소는 그 자체로 하나의 증가 부분 수열을 형성합니다.따라서 초기값:dp[i]=A[i](최소 합은 자기 자신)상태 전이인덱스 ii에서 가능한 이전 원소 jj를 탐색합니다:dp[i]=max⁡(dp[i], dp[j]+A[i]) (for all jdp[j]+A[i]: A[j]를 포함한 증가 부분 수열에 A[i]A[i]를 추가한 경우의 합.최종 결과모든 ii에 대해 dp[i]를 계산한 후:최대 합=max⁡(dp[0],dp[1],…,dp[n−1])  코드import java.io.*;public class Main { public static void main(String[] args) throws IOException { BufferedReader br = new Buff..

[Java] 2156. 포도주 시식

https://www.acmicpc.net/problem/2156문제 분석 과정이전에 두 잔을 연속으로 마셨다면 그 다음 잔은 마실 수 없습니다.최대 이전 3개의 값들까지만 기억하면 된다는 점을 이용해서 공간 최적화를 할 수 있습니다. 점화식dp[i−1]: 현재 잔 ii를 마시지 않고 이전 최적해를 그대로 가져오는 경우.dp[i−2]+array[i]: 이전 잔은 건너뛰고 현재 잔을 마시는 경우.dp[i−3]+array[i−1]+array[i]: 이전 잔과 현재 잔을 마시되, 두 칸 떨어진 잔은 건너뛰는 경우. dp[i]=max⁡(dp[i−1],dp[i−2]+array[i],dp[i−3]+array[i−1]+array[i])초기값 설정dp[0]=array[0]: 첫 번째 잔을 마시는 경우.dp[1]=arr..

[Java] 9465. 스티커

https://www.acmicpc.net/problem/9465문제 접근 과정선택 가능한 경우의 수양옆 불가: 같은 열의 다른 행에 위치한 스티커를 선택할 수 없습니다.위아래 불가: 인접한 대각선 방향의 스티커도 선택할 수 없습니다.대각선 가능: 한 칸 떨어진 대각선 또는 두 칸 떨어진 대각선의 스티커는 선택 가능합니다.한 칸 떨어진 대각선: 현재 스티커와 같은 열의 반대편 스티커에서 이어지는 경우.두 칸 떨어진 대각선: 현재 스티커와 같은 열보다 2칸 앞에 있는 반대편 스티커에서 이어지는 경우.한 칸 대각선과 두 칸 대각선을 포함한 세 칸 이상의 대각선은 이미 점화식에서 표현 가능합니다. 점화식DP 배열 정의dp[0][j]: 첫 번째 행의 j번째 열 스티커를 선택했을 때 얻을 수 있는 최대 점수.dp..

[Java] 2193. 이친수

https://www.acmicpc.net/problem/2193문제 접근 과정 이친수는 자리수를 기준으로 끝자리(0 또는 1)에 따라 앞의 숫자 조합이 결정됩니다.끝자리가 1인 경우:그 앞에는 반드시 0만 올 수 있습니다.끝자리가 0인 경우:그 앞에는 0과 1 모두 올 수 있습니다.  점화식DP 배열 정의:dp[length][0]: 길이가 length이고, 끝자리가 0인 이친수의 개수dp[length][1]: 길이가 length이고, 끝자리가 1인 이친수의 개수점화식:끝자리가 0인 경우:앞에 올 수 있는 숫자는 0과 1 모두 가능하므로: dp[length][0]=dp[length−1][0]+dp[length−1][1]끝자리가 1인 경우:앞에 올 수 있는 숫자는 0만 가능하므로: dp[length][1]..

728x90
728x90