본문 바로가기

server-side58

서버 프로세스와 백그라운드 프로세스, read committed 그림으로 공부하는 오라클구조라는 책을 2회독 하고 있다. 체감상 내용을 정리하지 않으면 기억에 잘 남지 않는다고 느껴서, 책에서 새롭게 알게 된 내용을 기준으로 정리를 해보려고 한다.   ✅ 서버 프로세스와 백그라운드 프로세스의 구분우선 DB는 멀티 프로세스이고, 이 여러 프로세스들은 크게 서버 프로세스와 백그라운드 프로세스로 나눠져 있다는 것을 처음 알았다. 멀티 프로세스까지는 예상했었는데, 프로세스별로 역할이 다른 줄은 몰랐다. 역할을 분리한 이유는 사용자의 요청을 효율적으로 처리하기 위해서라고 이해했다.  모든 프로세스가 차례대로 SQL 문을 받아서 파싱하고, 최적인 것처럼 보이는 수행 계획을 짜고, 실행한 다음 그 결과를 디스크에 기록하고(여기서의 디스크는 로그 디스크이며 데이터 기록용 디스크가 .. 2025. 2. 7.
MySQL 한 티스푼 뜨기 - Parser 문득 글을 쓰면서 내가 DB를 여러 기능을 가진 마법의 블랙박스처럼 대하고 있다는 생각을 했다. 사실 여러 상용화된 DBMS는 전부 프로그램인데... 소스코드를 찾아봐야겠다는 생각을 했다. 다행히 요즘은 GPT와 함께라면 뭔들 쉽게 도전해볼 수 있는 시대였다.oracle, mysql, mariadb, postgresql과 같은 dbms 중에서 오픈소스 dbms가 있을까? 나는 이 프로그램의 소스 코드를 보고 싶어. GPT 피셜 Oracle을 제외한 대부분의 데이터베이스는 오픈소스이며 깃허브 레포 등을 통해서 코드를 볼 수 있었다. 다만 오픈소스여도 라이센스에 따라 범위가 제한되어 있었다.  가령 MySQL은 GNU GPL 라이센스 하에 배포된다고 하는데, 이는 사적인 이익을 추구하지 않는 한(non-pr.. 2025. 1. 27.
DB - ACID, Isolation level, Query parsing & optimization 회사에서 DB 지식을 좀 쌓기 위해서 그림으로 공부하는 오라클 구조라는 책을 읽는 중이다. 아직 12장 중 4장까지만 읽었고 정독보다는 속독을 하는 중인데, 읽다보니 새삼 내가 DB에 대해서 제대로 아는 게 없다는 사실을 많이 느꼈다. 그래서 포스팅을 통해 현재까지의 내가 뭘 모르고 뭘 아는지를 정리해보려고 한다.  ✅ 내용 정리우리가 많이 들어본 Oracle, MySQL, MariaDB, PostgreSQL과 같은 데이터베이스들은 모두 DBMS(database management system)의 여러 종류들이다. DBMS는 데이터를 저장하고 꺼내올 수 있는 디스크나 메모리같은 저장 장치만을 의미하는 것이 아니라, 넓은 의미로는 DB의 4원칙이라 불리는 ACID를 보장할 수 있도록 관리해주는 시스템이라고.. 2025. 1. 26.
Django ORM 톺아보기 세션 과제 #1: DatabaseSchemaEditor 재정의해서 자동으로 db comment 추가하기 [진행중] 이제는 과제를 해보자. 슬라이드 뒤편에 과제 슬라이드를 첨부해 주셨으니 하나씩 읽으면서 해 보자.  ✅ 과제 #1: 이해하기슬라이드를 직접 캡처하기가 애매해서 말로 풀어서 써보겠다. 과제 #1에서는 테이블을 만들 때 '코멘트'를 넣는 작업을 하면 된다. 정확히는 django ORM에서 Model의 verbose_name, Field의 verbose_name 값으로 입력한 값이 필드의 '코멘트'가 되도록 하는 작업이다.  사실 나는 '코멘트'가 뭔지 잘 몰랐다. 블로그 글을 보면서 이해한 바로는 '코멘트'는 SQL(mysql, oracle 등) db에서 제공하는 하나의 기능으로, 필드나 테이블의 의미를 나타내기 위한 기능이라고 한다.  아래는 oracle db에서 코멘트를 추가하는 문법이다. COMMENT.. 2024. 12. 7.
Python으로 Webex 대화 내보내기 보호되어 있는 글 입니다. 2024. 12. 7.
Django ORM 톺아보기 세션: 이해한 내용 정리하기 지난 달 11월 9일에 Django ORM 톺아보기 세션이 열렸어서 가서 재밌고 유익하게 들었었다. ORM을 쓰는 방법은 그래도 대강은 알고 있다고 생각했는데, 쓰는 방법 말고 동작 원리에 대해서는 모르는 부분이 많았다. 특히 Queryset보다 더 밑단의 동작 원리(SQLCompiler, SQL과 QueySet 사이의 계층)에 대해서는 거의 처음 들어봤다. 역시 배워도 배워도 새롭고 신기한 것들 투성이였다.  다행히 슬라이드는 계속 열어 두신다고 하셔서 지금이라도 슬라이드를 훑어보면서 그때의 기억을 되살려 보았다. 예전에 듣기로는 학습을 하는 좋은 방법 중 하나는 내용을 보면서 무엇을 어떻게 이해했고, 무엇을 모르겠는지를 스스로 점검하는 거라고 했다. 오늘 그걸 해 볼 예정이다. 그러면서 과제도 해 보.. 2024. 12. 1.