HDFS(Hadoop Distributed File System) 이해하기
2023. 2. 5. 15:26
데이터 엔지니어링/Hadoop
HDFS 에 대해서 찾아보며 공부한 내용을 정리해보려고 한다. HDFS(Hadoop Distributed File System) 옛날에는 한 대의 컴퓨터에 많은 데이터를 저장했고 큰 작업들을 수행했다. 하지만 데이터의 양이 점점 많아지면서 한 대의 컴퓨터에서 처리하기에는 필요한 비용이 기하급수적으로 늘었다고 한다. 그래서 구글에서 저사양의 컴퓨터를 여러 대 모아 한대의 컴퓨터처럼 동작하는 모델을 설계했고 바로 그 모델이 GFS(Google File System) 이라고 한다. HDFS 는 GFS 의 모델을 바탕으로 설계되었다고 한다. HDFS 의 특징으로 저장된 파일은 데이터 무결성으로 수정이 불가능하다. HDFS 는 한번 쓰고 여러번 읽는 목적에서 설계되었다고 한다. 읽기 중심의 파일시스템이라고 생각할..
하둡(Hadoop) 에 대해서
2023. 2. 5. 15:10
데이터 엔지니어링/Hadoop
하둡(Hadoop) 이란? 하둡 에코 시스템에 대해서 이해하기 전에 하둡이 뭔지부터 알아야 한다. 하둡은 "대량의 데이터를 분산 처리하고 저장하기 위한 플랫폼" 이라고 말한다. 하둡 아래와 같이 분산 파일 시스템이라고 하는 HDFS(Hadoop Distributed File System) 과 분산 데이터 처리를 해주는 MapReduce(MR) 으로 구성되어있다. 추가로 하둡 2.0 버전부터는 YARN(Yet Another Resource Negotiator) 이라는 것을 통해 자원을 관리한다고 한다. 여기서 나오는 3 가지 요소를 시작으로 하둡에 대해서 이해하면 좋을 것 같다. HDFS(Hadoop Distributed File System) MapReduce(MR) YARN(Yet Another Res..
What is Docker
2023. 2. 3. 17:33
DevOps/Docker
도커에 대해서 이해한 내용을 적어보려고 한다. 솔직히 도커는 이렇다! 라고 잘 설명하기가 쉽지 않은 것 같다. 뭔가 알 것 같은데 잘 모르겠는 느낌? 그냥 도커는 컨테이너를 기반으로 하는 오픈 소스 플랫폼이고 이미지를 생성해 컨테이너를 실행한다. 그리고 컨테이너에 원하는 애플리케이션을 실행할 수 있다. 정도로만 이해하고 있는 것 같다. 하지만 누군가에게 설명할 때 도커는 이렇다라고 설명하기가 어려운 건 왜일까? 라는 생각에 다시 한번 정리해보는 시간을 가졌다. Docker 도커가 무엇인지 여러 블로그와 사이트들을 찾아보았다. 찾아본 결과 도커에 대한 정의는 다음과 같았다. 애플리케이션을 신속하게 구축하고 테스트하고 배포할 수 있는 소프트웨어 "플랫폼" 가상 머신처럼 독립된 실행환경을 만들어주는 "도구" ..
Python sorted() 함수 사용해보기
2023. 1. 23. 21:54
프로그래밍 언어/Python
파이썬 리스트를 정렬할 때 sorted() 함수를 사용해서 정렬하곤 하는데 sorted() 함수에 대해서 조금 더 공부해보고 정리해봤다. python sorted() 함수는 아래의 문서를 통해 더 자세히 확인할 수 있었다. https://docs.python.org/ko/3/howto/sorting.html Sorting HOW TO Author, Andrew Dalke and Raymond Hettinger,, Release, 0.1,. Python lists have a built-in list.sort() method that modifies the list in-place. There is also a sorted() built-in function that builds a... docs.pyth..
Python %-string / format() / f-string 으로 출력해보기
2023. 1. 23. 21:24
프로그래밍 언어/Python
파이썬에서 출력할 때 원하는 타입에 맞게 그리고 원하는 형태로 출력하기 위해서 f-string 을 사용해서 출력할 수 있다. f-string 에 대해서도 직접 사용해보면서 공부해봤다. 먼저 공부하면서 각 타입의 변수를 만들어보았다. 예제에서 사용할 변수들 %-string % string 을 사용해서 출력할 수 있다. 주로 C/C++ 에서 사용해봤다면 쉽게 사용할 수 있다. print("정수 : %i, 실수 : %f, log : %e, 문자열 : %s" % (print_int, print_float, print_log, print_str)) % 를 적어주고 각 타입을 나타내는 자료형을 적어준다. i : int f : float e : log s : string 그리고 자료형 앞에 변수의 자릿수와 소수점의 ..
Python 문자열 인덱싱과 슬라이싱
2023. 1. 23. 20:29
프로그래밍 언어/Python
문자열 인덱싱과 문자열 슬라이싱에 대해서 공부하고 정리해보려고 한다. 또한 인덱싱과 슬라이싱은 리스트에서도 같은 방법으로 사용할 수 있다. 지금은 문자열을 가지고 인덱싱과 슬라이싱에 대해서 공부해보려고 한다. 문자열 인덱싱(Indexing) 문자열 인덱싱이란 문자열의 각 문자마다 Index, 번호를 통해 가져올 수 있다. 따라서, 문자열 인덱싱이란 각 문자마다 지정된 번호를 통해 가져오는 것을 말한다. 문자열 인덱싱이 어떻게 되어있는지 직접 확인해봤다. 결과를 확인해보면 총 15 자리의 문자로 되어있고 각 자리마다 번호가 정해져있는 것을 확인인할 수 있다. 예를 들어, 인덱스가 8 인 문자를 출력해보면 "T" 가 출력되는 것을 확인할 수 있다. 반대로 T 의 인덱스 번호가 몇 번인지도 확인해볼수 있다. ..
자카드 유사도 (Jaccard Similarity) 이해하기
2023. 1. 23. 20:00
알고리즘/개념정리
자카드 유사도를 검색했을 때 자카드 유사도라는 단어보다는 자카드 인덱스(Jaccard Index), 자카드 거리(Jaccard Distance)와 같은 개념으로 된 설명이 더 많이 나오는 것 같았다. 먼저 자카드 유사도에 대해서 이해하기 전에 유사도에 대해서 알아봤다. 유사도 유사도란 A 와 B 가 얼마나 유사한지에 대해서 수치로 표현한 값을 말한다. 유사도를 측정하는 방법에는 아래와 같이 다양한 방법이 있다. 유클리디안 거리 맨해튼 거리 피어슨 상관계수 코사인 유사도 자카드 유사도 자카드 유사도 자카드 유사도에 대해서 간단하게 설명하자면 합집합을 교집합으로 나누면 된다. 따라서, 자카드 유사도의 공식은 다음과 같이 접을 수 있다. 자카드 유사도를 Python으로 구현해 보기 사실 자카드 유사도의 공식을..
Strings - Alphabet Rangoli (Python)
2023. 1. 23. 17:24
알고리즘/HackerRank
Summary 이 문제를 보자마자 문자열의 인덱스에 대한 이해와 join() 함수 그리고 center() 함수를 사용해서 풀면 되지 않을까 하는 생각이 들었다. 문제를 풀기 전에 Rangoli 가 궁금해서 무엇인지 찾아봤다. 인도의 전통 문양이라고 하고 아래와 같은 패턴을 가지고 있어서 이 문제의 이름을 Rangoli 라고 지은게 아닌가 싶었다. 다시 돌아와 우선 알파벳을 가져와 문자열로 저장해주었다. import string alpha = string.ascii_lowercase 알파벳 소문자를 가져오는 방법에는 여러가지가 있어서 생각나는 대로 가져오면 된다. 나는 구글링을 통해 string 라이브러리를 사용해서 알파벳 소문자를 가져왔다. 그리고 알파벳을 문제가 원하는 순서에 맞게 출력을 하려고 반복문..