https://www.acmicpc.net/problem/11559 11559번: Puyo Puyo 총 12개의 줄에 필드의 정보가 주어지며, 각 줄에는 6개의 문자가 있다. 이때 .은 빈공간이고 .이 아닌것은 각각의 색깔의 뿌요를 나타낸다. R은 빨강, G는 초록, B는 파랑, P는 보라, Y는 노랑이다. www.acmicpc.net 카카오의 프렌즈 4 블록 문제랑 매우 유사한 시뮬레이션 + bfs문제였다 4블록이랑 다른 점은 4블록은 정사각형을 만들어야 없어지고 Puyo Puyo는 연속해서 4개 블록연결되어 있으면 어떤모양이든 터진다 ! 블록이 터진 후에 위에서부터 아래로 빈칸이 없도록 블록을 내려주는것도 유사하다 import sys from collections import deque board =..
전체 글
Data Engineering과 Cloud Native 기술에 대해 Dive Deep 하는 플랫폼 엔지니어가 되는 것을 목표로 하고 있습니다. 경험과 공부한 내용을 기록하며 지속가능한 엔지니어가 되는 것이 꿈입니다.docker push 도커 저장소에 이미지를 업로드 하기 위해서는 우선 로그인을 해야한다. $ docker login 로그인이 되면 push 명령어를 통해 이미지를 업로드 한다. 이미지 파일의 이름 형식을 꼭 지켜주어야 한다 !! $ docker push 도커허브_사용자ID/IMAGE:TAG 업로드한 이미지 또한 pull 명령어로 로컬에 받아올 수 있다.
1. commit 명령어로 컨테이너로 이미지 생성 $ docker container commit [OPTION] CONTAINER NEW_IMAGE_REPO:TAG $ docker commit [OPTION] CONTAINER NEW_IMAGE_REPO:TAG [예시] centos-test1이라는 컨테이너를 mycentos:first 이미지로 생성한다. [user@localhost ~]$ docker container commit centos-test1 mycentos:first sha256:d10bbb77df85ae628a43a2e83135de2c2501dc81f9799fdd4c368e9971c776bc mycentos:first 이미지가 생성되었음을 확인할 수 있다. [user@localhost ~]..
-p 옵션을 지정하여 포트포워딩을 설정할 수 있다. $ docker container run -dt -p HOST_PORT:CONTAINER_PORT --name CONTAINER IMAGE_REPO:TAG 브릿지 네트워크를 사용하는 모든 컨테이너는 외부에서 접속할 때 포트포워딩을 해야 접근가능하다. 예시 web2 컨테이너에 8080번 포트로 접근하는 경우 80번 포트로 포트포워딩하는 예시이다. [user@localhost ~]$ docker run -d -p 8080:80 --name web2 httpd:latest 8864c0be9446bd844ec08e882f12e94c376f156c4a29bf55375020c82fb9c965 현재 실행중인 컨테이너 목록을 통해 포트 포워딩이 되었는지 확인할 수 있..
1. link 사용하기 도커에서는 같은 bridge 네트워크를 사용하는 컨테이너끼리 통신할 수 있다. link를 사용하면 컨테이너의 이름 또는 별칭을 지정하여 통신할 수 있다. link는 '--link 컨테이너_이름' 형태로 --link 옵션을 통해 지정한다. 단 link로 연결해줄 컨테이너는 이전에 미리 생성되어있어야 한다. 우선 web 컨테이너를 생성한다. [user@localhost ~]$ docker container run -d --name web3 httpd:latest 827c38ecb011516344191485c051299e72852146ecaf55ca57ee242d9bc688cc os6 컨테이너를 실행시키면서 web3를 링크한다. $docker run -idt os6 --link web3..

1. Docker Network 아키텍처 네트워크와 연결될 수 있는 네트워크 Docker Host 의 기본 Bridge Network 인터페이스 : docker0 그림 예시로 보면 docker0은 호스트의 eth0 (192.168.0.2)와 연결되어있다. Docker Container 의 기본 Bridge Network 인터페이스 : vethXXX 2. Docker Network 관련 명령어 2-1 Docker Network 상세 정보 확인 docker network inspect NETWORK_NAME 2-2 Docker Network 생성 $ docker network create [OPTION] NETWORK_NAME 도커는 IP를 172.17.0.X 형태로 순차적으로 IP를 나눠주게 된다. 2-3..
Docker Volume 도커 볼륨은 도커에 의해서 관리되는 스토리지이다. 볼륨을 사용하는 경우는 다음과 같다. 다수의 컨테이너 사이 데이터를 공유할 때 컨테이너에서 호스트 구성을 분리할 때 컨테이너 데이터를 원격 호스트 또는 클라우드에 저장하고 싶을 때 다른 호스트로 데이터를 백업 및 복원할 때 Docker Volume 생성 docker volume create NAME 생성된 볼륨들은 /var/lib/docker/volumes 에 저장된다. Docker Volume 목록 확인 docker volume ls Docker Volume 상세 정보 확인 docker volume inspect NAME Docker Volume 컨테이너에 연결하기 -v 옵션을 붙여서 도커 볼륨에 연결해야 한다. docker r..
도커의 컨테이너 내에서 생성되는 데이터는 런타임 데이터이다. 즉, 컨테이너가 삭제되면 데이터들도 함께 삭제된다. 따라서 영구적인 목적으로 데이터를 저장하고 싶다면 컨테이너에 저장하는 것이 아니라, 컨테이너의 외부 메모리에 마운트 시킨 후 메모리에 저장을 하는 것을 권한다. Bind Mount 호스트의 파일 디렉토리와 컨테이너의 디렉토리를 연결하는 방식이다. 그렇지만 Bind Mount는 도커에 의해서 관리되지 않으며 호스트의 파일시스템에 대해 의존적이다. 또한 호스트의 민감한 파일까지 접근가능하므로 보안에 취약하다는 문제점이 있다. Bind Mount 는 컨테이너를 생성하거나 실행을 시작할 때 연결할 수 있으며 이미 실행중인 컨테이너에는 Bind Mount로 연결시킬 수 없다. 명령어는 docker ru..