일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | ||||||
2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 | 24 | 25 | 26 | 27 | 28 |
- jupyter
- c# 추상 클래스
- dart 언어
- C++
- 다트 언어
- c언어
- 포인터
- c#
- Unity
- 플러터
- Houdini
- 도커
- docker
- C# delegate
- vim
- c# 윈폼
- Algorithm
- Python
- Flutter
- github
- jupyter lab
- C언어 포인터
- Data Structure
- gitlab
- HTML
- 유니티
- git
- 구조체
- c# winform
- 깃
- Today
- Total
목록분류 전체보기 (507)
nomad-programmer
미디어 쿼리는 다음과 같은 쿼리를 사용해 장치를 구분하는 것은 물론 장치의 크기나 비율을 구분할 수도 있다. 속성 설명 width 화면의 너비 height 화면의 높이 device-width 장치의 너비 device-height 장치의 높이 orientation 장치의 방향 device-aspect-ratio 화면의 비율 color 장치의 색상 비트 color-index 장치에서 표현 가능한 최대 색상 개수 monochrome 흑백 장치의 픽셀당 비트 수 resolution 장치의 해상도 orientation 속성을 제외한 모든 속성은 min 접두사와 max 접두사를 사용할 수 있다. 그리고 이를 사용하면 방응형 웹을 만들 수 있다. /* 화면 너비 0pixcel ~ 767pixcel */ @media ..
HTML을 사용하여 프리젠테이션을 만들 수 있는 라이브러리이다. GitHub github.com/impress/impress.js/ impress/impress.js It's a presentation framework based on the power of CSS3 transforms and transitions in modern browsers and inspired by the idea behind prezi.com. - impress/impress.js github.com 공식 사이트 impress.js.org/ impress.js | presentation tool based on the power of CSS3 transforms and transitions in modern browsers ..
모든 HTML 페이지의 첫 번째 스타일시트는 초기화 코드로 시작한다. 초기화 코드는 모든 웹 브라우저에서 동일한 출력 결과를 만드는데 사용한다. 다음은 전 세계적으로 많이 사용하는 초기화 코드이다. Eric Meyer's Reset CSS meyerweb.com/eric/tools/css/reset/ CSS Tools: Reset CSS CSS Tools: Reset CSS The goal of a reset stylesheet is to reduce browser inconsistencies in things like default line heights, margins and font sizes of headings, and so on. The general reasoning behind this w..
Viewport Navigation Keys Movement - Standard LMB/RMB + Drag Movement - GameStyle RMB + WSAD Movement - Maya Alt + LMB/RMB Zoom Mouse Wheel Viewport Transformation Keys Translate W Rotate E Scale R Toggle Transform Mode Spacebar Clone Active Object Alt + (Translate or Rotate) Vertext Sanpping V Viewport Shortcuts Keys Focus on Selection F LightMap Density View Alt + 0 (이곳에서 라이트맵 해상도를 색상으로 파악할 수 있..
Docker Daemon의 옵션 및 기본 옵션 docker [옵션] --api-enable-cors=false : API를 사용할 때 CORS(Cross-origin resource sharing)를 활성화한다. -b, --bridge="" : 미리 만들어 놓은 네트워크 브릿지 인터페이스를 사용한다. none을 설정하면 컨테이너에서 네트워크를 사용하지 않는다. --bip="" : CIDR 표시법으로 docker0의 IP 대역을 설정한다. -b 옵션과는 함께 사용할 수 없다. --bit="192.168.0.1/24" -D, --debug=false : 디버그 모드를 활성화한다. -d, --daemon=false : 데몬 모드로 실행한다. --dns=[ ] : docker가 사용할 DNS 서버를 설정한다. ..
리눅스는 기본적인 쉘이 Bash (Bourne-again shell) 이다. bash 쉘에서 자주 사용하는 명령 및 문법을 알아보자. > (출력 리다이렉션) 출력 리다이렉션. 명령 실행의 표준 출력(stdout)을 파일로 저장한다. 유닉스계열 운영체제는 장치도 파일로 처리하기 때문에 명령 실행 결과를 특정 장치로 보낼 수도 있다. 또한 파일이 없다면 새로운 파일을 생성하여 그곳에 출력하고 있다면 해당 파일의 내용을 완전히 덮어씌어 그곳에 출력한다. $ echo "hello" > ./hello.txt $ echo "hello" > /dev/null >> (출력 리다이렉션 ) 명령 실행의 표준 출력 (stdout)을 파일에 추가한다. > 는 이미 있는 파일에 내용을 덮어 쓰지만 >> 는 파일 뒷부분에 내용을..
시스템은 개발만 하면 끝나는 그런 것이 아니다. 시스템 릴리즈 후에도 리소스 감시나 데이터의 백업, 장애 감시, 복구 대응 등 사용자가 쾌적하게 시스템을 이용할 수 있도록 시스템을 운용해야 한다. 시스템 개발 및 구축은 프로젝트가 발족한 후부터 실제 릴리즈를 향해 가는 작업이 메인이 되지만, 시스템 운용은 실제 릴리즈 이후 시스템이 사용자에게 서비스를 완전히 종료할 때까지 계속되는 작업이다. 시스템을 장기 가동하는 경우 운용의 좋고 나쁨이 시스템의 서비스 레벨을 정한다고 해도 과언이 아니다. 또한 온프레미스 환경과 클라우드 환경에서는 시스템 운용의 개념이나 수행해야 할 작업이 다르다. 가용성 관리 시스템에 있어서 가용성이란 시스템을 계속해서 가동시킬 수 있는 능력을 말한다. 가용성이 높은 시스템을 만들기..
이메일의 정기적인 일괄 송신이나 일별/주별/월별 집계 처리 등과 같은 배치 잡을 Kubernetes 클러스터에서 실행하고 싶을 때는 'CronJob'을 사용한다. CronJob은 애플리케이션의 실행 타이밍을 설정할 수 있다. 리눅스의 crontab 설정과 똑같다고 생각하면 된다. CronJob을 작동시키기 위한 정의 파일은 [kind]를 'CronJob' 으로 설정하고, [schedule]에 잡의 실행 타이밍을 설정한다. Schedule의 지정 방법은 다음과 같은 서식으로, Linux의 cron과 똑같다. // schedule의 서식 schedule: " '분' '시' '일' '월' '요일' " 설정 가능한 수치 설정 항목 값 분 0 - 59 시 0 - 23 일 1 - 31 월 1 - 12 요일 0=일,..
기밀 정보는 base64로 인코딩할 필요가 있다. 예를 들어 'hello world' 라는 문자열을 인코딩할 때는 다음과 같은 명령을 실행한다. // base64 인코딩 $ echo -n "hello world" | base64 aGVsbG8gd29ybGQ= echo 명령의 '-n' 옵션은 '\n' 문자를 붙이지 않겠다는 옵션이다. 즉, newline 하지 않겠다는 것이다. base64는 암호화가 아니기 때문에 secret 설정 파일의 관리는 인터넷상의 공개 리포지토리에 놓지 말고 다른 곳에서 안전하고 적절히 관리해야 한다.
쿠버네트스란? kubernetes.io/ko/docs/concepts/overview/what-is-kubernetes/ 쿠버네티스란 무엇인가? 쿠버네티스는 컨테이너화된 워크로드와 서비스를 관리하기 위한 이식할 수 있고, 확장 가능한 오픈소스 플랫폼으로, 선언적 구성과 자동화를 모두 지원한다. 쿠버네티스는 크고 빠르게 성장하 kubernetes.io Kubernetes는 마스터, 데이터 스토어, 노드가 서로 협력하면서 컨테이너의 실행 환경을 관리하는데, 그 안에서 몇 가지 컴포넌트가 작동한다. 1. 마스터 (Master) 마스터는 다음과 같은 컴포넌트로 구성된다. API Server Kubernetes의 리소스 정보를 관리하기 위한 프론트엔드 REST API이다. 각 컴포넌트로부터 리소스 정보를 받아 데..
Kubernetes는 여러 개의 호스트를 하나로 묶어 docker를 이용하기 위한 오케스트레이션 툴이다. 분산 환경에서 '마치 한 대의 컴퓨터' 처럼 투과적으로 컨테이너에 액세스할 수 있다. 더욱이 시스템 이용자로부터 오는 부하의 급증에 대해서도 유연하게 스케일하는 장치나 여러 개의 컨테이너를 효율적으로 통합 관리하는 장치도 있다. 쿠버네티스의 주요 기능은 다음과 같다. 여러 서버들에서의 컨테이너 관리 컨테이너 간 네트워크 관리 컨테이너의 부하분산 컨테이너의 감시 무정지로 업데이트 Kubernetes의 서버 구성 Kubernetes의 전체 이미지는 다음과 같은데, 분산된 서버들이 협력하면서 각각의 처리를 수행한다. 이러한 덩어리를 "Kubernetes Cluster" 라고 한다. 마스터 서버 (Kuber..
docker 컨테이너는 개발 환경과 같이 한 대의 머신에서 가동시킬 때는 간편히 도입할 수 있다. 하지만 멀티-호스트로 구성된 실제 환경을 클러스터 구성으로 가동시키려면 컨테이너의 시작 및 정지와 같은 조작뿐만 아니라 호스트 간의 네트워크 연결이나 소토리지 관리, 컨테이너를 어떤 호스트에서 가동시킬지와 같은 스케줄링 기능이 필요하다. 더욱이 컨테이너가 정상적으로 작동하고 있는지의 대한 여부를 감시할 장치도 필요하다. 이러한 기능을 갖추고 컨테이너를 통합 관리할 수 있는 툴을 컨테이너 오케스트레이션 툴이라고 한다. 대표적인 컨테이너 오케스트레이션 툴이 무엇이 있는지 알아보자. Kubernetes kubernetes는 Google의 엔지니어를 중심으로 하는 커뮤니티에서 개발이 진행되고 있는 오픈소스 컨테이너..
Docker Machine의 기본 명령 docker-machine은 Docker for Mac 또는 Docker for Windows에 미리 설치되어 있다. Linux에서는 별로도 설치해야 한다. 2020/12/06 - [DevOps/Docker] - [Docker] 멀티호스트 환경에서 컨테이너 관리 다음의 명령을 실행하면 docker-machine의 버전 정보를 확인할 수 있다. $ docker-machine --version docker-machine 명령의 주요 서브 명령은 다음과 같다. 서브 명령 설명 create 실행 환경 작성 ls 실행 환경 목록 표시 status 실행 환경 상태 표시 url 실행 환경 URL 표시 ssh 실행 환경에 대한 SSH 연결 start 실행 환경 시작 stop 실행..
Django 서버와 DB 서버가 있다고 가정해보자. 이 서버들의 의존성은 다음과 같다. Django 서버는 DB 서버를 내부적으로 사용하기 때문에 DB 서버가 온전하게 구동된 후 Django 서버에서 DB서버를 사용해야 한다. 그런데 docker-compose 위의 서버 구성을 작성하여 실행하게되면 DB서버가 빨리 구동되면 문제가 없겠지만 DB서버가 구동되고 있는데 Django서버가 구동되면 문제가 발생한다. 그렇다고 DB서버를 먼저 실행한 후 온전히 구동되기를 기다렸다가 Django 서버를 구동시키는 수작업은 너무 귀찮을 일이다. 이것을 해결할 수 있는 방법이 있다. 그것은 아래의 스크립트를 이용하는 것이다. github.com/vishnubob/wait-for-it vishnubob/wait-for-..
버전 관리 서버를 private 하게 내부에서 관리할 필요가 있다는 판단하여 docker를 가지고 GitLab 서버를 구축하였다. 구축 과정을 블로그에 남긴다. DB서버를 사용하는 내부 서버가 있다. 그곳에다 GitLab서버를 구축하려고하였다. 그래서 다른것 하나 생각치않고 docker부터 떠올렸다. 이유는 해당 서버에 DB서버가 구축되어 있기 때문에 GitLab서버를 그대로 설치해버리면 기존에 사용하던 시스템이 망가질 우려가 있었기 때문이다. 따라서 기존의 시스템에 전혀 영향이 가지 않게끔 도커를 이용하여 GitLab 서버를 설치하였다. hub.docker.com/r/gitlab/gitlab-ce Docker Hub hub.docker.com GitLab 서버 설치 gitlab 서버 설치에 사용한 이미..
Docker에서 작동하는 웹 애플리케이션을 제품 환경에서 운용할 때는 애플리케이션이 사양대로 올바르게 작동할 뿐만 아니라 서비스 이용자가 항상 이용할 수 있도록 운용 관리를 해야 한다. 이러한 컨테이너 기반은 보통 멀티호스트 환경으로 구축한다. 멀티호스트 환경에서 컨테이너 관리의 개요 웹 시스템의 실행 환경은 웹 서버, 프록시 서버, 데이터 스토어 등 역할이 다른 여러 개의 서버 기능이 연계되어 작동한다. 제품 환경에서 이용자에게 서비스를 제공할 때는 여러 개의 물리 서버나 여러 개의 가상 머신(VM)으로 구성된 멀티호스트 환경으로 서비스를 제공하는 것이 일반적이다. 멀티호스트 환경과 클러스터링 하나의 호스트 머신에서 Docker를 설치하고 그 위에서 몇 개의 컨테이너를 가동시켜 서버를 작동시켰다고 가정..
Docker Compose의 버전 확인 Docker Compose는 Docker for Mac 또는 Docker for Windows에 미리 설치되어 있다. Linux는 아래의 링크를 통해 설치할 수 있다. docs.docker.com/compose/install/ Install Docker Compose docs.docker.com // Docker Compose 버전 확인 $ docker-compose --version compose 정의 파일의 지정 현재 디렉토리 안에 docker-compose.yml 파일이 없는 상태에서 docker-compose up 명령을 실행하면 다음과 같은 에러를 확인할 수 있다. $ docker-compose up ERROR: Can't find a suitable co..
여러 컨테이너를 실행시킬 때 컨테이너마다 구성이나 시작/정지를 관리하자면 운용이 번잡해진다. 여러 컨테이너를 일괄적으로 관리할 수 있는 'Docker Compose' 의 구성 관리 파일인 'docker-compose.yml' 을 작성하는 방법에 대해 알아보자. docker-compose.yml 파일의 개요 docker-compose는 'docker-compose.yml' 이라는 Compose 정의 파일에 시스템 안에서 가동하는 여러 서버들의 구성을 모아서 정의한다. 이 정의 파일은 YAML 형식으로 기술한다. YAML YAML은 구조화된 데이터를 표현하기 위한 데이터 포맷이다. YAML은 Python과 같이 들여쓰기로 데이터의 계층 구조를 나타낸다. 들여쓰기는 탭이 아닌 스페이스를 사용한다. 누가 써도 ..
Docker에서 움직이는 웹 애플리케이션을 제품 환경에서 운용할 때는 애플리케이션 서버, 로그 서버, 프록시 서버 등과 같이 여러 개의 컨테이너들을 연계하여 작동시킨다. 여러 컨테이너 관리 웹 시스템의 실행 환경은 웹 서버, 프록시 서버 등과 같이 역할이 다른 여러 개의 서버를 연계하여 작동시키는 것이 일반적이다. 그래서 Docker에서 여러 개의 컨테이너를 연계시켜 운용 관리할 때 알아두어야 할 기초 지식에 대해 설명한다. 웹 3계층 시스템 아키텍처 애플리케이션을 가동시키려면 여러 개의 서버에 기능과 역할을 분할하여 인프라의 전체 구성을 정한다. 이것을 인프라 아키텍처라고 한다. 아키텍처는 우리말로 '설계 사상' 이라는 뜻이다. 대규모 웹 시스템의 경우 몇 개의 서브 시스템/기능으로 나누어 시스템을 개..
Docker 이미지는 인프라 구성 요소에서 래플리케이션의 개발 환경 및 실행 모듈도 포함하기 때문에 용량이 큰 것도 있다. 이런 이미지를 모두 개발용 클라이언트 PC나 온프레미스 환경에서 관리하려면 비용과 시간이 많이 든다. 퍼블릭 클라우드에는 Docker 이미지를 프라이빗으로 관리할 수 있는 매니지드 서비스가 제공되므로 이것을 이용하는 것이 좋다. Google Cloud Platform (GCP) 은 Docker 이미지를 프라이빗으로 관리할 수 있는 'Google Container Registry' 를 제공하고 있다. 이 서비스는 GCP의 오브젝트 스토리지 서비스인 'Google Cloud Storage' 를 데이터 저장 장소로 사용하고 있다. Google Container Registry 를 사용하여..