https://www.acmicpc.net/problem/3107 3107번: IPv6 첫째 줄에 올바른 IPv6 주소가 주어진다. 이 주소는 최대 39글자이다. 또한, 주소는 숫자 0-9, 알파벳 소문자 a-f, 콜론 :으로만 이루어져 있다. www.acmicpc.net 설명 문자열 구현 문제다. 32자리의 16진수를 : 단위로 4개씩 구분한다. 이 때 두 가지 규칙이 존재한다. 1. 각 그룹의 앞자리의 0의 전체 또는 일부를 생략 할 수 있다. 2. 0으로만 이루어져 있는 그룹이 있을 경우 그 중 한 개 이상 연속된 그룹을 하나 골라 콜론 2개(::)로 바꿀 수 있다. 아래 세 가지 IPv6는 동일하다. 2001:0db8:85a3:0000:0000:8a2e:0370:7334 2001:db8:85a3:..
분류 전체보기
https://www.acmicpc.net/problem/2116 2116번: 주사위 쌓기 첫줄에는 주사위의 개수가 입력된다. 그 다음 줄부터는 한 줄에 하나씩 주사위의 종류가 1번 주사위부터 주사위 번호 순서대로 입력된다. 주사위의 종류는 각 면에 적혀진 숫자가 그림1에 있는 www.acmicpc.net 브루트포스, 구현 문제다. 주사위는 아래와 같이 생겼고, A B C D E F 순으로 입력이 들어온다. 이 때 A - F, B - D, C - E 가 마주본다. int pairs[6] = { 5, 3, 4, 1, 2, 0 }; 와 같이 맞은 편 짝에 대한 배열을 만들었다. 이 문제는 주사위를 쌓을 때 윗면의 숫자와 윗 층 주사위의 아랫면 숫자가 같아야 한다. 따라서 맨 아래 주사위의 방향만 결정하면 그..
1. 도커 컴포즈란? 시스템 구축과 관련된 명령어를 하나의 텍스트 파일에 기재해 시스템 전체를 실행하고 종료, 폐기 과정을 하나의 명령어로 처리하도록 하는 도구다. YAML포맷으로 기재한 정의 파일을 이용한다. 작성 내용은 도커 명령어와 비슷하다. Dockerfile은 이미지만 생성할 수 있으나, 도커 컴포즈는 네트워크와 볼륨도 생성할 수 있다. up 커맨드 : docker run 커맨드와 비슷하다. 이미지를 내려받고 컨테이너를 생성 및 실행한다. down 커맨드 : 컨테이너와 네트워크를 정지 및 삭제한다. 볼륨과 이미지는 삭제하지 않는다. stop 커맨드 : 컨테이너와 네트워크를 삭제하지 않고 종료하고 싶을 때 사용한다. 2. 도커 컴포즈 사용법 미리 정해진 docker-compose.yml 이라는 이..
1. 스토리지 마운트 종류 볼륨 마운트 도커 엔진이 관리하는 영역 내에 만들어진 볼륨을 컨테이너에 디스크 형태로 마운트 한다. 이름만으로 관리가 가능해 다루기 쉬우나 볼륨에 비해 직접 조작하기 어렵다. 임시 목적으로 사용하거나 자주 쓰진 않지만 지우면 안 되는 파일을 두는 목적으로 사용한다. 바인드 마운트 도커가 설치된 컴퓨터의 문서 폴더 등 도커 엔진에서 관리하지 않는 영역의 기존 디렉터리를 컨테이너에 마운트 한다. 폴더 속에 파일을 직접 두거나 확인할 수 있기 때문에 자주 사용하는 파일을 둔다. 항목 볼륨 마운트 바인드 마운트 스토리지 영역 볼륨 디렉터리 or 파일 물리적 위치 도커 엔진 관리 영역 어디든 마운트 절차 볼륨 생성 후 마운트 기존 파일 or 폴더 마운트 내용 편집 도커 컨테이너를 통함 ..
1. Gradle 기반 프로젝트 생성하기 간단한 Spring Boot 프로젝트를 생성한다. DB는 사용하지 않았다. MVC 모델로 구성했다. 2. 프로젝트 빌드하기 프로젝트를 빌드하면 아래와 같이 .jar 파일이 생성된다. 파일명은 프로젝트명-[Gradle에서 설정한 버전] 으로 생성된다. 3. Dockerfile 작성하기 멀티 스테이지로 작성했다. 우선 프로젝트를 빌드한다. 빌드 스테이지에서 RUN를 두 번 하는데 이는 의존성이 변경된 경우에만 의존성 RUN을 한다. 앱 스테이지에서는 빌드 스테이지의 산출물인 jar 파일을 복사한다. FROM gradle:8.5-jdk17 as builder WORKDIR /build COPY build.gradle settings.gradle ./ RUN gradle..
1. 컨테이너와 호스트 사이에 파일 복사 이미지 레이어는 읽기 전용이다. 그러나 기존 이미지 레이어에 있는 파일을 수정할 수 있다. 컨테이너에서 이미지 레이어에 포함된 파일을 수정하려면, 도커가 파일을 쓰기 가능 레이어로 복사해 수정한다. 컨테이너나 애플리케이션에서는 이 과정이 드러나지 않지만, 도커가 스토리지를 효율적으로 사용하는 이유다. cp 명령어를 이용한다. docker cp [원본경로] [복사할경로] 호스트 -> 컨테이너 : docker cp [host 파일경로] [container 이름]:[container 내부 경로] 컨테이너 -> 호스트 : docker cp [container 이름]:[container 내부 경로] [host 파일경로] 디렉터리를 경로로 지정한 경우 디렉터리 전체를 통채로..