해당 글에서는 Redis에 대해 본격적으로 사용해보기 전에 Cache/CacheDB란 무엇이고 다양한 CacheDB중에 왜 Redis를 사용하는지를 알아보겠습니다. Cache란? Cache 란, 미래의 사용 될 데이터를 빠르게 조회할 수 있는 곳(물리적 장소 또는 소프트웨어로 구현된 위치)에 두고서 사용하는 것을 말합니다. 보통 원본 데이터는 다른 곳에 있고 그것으로부터 copy된 데이터가 Cache에 존재합니다. 주요 개념 Cache hit: 조회하는 데이터를 Cache에서 찾을 때 Cache miss:조회하는 데이터를 Cahe에서 찾지 못했을 때 Hit ratio(rate): access시도 횟수 대비 cache hit의 비율. 이 값이(상대적으로) 높으면 캐시가 Cost-Effective하다. 캐시..
python에서 프로그램을 실행하면서 로그를 활용하고 계신가요? 로깅(logging)이란 로그를 남기는 행동으로 흐름과 시나리오를 확인할 수 있는 아주 유용한 도구입니다. 로그를 이용해 프로그램이 실행되는 시간, 사용자 등에 대한 정보를 남기고 저장할 수 있으며, 에러가 발생했을 때도 기존의 stack trace 이상의 정보를 제공받을 수 있습니다. 유용한 로그 정보를 저장하고 성능과 실행과정을 분석하고 진단할 수 있습니다. 이번 글에서는 python logging모듈을 통해 프로그램 실행 중 발생하는 로그를 남기고 활용하는 방법을 알아보겠습니다. logging 모듈 Python에서 기본적으로 제공하는 logging모듈을 통해 프로그램 실행 중 로그를 남길 수 있습니다. import python 특정 이..
해당 글은 지난 2022년 Playdata 부트캠프에서 진행한 내용을 회고하는 내용입니다. 부트캠프 참여하기까지대학교 3학년 올라갈 때 쯤 주변에서 빅데이터에 관한 얘기가 자주 들려왔습니다. 빅데이터가 뭐길래 이렇게 난리인가 궁금증이 생길 때 마침 전공과목으로 데이터 분석을 수강할 수 있었습니다. 데이터 분석을 배우면서 흥미가 생겼고 더 깊게 알고 싶어져서 따로 *K-MOOC에서 지원해주는 '빅데이터의 세계, 원리와 응용'라는 강의를 들었습니다. 대학교 4학년이 되어 AI와 자연어 처리 과목을 수강했습니다. 데이터를 추출 및 분석하는 프로젝트를 진행하면서 데이터를 통해 패턴을 파악하고 새로운 가치를 찾는 과정이 굉장히 매력적으로 느껴졌습니다. 데이터 분야로 취직하기로 마음먹은건 바로 이 시점이였습니다. ..
이번 글에서는 NLP 분야에서 대세 모듈로서 사용되고 있는 트랜스포머의 기반이 되는 어텐션 메커니즘에 대해 알아보겠습니다. 1. 어텐션 메커니즘이란? 어텐션 매커니즘은 주로 시퀀스 데이터를 처리하고 가중치를 할당하여 어떤 부분에 주목할지 결정하는 데 사용됩니다. 어텐션 메커니즘은 주로 기계 번역, 텍스트 요약, 이미지 캡션 생성 및 음성 처리 등의 작업에서 활용됩니다. 어텐션 메커니즘의 핵심 아이디어는 입력 시퀀스의 각 요소에 대한 "주의(attention)"또는 "중요도"를 할당하여 출력을 생성하는동안 특정 부분에 다른 정도의 주의를 기울일 수 있다는 것입니다. 이것은 특히 장거리 종속성 및 문맥 정보를 포착하는 데 유용합니다. 여기서는 어텐션 메커니즘의 큰 그림만 알아두시고 아래에서 더 자세히 설명하..
Spark Streaming 소개 - Spark Streaming이란? 실시간 데이터 스트림 처리를 위한 Spark API Kafka, Kinesis, Flume, TCP 소켓 등의 다양한 소스에서 발생하는 데이터 처리 가능 Join, Map, Reduce, Window와 같은 고급 함수 사용 가능 - Spark Streaming 동작방식 데이터를 마이크로 배치로 처리 계속해서 위의 과정을 반복(루프) 이렇게 읽은 데이터를 앞서 읽은 데이터에 merge 배치마다 데이터 위치 관리 (시작과 끝) Falut Tolerance와 데이터 재처리 관리 (실패 시) - Spark Streaming의 내부 동작 Spark Streaming은 실시간 입력 데이터 스트림을 배치로 나눈 다음 Spark Engine에서 처..
Kafka 중요 개념- Topics, Partitions, Segments 개념도 - TopicConsumer가 데이터(Message)를 읽는다고 없어지지 않음Consumer별로 어느 위치의 데이터를 읽고 있는지 위치 정보를 유지함Fault Tolerance를 위해 이 정보는 중복 저장됨 - Partition과 Segment하나의 Partition은 다수의 Segment로 구성됨Segment는 변경되지 않는 추가만 되는 로그 파일이라고 볼 수 있음 (Immutable, Append-Only) - Commit Log각 Segment는 디스킇상에 존재하는 하나의 파일Segment는 최대 크기가 있어서 이를 넘어가면 새로 Segment파일을 만들어냄그래서 각 Segment는 데이터 오프셋 범위를 갖게 됨Se..