목록2025/01 (3)
백엔드 개발자
도커는 컨테이너 기반 가상화를 제공한다. 가상화란 무엇인가?가상화는 물리적인 하드웨어를 논리적으로 분리하여 여러 운영 체제나 애플리케이션을 독립적으로 실행할 수 있도록 하는 기술이다.하이퍼바이저 기반 가상화하드웨어 위에 하이퍼바이저(예: VMware, Hyper-V)를 설치해 각 가상 머신(VM)이 독립된 운영 체제를 실행할 수 있도록 한다.장점: 각 VM이 완전한 운영 체제를 포함해 높은 격리성과 호환성을 제공한다.단점: 무겁고, 많은 리소스를 소모한다.OS 수준 가상화 (컨테이너)호스트 운영 체제 위에서 컨테이너를 실행하며, 커널을 공유하지만 애플리케이션과 라이브러리는 독립적으로 실행된다.장점: 경량화되어 빠르게 시작되고, 리소스 소모가 적다.단점: 같은 운영 체제 커널을 사용하므로 호환성은 제한적이..
그래프 최단 거리 알고리즘벨만 포드 알고리즘은 그래프 최단 거리를 구하는 알고리즘 중 하나이다.대표적으로 다익스트라 알고리즘은 모든 간선의 가중치가 양수일 때만 가능하다.다익스트라다익스트라가 어떻게 동작하는지 간단하게 살펴보자.이런 그래프가 있다고 가정한다. A에서 E까지의 최단거리를 구할 것이다.A에서 가능한 경로 중 가장 빠른 경로를 선택하여 이동할 것이다. A에서 B로 가는 경로가 선택되어 A에서 B까지의 경로는 최단 거리가 3인 것을 알 수 있다.이후 B에서 갈 수 있는 경로를 큐에 넣고 다시 탐색을 반복할 것이다. 이렇게 각 최단거리를 구하다 보면 E까지의 최단거리가 11이라는 것을 알 수 있다.그런데 이 방법은 모든 가중치가 양수일 때만 가능하다. 그림처럼 D에서 B로 가는 경로는 -100이기..
데이터베이스 인덱스란?인덱스는 책의 목차처럼 테이블에 저장된 데이터에 빠르게 접근하기 위해 사용되는 구조이다.인덱스에 사용되는 키를 기준으로, 데이터를 정렬된 방식으로 저장하여 데이터의 검색 속도를 크게 향상한다.그 대신 데이터를 추가, 수정, 삭제할 때 정렬 과정과, 추가적인 저장 공간을 차지하기 때문에 오버헤드를 유발할 수 있다.클러스터드 인덱스와 논클러스터드 인덱스인덱스는 클러스터드 인덱스와 논클러스터드 인덱스로 나뉜다.클러스터드 인덱스는 테이블의 데이터 자체가 인덱스에 의해 정렬이 된다. 물리적인 데이터 정렬을 의미하기 때문에 하나만 존재한다.논클러스터드 인덱스는 인덱스를 위한 별도의 테이블이 생성된다.클러스터드 인덱스 (Clustered Index):물리적 데이터 정렬: 테이블의 데이터 자체가 ..