0️⃣들어가며서버 개발을 시작하면 자연스럽게 이런 스택을 구성한다.Spring Boot ↔ JPA ↔ JDBC ↔ DBMS (MySQL/PostgreSQL)나 역시 그랬고, "서버 개발 = 데이터는 DB에 저장"이 너무나 당연한 전제여서, 의심해본 적이 없었다.JDBC 드라이버를 연결하고, JPA 엔티티를 정의하고, Repository를 만들고...그런데 최근 사내 학습동아리의 강의 자료를 준비하면서 문득 궁금해진게 하나 있다."윈도우의 파일 탐색기나 DBMS나 데이터를 조회하고, 삭제하고, 수정하는 것에는 다름이 없지 않나?"이 질문을 따라가다 보니, 내가 매일 쓰는 DBMS와 어떤 차이점이 있는지 알 수 있었다.이 글은 그 과정의 정리다. 1️⃣파일 탐색기와 DBMS의 아키텍처순수하게 아키텍처만 보면..
레퍼런스블록, 파일, 객체 — 스토리지 3종류를 제대로 이해하기https://infinitecode.tistory.com/139객체 스토리지 (Object Storage)https://infinitecode.tistory.com/140MinIO(미니오)객체 스토리지 시장에서 Amazon Web Services(AWS)의 S3는 사실상 글로벌 표준(Standard)입니다.수많은 오픈소스와 기업용 솔루션들이 S3 API와 호환되도록 개발됩니다.MinIO는 바로 이 S3 API와 100% 호환되도록 설계된 고성능 객체 스토리지입니다.강력한 호환성으로 인해 개발자는 소스 코드를 작성할 때 AWS S3 라이브러리(SDK)를 그대로 사용하면서, 연결하는 엔드포인트 URL만 AWS가 아닌 로컬의 MinIO 주소(ex..
레퍼런스블록, 파일, 객체 — 스토리지 3종류를 제대로 이해하기https://infinitecode.tistory.com/139MinIO - "온프레미스 S3"https://infinitecode.tistory.com/141객체 스토리지HTTP API 기반으로 구성된 스토리지 시스템. 파일시스템과 달리 계층 구조 없이 Key-Value 형태로 데이터를 관리한다. 구조애플리케이션 ↓ HTTP RESTAPI Server ↓Metadata Store (Key → 물리위치) ↓Data Store (실제 바이트) ↓블록 스토리지 (OS 파일시스템)HTTP 인터페이스HTTP Method → 객체 스토리지 동작GET → 객체 조회 (다운로드)PUT/POST → 객체 저장 (업로드..
레퍼런스객체 스토리지 (Object Storage)https://infinitecode.tistory.com/140MinIO - "온프레미스 S3"https://infinitecode.tistory.com/141이 글은 AWS S3, MinIO등의 스토리지 서비스를 학습하기 전 선행 지식을 정리한 시리즈 1편입니다. RDB/NoSQL은 써봤지만 "스토리지"라는 단어가 생소하게 느껴져 학습한 내용을 정리한 글입니다."모든 데이터는 결국 0과 1의 조각"우리가 사진을 저장하거나 코드를 커밋할 때, 데이터는 어디로 갈까요? HDD나 SSD 같은 물리적 장치는 오직 '블록(Block)'이라는 단위로만 데이터를 인식합니다. 하지만 우리는 "몇 번 블록을 읽어줘"라고 하지 않고 "보고서.docx를 열어줘"라고 말합..
Intro어떤 정점으로부터 모든 정점들로의 최단 경로를 구하는 문제는 최단 경로 알고리즘을 적용해서 정해를 구할 수 있다.이 때 사용되는 최단 경로 알고리즘으로는 아래와 같다.다익스트라(Dijkstra) 알고리즘벨만-포드(Bellman-Ford) 알고리즘플로이드-워셜(Floyd-Warshall) 알고리즘아래 표는 최단 경로 알고리즘 3가지의 각 차이점에 대해 참고할 수 있도록 생성형 AI를 통해 생성한 자료구분다익스트라(Dijkstra)벨만-포드(Bellman-Ford)플로이드-워셜(Floyd-Warshall)목적단일 출발점에서 다른 모든 정점까지의 최단 거리단일 출발점에서 다른 모든 정점까지의 최단 거리모든 정점 쌍 간 최단 거리음수 가중치❌ 불가능 (음수 간선 있으면 오동작)✅ 가능✅ 가능음수 사이클..