태그: #fundamentals
GPU·LLM·MLOps·쿠버네티스, 그리고 마음가짐에 관한 글 · 19 편
배우는 방법을 배우기 — 기초와 유행을 가르는 기준, 깊게 팔 하나를 고르는 법
학습 전략은 대개 무엇을 배울지의 목록으로 나오지만, 실제로 필요한 것은 무엇을 안 배울지 정하는 기준입니다. 이 글은 기초와 유행을 가르는 한 가지 질문, 도구가 요점인 자리에서 그 도구가 구현한 아이디어를 배우는 규칙, 깊게 팔 하나를 고르는 세 가지 기준, 읽기가 왜 학습이 아닌지, 그리고 학습을 실행 가능한 증거로 남기는 방법을 다룹니다. 인출 연습에 대한 관찰과 그 관찰의 한계도 함
2026-08-15 · 13 분 읽기 #career#skills#learning#fundamentals#deliberate-practiceGit 내부 구조로 이해하는 명령어 — 객체, 참조, 인덱스로 다시 읽는 reset과 rebase
Git 명령을 외우면 매번 검색하게 되지만, 데이터 모델을 알면 명령의 동작이 추론됩니다. 이 글은 blob과 tree와 commit과 tag라는 네 가지 객체, 같은 내용이 언제나 같은 해시를 갖는 콘텐츠 주소 지정, 브랜치가 41바이트짜리 파일에 불과하다는 사실, 그리고 인덱스가 실제로 무엇을 담고 있는지를 cat-file과 ls-files로 직접 열어 보며 확인합니다. 이 모델을 알면
2026-07-26 · 20 분 읽기 #git#internals#git-objects#fundamentals#version-control동시성 vs 병렬성 — 다루기와 실제로 하기의 차이
Rob Pike의 유명한 구분 — 동시성은 여러 일을 "다루는" 것이고, 병렬성은 여러 일을 "동시에 하는" 것입니다. 스레드와 이벤트 루프, 경쟁 조건과 데이터 레이스, 뮤텍스와 데드락, 식사하는 철학자, 원자적 연산, 그리고 언제 async(I/O)가 이기고 언제 스레드(CPU)가 이기는지를 정리합니다.
2026-07-03 · 24 분 읽기 #concurrency#systems#fundamentals과학자처럼 디버깅하기: 가설 기반 디버깅
버그를 노려보며 코드를 이리저리 바꾸는 대신, 과학자처럼 가설을 세우고 예측을 하고 실험으로 검증하는 방법. 문제 공간을 이분 탐색으로 좁히고, 최소 재현 예제를 만들고, git bisect로 범인 커밋을 찾고, 에러 메시지를 실제로 읽는 법까지. 추측을 방법론으로 바꾸는 실전 디버깅 가이드.
2026-07-03 · 25 분 읽기 #debugging#engineering#productivity#fundamentalsURL을 입력하고 엔터를 누르면 벌어지는 일: 브라우저·DNS·TCP·TLS·HTTP·렌더링 전 구간 투어
주소창에 URL을 치고 엔터를 누르는 그 1초 사이에 얼마나 많은 일이 일어날까요. URL 파싱부터 DNS 재귀 질의와 캐시, TCP 3-way 핸드셰이크, TLS 핸드셰이크, HTTP 요청과 응답, 그리고 HTML 파싱과 크리티컬 렌더링 경로까지. 브라우저부터 픽셀까지 전 구간을 한 번에 훑는 웹 스택 투어입니다.
2026-07-02 · 21 분 읽기 #networking#web#fundamentals남이 쓴 코드 읽는 법
개발자는 코드를 쓰는 시간보다 읽는 시간이 훨씬 많습니다. 그런데 코드 읽기는 아무도 가르쳐 주지 않습니다. 진입점을 찾고, 모든 줄이 아니라 데이터를 따라가고, 테스트와 타입을 문서로 삼고, grep과 IDE 점프로 콜 그래프를 그리고, 직접 돌려 보며 print를 찍고, 뭔가를 바꿔 무엇이 깨지는지 관찰하는 법. 낯선 코드베이스를 빠르게 장악하는 실전 전략.
2026-07-01 · 22 분 읽기 #code-reading#engineering#onboarding#fundamentals코드에서 이름 짓기: 가장 어려운 쉬운 일
"컴퓨터 과학에서 어려운 것은 두 가지, 캐시 무효화와 이름 짓기뿐"이라는 농담에는 진심이 담겨 있습니다. 좋은 이름이 왜 구현이 아니라 의도를 드러내야 하는지, 이름 길이와 스코프의 관계, 헝가리안 표기법을 피해야 하는 이유, 검색 가능성, 불리언·함수·컬렉션 관례, 그리고 이름 바꾸기를 하나의 리팩터링으로 다루는 법까지 정리합니다.
2026-06-30 · 16 분 읽기 #clean-code#engineering#fundamentals정규식 제로부터 자신감까지: 문자 클래스·수량자·앵커·그룹·룩어라운드·ReDoS 완전정복
정규식이 늘 암호처럼 보였다면 이 글로 정리하세요. 문자 클래스, 수량자, 앵커, 그룹, 선택, 룩어라운드까지 구성 요소를 하나씩 쌓고, 탐욕적 매칭과 게으른 매칭의 차이, 파국적 백트래킹과 ReDoS, 그리고 정규식을 쓰면 안 되는 순간(HTML 파싱)까지 짚습니다.
2026-06-29 · 20 분 읽기 #regex#programming#fundamentals생일 역설과 해시 충돌 — 왜 23명이면 절반이 겹치는가
23명만 모여도 생일이 겹칠 확률이 절반을 넘습니다. 이 반직관적인 결과의 뿌리에는 √N이라는 근사가 있고, 같은 수학이 UUID와 해시 충돌 확률, 왜 128비트면 충분한지, 해시 테이블의 부하율과 리사이징, 그리고 git이 SHA-1에서 SHA-256으로 옮겨간 이유까지 관통합니다.
2026-06-27 · 20 분 읽기 #math#hashing#fundamentals스택 vs 힙: 메모리의 진실
스택과 힙은 그냥 "메모리의 두 영역"이 아닙니다. 프레임과 LIFO로 움직이는 빠르고 고정된 스택, malloc과 GC가 다스리는 동적인 힙, 그 사이를 잇는 포인터와 참조, 스택 오버플로와 OOM, 값·참조 의미론, 재귀 깊이, 그리고 소유권·GC·수동 관리까지. 프로그램이 실제로 메모리를 어떻게 쓰는지 밑바닥부터 파헤칩니다.
2026-06-24 · 29 분 읽기 #systems#memory#fundamentals실전 Big-O: 수학 불안 없는 복잡도
Big-O 표기가 실제로 무엇을 뜻하는지, 자주 나오는 복잡도 클래스를 현실 예제와 함께, 작은 n이나 캐시 때문에 상수가 이기는 경우, 중첩 루프나 N+1 쿼리에 숨어드는 O(n²), 공간 복잡도, 동적 배열의 분할 상환, 그리고 언제 최적화를 멈춰야 하는지까지. 수학적 엄밀함이 아니라 엔지니어의 직관으로 복잡도를 다룹니다.
2026-06-22 · 19 분 읽기 #algorithms#performance#fundamentals부동소수점: 0.1 + 0.2 는 왜 0.3이 아닌가
거의 모든 언어에서 0.1 + 0.2가 0.3이 아닌 값을 냅니다. 버그가 아니라 IEEE 754의 설계 결과입니다. 2진 부동소수점이 어떻게 수를 담는지, 왜 10진 소수를 정확히 표현할 수 없는지, 엡실론 비교와 돈 계산은 어떻게 해야 하는지, NaN·무한대·음수 0의 정체와 누적 오차까지, 부동소수점의 진실을 밑바닥부터 풀어냅니다.
2026-06-20 · 22 분 읽기 #floating-point#ieee754#fundamentals#numerics자기주도 학습이 나를 성장시킨다 — 커리어 갈망을 동력으로
리트코드와 채용 공고 앞에서 느끼는 불안은 사실 좋은 신호입니다. 결국 나를 성장시킨 것은 누가 시켜서가 아니라 내가 찾아서 한 공부였습니다. 커리어를 향한 갈망을 동력으로 바꾸는 법, 그리고 그 과정에서 무너지지 않는 법을 정리합니다.
2026-06-19 · 63 분 읽기 #culture#self-directed-learning#career-growth#fundamentals#motivation본질을 따라가기 — 변하지 않는 것을 추구하는 삶
트렌드에 휩쓸리지 않고 본질과 기본기에 시간을 쓰는 삶에 대한 기록입니다. 변하는 것과 변하지 않는 것을 구분하고, 제1원리로 생각하고, 3년 후의 나에게 부끄럽지 않은 선택을 하는 방법을 다룹니다.
2026-06-19 · 54 분 읽기 #culture#first-principles#essence#long-term-thinking#self-improvement재무제표 읽기 기초 — 손익, 재무상태, 현금흐름
기업을 이해하는 출발점인 3대 재무제표를 초보자 눈높이로 정리합니다. 손익계산서의 매출과 이익, 재무상태표의 부채와 자본, 현금흐름표의 영업현금흐름, 주요 비율과 레드플래그까지 다룹니다.
2026-06-18 · 34 분 읽기 #finance#financial-statements#accounting#investing#fundamentals유니코드와 UTF-8: 텍스트의 지뢰밭
바이트, 코드 포인트, 그래핌 클러스터는 서로 다른 층입니다. 왜 이모지 하나의 길이가 거짓말을 하는지, UTF-8·16·32는 무엇이 다른지, NFC/NFD 정규화와 é 문제, ZWJ로 엮인 이모지, 서로게이트 페어, 그리고 문자열 뒤집기가 왜 깨지는지까지 텍스트 인코딩의 지뢰밭을 한글·일본어 사용자 관점에서 깊이 파헤칩니다.
2026-06-16 · 21 분 읽기 #unicode#text#fundamentals타임스탬프와 타임존, 제대로
UTC로 저장하고 로컬로 표시하라. epoch와 ISO 8601, 오프셋과 타임존(IANA tz 데이터베이스)의 결정적 차이, 서머타임이 만드는 빈 시간과 겹치는 시간, 윤초, 절대 믿으면 안 되는 클라이언트 시계, 그리고 날짜와 순간의 구분까지. 시간을 다루는 개발자가 반드시 알아야 할 원칙을 실무 관점에서 정리합니다.
2026-06-14 · 23 분 읽기 #datetime#timezone#fundamentalsGit은 데이터를 어떻게 저장하나
Git을 매일 쓰면서도 내부가 어떻게 생겼는지는 모르는 경우가 많습니다. blob·tree·commit·tag로 이루어진 객체 모델, SHA 해시로 내용을 주소화하는 방식, 커밋 DAG, 브랜치는 그냥 포인터라는 사실, .git 디렉터리의 실제 모습, 같은 내용이 한 번만 저장되는 이유, 그리고 팩파일까지. Git의 진짜 데이터 모델을 파헤칩니다.
2026-06-13 · 27 분 읽기 #git#version-control#fundamentals시간에 대해 프로그래머가 믿는 거짓말
하루는 24시간이다, 1분은 60초다, 시계는 앞으로만 간다, 타임존은 고정된 오프셋이다. 프로그래머가 시간에 대해 당연하게 믿는 이 명제들은 전부 거짓입니다. 유명한 "시간에 관한 거짓말" 목록을 하나씩, 각각에 실제로 터졌던 버그를 붙여 풀어 봅니다.
2026-06-12 · 18 분 읽기 #datetime#timezone#fundamentals