HTTPS

HTTP와 HTTPS의 가장 큰 차이점은 SSL 인증서이다. SSL인증서는 클라이언트와 서버간의 통신을 공인된 제 3차 업체(CA)가 보증해주는 전자화된 문서이다. SSL 인증서는 사용자가 사이트에서 제공하는 정보를 암호화한다. 암호화되어 전송되는 데이터는 중간에 누가 훔치거나 조작하려해도 암호화 되어있어서 해독할 수 없다. HTTPS 방식은 공개키 암호화 방식과 대칭키 암호화 방식의 장점을 활용해 함께 사용한다. 데이터를 대칭키 방식으로 암복호화하고, 공개키 방식으로 대칭키를 전달한다. HTTPS의 동작과정 클라이언트가 서버 접속하여 Handshaking 과정에서 서로 탐색 Client Hello : 클라이언트가 서버에게 전송할 데이터

Dockerfile 명령어

Dockerfile 포맷 하나의 Dockerfile은 기본적으로 다음과 같은 구조를 가진 여러 개의 명령문으로 구성되어 있다. 1 2 # 주석(Comment) 명령어(INSTRUCTION) 인자(arguments) 각 명령문은 명령어로 시작하고 여러 개의 인자가 따라올 수 있으며, 해당 명령문에 대한 주석도 달 수 있다. 인자와 구분이 쉽도록 명령어는 모두 영문 대문자로 써주는 것이 관례이다. Dockerfile 명령문 FROM 명령문 1 2 FROM <이미지> FROM <이미지>:<태그> 하나의 Docker 이미지는 base 이미지부터 시작해서 기존 이미지위에 새로운 이미지를 중첩해서 여러 단계의 이미지 층(layer)을 쌓아가며 만들어진다.

도커 명령어

Docker build 명령어 1 docker build -t 이미지명[:태그명] . -t 또는 –tag 옵션은 새로 생성할 이미지의 이름을 지정할 때 사용하는 옵션이다. -t 옵션 뒤에 이미지명:태그를 적는다. 마지막에 있는 구둣점(.)은 도커파일(Dockerfile)이 현재 디렉토리에 있다는 뜻이다. Docker run 명령어 이미지가 OS일 경우 이미지를 백그라운드 인터렉션 모드로 실행 1 docker run -dit 이미지명 bash 컨테이너에 접속 1 docker attach 컨테이너아이디 이미지가 Program일 경우 이미지를 백그라운드로 실행 1 docker run -d 이미지명 컨테이너에 인터렉션 모드로 접속 1 docker exec -it 컨테이너아이디 bash Docker run 옵션 종류 옵션 설명 -i, –interactive - 표준 입력(stdin)을 활성화하며, 컨테이너와 연결(attach)되어 있지 않더라도 표준 입력을 유지한다.

도커

VM vs 컨테이너 VM 하드웨어 인프라스트러처 위에 VMWare나 VirtualBox와 같은 HyperVisor 소프트웨어를 이용해서 각각의 가상의 머신을 만들 수 있다. 한 운영체제 위에서 동일한 어플리케이션을 각각의 고립된 다른 환경에서 구동하기 위해서는 가상 머신을 이용해서 어플리케이션을 구동해야 했다. 이 가상 머신은 각각의운영체제를 포함하고 있기 때문에 맥이라는 OS 위에서 가상머신을 이용하면 윈도와 리눅스를 동시에 구동할 수 있다. 고립된 환경에서 애플리케이션을 구동하기 위해서 VM을 사용하면 운영 체제를 포함하고 있기 때문에 굉장히 무겁고 그리고 시작하는 데도 오래 걸리고 또 컴퓨터 운영체제 인프라스트럭처 리소스를 많이 잡아먹는 범인이 될 수도 있다.

네트워크 장비

랜카드 랜카드는 네트워크를 구성하기 위한 가장 기본적인 장비이다. 랜카드는 유저의 데이터를 케이블에 실어서 허브나 스위치, 혹은 라우터 등으로 전달해주고 자신에게 온 데이터를 CPU에게 전달해주는 역할을 한다. 랜카드라고 하면 ‘랜에 접속하기 위한 카드처럼 생긴 것이다’라고 생각하면 딱 맞다. 랜카드는 데스크톱, 노트북, 프린터 등 네트워크 연결이 필요한 장비에 꽂아서 사용한다. 요즘은 랜카드를 직접 보기 힘든데, 왜냐하면 랜카드는 대부분 컴퓨터 안에 설치되어 제작되기 때문이다. 허브 허브(Hub)는 직사각형의 상자에 구멍이 뚫려 있는 모양으로 되어 있다.

정적 링킹, 동적 링킹

Static Linking (정적 링킹) 정적 링킹이란 실행 가능한 목적 파일을 만들 때 프로그램에서 사용하는 모든 라이브러리 모듈을 복사하는 방식을 말한다. 5개의 프로그램에서 A라는 외부 함수를 이용하는데 이때 정적 링킹 방식을 사용하면 5개의 프로그램의 실행 가능한 목적파일 각각에 A의 정보가 담긴다. 즉, 중복이 발생한다. 따라서 정적 링킹으로 만들어진 프로그램은 크기가 크고 메모리 효율이 좋지 않다. 정적 링킹을 이용하면, 동적 링킹 라이브러리를 사용하는 프로그램보다 빠르다. 또한 정적 링킹 프로그램에서 모든 코드는 하나의 실행 모듈에 담기기 때문에 compatibility issues 즉, 불일치에 대한 걱정을 하지 않아도 된다.