도커 교과서 3장 도커 이미지 만들기
·
📚 책/도커 교과서
3장 도커 이미지 만들기3.1 도커 허브에 공유된 이미지 사용하기docker container run 명령을 사용할 때 필요한 이미지 중 로컬 컴퓨터에 없는 이미지가 있으면 이미지를 자동으로 내려받는다.이 과정은 소프트웨어 배포 기능이 도커 플랫폼에 완전히 내장됐기 때문이다.docker impage pull 명령어를 통해 명시적으로 원하는 이미지를 내려받을 수 있다.도커는 해당 이미지를 내려받기 위해 가장 먼저 Docker Hub에 접근한다.이미지를 제공하는 저장소를 레지스트리(Registry) 라고 하고, 도커 허브는 무료로 제공되는 공개 레지스트리다.$ docker image pull diamol/ch03-web-pingUsing default tag: latestlatest: Pulling from..
도커 교과서 2장 도커의 기본적인 사용법
·
📚 책/도커 교과서
2장 도커의 기본적인 사용법2.1 컨테이너로 Hello World 실행하기$ docker container run diamol/ch02-hello-diamol위의 간단한 커맨드로 도커를 사용하는 워크플로의 핵심을 볼 수 있다.애플리케이션의 패키징, 공유, 실행 의 과정이 포함되어있다.도커에서는 이 과정을 빌드, 공유, 실행 이라고 부른다.아무리 복잡한 애플리케이션도 위의 과정을 거친다.도커를 실행할 수 있는 환경이라면 어디서든 실행가능한 도커 이미지를 만들 수 있다.이것이 도커의 핵심 이점인 이식성 이다.2.2 컨테이너란 무엇인가?도커 컨테이너는 말 그대로 물건(애플리케이션)을 담는 상자(컨테이너)이다.하나의 컴퓨터(호스트) 는 여러개의 상자 (컨테이너) 를 가질 수 있다.각 컨테이너는 독립적인 환경을 ..
도커 교과서 1장 도커 컨테이너와 이미지 이해하기
·
📚 책/도커 교과서
1부 도커 컨테이와 이미지 이해하기1.1 컨테이너가 IT 세상을 점령한 이유도커는 컨테이너라는 경량 단위로 애플리케이션을 실행하는 기능을 제공하는 플랫폼이다.컨테이너는 소프트웨어 분야의 거의 모든 곳에 자리잡은 핵심 기술이다.도커를 사용하게 되면 모든 툴체인이 중앙 집중화돼 작업이 간단해 진다.1.1.1 클라우드 환경으로 이주하기클라우드 환경으로 이주하기 위해서는 IaaS, PaaS 두가지 선택지가 있다.IaaS (Infra As a Service)애플리케이션을 구성하는 각 컴포넌트가 모두 가상 머신에서 독립적으로 동작.이주 과정은 쉽지만 가상 머신의 성능을 완전히 활용하지 못하며 운영비가 비쌈.Paas(Platform As a Service)애플리케이션을 구성하는 각 컴포넌트가 클라우드 서비스 제공자의..
업무에 바로 쓰는 SQL 튜닝 1장 MySQL과 MariaDB 개요
·
📚 책/업무에 바로 쓰는 SQL 튜닝
1장 MySQL과 MariaDB 개요오라클과 MySQL비교(MariaDB 포함)MySQL(MariaDB)스토리지 구조물리적인 DB 서버마다 독립적으로 스토리지를 할당(Shared Nothing)이중화구조 마스터-슬레이브구조가 대부분.물리적으로 여러대의 DB서버에 접속하더라도 동일한 구문이 처리되지 않을 수 있으며, DB 서버 마다 각자의 역할이 부여될 수 있다.조인 알고리즘대부분 중첩 루프 조인(Nested Loop Join)최근 8.0.18 버전 부터 제약적으로 해쉬 조인 제공메모리 사용률사양이 낮은 컴퓨터 환경에서 사용 가능.약 1MB 메모리 환경에서도 사용 가능.오버헤드 작음.Oracle스토리지 구조통합된 스토리지 하나를 공유(Shared Everything)하여 사용공유 스토리지를 사용하므로 어느..
Feign Client 란?
·
1.프로그래밍/Spring
Feign 란?Feign은 Neflix에서 개발된 HTTP Client binder 이다.Feign을 이용하면 HTTP Client를 보다 쉽게 작성할 수 있다.RestTemplate, WebClient , HttpURLConnection (설마 아직도 이걸 직접…?) 을 사용하는것보다 확실히 훨씬 직관적이고 코드도 간결하다.Feign 기초 셋팅의존성 org.springframework.cloud spring-cloud-starter-openfeign@EnableFeignClients@SpringBootApplication@EnableFeignClients// @EnableFeignClients(basePackages = "com.example.clients") 명시적 선언public clas..
Linux에 MiniKube 설치하기
·
1.프로그래밍/개발
Linux에 MiniKube 설치하기시스템 요구사항Minikube를 설치하기 전에 아래 요구 사항 확인.운영체제: Linux (64-bit)CPU: 2개 이상의 CPU 코어RAM: 2GB 이상가상화 지원: VM을 사용하여 Minikube를 실행하는 경우 가상화가 활성화되어 있어야 한다.결과에 vmx 또는 svm이 포함되어 있다면, 가상화가 가능하다는 뜻.$ grep -E --color 'vmx|svm' /proc/cpuinfo시스템 아키텍처 확인먼저 시스템 아키텍처를 확인.$ uname -mx86_64: 64-bit 아키텍처 (일반적인 Intel/AMD 기반 PC)aarch64: ARM 64-bit 아키텍처 (예: Raspberry Pi, 일부 서버)armv7l: ARM 32-bit 아키텍처올바른 kub..
Python requests 모듈 TimeOut 미설정 이슈
·
1.프로그래밍/Python
발단.Airflow 에서 Engine 의 Job 종료에 대한 Pooling 진행,Airflow 에서 HTTP Client 로는 requests 모듈 사용Engine 내부 Hazelcast OutOfMemory 로 인해 다운Engine 의 WAS 프로세스는 살아있음 (unhealthy)Airflow Pooling Task 무한정 진행원인Python 의 request 모듈의 기본 설정에는 Connection TimeOut 설정과 Read TimeOut 에 대한 기본값이 None 이다.즉, Connection 을 맺는 것과 응답을 기다리는 것을 무한정 기다리게 된다.위 처럼 Engine 이 응답을 주지 못할 경우에는 정말 무한정 기다리게 된다.공식문서 내용TCP 3 way 통신 시간의 3배수로 설정하는 것이 ..
Connection Timeout과 Read Timeout
·
1.프로그래밍/개발
Connection Timeout과 Read Timeout의 의미Connection Timeout서버와 클라이언트가 연결되는 데 걸리는 최대 시간. 주로 TCP 연결이 설정되는 3-way handshake에서 발생하는 타임아웃임. 연결이 설정되지 않으면 에러가 발생함.Read Timeout이미 연결된 상태에서 데이터가 주고받는 데 걸리는 최대 시간. 이 시간을 초과하면 데이터를 읽을 수 없는 것으로 보고 에러 발생. 간단히 말해 데이터를 읽는 중에 설정되는 타임아웃임.적절한 타임아웃 값 설정 방법네트워크는 항상 100% 안정적이지 않고, 패킷 유실도 종종 일어날 수 있음.타임아웃을 설정할 때 두 가지를 고려해야 함:네트워크에서 발생하는 패킷 유실이 꼭 장애 상황은 아님.네트워크 문제가 발생하면 빠르게 인..
MyeongDev
MyeongDev