728x90
반응형
This is CS50 SQL.
Spring Boot와 MyBatis/JPA를 주력으로 사용하다 보면, 편리한 추상화 뒤에 숨어 'DB가 어떻게 동작하는지'를 간과하기 쉽습니다. 하지만 시스템의 병목은 결국 I/O에서 발생하고, 쿼리 한 줄이 전체 서비스의 레이턴시(Latency)를 좌우합니다.
하버드 CS50 Introduction to SQL 과정을 통해, 단순히 문법을 익히는 것이 아니라 RDBMS의 내부 아키텍처와 옵티마이저(Optimizer)의 관점에서 데이터를 다루는 법을 재정립했습니다.
* 이 과정은 특정 DBMS 툴 사용법이 아니라, 관계형 데이터베이스(RDBMS)의 보편적인 원리를 다룹니다.

과정의 마지막은 실제 서비스를 가정한 DB 설계를 수행하는 것이었습니다.
- 설계 주안점
- 확장성을 고려한 테이블 분리
- 자주 조회되는 컬럼에 대한 복합 인덱스(Composite Index) 전략 수립
- 뷰(View)를 활용한 복잡한 조인 쿼리의 추상화



결국 기술 스택이 아무리 화려하게 변해도, 시스템을 지탱하는 가장 깊은 곳에는 데이터와 쿼리가 있다는 사실을 다시금 깨닫습니다. 화려한 도구(Tool)를 쫓는 것보다, 변하지 않는 원리(Principle)를 이해하는 것이 엔지니어에게 얼마나 중요한지 깊이 실감했습니다.

728x90
반응형