분류 전체보기 258

[leetcode] Max Consecutive Ones II

https://leetcode.com/explore/featured/card/fun-with-arrays/523/conclusion/3230/ Explore - LeetCode LeetCode Explore is the best place for everyone to start practicing and learning on LeetCode. No matter if you are a beginner or a master, there are always new topics waiting for you to explore. leetcode.com -> Fail 0과 1로 이루어진 특정 배열이 주어졌을때, 최대 한개의 0을 뒤짚을 수 있는 경우 연속되는 1의 개수가 가장 긴 값을 구하는 문제이다. 1. Bru..

알고리즘 2021.09.03

HTTP 프로토콜 정리

ㄴ 웹의 구성요소들이 서로 대화를 할 때 사용되는 프로토콜 HTTP (Hyper Text Transfer Protocol) 인터넷에서 데이터를 주고받을 수 있는 프로토콜이다. (프로토콜은 통신규약, 규칙정도로 생각하자) HTML, CSS, JS, Image와 같은 파일들을 서로 주고받으려면 서버와 클라이언트가 서로 알아볼 수 있는 약속된 메세지가 필요한데, 그 메세지를 HTTP 라 하고, HTTP는 Request와 Reponse를 위한 메세지로 구분되어 있다. 간단하게 HTTP 특징을 보면 HTTP 메시지는 HTTP 서버와 HTTP 클라이언트에 의해서 해석된다. TCP/IP를 이용하는 응용 프로토콜(application protocol) 이다. 무상태성 (상태를 기억하기 위해 Cookie와 Seesion..

Web 2021.08.28

Docker 정리 (6) 호스트와 컨테이너의 파일 시스템 연결

ㄴ 컨테이너 안에서 텍스트 에디터를 이용하여 파일을 수정할 수 있지만 이는 불편하고 위험한 작업이다. - 컨테이너가 사라질 경우 파일이 모두 날라가며, - 컨테이너는 필요할 땐 언제든지 사용하고 필요없을땐 언제든지 지울수 있도록 관리하며 사용 해야한다. 해결책 컨테이너의 특정 디렉토리와 host 의 특정 디렉토리를 연결하고, host 에서 수정이 이루어졌을때 컨테이너의 파일시스템에 반영될 수 있도록 하는것이다. ㄴ 컨테이너가 날아가도 소스코드는 Host에 그대로 남아있기에 안전하게 개발할 수 있으며, ㄴ 버전관리도 쉬워진다. 실행환경은 컨테이너, 파일수정은 host 에서 진행하는 방법을 살펴보자. Container 의 File System Host 의 File System 연결하는 명령어는 아래와 같다...

컨테이너/도커 2021.08.28

Docker 정리 (5) 명령어 실행

ㄴ URL 을 통해 컨테이너에 접속 할 수 있고, 컨테이너 안에 있는 웹 서버가 파일 시스템 안에 저장되어 있는 index.html 을 화면에 보여줬다. 단순히 보여주는것만이 아니라 웹 서버를 이용하는 웹 앱을 만드는 것이 중요한데 이를 위해서는 컨테이너 안으로 들어가 수정할 수 있어야한다. Docker Desktop 을 이용하여 컨테이너에 접속 Docker Desktop (GUI) 에서는 Container List 에서 CLI 라는 버튼을 클릭하면 터미널 창이 뜬다. 이는 컨테이너의 터미널 창이고, 실제 ls -a 혹은 pwd 와 같은 명령어를 입력하여 보면 컨테이너에 존재하는 파일 리스트 혹은 현재 위치를 출력하여 준다. 명령어를 이용하여 컨테이너에 접속 대시보드가 아닌 명령어를 통하여 컨테이너 안으..

컨테이너/도커 2021.08.28

Docker 정리 (5) 명령어 실행

ㄴ URL 을 통해 컨테이너에 접속 할 수 있고, 컨테이너 안에 있는 웹 서버가 파일 시스템 안에 저장되어 있는 index.html 을 화면에 보여줬다. 단순히 보여주는것만이 아니라 웹 서버를 이용하는 웹 앱을 만드는 것이 중요한데 이를 위해서는 컨테이너 안으로 들어가 수정할 수 있어야한다. Docker Desktop 을 이용하여 컨테이너에 접속 Docker Desktop (GUI) 에서는 Container List 에서 CLI 라는 버튼을 클릭하면 터미널 창이 뜬다. 이는 컨테이너의 터미널 창이고, 실제 ls -a 혹은 pwd 와 같은 명령어를 입력하여 보면 컨테이너에 존재하는 파일 리스트 혹은 현재 위치를 출력하여 준다. 명령어를 이용하여 컨테이너에 접속 대시보드가 아닌 명령어를 통하여 컨테이너 안으..

컨테이너/도커 2021.08.28

Docker 정리 (4) 도커 네트워크

ㄴ도커로 동작하는 어플리케이션들은 네트워크를 이용하고 있다. Docker 없이 웹 서버를 설정해야 할 때 서버 컴퓨터는 약 65,000개 port 가 있는데, 이는 컴퓨터에 설치되어 있는 여러 소프트웨어들을 네트워크 적으로 구분해준다. 위 이미지에 나오는 서버 컴퓨터는 웹 서버가 80포트에서 접속을 대기하고 있도록 설정되어 있으며 웹 서버에 요청이 왔을 때 File System(데이터가 저장된 공간) 내에서 디렉토리와 파일을 찾으라는 설정에 맞추어 index.html 을 찾아 웹 브라우저에게 코드를 전달하게 된다. 즉, 서버 컴퓨터 포트에 웹 서버를 설정해두고 파일시스템 설정에 따라 파일을 찾고 응답을 해주면 된다. Docker 를 이용하여 웹 서버를 설정 한다면? 웹 브라우저에서 접속을 시도하면 Hos..

컨테이너/도커 2021.08.28

Docker 정리 (4) 컨테이너 run

run : 이미지를 실행시켜 컨테이너를 만들때 사용되는 명령어이다. 도커 GUI 사용 도커 대시보드(GUI 환경)를 이용하여 run 을 한 후 on/off 를 할 수 있고, log 나 자원이용 현황을 체크할 수 있다. 도커 CLI 사용 $docker run [OPTIONS] Image [COMMAND] CLI 환경에서 run 명령어를 이용하는 예시이다. run 뒤에 옵션, 이미지 이름, 컨테이너 안에서 실행하고 싶은 명령어를 입력해주면된다. [ ] 표시가 있는 것은 생략이 가능하다. $docker run httpd httpd 기반으로 컨테이너가 만들어지고, 그 컨테이너가 실행되는 모습이 화면에 출력된다. $docker ps 컨테이너 리스트 및 정보 확인 명령어 $docker run --name ws2 h..

컨테이너/도커 2021.08.28

Docker 정리 (3) 이미지 Pull

https://hub.docker.com/search?q=&type=image Docker Hub hub.docker.com 위 도커허브 사이트를 통하여 필요한 어플리케이션을 찾을 수 있다. 찾은 후에 다운로드 받은 어플리케이션을 이미지(Image) 라 하는데, 이미지를 실행하는 것이 컨테이너이다. 도커허브(Docker Hub)는 앱 스토어(App Store)와 매우 유사하다. 프로그램이 여러 프로세스를 가질 수 있는 것처럼, 이미지도 여러개의 컨테이너를 가질 수 있다. pull : 도커허브에서 이미지를 다운받는 행위를 pull run : 이미지를 실행 시키는 행위를 run run을 하게되면, 이미지가 컨테이너가 되고 그 컨테이너가 실행되면서 컨테이너 안에 포함되어 있는, 실행되도록 조치되어 있는 프로그..

컨테이너/도커 2021.08.28

Docker 정리 (2)

컨테이너 기술은 리눅스 기술이다. 도커 위에서 동작하는것이 컨테이너이고, 컨테이너 안에서 동작하는 각각의 어플리케이션들은 리눅스 운영체제에서 동작한다. Host 가 리눅스 운영체제가 아니라면? Window 혹은 Mac OS 일 경우 VM을 설치한 후, 그곳에 리눅스 OS를 깔면 이 위에서 도커와 같은 컨테이너 기술을 사용할 수 있다. 즉, 내 컴퓨터가 리눅스 OS 가 아니라면 VM 을 설치하여 리눅스 위에서 도커를 사용해야 한다. 물론, 도커를 설치하면 도커가 알아서 가상머신을 만들어주고 그 위에 리눅스를 설치해주기 때문에 우리는 도커만 설치 한 후 편하게 사용할수 있다. VM 을 깔기 때문에 속도저하는 감수해야 하지만 그럼에도 사용하는 이유는 도커를 사용했을 때 편의성이 너무 크다. Script 도커 ..

컨테이너/도커 2021.08.28