대규모 데이터 처리와 관리에 최적화된 시스템인 Object Storage에 대하여 공부한 내용을 기록하겠습니다. 오브젝트 스토리지란?오브젝트 스토리지는 데이터를 파일 단위가 아닌 오브젝트 단위로 저장하는 저장소 시스템.특징은 수정 작업이 따로 존재하지 않고 기존의 데이터를 삭제 후 새로 생성하는 과정으로 수정이 진행됩니다.오브젝트 스토리지에서는 한 번 저장한 후에 수정을 못하게 하여 데이터 무결성을 보장하고 데이터의 안정성을 높이기 위함이라고 합니다.또 다른 특징은 오브젝트 스토리지에서 API를 통한 데이터 접근이 가능합니다. 오브젝트란?오브젝트는 '데이터', '메타데이터', '식별자'로 구성되어 있습니다. 데이터 : 파일의 실제 내용메타데이터 : 오브젝트에 대한 추가 정보 - ex. 파일의 크기, 생성..
목차 최소 스패닝 트리 (MST) 핵심 코드 최소 스패닝 트리 (MST) 최소 스패닝 트리는 주어진 연결된 그래프에서 모든 정점을 포함하면서 그래프의 모든 정점을 연결하는 간선의 부분 집합 중에서 가중치의 합이 최소인 트리를 말합니다. 최소 스패닝 트리를 찾는 알고리즘은 크게 두 가지가 있습니다. 그중 크루스칼 알고리즘에 대하여 알아보겠습니다. 위와 같이 연결된 그래프에서 크루스칼 알고리즘을 통하여 MST를 구하는 방법을 알아보겠습니다. 각 Node와 연결되는 간선의 정보를 배열에 저장합니다. ex) Edge {A, B, 1} 각 Node의 부모 노드를 판별하기 위한 Parent 배열을 생성합니다. (Node의 알파벳을 각 번호로 변) 초기 값은 자기 자신을 부모로 지정합니다. 크루스칼 알고리즘을 통한 ..
목차 다익스트라 알고리즘 코드 예시 다익스트라 알고리즘 시작점에서 도착점까지 최단 거리를 구하는 알고리즘 각 노드 간 연결에는 가중치가 있어 DFS로 구하는 거리가 아닌 실제 거리를 따져서 최단 거리를 구하는 알고리즘으로 우선순위 큐를 활용한다. 위와 같이 연결된 그래프에서 A에서 H로 가는 최단 거리를 구하는 과정으로 다익스트라를 설명하겠습니다. A에 연결된 경로는 B, C, D이고 가중치는 각각 3, 1, 2입니다. 아직 확인하지 않은 지점까지의 거리는 2^30으로 표현하겠습니다. Queue B, C, D A B C D E F G H 0 3 1 2 2^30 2^30 2^30 2^30 Queue에는 B, C, D가 저장되고 각 거리를 확인해 두었습니다. 우선순위 Queue에 의하여 가중치가 가장 적은 ..
Go 언어로 웹 서버를 생성하고 JSON을 다루다 보면 json.Marshal과 json.Unmarshal을 하게 됩니다. 정확히 어떤 작업을 하는지 용어 정리 겸 개념을 잡기 위하여 marshaling과 unmarshalin의 의미에 대하여 기록하겠습니다. 목차 데이터 직렬화란? marshal과 unmarshal 데이터 직렬화란? 데이터 직렬화는 데이터를 바이트 스트림 또는 다른 형식으로 변환하는 프로세스를 의미합니다. 이 과정에서 데이터를 저장, 전송 또는 공유하기 위해 데이터를 특정 형식으로 표현하는 방법입니다. 특히 웹 API에서는 주로 JSON 또는 XML과 같은 데이터 직렬화 형식을 사용하여 클라이언트와 서버 간의 데이터 통신을 수행합니다. marshaling과 unmarshaling 데이터를..