달구름연구소 · TECH NOTES

개발 지식을 개념부터 정리

규격을 옮겨 적는 대신 왜 그렇게 됐는지까지. 개념 하나를 끝까지 따라가며 그림과 예제로 푼 기록.

최근 올라온 글

전체 글

무스키마 - ALTER가 없어도 마이그레이션은 남는다

Database · Backend

무스키마 - ALTER가 없어도 마이그레이션은 남는다

스키마 없는 저장소에서 구조를 바꾸면 잠금은 사라진다. 그런데 채우는 일과 옛 모양은 그대로 남는다.

멈추지 않고 스키마를 바꾼다 6편

헐어버린 벽 - 되돌릴 수 있는 변경만 한다

Database · Backend

헐어버린 벽 - 되돌릴 수 있는 변경만 한다

롤백 버튼이 못 하는 일이 있다. 어떤 변경이 한 방향인지 가려내고, 그 지점을 어떻게 뒤로 미루나.

멈추지 않고 스키마를 바꾼다 5편

마이그레이션 도구 - 공사 기록부가 하는 일

Database · Backend

마이그레이션 도구 - 공사 기록부가 하는 일

버전 표 하나로 무엇이 풀리고 무엇이 안 풀리나. 체크섬, 동시 실행, 반쪽 적용, 그리고 되돌리기 스크립트의 허상.

멈추지 않고 스키마를 바꾼다 4편

백필 - 이미 쌓인 5천만 행을 채운다

Database · Backend

백필 - 이미 쌓인 5천만 행을 채운다

새 컬럼을 만들면 기존 행은 전부 비어 있다. 한 번에 채우면 왜 안 되고, 끊어 채우면 무엇을 더 챙겨야 하나.

멈추지 않고 스키마를 바꾼다 3편

ALTER TABLE - 컬럼 하나 더하는 데 테이블이 멈춘다

Database · Backend

ALTER TABLE - 컬럼 하나 더하는 데 테이블이 멈춘다

추가만 하는 변경이 왜 서비스를 세우는가. 앞사람을 기다리는 줄, 테이블 재작성, 그리고 온라인 DDL의 값.

멈추지 않고 스키마를 바꾼다 2편

스키마 변경 - 코드는 되돌아가고 데이터는 안 돌아간다

Database · Backend

스키마 변경 - 코드는 되돌아가고 데이터는 안 돌아간다

배포는 한 번에 되돌아가는데 스키마는 왜 안 되는가. 이 시리즈가 무엇을 맡고 무엇을 맡지 않는지부터.

멈추지 않고 스키마를 바꾼다 1편

부하 테스트를 통과하고도 터지는 이유

Performance · Scaling

부하 테스트를 통과하고도 터지는 이유

부하 테스트가 초록불을 줬는데 프로덕션이 터진다. 테스트가 틀린 게 아니라 볼 수 없는 것이 있다. 시간, 사용자의 쏠림, 데이터 크기, 목으로 세운 외부 의존이 그 자리다.

부하 테스트 - 무너지는 지점을 미리 찾는다

Performance · Scaling

부하 테스트 - 무너지는 지점을 미리 찾는다

부하 테스트를 돌리면 숫자가 잔뜩 나온다. 그런데 그 숫자가 진짜인지는 어떻게 거느냐가 정한다. 같은 데이터만 부르고, 차가운 채로 재고, 한꺼번에 때리면 시스템이 아니라 테스트 자신을 잰 것이 된다.