현실의 문제는 너무 다양하고 컴퓨터로 해결하기 어려운 문제도 있다. 가령 최적의 해를 구하기 위해 매우 많은 시간이 필요하거나 메모리 공간이 많이 필요한 경우들이 이에 해당한다. 컴퓨터는 연산속도에 한계가 있고 메모리 공간을 사용할 수 있는 데이터 개수도 한정적이라는 사실이 이러한 제약들을 발생시킨다. 그래서 연산 속도와 메모리 공간을 최대한으로 사...
Hadoop Deep Inside - Ch.3 하둡 분산 파일 시스템(HDFS) (3)
하둡은 2.0에 이르러서부터는 빅데이터의 핵심요소로서 완전히 자리잡았습니다. 하둡이 빅데이터 분야의 핵심요소가 되었다는건 그만큼 관련된 경험이 축적되었음을 의미합니다. 이는 모든 상황에서 예외없이 엄청난 자산이죠. 그래서 하둡은 2.0에서 축적된 많은 경험들을 토대로, 3.0에서는 사용자 편의 개선을 위한 다양한 시도를 했습니다. 물론 새로운 개념이...
이코테 Ch.5 이진탐색(Binary search) 알고리즘 (2)
부품찾기 """ 부품 n개가 있고 각 부품은 고유번호가 있음 m개의 부품을 구매하려는 고객에게 견적서를 만들어야함 부품이 있으면 yes, 없으면 no 출력 """ def binary_search(arr, target, start, end): while start <= end: mid = (start + end) // 2 if...
용어정리 8. Reed-Solomon(RS)
Reed-Solomon(RS)은 RAID에서 주로 사용되는 알고리즘입니다. 정확하게는 RAID6에서 사용됩니다. 하둡은 이 RS알고리즘을 가지고 Erasure Coding(EC)을 구현해 냈습니다. 기존의 Replication 방식은 너무나 많은 저장공간을 요구하기 때문에 RS 알고리즘을 기반으로한 EC를 통해 같은 수준의 fault toleranc...
문법정리 2. return None
알고리즘을 문제를 풀다가 마주한 return None. 예시 코드에서 함수를 선언하고 return 값으로 None을 주길래 당연히 None값만 반환될 것이라 생각했다. 그런데 실제 동작은 그렇지 않았다. return None이 있던 없던 함수 자체가 작동하는데는 별 영향을 미치지 않는다. 그럼 return None이 있던 없던 함수는 멀쩡히 동작...
이코테 Ch.5 이진탐색(Binary search) 알고리즘 (1)
순차탐색 순차 탐색은 리스트에서 특정한 데이터를 찾기 위해 앞에서 부터 순차적으로 하나씩 확인하는 탐색방법이다. 보통 정렬이 되지 않은 리스트에서 데이터를 찾아야하는 경우 사용한다. def sequential_search(n, target, array): for i in range(n): if array[i] == target: ret...
용어정리 7. RAID
RAID라는 말은 사실 HDFS를 공부할 때 한번쯤은 보게되는 용어입니다. 대표적으로 ‘HDFS의 데이터노드에는 RAID를 쓰지않는다’라는 짧은 문구를 보게되죠. 근데 사실 그냥 별 신경안쓰고 넘어가도 HDFS라는 것을 이해하는데 큰 영향은 없었습니다. 저는 안쓰면 말지 뭐 어쩌라고 하는 느낌으로 넘어갔었거든요. 다만 문제는 하둡 3.0부터입니다...
용어정리 6. 패리티(Parity)
최근들어 난해한 공부들을 많이하게 되는 것같습니다. EC 하나 공부해보려고 시작한게 RAID에서 이젠 Parity까지 왔습니다. 평범하게 이해할만한 내용은 또 아니니 이렇게 포스팅을 작성하고 아주 블로그가 풍년이에요. 솔직히 적당히 넘어가도 되는거 같긴한데 그럼에도 이걸 좀 공부해서 이해해보려는건 기본 CS지식에 해당한다고 해서입니다. 사실 요즘 ...
Airflow - GCP All-Open 방화벽 체크 자동화 (1)
이전 GCP의 방화벽 체크 및 슬랙 메세지 전송 포스팅과 이어지는 포스팅입니다. 이번 포스팅에서는 방화벽 체크를 자동화하기위해 Aiflow를 사용합니다. 이는 두가지 버전으로 나누어서 할 계획인데, 하나는 GCP 인스턴스에서 직접 Airflow를 설치하여 작동시키는 것이고 다른 하나는 Airflow로 워크플로를 만들고 배포하는데 도움을 주는 구글 ...
이코테 Ch.4 정렬(Sorting) 알고리즘 (2)
위에서 아래로 조건 첫번 째 줄에 수열에 속해 있는 수의 개수 N이 입력 ( N은 1 ~ 500 사이의 자연수) 둘째 줄부터 N+1번째 줄까지 N개의 수가 입력 (수의 범위 : 1이상 100,000이하 자연수) 입력 예시 3 15 27 12 출력 예시 : 내림차순 정렬 27 15 12 수의 개수가 500개 이하고, 수의 범위도 1...