분류 전체보기44 kubernetes 시작하기 1️⃣ 서버에서 실행할 Node.js 파일 만들기기존에는 서버 내부에 Node.js를 설치해야 했지만, Docker를 사용하면 컨테이너 내에서 바로 Node.js를 실행할 수 있습니다. // hello.js var http = require('http'); var content = function(req, resp) { resp.writeHead(200); resp.end("Hello World!\n"); } var server = http.createServer(content); server.listen(8000); 설명: 간단한 HTTP 서버를 포트 8000에서 실행합니다.2️⃣ Dockerfile 생성Dockerfile은 컨테이너 설정을 정의하는 파일입니다. Node.js 버전, 실행 명령어 등을 .. k8s 2025. 10. 2. VM vs Container 서비스를 배포할 때, 전통적인 VM(Virtual Machine)과 현대적인 컨테이너(Container)는 운영 방식과 특징이 다릅니다.1. 아키텍처 비교VM (Virtual Machine)Host OS└── Hypervisor └── Guest OS각각의 VM은 독립된 Guest OS를 가집니다.장점: Host OS와 다른 OS도 사용할 수 있음 (예: 리눅스에서 윈도우 VM 실행 가능)단점: OS마다 메모리/CPU 자원을 독립적으로 사용하므로 리소스 오버헤드가 큼ContainerHost OS└── Container Engine (Docker 등) └── Container컨테이너는 Host OS를 공유하며, 가상화 레이어가 거의 없음주요 기술:Namespace: mnt, pid, ipc, u.. k8s 2025. 10. 1. kubernetes를 사용하는 이유 서비스를 운영하다 보면 시간대별 트래픽 변화로 인해 서버 관리가 어려운 경우가 많습니다.기존에는 최대 트래픽을 기준으로 서버를 항상 켜두어야 했기 때문에, 사용량이 적은 시간에도 불필요하게 서버를 유지해야 했습니다. 이는 자원의 효율성을 떨어뜨리는 문제로 이어집니다.1. 자동 확장(Auto Scaling)쿠버네티스를 사용하면 하루 동안의 평균 트래픽을 기반으로 서버를 효율적으로 구축할 수 있습니다.또한 Auto Scaling 기능을 통해 트래픽 변화에 따라 서버를 자동으로 증감시킬 수 있습니다.예를 들어, 특정 시간대에만 트래픽이 몰리는 서비스라도, 필요할 때만 서버를 늘리고 트래픽이 적을 때는 줄이는 방식으로 운영할 수 있습니다.이로 인해 불필요한 리소스 낭비를 최소화할 수 있습니다.2. 자동 복구(A.. k8s 2025. 10. 1. SQL Null 관련 함수 NVL- ORACLE 전용- 첫 번째 인자가 Null이 아니면 첫 번째 인자를 그대로 반환- Null이면 두 번째 인자를 반환- SQL Server에서는 ISNULL- arg1 : 컬럼 또는 표현식- arg2 : 컬럼 또는 표현식, arg1과 데이터 타입이 같아야 함 NVL(arg1, arg2)NULLIF- 입력된 두 인자가 같으면 Null반환- 다르면 첫 번째 인자 반환- arg1 : 컬럼 또는 표현식- arg2 : 컬럼 또는 표현식, arg1과 데이터 타입이 같아야 함NULLIF(arg1, arg2)COALESCE- 입력된 인자를 순서대로 평가해 Null이 아닌 첫 번째 인자 반환- arg1 : 컬럼 또는 표현식- arg2 : 컬럼 또는 표현식, arg1과 데이터 타입이 같아야 함COALESCE.. SQL 기초 2025. 8. 21. 다익스트라(dijkstra) 다익스트라 알고리즘 정리다익스트라란? 그래프에서 시작 노드 → 모든 노드까지 최단 거리를 탐색하는 알고리즘 특징: 모든 가중치는 양수여야 한다 시간복잡도 O(V^2) 우선순위 큐 사용 시 → O(E log V) (V = 노드 수, E = 간선 수) 1. 인접 리스트로 그래프 구현하기 인접 행렬보다 효율적 → (노드, 가중치) 형태로 리스트에 저장 List> adj = new ArrayList(N + 1); for (int i = 0; i ()); for (int i = 0; i 2. 최단 거리 배열 초기화 int[] dist = new int[N + 1]; Arrays.fill(dist, INF); dist[S] = 0; 3. 값이 가장 작은 노드 고르기 PriorityQueue pq = n.. 알고리즘 2025. 8. 19. Segment Tree(최댓값, 최소값 구하기) 백준 : 2357주어진 구간의 최소값과 최댓값을 구하는 문제 public class MinMax { static int N, M; static long[] ar; static long[] minTree; static long[] maxTree; static long mini; static long maxi; static void build(int node, int start, int end) { // System.err.println(node + start + end); if (start == end) { minTree[node] = ar[start]; maxTree[node] = ar[start]; .. 알고리즘 2025. 8. 2. Segment Tree(구간 합 구하기) 백준 : 2042tree의 update가 일어나면 구간 합을 구해 출력하는 문제import java.io.*;/* * 구간합 구하기 : 백준(2042) * main : 입출력 * build : tree 생성 * update : 값 업데이트 * query : 구간 합 쿼리 * N : 노드의 개수 * M : update 횟수 * K : 구간합을 구하는 횟수 */public class intervalSum { static int N, M, K; static long[] ar; static long[] tree; static void build(int node, int start, int end) { if (start == end) { tree[node] =.. 알고리즘 2025. 8. 2. Segment Tree 🌳 세그먼트 트리(Segment Tree) 정리📌 세그먼트 트리란?세그먼트 트리(Segment Tree)는 주어진 데이터의 구간 합, 최대/최소, 갱신 등을 빠르게 처리하기 위한 트리 기반의 자료구조※ 참고: 경우에 따라 인덱스 트리(Index Tree)라고도 불리며, 코딩 테스트에서는 같은 개념으로 봄📚 세그먼트 트리 핵심 이론✅ 세그먼트 트리의 종류구간 합 트리구간 최대값 트리구간 최소값 트리✅ 구현 단계트리 초기화질의값 구하기 (Query)데이터 업데이트 (Update)① 트리 초기화목표: 리프 노드 개수가 주어진 데이터 개수 N 이상이 되도록 트리 배열 구성트리 크기 계산 공식:2k ≥ N 을 만족하는 최소 k를 구한 뒤,트리 전체 크기는 2k+1 으로 설정예시N = 8→ 2^3 = 8 (k.. 알고리즘 2025. 8. 2. Parametric Search(츄러스 문제) 츄러스 문제- N명의 사람이 M개의 츄러스를 동일한 길이로 나누어 가진다.- input 예시 - 5명의 사람 - 3개의 츄러스 - 츄러스 길이 : 50, 30, 40import java.io.*;import java.util.*;public class Churros { static int churros_cnt; static int person_cnt; static int[] churros; public static int Solution() { int st = 0; int end = Arrays.stream(churros).max().getAsInt(); int aws = -1; while (st = person_cn.. 알고리즘 2025. 7. 27. Parametic Search 결정 문제를 최적화 알고리즘으로 변환하는 알고리즘 설계 기법 중 하나이분법 : Bisection Method결국은, 이진 탐색 : binary Search Decision Problem -> Optimization Problem이분법- 수학적으로 방정식의 근(root)을 계산할 때 사용한 이진 탐색 알고리즘 - Root-Finding Algorithm- 근이 반드시 존재하는 폐구간에서, 폐구간의 범위를 재귀적으로 좁혀 나감문제 LeetCode 278. First Bad Version- n개의 제품이 있을 때,- k번 이후에는 불량- k번째를 찾는 문제- 결정 문제 API : bool isBadVersion- 불량인지 확인해 주는 api를 제공함- api를 적게 호출할수록 유리함public class.. 알고리즘 2025. 7. 27. 인프라 초기 세팅(Jenkins) 2025.07.23 - [프로젝트] - 인프라 초기 세팅(Docker)Docker에 이어서 Jenkins 설정1. 젠킨스 설치sudo docker run -d \ --name jenkins \ -p 8080:8080 -p 50000:50000 \ -v /var/run/docker.sock:/var/run/docker.sock \ -v jenkins_home:/var/jenkins_home \ jenkins/jenkins:lts- 초기 비밀번호sudo docker exec jenkins cat /var/jenkins_home/secrets/initialAdminPassword플러그인 설치GitDockerpipelineBlue OceanSSH pluginJenkins 컨테이너 안에 Docker 설치.. 프로젝트 2025. 7. 23. 인프라 초기 세팅(Docker) 목표코드를 Git에 푸시하면, 자동으로 Docker로 빌드되고, Jenkins가 배포까지 해주는 시스템 구축✅ 도커(Docker)란?🧠 개념도커는 가상 머신보다 가볍고 빠른 가상화 도구애플리케이션을 컨테이너 안에 포장해서, 어디서든 똑같이 실행되게 해 준다.개발 -> 테스트 -> 운영 서버까지 환경을 보장💡비유| 앱을 실행하려면 라이브러리나 설정이 필요, | Docker는 앱 + 실행 환경을 통째로 포장해서 다른 컴퓨터에서도 바로 실행 가능하게 만드는 기술 ✅ 젠킨스(Jenkins)란?🧠개념jenkins는 자동화 도구(CI/CD 툴)코드를 푸시하면 -> 테스트하고 -> Docker로 빌드하고 -> 서버에 배포까지 자동으로 해준다.직접 명령어 안쳐도 되도록 자동화 스크립트(Jenkinsfile)로.. 프로젝트 2025. 7. 23. 이전 1 2 3 4 다음