logrotate에 대한 설명은 생략합니다. 기존 nginx logrotate 게시물들에는 머신에서 실행한 logrotate를 통해 docker 위에 올라간 nginx의 로그를 돌리는 것이 아닌, 머신과 동일한 위치에서 nginx를 실행하였을 때나 docker 컨테이터 내부에 logrotate를 포함시키도록하는 설정들만 확인할 수 있었기에 해당 게시물을 작성하였습니다. /etc/logrotate.d/nginx /home/ec2-user/proxy/data/*.log { daily rotate 14 missingok copytruncate compress dateext sharedscripts postrotate /usr/bin/docker stop $(/usr/bin/docker ps | grep ngi..
해시 테이블 키를 값에 매핑하는 데 사용하는 데이터 구조이다. 해시 함수는 필요한 값을 찾을 수 있는 버킷 배열에 대한 인덱스를 계산하는 데에 사용되며 버킷 배열에는 레코드가 저장되 있고 레코드는 해시 키를 통해 저장되고 버킷은 특정한 순서로 이루어진다. 오라클 데이터베이스의 해시 인덱스로 생각하면 편하다. DHT를 데이터가 여러 노드에 분산돼 있으며 노드가 P2P 네트워크의 버킷에 해당하는 데이터 구조라고 생각할 수 있다. DHT DHT는 해시 함수를 통해 데이터로부터 간결한 키를 생성하고 이 키는 P2P 네트워크의 데이터와 연결된다. 네트워크상의 사용자가 데이터를 요청하면 파일명을 다시 해싱하여 동일한 키를 생성할 수 있으며 네트워크에 있는 어떤 노드에든 해당 데이터를 찾도록 요청할 수 있다. DHT..
트라이 트라이, 또는 디지털 트리란 순서가 있는 트리 데이터 구조로, 데이터셋을 저장하는 데에 사용된다. 패트리샤 페트리샤란 문자와 숫자로 부호화한 정보를 검색하는 실용적 알고리즘(Practical Algorithm to Retrieve Information Coded in Alphanumeric)의 약자로 기수 트리라고도 한다. 패트리샤 트리는 트라이 형태의 간결한 표현 구조로써 자식 노드가 하나 뿐인 노드를 그 부모 노드와 병합한다. 머클-패트리샤 트리 패트리샤 트리와 머클 트리의 정의에 근거한 트리로, 루트 노드에 전체 데이터 구조의 해시 값이 있는 트리이다.
랄프 머클이 제안한 자료구조로써 대구모 데이터셋을 안전하고 효율적으로 검증할 수 있다. 머클 트리는 이진 트리로, 입력을 먼저 리프 노드에 배치한 다음, 자식 노드 쌍의 값을 함께 해싱하여 부모 노드의 값을 구하는 방식으로 머클 트리라는 하나의 해시 값을 얻ㅇ르 때까지 부모 노드의 값을 구해나가는 트리이다. 이진트리이므로 조회 시 logN의 시간 복잡도를 가져 탐색 속도가 빠르며, 해시값을 통해 이진 트리를 구성하게 되므로 데이터 위변조 시 빠르게 알아차릴 수 있다. 또한 풀노드를 저장하는 것이 아닌, 일부 노드만을 저장하여 라이트 노드로써 데이터를 저장할 수 있기에 효율적이다.