-
빅데이터의 분산 처리 프레임워크(Hadoop, Spark)와 쿼리엔진
‘빅데이터를 지탱하는 기술’ 3장을 스터디하며 정리한 내용입니다. 수집된 데이터를 적재하고, 이를 분석할 수 있는 구조화 데이터로 만드는데까지의 흐름을 이해해보려 한다. 목표 Hadoop에서 구조화 데이터를 만들어서 집계할 때까지의 흐름과 Spark의 차이점에 대해 이해한다. Hadoop 위에서 구조화 데이터를 집계하기 위한 쿼리 엔진에 대해 이해한다. 1. 대규모 분산 처리의 프레임워크 구조화 데이터(Structured data): 스키마가 명확하게 정의된 데이터(테이블의 컬럼 명, 데이터형... Read More
-
Data Structure | Heap(Priority Queue)
기초를 C로 배우다가 언어를 Python으로 바꾸게 되면서, 구현 기준이 Python으로 바뀌었다..! 그래도 본질은 같으니까, 배운 것을 정리해보는 포스팅 Priority Queue Priority Queue는 우선순위가 높은 데이터가 먼저 나오는 구조이다. Stack: 나중에 들어온 데이터가 먼저 나감(LIFO) Queue: 먼저 들어온 데이터가 먼저 나감(FIFO) Priority Queue: 우선순위가 높은 데이터가 먼저 나감 우선순위가 필요한 자료구조의 예시를 들자면, 우선순위를 시... Read More
-
2023년 상반기의 발자국
그런데 한편으로는 참 신기하다는 생각이 들었다. 매번 저렇게 불안해했지만 일기장을 읽고 있는 지금 이 순간에서 돌아보면, 결국 내가 원하는 방향으로 조금씩 걸어온 게 보였기 때문이다. 잘 해낼 수 있을지 확신이 없어 늘 일기장을 찾으며 자신감 없는 모습을 내비쳤지만 어설프고 모자란 모습으로도 엉금엉금 발자취를 남기고 있었던 것이다. “생각하는 쪽으로 삶은 스며든다.” 내가 좋아하는 은희경 작가의 책 《생각의 일요일들》에 나오는 문장이다. (…) 헛발을 내디뎠다 생각했던 길에 내 발자취가 남아 지반이 단단해졌고... Read More
-
2022년 회고
Goodbye 2022 또 다시 12월이 돌아오고야 말았고, 난 아직 올해를 보낼 준비가 되지 않았다. 마지막 주가 되고 연초에 세웠던 계획을 돌아보니 다 달성하지 못해 급한 마음에 ‘올해를 더 잘보낼 수 있었는데’ 하는 생각으로 못내 하루하루가 아쉽고 소중하게 느껴지기 때문이다. (잃어버리려니까 비로소 아쉬워 보이는 것들일까?^.ㅠ) 연초가 되면 마음이 들떠서 뭐든 다 할 수 있을 것만 같아, 다 해낼 수 없는 많은 계획을 욕심내서 세워서 그런건데 말이다. A를 하고 있으면, ‘아 B도 해야하는데’라는 생각이 드니까, ... Read More
-
[SAIF 2022] Yoshua Bengio 'Why we need amortized causal and Bayesian World models' (Part 1)
Samsung AI Forum 2022(SAIF 2022)에서 열린 Yoshua Bengio 교수의 Keynote Speech인 ‘분할 베이지안 인과 모델이 필요한 이유(Why we need amortized causal and Bayesian World models)’를 듣고 우리말로 설명을 정리하였습니다. Yoshua Bengio - Keynote Speech 11월 8일 Day 1의 Keynote Speech는 AI의 캐나다 몬트리올 대학교의 컴퓨터학 교수 Yoshua Bengio가 맡았습니다. Bengio ... Read More
-
SAIF 2022로 느낀 점 두가지, 그리고 왜 강연에 참여하는게 중요할까?
SAIF 2022로 느낀 점 11월 8일~9일 양일간 Samsung AI Forum 2022이 팬데믹으로 인해 3년 만에 코엑스에서 대면 행사로 열렸다. Day 1은 SAIT(Samsung Advanced Institute of Technology; 삼성종합기술원)에서 Day2는 SR(Samsung Research; 삼성리서치)에서 주관하는 행사였고, 온라인으로도 실시간 참여가 가능했다. 나는 온라인으로 Day 1에 온라인으로 참여하였으며, 그 후기와 이와 관련한 생각을 남겨본다. 참여 이유 먼저 내가 이 포럼에 ... Read More
-
Array의 요소 개수 세는 방법 3가지
파이썬에서 데이터를 분석하면서 마주쳤던 곤란한 상황과 그 해결 방법에 대해 정리하고자 한다. DataFrame의 컬럼은 value_counts()를 이용해서 숫자를 셀 수 있다. 데이터 분석을 하면서 편리하기 때문에 자주 이용하는 메서드이다. 그런데 여기서 문제는, Scikit-learn을 이용하여 classification한 label은 numpy의 array형으로 반환되기 때문에 value_counts()를 사용하면 아래처럼 오류가 난다는 것이다. >> AttributeError: 'numpy.ndar... Read More
-
Jupyter Notebook - Cell 자동 줄 바꿈(line wrap) 적용하기
Jupyter notebook을 html이나 pdf로 변환하여 공유해야할 때가 많다. 셀의 코드가 한 줄에 길 경우 가로로 길게 스크롤을 해야하거나, 아니면 pdf로 변환했을 때 코드의 뒷부분이 잘려버린다. Jupyter notebook의 configuration에서 몇 가지 설정으로 자동 줄 바꿈을 적용하는 방법을 소개한다. 먼저 아래 명령어를 통해 jupyter notebook의 configuration 디렉토리를 확인한다. $ jupyter --config-dir 나의 경우는 /Users/awesome-d/.ju... Read More
-
리눅스(Linux) 기본 명령어
리눅스 강의를 듣고 리눅스 기본 명령어와 vi 편집기 기초 사용법에 대해 정리해본다. apple의 전 최고 디자인 책임자 조너선 아이브가 ‘처음부터 다시 시작해야한다’고 말하는 이 유명한 짤에 써진 명령어가 과연 어떤 의미를 가지는지 알아보자. 리눅스 명령어 쉘 프롬프트 상에서 입력 토큰의 종류 명령어 옵션: -기호로 시작되는 토큰 인자: -기호로 시작되지 않는 토큰 기본 명령어 sudo : super user(root)인 관리자 권한(root 계정)으로 실행 pwd : 현재 자신이 위치한 ... Read More
-
리눅스(Linux)에 대한 이해
개발에 필수적인 명령어 라인 사용법과 운영체제를 익히기 위해 리눅스 강의를 수강하며 리눅스에 대해 정리해본다. 리눅스란 리눅스의 마스코트인 펭귄 이미지 리눅스(Linux)는 유닉스(Unix)를 기반으로 만들어진 운영체제(Operating System)의 커널, 혹은 리눅스 커널을 사용하는 운영체제를 의미한다. 그렇다면 이게 무엇을 의미하는지 하나씩 살펴본다. 유닉스 먼저 유닉스(Unix)란 무엇인가. 유닉스는 동시 다중 사용자 및 다중 작업의 실행을 지원하는 대화식 운영체제이다. 1970년대 초반 A... Read More