IntroDelta format에 대해서 알아봐야겠다는 생각을 하던 참에, 뿌리를 뽑아두면 좋을 것 같아서 delta가 풀고자하는 기본 개념과, 어떻게 구현되었는지 감을 잡기 위해서 간단한 동작을 체크해보았습니다.Delta Lake의 탄색 배경 (feat. ChatGPT)빅데이터 환경이 발전하면서 데이터 레이크(Data Lake) 가 대규모 데이터를 저장하는 핵심 기술로 자리 잡았습니다. 하지만 기존의 데이터 레이크에는 다음과 같은 문제점들이 있었습니다.1. 데이터 무결성 부족데이터 레이크는 주로 Apache Parquet, ORC, Avro 같은 파일 포맷을 사용하여 데이터를 저장하지만, 이들은 ACID(원자성, 일관성, 격리성, 지속성) 트랜잭션을 지원하지 않습니다. 따라서 다음과 같은 문제가 발생할..
최근 회사에서 가상 면접 사례를 통해 배우는 대규모 시스템 설계 스터디를 진행하게 되었습니다. 스터디는 사다리타기로 진행되었고, 그 결과 1장에 대한 정리를 제가 맡게 되었습니다.이 책은 이미 워낙 유명해서 1장의 내용은 노션 링크로 간단히 공유하고, 이번에는 책에 나와 있는 내용뿐만 아니라, 스터디 중에 나온 질문들과 추가로 얻은 인사이트를 정리해보려고 합니다.실무에서 배우는 시스템 설계사실, 현재 현업에서 일하고 있는 상태다 보니, 팀원들 모두 기본적인 시스템 지식은 갖추고 있습니다. 그래서 단순히 책 내용을 정리하는 데 그치지 않고, 실제 현업에서 어떻게 적용하고 있는지에 대한 이야기를 나누게 되었습니다.1장에서 다룬 핵심 내용은 웹 애플리케이션 서버(Web Application Server, WA..

개요async/await 문법을 사용하면 비동기 태스크가 이벤트 루프(event loop)에 등록되어 동작한다는 것은 알고 있지만, 정작 이벤트 루프 내부가 어떻게 동작하는지는 제대로 파악하지 못했습니다. Python의 이벤트 루프를 막연히 사용만 하고 있었는데, 이를 좀 더 깊이 파악해보고 싶어 코드를 직접 살펴보며 정리해보려고 합니다.특히 다음과 같은 점들이 궁금했습니다.이벤트 루프의 정의는 정확히 무엇일까?이벤트 루프에서 등록된 태스크들은 어떻게 관리될까?이벤트 루프는 어떻게 생성되고 관리되는 걸까?네트워크 I/O 연산은 어떻게 처리되고, 처리 완료 후 이벤트 루프에서 어떻게 콜백이 실행될까?위 궁금증에 답하기 위해, Python 내부 코드를 직접 따라가며 이벤트 루프가 어떻게 구현되어 있는지 살펴..
개요최근 몇 년 동안 머신러닝(ML)은 그야말로 뜨거운 주제였습니다. 특히, 이미지 인식, 자연어 처리, 자율주행 차량 등의 분야에서 ML의 활용이 폭발적으로 증가하고 있으며, 앞으로도 한동안 ML을 사용하는 흐름은 유지될 것으로 생각합니다. 저는 스타트업에서 추천 시스템을 만들면서 이 여정에 동참했으며, 이후 이직을 통해 ML을 잘 사용하는 팀에 합류하여 ML을 효과적으로 활용하는 방법과 더 잘할 수 있는 방안을 고민하고 있습니다. 현재 저는 Machine Learning Software Engineer(MLSE)로서 일하고 있으며, 이 글을 통해 MLSE로서 필요한 역량과 커리어 개발 방향성에 대해 이야기하고자 합니다. 이러한 목표를 이루기 위해 앞으로 어떤 부분을 더 공부하고 개선해야 할지, 이 글..

Introduction애플리케이션을 운영하다 보면 요청이 느려지거나, 심한 경우 에러가 나는 경우를 경험한다. 이런 문제를 해결하기 위해서 여러 가지 로그와, CS 지식을 활용하여 추측을 해나가면서 문제를 진단하고 해결해 나가는 과정을 겪게 된다. 모든 소프트웨어 엔지니어가 겪는 문제라고 생각하고, 조금 더 쉽고 빠르게 문제를 진단하게 하기 위해서 Observability라는 개념이 나왔고, 이런 Observability를 높이기 위해서 사용하는 다양한 툴들이 존재한다. CNCF의 프로젝트 중 하나인 OpenTelemetry라는 프로젝트는 개발자가 OpenTelemetry를 사용하여 Observability를 높일 수 있는 환경을 제공하고 있다.OpenTelemetry란?공식 홈페이지에 정의되어 있는 한..
이 회고를 쓰는 목적지난 7년간의 경험을 되돌아보며 배운 점들을 정리하고, 앞으로 방향성을 공유하려고 합니다.일한 History2017년 11월: 데브시스터즈 데이터 엔지니어로 첫 시작2020년 9월: 데브시스터즈 퇴사 후 스타트업 빅펄 조인2024년 2월: 빅펄 퇴사2024년 5월: 하이퍼커넥트 입사나중을 위해 제 LinkedIn 프로파일 남겨둡니다: https://www.linkedin.com/in/hyunsukshin/데브시스터즈에서의 기억들2017년 11월, 인턴으로 입사한 지 한 달 만에 사수가 떠나면서 회사 내 유일한 데이터 엔지니어가 되었습니다. 모르는 것이 많았던 그 시절, 여러 문제들이 터지면 몸으로 해결하려고 했습니다. 새벽 1시에 도는 배치 잡들이 터질까 봐 불안해서 그때까지 지켜보거..
글또 10기와 함께하는 새로운 시작이번에 개발자 글쓰기 모임인 글또 10기에 합류하게 되었습니다. 사실 저는 이직 시즌에 잠깐 알고리즘 문제를 블로그에 올리며 글쓰기를 시작했지만, 어느새 6개월 동안 방치해 두고 말았습니다. 회사 적응, 휴식, 유튜브, 게임 등 여러 가지 핑계를 대며 글쓰기를 미뤄왔던 것 같습니다.하지만 마음 한편에는 항상 글을 다시 써야겠다는 생각이 자리 잡고 있었습니다. 그래서 이번 글또 10기에 참여하면서, 글쓰기를 습관으로 만들어보려 합니다. 이 글을 통해 글쓰기가 왜 필요한지, 그동안 실패했던 이유는 무엇이었는지, 그리고 이번에는 어떻게 다르게 접근할지 정리해보려고 합니다. 앞으로 6개월 동안의 다짐도 함께 적어보겠습니다. 1. 글쓰기, 논리적 사고의 열쇠 글쓰기를 하다 보면..

오늘 리뷰할 문제는 palindrome partitioning 2이다. https://leetcode.com/problems/palindrome-partitioning-ii/ int: def is_palindrome(string: str) -> bool: return string == string[::-1] cache = {} def solve_min_cut(i: int, j: int) -> int: key = (i, j) if key in cache: return cache[key] if is_palindrome(s[i:j]): cache[key] = 0 return 0 min_cut = j - i + 1 for index in range(i + 1, j): if is_palindrome(s[i:ind..

오늘 리뷰할 문제는 word ladder 이다. https://leetcode.com/problems/word-ladder/ Word Ladder - LeetCode Can you solve this real interview question? Word Ladder - A transformation sequence from word beginWord to word endWord using a dictionary wordList is a sequence of words beginWord -> s1 -> s2 -> ... -> sk such that: * Every adjacent pair of words differs leetcode.com 이 문제는 시작단어, 끝 단어, 그리고 단어들의 목록이 있을 때...

오늘 리뷰할 문제는 126. word ladder 3이다. https://leetcode.com/problems/word-ladder-ii/ Word Ladder II - LeetCode Can you solve this real interview question? Word Ladder II - A transformation sequence from word beginWord to word endWord using a dictionary wordList is a sequence of words beginWord -> s1 -> s2 -> ... -> sk such that: * Every adjacent pair of words diffe leetcode.com 이 문제는 시작단어, 끝 단어, 그리고 단..
- Total
- Today
- Yesterday
- word ladder 2
- 글또 10기
- substring with concatenation of all words
- leetcode 매일풀기
- permutation sequence
- scramble string
- 가상면접 사례로 배우는 대규모 시스템 설계
- 회고
- best time to buy and sell stock 3
- otel
- maximum rectangle
- text justification
- mlse
- binary tree maximum path sum
- 개발자 글쓰기
- hard mode challenge
- Python
- sudoku solver
- distinct subsequences
- datalakehouse
- first missing positive
- longest valid parentheses
- valid number
- palindrome partitioning 2
- leetcode 매일 풀기
- slay the spire에 진심인편
- leetcode
- n queens 2
- wildcard matching
- 알고리즘
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | ||||
4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 | 12 | 13 | 14 | 15 | 16 | 17 |
18 | 19 | 20 | 21 | 22 | 23 | 24 |
25 | 26 | 27 | 28 | 29 | 30 | 31 |