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란?공식 홈페이지에 정의되어 있는 한..

오늘 리뷰할 문제는 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 이 문제는 시작단어, 끝 단어, 그리고 단..

오늘 리뷰할 문제는 binary tree maximm path sum입니다. https://leetcode.com/problems/binary-tree-maximum-path-sum/ Binary Tree Maximum Path Sum - LeetCode Can you solve this real interview question? Binary Tree Maximum Path Sum - A path in a binary tree is a sequence of nodes where each pair of adjacent nodes in the sequence has an edge connecting them. A node can only appear in the sequence at most once. N..

오늘 리뷰할 문제는 best time to buy and sell stock 3이다. https://leetcode.com/problems/best-time-to-buy-and-sell-stock-iii/ Best Time to Buy and Sell Stock III - LeetCode Can you solve this real interview question? Best Time to Buy and Sell Stock III - You are given an array prices where prices[i] is the price of a given stock on the ith day. Find the maximum profit you can achieve. You may complete at m..
- Total
- Today
- Yesterday
- wildcard matching
- first missing positive
- word ladder 2
- scramble string
- longest valid parentheses
- text justification
- 회고
- best time to buy and sell stock 3
- palindrome partitioning 2
- 알고리즘
- valid number
- n queens 2
- binary tree maximum path sum
- leetcode 매일 풀기
- leetcode 매일풀기
- slay the spire에 진심인편
- 글또 10기
- 가상면접 사례로 배우는 대규모 시스템 설계
- distinct subsequences
- datalakehouse
- permutation sequence
- substring with concatenation of all words
- sudoku solver
- otel
- mlse
- maximum rectangle
- Python
- hard mode challenge
- 개발자 글쓰기
- leetcode
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |