CS (25) 썸네일형 리스트형 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를 사용하여 통신을 암호화하면 중간에서의 데이터 변조를 방지할 수 있습니다. 안전한 전송을 통해 데이터 .. 깊이 우선 탐색 (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의 종류 무방향 그래프 : 간선의 방향이 없음 방향 그래프 : 간선의 방향이 존재 비가중 그래프 : 간선에 가중치가 없음 가중 그래프 : 간선에 가중치가 있음 비순환 그래프 순.. [자료구조] Graph - JavaScript // 그래프 정점(Vertex) 클래스 정의 class Vertex { constructor(value) { this.value = value; this.edges = new Map(); // Map을 사용하여 이웃 노드 저장 } addEdge(vertex, weight) { this.edges.set(vertex, weight); // 이웃 노드와 가중치를 Map에 저장 } removeEdge(vertex) { this.edges.delete(vertex); // Map에서 이웃 노드 제거 } } // 그래프(Graph) 클래스 정의 class Graph { constructor() { this.vertices = new Map(); // Map을 사용하여 정점 저장 } addVertex(value) .. [자료구조] Trie Trie (트라이) Trie(트라이)는 트리 형태의 자료 구조로, 문자열을 저장하고 검색하는 데 사용되는 효율적인 데이터 구조입니다. Trie는 "reTRIEval"에서 온 이름처럼 데이터를 검색하는 데 주로 사용됩니다. Trie의 주요 특징 계층 구조: Trie는 노드로 이루어진 계층 구조를 가집니다. 각 노드는 문자를 나타내며 부모 노드와 자식 노드를 가집니다. 접두사 검색: Trie는 문자열의 접두사를 효율적으로 검색하는 데 사용됩니다. 예를 들어, 주어진 접두사에 해당하는 모든 단어를 찾을 때 유용합니다. 메모리 사용: Trie는 메모리를 상대적으로 많이 사용할 수 있지만, 검색 속도가 매우 빠릅니다. Trie의 구조 Trie는 루트 노드로 시작하며 각 노드는 문자를 나타냅니다. 단어의 각 문자는.. [자료구조] Queue Queue : FIFO(First In, First Out) 선형 자료구조 가장 먼저 들어온 요소가 가장 먼저 나가는 구조 Queue 대기열을 모델링하거나 작업을 스케줄링하는 등의 상황에서 유용하게 사용됩니다. 예시로는 선입선출, 은행에서의 번호표등 대기줄을 의미 주요연산 Enqueue (Push 또는 Insert): 큐에 데이터를 추가하는 연산입니다. 새로운 데이터가 큐의 뒤쪽(꼬리)에 추가됩니다. 이를 통해 데이터가 큐에 들어오는 순서대로 대기열에 저장됩니다. Dequeue (Pop 또는 Remove): 큐에서 데이터를 제거하는 연산입니다. 큐의 앞쪽(머리)에 있는 데이터가 제거되며, 먼저 들어온 데이터가 먼저 처리되는 원칙을 유지합니다. Front (Peek): 큐의 맨 앞에 있는 데이터를 조회하는.. 이전 1 2 3 4 다음