전체 글 (104) 썸네일형 리스트형 Docker 🐳 - dockerfile layer 도커는 컨테이너화된 애플리케이션을 쉽게 배포하고 관리할 수 있는 강력한 도구입니다. 이번 블로그에서는 도커의 핵심 개념 중 하나인 Dockerfile Layers에 대해 자세히 알아보고, 실제로 사용되는 Dockerfile 예시를 통해 최적화하는 방법을 살펴보겠습니다. Dockerfile Layers란? Dockerfile은 컨테이너 이미지를 빌드하기 위한 스크립트입니다. 각 명령어는 새로운 레이어를 생성하며, 레이어는 이미지의 변경 가능한 부분을 나타냅니다. 이해를 돕기 위해 주어진 Dockerfile을 살펴봅시다. FROM node:16-alpine WORKDIR /usr/src/appCOPY package*.json . RUN npm install RUN npm install mysql -save .. Docker 🐳 - 1 Docker 도커 공부를 시작하기전에 도커가 무엇이고 왜 사용하는지부터 아는것이 중요할 것 같다. 도커란? 컨테이너 기반 가상화 도구 애플리케이션을 컨테이너라는 단위로 격리하여 실행하고 배포하는 기술 여기서 컨테이너란? 컨테이너는 애플리케이션이 한 컴퓨팅 환경에서 다른 컴퓨팅 환경으로 빠르고 안정적으로 실행될 수 있도록 코드와 모든 종속성을 패키지화하는 소프트웨어의 표준 단위입니다. 컨테이너 이미지는 런타임 시 컨테이너가 되며, Docker 컨테이너의 경우 이미지가 Docker 엔진 에서 실행될 때 컨테이너가 됩니다. Docker 컨테이너 이미지는 코드, 런타임, 시스템 도구, 시스템 라이브러리 및 설정 등 애플리케이션을 실행하는 데 필요한 모든 것을 포함하는 경량의 독립형 실행 가능 소프트웨어 패키지입.. 통신시 Header, Body 헤더(Header)의 위험성: 1. 데이터 노출: 보완: HTTPS를 사용하여 통신을 암호화함으로써 데이터 노출을 방지할 수 있습니다. 암호화된 통신은 중간에서의 데이터 탈취를 예방합니다. 2.전송 중간 공격: 보완: HTTPS를 사용하여 통신을 암호화하면 중간에서의 데이터 변조나 가로채기를 방지할 수 있습니다. HTTPS는 SSL/TLS 프로토콜을 사용하여 안전한 통신을 보장합니다. 바디(Body)의 위험성: 1. 데이터 노출: 보완: HTTPS를 사용하여 통신을 암호화하면 바디에 포함된 데이터도 안전하게 전송됩니다. 중간에서의 데이터 노출을 방지할 수 있습니다. 2. 데이터 변조: 보완: HTTPS를 사용하여 통신을 암호화하면 중간에서의 데이터 변조를 방지할 수 있습니다. 안전한 전송을 통해 데이터 .. Interface VS Type 1. interface interface는 주로 객체의 구조를 정의할 때 사용됩니다. 객체의 속성이나 메서드의 형태를 설명하고자 할 때 interface를 활용합니다. 아래는 interface를 사용한 간단한 예시입니다. interface Person { name: string; age: number; } const person: Person = { name: 'John', age: 30, }; 2. type type은 기본적으로 interface와 비슷한 역할을 수행하지만, 좀 더 범용적으로 사용할 수 있습니다. 객체뿐만 아니라 유니온 타입, 튜플 등 다양한 타입을 정의할 수 있습니다. 아래는 type을 사용한 예시입니다. type Person = { name: string; age: number; }.. Yarn berry VS pnpm Yarn Berry Yarn Berry는 Yarn 패키지 매니저의 새로운 버전으로, Yarn 2.0 이상을 가리킵니다. 이전 버전의 Yarn에서는 node_modules 디렉토리에 패키지들을 설치하여 프로젝트를 관리했지만, Yarn Berry에서는 Plug'n'Play (PnP) 시스템을 사용하여 의존성 관리를 개선했습니다. 주요 특징과 변경 사항 Plug'n'Play (PnP): Yarn Berry는 PnP 시스템을 도입하여 node_modules 디렉토리를 더 이상 사용하지 않습니다. 대신에 필요한 패키지들을 특별한 .pnp.js 파일에 기록하여 관리합니다. Zero-installs: Yarn Berry에서는 패키지를 전역 node_modules에 설치하는 것이 아니라 프로젝트 내 .yarn/cach.. 호이스팅(Hoisting) JavaScript 호이스팅은 인터프리터가 코드를 실행하기 전에 함수, 변수, 클래스 또는 임포트(import)의 선언문을 해당 범위의 맨 위로 이동시키는 과정을 말합니다. 변수 스코프 (var는 블록문에 제한되지 않는다) if (true) { var x = 5; } console.log(x); // 5 if (true) { let y = 5; } console.log(y); // ReferenceError: y is not defined 변수 호이스팅 (Hoisting) 나중에 선언된 변수를 참조할수 있다.즉 JavaScript 변수가 어떤 의미에서 함수나 문의 최상단으로 끌어올려지는 것을 말합니다. 하지만, 끌어올려진 변수는 undefined 값을 반환합니다. 그래서 심지어 이 변수를 사용 혹은 참조.. 깊이 우선 탐색 (Depth-First Search, DFS) DFS DFS (Depth-First Search)는 그래프와 트리 구조에서 사용되는 탐색 알고리즘 중 하나로, 특정 노드에서 시작하여 깊이를 우선으로 탐색하는 방법입니다. DFS는 스택(Stack) 또는 재귀 함수를 사용하여 구현할 수 있으며, 그래프 또는 트리의 모든 노드를 방문하거나 특정 조건을 만족하는 노드를 찾을 때 유용하게 사용됩니다. DFS 알고리즘의 동작 원리 시작 노드를 방문하고, 방문한 노드를 스택(Stack)에 저장하거나 현재 함수의 호출 스택에 넣습니다. 현재 노드와 연결된 이웃 노드 중에서 방문하지 않은 노드를 선택합니다. 이때, 어떤 이웃 노드를 선택하느냐에 따라 "깊이 우선"이 결정됩니다. 선택한 이웃 노드로 이동하여 다시 스택에 저장하거나 재귀 호출합니다. 이동한 노드에서 다.. [자료구조] Graph Graph 객체간의 관계를 정점(Vertex)과 간선(Edge)으로 나타낸 자료구조이다. 현실의 다양한 문제를 효과적으로 모델링하기 쉽다. 쉽게 생각하면 지하철노선도를 생각하면 쉽다. 지하철역은 정점, 역이 연결된 노선은 간선으로. 다른 예시로는 sns에서의 팔로잉, 네비게이션의 길찾기정도로 생각하면 될거같습니다. 용어 간선 정점 차수 -한개의 정점에 있는 간선의 수 노란글자는 인접 ( 9에 인접한것은 6, 10이다) 경로(정점에서 정점으로 가는 노드의 길) 5 - 6까지의 경로의 개수 5-7-3-0-1-6 5-7-1-6 Graph의 종류 무방향 그래프 : 간선의 방향이 없음 방향 그래프 : 간선의 방향이 존재 비가중 그래프 : 간선에 가중치가 없음 가중 그래프 : 간선에 가중치가 있음 비순환 그래프 순.. 이전 1 2 3 4 ··· 13 다음