Home
일기장 같은 블로그
Cancel

이코테 Ch.4 정렬(Sorting) 알고리즘 (1)

정렬 : 데이터를 특정한 기준에 따라서 순서대로 나열하는 것 개요 정렬 알고리즘은 이후에 나오는 이진 탐색을 위해서라도 제대로된 학습이 필요한 알고리즘이다. 정렬 알고리즘은 이진 탐색의 전처리 과정에 속하기 때문이다. 보통 데이터를 가공하면, 오름차순이든 내림차순이든 정렬을 사용하는 경우가 많기 때문에 정렬 알고리즘이라는 말에 큰 어려움...

Hadoop Deep Inside - Ch.3 하둡 분산 파일 시스템(HDFS) (2)

지난 포스팅들에서도 자주 언급했지만 하둡 2.0은 가장 굵직한 변화가 있었던 버전입니다. 네임노드의 이중화를 통한 고가용성(HA) 아키텍쳐 도입, Yarn도입을 통한 리소스 관리 및 스케쥴링 기능 등이 대표적인 예죠. 해당 포스트는 HDFS의 기능에 초점을 맞추고 있기때문에 HDFS가 하둡 2.0에서부터 어떠한 변화들이 있었는지에 초점을 맞춰 하나...

용어정리 5. 쿼럼(Quorum)

쿼럼(Quorum) 고가용성 하둡 아키텍쳐에 대해 공부하다보니, 쿼럼이라는 단어를 접하게 됐습니다. QJM(Quorum Journal Manager)이 바로 그것입니다. QJM에서는 저널노드를 최소 3대이상의 홀수대로 유지할 것을 권장합니다. 왜 저널노드는 3대 이상을 갖도록 권장하는 것일까요? 이유는 대단히 익숙합니다. 저널노드가 하나이면 ...

Python으로 Slack에 메세지 보내기

외부환경에서 slack에 메세지를 보내기 위한 방법은 크게 두가지가 있습니다. http통신을 하거나 slack SDK를 사용하여 통신하는 방법이 바로 그것입니다. 둘 중 무엇을 선택하든지 외부환경에서 슬랙에 메세지를 게시하려면, 기본적으로 Incoming webhook이라는 것을 사용해야합니다. 그리고 Incoming webhook은 슬랙에서 제공...

GCP - Google Cloud SDK

Google Cloud SDK Google Cloud Software Development Kit Google Cloud SDK는 구글 클라우드의 API들이나 서비스와 상호작용하기위해 사용되고, 사용자의 구글 클라우드 프로젝트들의 리소스를 관리하기 위해 사용되는 도구들의 집합입니다. 사용자는 이를 통해 다양한 공간에서 Google C...

GCP - All open된 GCP 프로젝트 방화벽 체크 및 슬랙 알림 설정

지난 GCP 방화벽 규칙에 대한 포스팅을 위해 검색을 하다가 재밌는걸 하나 발견했습니다. 모든 엑세스에 대해 오픈된 GCP 방화벽 규칙을 찾아주고 이를 슬랙 메세지로 전송해주는 코드가 바로 그것입니다. 저야 소소하게 가지고 놀던 개인 프로젝트니 문제가 생겨도 그냥 새로운 프로젝트를 만들면 그만인데, 만약 회사같이 더 많은 인스턴스가 있는 프로젝트를...

GCP - 방화벽 규칙

문제 상황 이전에 고가용성 하둡클러스터를 GCP에서 구축해놨었는데, 오랜만에 접속해보려하니 디도스 공격을 실행하였다면서 해당 프로젝트가 전체 블락이 걸렸습니다. 뭔가 싶어서 메일을 들어가보니, 이미 이런 경고 메일이 와 있었습니다. 핸드폰으로 메일오는걸 잘 봤어야했는데, 얼렁뚱땅 메일을 안읽고 넘겨버린 탓에 GCP에서 준 72시간의 유예시...

이코테 Ch.3 DFS/BFS (3)

미로 N * M 현재 위치 1,1 출구 N, M 1칸씩 이동 괴물 있으면 0 없으면 1 따라서 시작칸과 마지막칸은 항상 1 이때 탈출하기 위해 움직여야하는 최소 칸의 개수? 미로의 개념을 상기해보면, 결국 내가 있는 위치에서 주변을 보고 그 방향을 정해야한다. 즉, 나와 가까운 위치부터 탐색을 해야한다는 걸 의미하고...

용어정리 4. 노드(Node)

노드는 뭘까? 하둡을 봐도 노드가 있고, 최근에 알고리즘 공부할때도 노드가 등장합니다. 노드는 도대체 뭐길래 이렇게 자꾸 내 눈앞에 나타나는 걸까요. 별거 아니지만 왠지 궁금하니 한번 알아보도록 하겠습니다. 결론부터 말하자면 노드는 여러 요소들이 네트워킹으로 연결되어 형성된 하나의 집합이 가진 개개의 요소를 일컬어 노드라고합니다. 물론 어떤 상...

이코테 Ch.3 DFS/BFS (2)

이 문제는 0인 값이 상하좌우로 연결되어 있는 노드를 묶는 것이다. 그러기 위해서는 특정 지점에서의 상하좌우의 값이 0인지를 확인하고 0이면서 동시에 방문하지 않았다면, 그곳을 방문해야한다. 그리고 그 방문한 지점에서 상하좌우의 값이 0인지를 확인하고 0인 지점이 있다면 방문여부를 확인한다. 이 과정을 반복하여, 상하좌우의 값이 1이거나 방문한 ...