배경데이터베이스 테이블에서 emoji등 문자열을 저장해야하는 컬럼은 대부분 utf8mb4로 타입을 명시했다. utf8mb3는 emoji를 저장할 수 없기때문에 4바이트까지 저장할 수 있는 변수형을 사용해야한다는 것이다.그렇다면 utf8은 어떻게 3바이트를 저장하고 utf8mb4는 4바이트인걸까?이모지를 사용하기 위해서는 4바이트가 필요하다고 한다. 이모지가 4바이트를 차지하는지 어떻게 아는가?문자열과 이모지를 저장하기 위해 컬럼 타입을 utf-8mb4로 설정하고 간단하게 끝내는 것은 마치 이야기의 엔딩만 고치고 끝난거 같아서 이전까지 '알았다고 생각했던' 문자 인코딩에 대해서 한번 더 짚고 넘어가고 싶었다. ASCIIAmerican Standard Code for Information Interchang..
역사가 재밌었는데...어렸을때 유일하게 허락된 만화는 세계인물전 만화책이었습니다. 흥미롭고 자기 분야에 최고인 사람들이 미화된 만화였습니다. 여러 유적지를 여행하면서도 역사는 즐거웠습니다. 공간뿐만 아니라 시간까지 여행하고 그속의 이야기가 재밌었습니다. 당연히 역사 관련 진로를 생각했고 이전 시대의 문화에 대해서 탐구하는 나의 모습만이 제가 상상한 나의 미래였습니다. 하지만 인문대만 생각했고 고등학교까지 언어를 전공한 저는 언어를 못한다는 것을 뒤늦게 깨닫고 점수가 이끄는대로 공대에 진학하게됩니다...이번생에 컴공은 처음이라더이상 나를 괴롭게 했던 언어는 이제 만나지 않아도 되는 줄 알았습니다. 하지만 저를 기다리는 것은 앞으로 컴퓨터와 대화할 C언어, JAVA등 프로그래밍 언어들이었습니다. 언어는 항상..
💡 병렬화 및 내결함성의 세부 사항을 추상화하는 대규모 데이터셋을 처리하기 위한 프로그래밍 모델 Cluster Master Node 분산 파일 시스템을 관리하고 워커 노드가 수행할 작업을 예약한다. NameNode: 파일 시스템 메타 데이터를 관리 Job Tracker: 워커 노드에서 작업 실행을 조정 Worker Node 데이터를 처리하는 작업을 실행하는 시스템이다. 데이터 블록을 저장하고 마스터노드로부터 할당된 테스크를 수행한다. 하둡에서 데이터는 분산된 방식으로 워커 노드에 저장된다. 맵리듀스 모델은 그 데이터를 병렬 처리하는데 쓰인다. 이런 원리로 하둡은 대용량 데이터를 효율적으로 관리하고 데이터 분석과 머신러닝 같은 규모의 작업을 할 수 있다. Job 클라언트가 수행하는 작업의 기본 단위 (입력..
💡 큰 데이터가 있다면 하나의 서버를 키우는것보다 더 많은 서버에서 이를 분담 검색 엔진 개발을 위해 시작된 프로젝트 기능을 위한 크롤링 데이터를 색인하는 시스템 → 수십억 웹 페이지, 1조개 링크에 대한 데이터 저장 테라바이트 크기 이상의 데이터를 더 빠르게 정렬할 수 있게 되었다 HDFS 💡 대용량 파일을 다룰 수 있도록 설계된 파일 시스템 하둡의 파일 시스템 추상화 개념에 대한 구현체 중 하나 클러스터 전체에서 매우 높은 총 대역폭을 제공한다. 설계 특성 매우 큰(~MB, GB, TB, PB) 파일 스트리밍 방식의 데이터 접근 한 번 쓰고 여러번 읽는다 데이터셋은 생성 or 원본으로부터 복사 범용 하드웨어 쉽게 구할 수 있는 하드웨어로 구성된 대형 클러스터에서 문제 없이 실행되도록 설계됨 HDFS ..
올해는... 📈 캐글 데이터셋 내가 좋아하고 내 일상에서 찾을 수 있는 프로젝트를 하고 싶었다. 매일 여러 플랫폼의 웹툰을 보는 스스로를 발견하고 웹툰 데이터를 분석하면 좋겠다고 생각했다. 내 취향에 맞는 웹툰을 직접 추천해보면 기존에 플랫폼에서 서비스되고 있는 추천시스템을 이해하고 싶었다. 분석할 데이터를 찾는데 한국어 데이터셋은 없었고 영어로된 데이터셋을 찾을 수 있었지만 기대한 만큼의 웹툰 수가 아니었다. 분명 더 많은 작품이 연재되고 있다고 생각했고 한국어 데이터셋이 있다면 내가 몰랐지만 보고 싶은 작품을 찾는데 도움이 될거라고 판단했다. 직접 데이터를 수집하면서 분석에 특정 지표를 만들기 위해서 어떤 데이터 값이 있으면 좋을지 고민해볼 수 있었다. 1년동안 기록한 이 지표로 내 데이터가 많은(?..
파드는 컨테이너 그룹이다. 쿠버네티스에서는 기본 빌딩 블록이며 컨테이너를 개별적으로 배포하기보다 컨테이너를 가진 파드를 배포하고 운영한다. 일반적으로 파드는 하나의 컨테이너만 포함하는 경우가 많다. 파드의 핵심은 파드가 여러 컨테이너를 가지고 있는 경우에 모든 컨테이너는 항상 하나의 워커 노드에서 실행된다. 왜 필요한가? - 컨테이너는 단일 프로세스를 실행하는 것을 목적으로 설계되어 단일 컨테이너에서 관련 없는 다른 프로세스를 실행하는 경우 모든 프로세스를 실행하고 로그를 관리하는 것은 모두 사용자 책임이 된다. 이렇게 되면 모든 포로세스는 동일한 표준 출력으로 로그를 기록하기 때문에 어떤 프로세스에 대한 로그인지 파악하기 어려워진다. 따라서 각 프로세스를 개별 컨테이너로 실행해야한다. -> 여러 프로세..