본문 바로가기
  • 오늘도 한걸음. 수고많았어요.^^
  • 조금씩 꾸준히 오래 가자.ㅎ

IT기술/자료구조16

메트릭(Metric)이란? 시간이 지남에 따라 변화하는 데이터를 의미한다. 메모리 사용률, CPU 사용률, 스레드 사용률 등등.. 시간에 따른 추이를 추적할 가치가 있는 데이터를 메트릭(Metric)이라 부른다. 메트릭 수집은 마이크로미터(MicroMeter) 모듈이 담당하는데, 이는 엑츄에이터 안에 내장되어 있다 2023. 12. 8.
kafak 역할 공부, 링크공유 https://velog.io/@holicme7/Apache-Kafka-%EC%B9%B4%ED%94%84%EC%B9%B4%EB%9E%80-%EB%AC%B4%EC%97%87%EC%9D%B8%EA%B0%80 2023. 12. 8.
재해싱 체인을 사용하면 자료구조가 찰수록 λ는 1보다 큰 수가 됩니다. 그렇기 때문에 크기 조정이 필요합니다. 크기가 2배인 배열을 만듭니다. 아래 코드에 따라 data의 index를 다시 결정하여 연결 리스트의 요소들을 옮깁니다. // data의 index 결정 int idx = x.hashCode(s); idx = idx & ox7FFFFFFF; idx = idx % tableSize; 크기를 두배로 하면서 리스트의 위치를 새로운 배열에 그대로 옮기면 정보를 다시 찾고나 제거할때 올바른 위치를 찾을 수 없습니다. 그렇기 때문에 각 요소의 위치를 초기화 한 후, 처음부터 위치를 다시 지정해주어야합니다. 2023. 8. 7.
체이닝 (Chaining) 해시를 공부하다가 접한 문제인데, 해시는 사실상 배열 한 개에 요소가 추가되어서 만들어지는 것입니다. 체이닝은 이 배열의 위치마다 새로운 자료구조를 만들어 수많은 데이터를 수용할 수 있도록 만들어 줍니다. 체이닝 충돌을 피하기 위해 체인을 사용하는 방법이 있습니다 체인을 만들기 위해 우선 배열을 만들고 그 위치마다 리스트를 만들어 줍니다. [{ob1-1:dd,ob1-2:dd....}, {ob2-1:dd, ob2-2:dd....}, {ob3-1:dd, ob3-2:dd...}...] 이런느낌 위 그림과 같이 배열마다 리스트를 만들어주고, 자리가 찰때마다 add를 해줄 수 있습니다. 이렇게 체이닝을 하면 수용가능한 요소 개수에 제한이 없어지고 크기 조정도 자주 할 필요가 없어집니다. 적재율 λ는 항목의 개수를.. 2023. 8. 7.
MQ (Message queue)란 무엇인가? 자료 구조중에 Queue라는 형식이 존재합니다. Queue의 사전적 의미는 무엇을 기다리는 사람, 차량 등의 줄 혹은 줄을 서서 기다리는 것을 의미하는데 이처럼 줄을 지어 순서대로 처리되는 것이 큐라는 자료구조입니다. 큐는 데이터를 일시적으로 쌓아두기 위한 자료구조로 스택과는 다르게 FIFO(First In First Out)의 형태를 가집니다. FIFO 형태는 뜻 그대로 먼저 들어온 데이터가 가장 먼저 나가는 구조를 말합니다. 참고로 Stack은 "쌓다"라는 의미로, 데이터를 쌓아올린 형태의 자료구조입니다. 들어온 순서대로 나가는게 아닌, 가장 최근에 들어온 순부터 나가는 구조입니다. 큐와는 반대되는 게념이지요. 그렇다면, MQ는 무엇일까요? 쓰이다보니 어쩔수 없이 정리해봅니다. MQ(Message Q.. 2023. 8. 3.
자료구조론 -- 백석대학교 보호되어 있는 글 입니다. 2023. 5. 17.
[MQ] IBM MQ 구성 IBM MQ는 다음 링크에서 다양한 내용을 확인할 수 있다. https://www.ibm.com/docs IBM Documentation www.ibm.com 내가 정리하자면 mq를 관리하는 툴 중에 하나가 IBM MQ이다. 메시지를 큐에 담아 다른 시스템으로 전송하는데 outtage를 없게하고 순차 처리를 보장하기위해 MQ를 사용한다. 내가아는 다른 툴로는 Active MQ가 있다. https://www.ibm.com/docs/en/ibm-mq/7.5?topic=properties-message Message properties General pageThe following table lists the attributes on the General page of the Message properties.. 2023. 4. 20.
자료구조 - 스택(Stack), 큐(queue) 자료구조중에 스택과 큐를 같이 보는게 낫다. 둘다 성격이 비슷하기 때문이다. 스택(Stack)은 "쌓다"라는 의미로, 데이터를 차곡차곡 쌓아 올린 형태의 자료구조다. 위의 사진과 같이 데이터가 순서대로 쌓이며 가장 마지막에 삽입된 자료가 가장 먼저 삭제되는 구조를 가지고 있다. 간단한 예시로는 책상에 책을 쌓아두는 것과 포개 둔 일회용 종이컵을 하나하나 꺼내서 사용하는 것 과 비슷하다. 스택(Stack)의 사용 사례 웹 브라우저 방문기록 (뒤로 가기) 실행 취소(undo) 역순 문자열 만들기 후위 표기법 계산 큐(queue)는 스택(Stack)과 다르게 먼저 들어온 것이 먼저 나가는 "선입선출"로, FIFO(First In First Out)의 구조를 가지고 있다. 2022. 10. 10.
자료구조 - 그래프(graphe) 그래프가 무엇인지는 안다. 한 그림으로 정의하자면 이거다. 그러나 자료구조에서의 그래프는 애매하다. 데이터를 그래프화 시킨 것인지? 아니면 테이블 형식의 데이터를 그래프형이라고 하는건지? 문뜩 자료구조 라는 항목을 왜 만들었는지 이해가지 않는다. 쨋든 사전적인 의미는 단순히 노드(N, node)와 그 노드를 연결하는 간선(E, edge)을 하나로 모아 놓은 자료 구조, 즉, 연결되어 있는 객체 간의 관계를 표현할 수 있는 자료 구조이다. 위 사진처럼 각 점(N)들이 존재하며, 점들이 간선(E)으로 이어져 있다. 자료구조의 측면에서 각 노드들을 객체로 보며, 객체끼리 이어져 있는 관계, 거리 를 보는 것으로 파악된다. 트리도 그렇고 그래프도 그렇고 자료구조의 측면에서 보니 이해가 잘 안된다만, 듣기로는 상.. 2022. 9. 15.
자료구조 - 트리 (tree) 트리형 구조는 개발하면서 많이 보지 못했다. 예에전에 이론 수업때 들었는데, 윈도우 탐색기 부터 지도에서 길찾기나 신호등 로직 등에 쓰이는 것으로 알고있다. 그래프에서도 비슷한 현상이 보이는데 나중에 차이점을 별도로 정리하겠다. 사전적인 의미로 트리(Tree)는 계층적인 자료를 표현하는 데 이용되는 자료구조이다. 트리형 구조이다보니 계층 모델을 띄며, 계층(hierarchy)이 중요한 개념이다. 트리는 노드들로 이루어져 있으며, 그림으로 표시할 때 나무 모양처럼 되어 트리라고 부른다. 트리구조를 배워두면 데이터를 계층 구조로 저장할 때 정리를 편하게 할 수 있다. 트리 자료구조의 구성요소 - 루트 노드(root node): 부모가 없는 노드, 트리는 하나의 루트 노드만을 가진다. - 단말 노드(leaf .. 2022. 9. 13.
자료구조 - LinkedList Linked List는 Array List와는 다르게 엘리먼트와 엘리먼트 간의 연결(link)을 이용해서 리스트를 구현한 것이다. Linked list에서 가장 중요한 것은 연결이 무엇인가를 파악하는 것이다. linked list는 한 건물 내에서 한 회사가 임대한 사무실이 사진처럼 서로 떨어져 있다. 덕분에 직원이 늘어도 큰 걱정이 없습니다. 건물에서 비어있는 곳 아무데나 임대해서 들어가면 되니까. 그런데 방문자가 사무실을 찾는 방법이 비효율적이다. 위의 그림에 있는 방문자가 3번째 사무실을 찾아가려면 우선 첫 번째 화살표의 사무실을 찾아가야 한다. 이 사무실의 직원에게 다음 사무실이 어딘지 물어본다. 그럼 알려주는 사무실로 이동 한 후에 다시 물어봐서 그다음 사무실로 이동한다. 이렇게 물어물어 사무실.. 2022. 9. 12.
자료구조 - Array List 배열을 이용해서 리스트를 만드는 기능 데이터를 추가한다면 다음의 과정을 거친다. 데이터를 삭제한다면 리스트는 빈공간을 허용하지 않으므로 당겨진다. 이는 데이터를 추가하거나 삭제할때 시간이 많이 소요되는 단점을 가지고 있다. 그러나 장점은 데이터를 읽을 때 있다. 해당 주소의 위치나 인덱스 값만 알면 값을 바로 읽어올 수 있다. 리스트와 배열의 적절한 조화로써 사용된다. 2022. 9. 12.