분류 전체보기 374

복습 그리고 정리

PS + 데이터 엔지니어링 + 게임 개발지금까지 꾸준히 진심을 다해 파고들었던 분야들입니다.분명 개발이라는 큰 범주에 공통적으로 속하고한 곳에서 터득한 노하우를 다른 곳에서 활용하는 등 서로 직간접적으로 크고 작게 도움을 받았지만다소 파편화된 느낌이 들어 다시 차근차근 분야별로 정리해보려 합니다. 기존에 Notion에서 저만 알아볼 수 있도록그리고 블로그에서 개념 → 실습 위주로 작성되었던 것들을다른 누군가도 쉽게 이해할 수 있도록 집필한다는 느낌으로 문서화하려 합니다. 또한 각 분야의 어떤 지식이 다른 곳에서 어떻게 도움이 되었는지지금까지 단순히 감각적으로 느끼거나 깨달아도 별도의 기록 없이 지나갔던 것들을이번 기회에 하나하나 남겨가려고 합니다.

일상 2025.07.31

나는 어떤 사람이지? 일기를 써보며

일기를 써보며 느낀 점 너 자신을 알라너 자신을 알라- 소크라테스 유명인의 짧은 명언들이 모두 그렇듯 해석은 제각각이겠지만나 역시 내 나름대로의 해석을 내놓겠다. 나 자신을 아는 것은 매우 어렵다.. 그래서 그만큼 가치가 있다.. 그래서 이를 짚어낸 소크라테스의 저 말이 명언이 된 것이다! 사람들은 "저 사람은 어떤 사람인가요?" 라는 질문에는 비교적 어렵지 않게 이야기 한다. 하지만 "당신은 어떤 사람인가요?" 라는 질문에는 쉽게 답변하지 못한다. 일기라.. 막상 일기를 적다보면 '하루에 있었던 일을 기록하는 것'이라는 사전적 정의와는 큰 차이가 있다. 일상에서의 사건과 사물 하나하나에 대해 나 자신이 어떤 생각을 갖고 있고 어떻게 느꼈는지 반추의 연속이다 보니상술했듯 '나는 어떤 사람이지?'라..

일상 2025.07.23

이사 2

지난 일요일 이사짐 일부를 먼저 옮긴 뒤 오늘 나머지 이사짐을 마저 옮겼다.아침 8시에 일어나 15시까지 쉬지 않고 이사를 마무리했다. 짐 자체는 많지 않았고 미리 잘 분리 및 포장해 둔 덕에 짐을 옮기는 것 자체는 힘들지 않았다.짐을 옮겨주신 용달 업체 아저씨께서 이렇게 짐을 미리 잘 정리해둔 분은 처음봤다고 하셔서 기분이 좋았다. ㅋㅋ.. 문제는 침대였다. 겉보기에는 합판 몇개가 고작인 침대 프레임들의 무게 하나하나가 만만치 않아 굉장히 고생했다.더군다나 재조립 역시 문제였는데 거의 1시간 가까이를 조립했다 분해했다를 반복하며 겨우 마무리했다.조립 순서는 맞았지만 묘하게 볼트의 소위 '아귀'가 맞지 않는 상황들이 있었다.아마 옮기는 과정에서 프레임이 조금 휘었던 것인지.. 지금도 의문이다. 다행히 비..

일상 2025.07.22

이사

그동안 너무 기술 스택과 관련된 글들만 써왔다.비록 블로그 이름이 터칭 데이터이기는 하나다른 개발자 분들의 블로그에 비하면 너무 삭막한 것 같아 가끔 일상을 기록해 보려 한다. 오늘 새로운 곳으로 이사를 왔다.내년 3월로 입주 예정인 곳에 들어가기까지 남은 약 8개월 정도 남은 기간 동안나 자신을 다잡고 새로운 각오로 임하기 위해 갑작스레 이사를 결정했다. 컴퓨터 등 당장 필요한 짐들만 일부 가져왔다.나머지 가구는 다음 주 화요일 가져오기로 했다.쉽게 말해 이사를 두 번 하는 셈이다.. 이사를 온 후 첫 알고리즘 문제.골드 5 난이도의 DP 문제였는데 피곤해서 였는지 새로운 환경에 덜 적응된 것인지 평소보다 시간이 조금 더 걸렸다. 이사글을 첫 일상글로 적다니..블로그에 일상을 적으시는 분들은 어떤 글을..

일상 2025.07.20

Cache & Persist

Spark 고급과 Spark ML Shuffling시 Skew 처리방식과 Spark ML에 대해 배워보자 Contents 1. 기타 기능/개념 살펴보기 2. Driver와 Executor 해부 3. 메모리 이슈 정리 4. JVM과 Python 간의 통신 5. Caching과 Persist 6. Dynamic Partition Pruning Caching과 Persist 어느 데이터시스템이건 반복되어서 사용되는 데이터가 있다면 메모리에 두는 것이 좋은데 Spark에서 사용법에 대해 알아보자 Caching 1. Caching이란 무엇이며 왜 caching이 필요한가? 2. 어떻게 DataFrame을 caching하는가? 3. 언제 caching하고 언제 하지 말아야 하는가? 4. Caching을 취소하는 방..

SparkML 2024.02.05

JVM Python

Spark 고급과 Spark ML Shuffling시 Skew 처리방식과 Spark ML에 대해 배워보자 Contents 1. 기타 기능/개념 살펴보기 2. Driver와 Executor 해부 3. 메모리 이슈 정리 4. JVM과 Python 간의 통신 5. Caching과 Persist 6. Dynamic Partition Pruning JVM과 Python 간의 통신 JVM과 Python 프로세스들간의 통신에 대해서 알아보자 PySpark Driver Python 프로세스 + JVM 프로세스 PySpark Memory (1) Spark은 JVM Application이지만 PySpark은 Python 프로세스 ● JVM에서 바로 동작하지 못함 따라서 JVM 메모리를 사용할 수 없음 spark.execu..

카테고리 없음 2024.02.05

Driver Executor OOM

Spark 고급과 Spark ML Shuffling시 Skew 처리방식과 Spark ML에 대해 배워보자 Contents 1. 기타 기능/개념 살펴보기 2. Driver와 Executor 해부 3. 메모리 이슈 정리 4. JVM과 Python 간의 통신 5. Caching과 Persist 6. Dynamic Partition Pruning 메모리 이슈 정리 Driver와 Executor에서 발생가능한 메모리 이슈들을 정리해보자 Spark 메모리 이슈 (OOM) ❖ Driver OOM ❖ Executor OOM Driver OOM 케이스들 큰 데이터셋에 collect 실행 큰 데이터셋을 Broadcast JOIN Python이나 R 등으로 작성된 코드 너무 많은 태스크들 Executor OOM 케이스들 너..

SparkML 2024.02.05

Driver Executor Memory

Spark 고급과 Spark ML Shuffling시 Skew 처리방식과 Spark ML에 대해 배워보자 Contents 1. 기타 기능/개념 살펴보기 2. Driver와 Executor 해부 3. 메모리 이슈 정리 4. JVM과 Python 간의 통신 5. Caching과 Persist 6. Dynamic Partition Pruning Driver와 Executor 해부 Driver와 Executor의 리소스 사용에 대해 알아보자 Driver의 역할 Spark Application = (1 Driver) + (1+ Executor) Driver는 다음 역할을 수행 ● main 함수 실행하고 SparkSession/SparkContext를 생성 ● 코드를 태스크로 변환하여 DAG 생성 ● 이를 exec..

SparkML 2024.02.05

Spark Scheduler

Spark 고급과 Spark ML Shuffling시 Skew 처리방식과 Spark ML에 대해 배워보자 Contents 1. Spark 기타 기능과 메모리 관리 2. Spark Shuffling 최적화 3. Spark Partition 학습 4. Spark ML 소개와 ML 모델 빌딩 5. ML Pipeline과 Tuning 소개와 실습 기타 기능/개념 살펴보기 자주 필요하지는 않지만 알아두면 좋은 기능들을 살펴보자 Spark Scheduler란? 하나의 Spark Application내의 잡들에 리소스를 나눠주는 정책 ● Spark Application들간에 리소스를 나눠주는 방식은 리소스 매니저에게 달려있음 다음 2 가지가 존재 ● “FIFO” (기본) ▪ 리소스를 처음 요청한 Job에게 리소스 우..

SparkML 2024.02.05