목록분류 전체보기 (132)
바닥코딩

도커는 컨테이터 가상화를 위한 도구 입니다. 도커와 같은 도구를 컨테이너 플랫폼이라 합니다. 컨테이너 플랫폼은 자체적으로 가지고 있는 컨테이너 엔진과 컨테이너 런타임으로 구성되어 있습니다.컨테이너 엔진 : 사용자의 요청을 받아 컨테이너를 관리해주는 역할컨테이너 런타임 : 직접 커널과 통신하여 실제로 격리된 공간을 만드는 역할 Docker 아키텍처 도커는 클라이언트와 - 서버로 구성되어 있습니다. 클라이언트는 사용자의 명령을 전달해주는 역할을 하며 이 요청을 처리해주는 도커 데몬으로 전달합니다. 도커 데몬은 이러한 기능을 처리 하기 위해 API를 제공합니다. 어떤 컨테이너가 현재 실행되고 있는지, 마지막으로 실행한 컨테이너의 정보를 조회한다던지 이러한 기능들을 API로 제공하며 이를 이해 CLI를..

Docker 개발을 진행하며 같은 장소, 같은 환경에서 작업을 할 수 있다면 최적의 환경일 것입니다. 그렇지만 막상 개발 프로젝트에서 본인의 개발환경이 바뀌는 상황, 내가 만든 어플리케이션을 다른 환경에서 테스트 해봐야할 상황 등등 ... 예기치 못한 상황들이 발생하여 곤란을 격는 상황은 비일비재 합니다. 도커는 이런한 단점을 개선하고자 등장한 툴입니다. 도커를 사용하면 OS 화경이 바뀌거나 참조하는 라이브러리 설치여부, 버전 등과 상관없이 런타임 구성이 가능합니다. 이번 포스트에서는 도커는 어떤 원리로 이러한 역할을 수행할 수 있는지에 대해 알아보겠습니다. 가상화 도커는 컨테이너 기술을 기반으로 한 일종의 가상화 플랫폼입니다. 그렇다면 먼저 가상화와 컨테이너가 무엇인지 알아볼 필요가..

이번 포스트에서는 파일 처리를 위한 명령어에 대해 다루어 보겠습니다. file 파일의 타입을 확인합니다. 텍스트파일, 실행파일, 아카이브 파일인지 등의 파일 타입을 확인합니다. 옵션 -z 파일이 압출되어 있는 경우 압축되기 전의 파일 타입을 확인 head 파일의 앞부분을 화면에 출력합니다. 옵션 -n[라인번호] 지정한 라인번호까지 출력 예제 $ cat sample.txt one two three # 2번 라인까지 출력 $ head -n 2 sample.txt one two less, more 텍스트파일을 열람합니다. 텍스트파일을 화면 단위로 열람합니다. 명령어를 실행하고 화면을 이동하는 명령어는 vi 명령어와 동일합니다. 옵션 -N 라인번호를 표시합니다 sha1sum 파일의 무결성을 검증 할 때 파일의 ..

이번 포스트에서는 문자열 처리를 위한 명령어에 대해 다루어 보겠습니다. awk 입력을 주어진 분리자(field seperator)로 분리하여 명령을 처리합니다. 옵션 F 문자열을 분리할 기준이 되는 구분자 입력 v 파라미터 전달 내장함수 sub 지정한 문자열 치환 gsub 문자열 일괄 치환 index 주어진 문자열과 일치하는 문자의 인덱스를 반환 length 문자열의 길이를 반환 substr 시작위치에서 주어진 길이 만큼의 문자열 반환 split 문자열을 분리하여 배열로 반환 print 문자열 출력 printf 지정한 포맷에 따라 함수 출력 system 명령 실행 cat 파일을 읽어 내용을 표시합니다. 옵션 -n 행번호를 표시합니다. -b 공백을 제외하고, 행번호를 표시합니다. cut 구분자로 구분하여 ..

이번 포스트에서는 파일 시스템 관리를 위한 명령어에 대해 다루어 보겠습니다. cd 지정한 디렉토리로 이동합니다. 옵션 . 현재 위치로 이동 .. 부모 디렉토리 이동 ~ 홈 디렉토리 이동 - 이전 디렉토리 이동 cp 파일 및 디렉토리극 복사합니다. 옵션 -f 같은 이름의 파일이 있으면 확인하지 않고 덮어쓰기 -i 같은 이름의 파일이 있으면 확인하고 덮어쓰기 -R 디렉토리 하위 파일 모두 복사 dd 블록 단위로 데이터를 복사하거나 변환 옵션 if 입력 파일을 지정 of 출력 파일을 지정 bs 블록 크기를 지정 count 복사할 블록의 수를 지정 seek 출력 파일의 시작 위치를 지정 skip 입력 파일의 시작 위치를 지정 status 진행 상황을 출력할지 여부를 지정 df 파일시스템의 디스크 사용량을 표시 ..

ps 프로세스 정보를 화면에 표시합니다. 옵션 -e 현재 실행중인 모든 프로세스를 표시한다. -f 유저명, 시작시간을 표시한다. -u 유저명으로 검색한다. -o 사용자가 설정한 포맷으로 출력한다. -p [pid] 지정한 프로세스 정보만 표시한다. -e f 프로세스의 관계를 트리형식으로 표시한다 su su는 substitute user의 약어입니다. root 계정이나 다른 계정으로 변경할 때 사용합니다. 일반적으로 접속 계정을 다른 계정으로 변경할 경우 password 입력이 필요합니다. sudo sudo는 substitute user do의 약어로 변경된 계정으로 명령어만 실행하는 명령어입니다. 리눅스 머신에 명령어를 설치할 때 많이 사용됩니다. ulimit ulimit 명령은 사용자가 실행하는 프로세스..

관리명령어 이번 포스트에서는 리눅스 관리 명령어에 대해 알아 보겠습니다. 관리 명령어는 서버 내 프로세스, 메모리, 파일시스템, 관리를 위한 명령어 입니다. 시스템 관리 명령어 crontab 정기적으로 지정한 시간에 실행하고 싶은 명령어를 실행시키는 명령어 입니다. 윈도우의 스케줄러와 동일한 기능이라고 생각 할 수 있으며 스크립트 등록 또한 가능합니다 옵션 -l 등록된 명령어 리스트 확인 -e 등록된 명령어를 수정 크론탭 주기 설정 크론텝을 등록할 경우 실행하고자 하는 주기와 명령을 입력합니다. 주기는 분 시 일 월 요일 형태로입력합니다. 분 0 ~ 59 시 0 ~ 23 일 1 ~ 31 월 1 ~ 12 요일 0 ~ 7(0, 7이 일요일) ex) 매일 매 시각 50분에 sample.sh 를 실행한다고 했을..

mongoDB의 Replica Set은 동일한 데이터 세트를 유지 관리하는 인스턴스 그룹입니다. 쉽게 말해 데이터베이스를 복제하는 기능으로 데이터베이스를 복제해 같은 정보를 공유하는 기능을 제공합니다. Replica Set 구성요소 먼저 Replica Set은 세가지 역할로 나누어 집니다 Primary : 클라이언트에서 DB로 읽기/쓰기 작업을 담당하는 주 데이터 베이스 Secondary : 프라이머리로부터 데이터를 동기화 받는 데이터 베이스 Arbiter : 데이터를 동기화하지는 않으며 Replica set의 복구를 돕는 역할 Replica set 내 이 세가지 역할 사이에는 주기적으로10초에 한번씩 ping을 보내 서로의 노드를 확인하는 작업이 이루어 집니다. 이 작업을 MongoDB에서는 Heart..