본문 바로가기
개발일지/Kernel360

Kernel360 :: 기술세미나 준비, 발표 후기

by DanteMustDie 2024. 2. 14.
728x90

주제 선정, 이유

현재 제가 수료하고 있는 kernel360 과정에서는 일정한 기간마다 약 10분간 진행하는 기술세미나를 준비하고, 발표하는 시간을 갖고 있습니다.

우테코 유튜브에 올라오는 그 기술 세미나들과 맥락이 같습니다.

기술적인 주제 하나에 대해 자유롭게 발표를 하는 것이지요.

개발자로 살아가면서 알아야 할 것은 무수히 많은데 아마 늙어 죽을때까지 알아가기 바쁜 직업이 아닐까 그 중 제가 선택한 주제는 관계형 데이터베이스에서 쓰이는 SELECT의 조회과정과 이에 따라붙는 쿼리실행계획입니다.

다른 크루 맴버분들이 워낙 자바, ORM 관련되서 발표를 잘 해주시기 때문에 굳이 더 미지의 영역을 파헤쳐보자 라는 느낌으로 겹치기보단 다른 영역으로 스펙트럼을 넓히는게 좋다고 생각이 들었기 때문입니다.

요즘 아무리 JPA를 쓴다고 한들 결국 데이터가 저장되는 영역은 데이터베이스입니다.

JPA상으로도 테이블, 인덱스 생성 이런것도 다 가능하니까요.

이것 때문에 이 과정을 시작하면서도 항상 '객체지향적인 개발' 에 대해 고민하게 됩니다. 결국에 데이터가 저장되는 저장소는 객체지향과 유사한듯 상반된 환경이고 격변이 발생하지 않는 이상 어떻게 풀어가야 하는가? 로 말이죠.

그런고로 결국 관계형 데이터베이스를 알아야 한다~ 로 귀결됩니다.

준비 과정

일단 평소에 하지도 않던 발표를 하려니 막상 준비를 어떻게 해야할까? 갑갑했습니다.

그래서 거꾸로 주제를 보고 어떤 이야기를 하면 좋을까? 로 생각을 바꿨습니다.

10분이라는 짧은 시간동안 이야기를 할 것은 매우 한정되므로 중요한 내용만 핵심적으로 이야기 하자~ 하고요.

그러면 DBMS에서 가장 많이 쓰이는게 뭐고 그거에 따라 중요한건 뭘까? 하고 생각을 해보았습니다.

그렇게 보니 SELECT가 생각났고, SELECT를 쓰면 항상 따라오지만 일반적인 신입이나 초보레벨에서 잘 볼일이 없는 쿼리의 실행계획이 생각났습니다.

SELECT에 대해 이야기를 하자니 뜬금없이 SELECT만 덜렁 ~ 이야기 할 수는 없는 노릇이고, 그러면 어떠한 명령어들이 있는지를 이야기하자. 명령어들에 대해 이야기를 하자니 DBMS가 무엇인지, DBMS가 관리하는 DB는 무엇인지 그렇게 무의식중 꼬리물기로 하나 하나 이야기 할 거리들이 생각나서 정리를 하였습니다.

그렇다보니 목차가 다음과 같이 정리가 되었습니다

1. 개요

2. RDBMS란?

3. SELECT의 조회 과정

4. SELECT의 활용

5. 쿼리실행계획이란?

6. 실행계획 직접 확인해보기

그러곤 아주 공들여 스크립트 액션도 꼬박꼬박 넣으며 내용을 채워갔습니다. 이때는 참 준비하는거만으로도 나름 재밌고 설레더랬죠~ 오랫만에 집에 있는 '바이블'도 살펴보고 요즘 세상엔 저보다 훌륭한 개발자분들이 많기 때문에 다른 분들의 정리글도 살펴보고 이것이 바로 오픈소스의 참맛 발표를 한다는 것은 내가 모르는걸 습득하면서 같이 알아간다는 느낌으로도 괜찮은 접근법이지만 제 성격엔 최소한 듣는이보다는 잘 알아야 한다 라는 생각이 들어 복습하면서 공부하게 되는 계기도 되었습니다.

바이블을 논할때 스프링엔 '토비'가 있다면, DB는 이책이다.

그리고 커널360 블로그 글에는 올라가진 않았지만 배우는 사람의 입장에서 어떠한 것을 참고하면 좋을지 마지막에 꿀팁(?)을 남기며 발표 내용을 마무리 했습니다.

발표

어느덧 발표하는 날이 다가왔고, 발표 자체는 별 큰 소동없이 무난히 흘러갔습니다.

항상 발표하는 것을 보면서 아쉬웠던 점이 불을 다 끄고 모니터와 앞의 스크린에 의존하게 되기 때문에 기본으로 주어지는 템플릿은 흰색 배경이라 눈뽕이 심했습니다. 그래서 저는 보는이의 눈보호를 위해 배경을 짙은 회색으로 바꿔준 센스 🫡

발표 주제가 어떻게 보면 어려운 내용이기도 하면서 자칫 지루할 수 있기 때문에 듣는이로 하여금 최대한 이해가 쉽게 되고 루즈해지지 않도록 하기위해 짤방도 하나 둘 섞어가면서 PPT를 만들고 발표를 했는데 '빵🤣' 터지는거 까지는 아니지만 나름 피식하는 반응이 있었던 것을 생각하면 효과적이었다 라고 생각이 듭니다.

스크립트로 순차 재생되는 그 이면엔 이렇게 덕지덕지 레이어가...

위에서도 잠시 언급했지만 데이터베이스나 SQL을 공부한다면 어떠한 것을 참고하는 것이 좋은지의 대한 내용도 남겼었는데 사실 이 분야에선 DBA 커뮤니티 구루비 에서 유명한 전설의 존재인 '마농' 이라는 분에 대해 이야기를 해드렸습니다.

네이버 검색만해도 나오는 '신의 간증'

SQLD, SQLP 같은 자격증도 언급은 했었는데 추후 커널360 담당의 멘토분들께 여쭤보니 특정 벤더에 편중된 자격증이라 별로라는 이야기를 들었는데... 제생각엔 없는거보단 그래도 있는게 낫다고 생각은 듭니다. 내적인 동작 차이는 DBMS마다 차이가 크지만, 평범한 쿼리수준에서는 어느 벤더에서든 큰 차이가 없을꺼라 생각합니다.

발표가 끝나고나면 유튜브에도 영상이 올라가는데, 커널360 유튜브 채널이 아직은 비공개지만 전체공개로 바뀌게되면 제가 발표한 영상도 보실 수 있으실 것입니다.

블로그 작성

https://kernel360.github.io/blog/RDBMS#h-5-%EC%BF%BC%EB%A6%AC%EC%8B%A4%ED%96%89%EA%B3%84%ED%9A%8D

 

RDBMS의 조회과정, 쿼리실행계획 중요성

RDBMS의 조회과정, 쿼리실행계획 중요성

kernel360.github.io

위의 발표 내용을 기반으로 하여 커널360에서는 기술 블로그도 작성하고 운영하고 있습니다. 포스팅은 당연히 발표자 본인이 직접 합니다. 🫡 이 글은 기술세미나 준비, 발표 후기를 남기는 글이라 자세한 내용은 언급하지 않았지만 위 링크에서확인이 가능하니 관심있으시다면 보고 도움이 되시기를 빕니다.

반응형