qanda(34)
-
[Docker in Action] Working with storage and volumes (2)
Shared mount points and sharing files 여러 개의 컨테이너에서 동일한 File Set(set of files)을 공유할 수 있도록 하는 기능은 매우 유용합니다. 파일 공유는 이전 포스팅에서 설명한 "Bind Mounts"와 "Docker Volume"의 2가지 방법을 통해 사용할 수 있습니다. Bind Mounts 다음 명령어를 순차적으로 실행해보겠습니다. // Host Machine에 디렉터리를 생성합니다. LOG_SRC=~/web-logs-example mkdir ${LOG_SRC} // plath 라는 이름의 컨테이너를 실행합니다. // Host Machine의 path와 컨테이너의 path를 바인딩합니다. // 로그를 기록합니다. docker run --name pla..
2022.04.23 -
[Docker in Action] Working with storage and volumes (1)
Overview 도커 컨테이너를 통해 애플리케이션을 운영하다 보면, "데이터"를 적절하게 관리할 방법 이 필요합니다. 이를테면 데이터베이스 인스턴스를 컨테이너 안에서 동작시키는 상황에서 인스턴스나 호스트 머신에 문제가 생겨서 데이터베이스 컨테이너를 내려야 하거나, 업데이트를 위해 컨테이너를 재시작해야 한다면, 그러한 경우에도 불구하고 기존에 저장되어 있던 데이터는 유지되어야 합니다. 또한 여러 개의 웹 애플리케이션을 운영하는 경우, 모니터링이나 성능 최적화 등을 위해 다양한 로그들을 남겨야 할 텐데 마찬가지로 이 로그들은 컨테이너가 내려갈 때 같이 사라져서는 안 되기 때문에 별도의 관리 방법이 필요할 것입니다. 이번 포스팅에서는 도커가 파일 시스템을 다루는 방법들을 살펴봄으로써, 실제로 데이터를 어떻게 ..
2022.04.23 -
[Web.dev] Fast (2) - Performance Budget
Overview web.dev에서 소개하는 Web Security에 대한 내용들을 여러 챕터에 걸쳐서 정리합니다. 모든 내용들을 다 다루지는 않고, 개인적으로 중요하다고 생각하는 부분들을 추려서 중점적으로 정리했습니다. 자세한 내용들은 아래 Table of Contents의 링크를 통해 확인하실 수 있습니다. 성능 예산 수립 Performance budgets 101 Your first performance budget Incorporate performance budgets into your build process Use Lighthouse for performance budgets Using bundlesize with Travis CI Using Lighthouse Bot to set a perf..
2022.04.22 -
[Web.dev] Fast (1) - Introduction
Overview web.dev에서 소개하는 Web Security에 대한 내용들을 여러 챕터에 걸쳐서 정리합니다. 모든 내용들을 다 다루지는 않고, 개인적으로 중요하다고 생각하는 부분들을 추려서 중점적으로 정리했습니다. 자세한 내용들은 아래 Table of Contents의 링크를 통해 확인하실 수 있습니다. Table of Contents Why does speed matter? What is speed? How to measure speed? How to stay fast? Measure performance with the RAIL model Why does Speed Matter? 연구에 따르면 낮은 성능은 비즈니스 목표에 부정적인 영향을 미칠 수 있습니다. 예를 들어 BBC는 사이트를 로드하는 ..
2022.04.15 -
[Docker in Action] Welcome to Docker
What is Docker? 도커는 프로그램을 빌드하고, 저장하고, 실행하는 방법을 제공하는 오픈소스 프로젝트로, 컨테이너(container)라는 OS Technology를 사용해서 안전하고 가벼운 프로그램 런타임 환경을 제공합니다. Hello World 각 OS환경에 맞는 도커를 설치한 뒤에, CLI(Command Line Interface)에 아래와 같은 명령어를 입력하면, 다음과 같이 여러 개의 레이어를 다운로드한 후에, "hello world"라는 문장을 출력하고 프로그램이 종료되는 것을 확인할 수 있습니다. 실제로 어떤 일이 일어나고 있는지를 조금 더 자세히 살펴보겠습니다. docker run dockerinaction/hello_world "docker run"이라는 명령어는 Docker에게 ..
2022.04.05 -
[Web] preload, prefetch, preconnect
Overview 아무리 복잡한 웹 애플리케이션이라도 모든 것은 HTML 문서를 로딩하는 것부터 시작됩니다. 로딩된 문서는 자바스크립트를 실행하기 위한 태그, CSS style이나 image 등을 가져오기 위한 태그들을 포함하는 경우가 대부분이며, 브라우저는 HTML 문서를 받아온 뒤 이를 파싱 하면서(혹은 파싱 한 후에) 해당 태그들이 포함하는 리소스들을 가져옵니다. 기본적으로 브라우저는 Critical Rendering Path를 기준으로 삼아 fetch 해야 하는 리소스에 우선순위를 부여합니다. 브라우저의 경우 도메인마다 2~6개(Chrome브라우저의 경우 도메인마다 최대 6개)의 커넥션을 맺을 수 있고, 최대 커넥션의 개수를 넘어서는 요청은 이전 요청이 끝나야 이루어질 수 있습니다. 따라서 같은 도..
2022.04.03