DB쿼리에 대한 나의 생각변화

sunn_ni·2025년 8월 7일
0
post-thumbnail

최근에 하고있는 고민들에 대해서 기록을 남아보려한다.
이전에도 계속 무엇인가를 개발할때마다 생겼던 질문들인데

대체 좋은 쿼리는 뭘까?


1. 내가 기억하기로는 처음에 생겼던 질문중 하나는 ..

select * from 으로 해서 전부 조회한다음에 코드로 필요한부분을 쓰는게 좋나? 아니면 필요한 부분만 select하는게 좋을까?

처음 입사하고나서 이 부분에대해 사수분께 여쭤본적이 있는데,
사실 지금 엄청 복잡한걸 건들지 않으니 크게 상관은 없을거고, 실행시켜서 해봐~

라는 답변을 받았었는데, 테스트를 해봐도 엄청 복잡한게 아니다보니 시간차이를 알아볼수 없어서 실패했었다. ㅋㅋㅋㅋ

GPT

운영 환경이나 실서비스 코드에서는 SELECT *를 지양하고, 필요한 컬럼만 선택하는 것이 일반적인 베스트 프랙티스입니다. 
성능, 유지보수성, 코드 명확성 측면 모두에서 이점이 크기 때문입니다.

라고 답을 해주었고, 일부 동의한다.
이제는 그저 상황에 그때그때 상황에 맞게끔 판단하고있다.


2. 두번째 생긴 질문은,

그래서 좋은 쿼리는 뭔데?

굉장히 근본적인 질문이다.
이때는 한참 쿼리 최적화에 빠져서, 여기저기 컨퍼런스가서 관련주제있으면 듣고,
explain는 꼭 확인해보고 했었던 시기였는데,

그래서인가, 이때는 index잘 타고, 원하는값 나오고, 빠르고, 부하가 적고 그게 좋은쿼리 아닌가? 라고 결론을 지었던 것 같다.


3. 현재 생긴 질문은..

원하는 값은 잘 나오고 index잘 탔는데.. 그래서 그렇게 복잡한 쿼리가 나을까?
두번 조회하더라도 알아보기 편한게 좋을까?

2번때의 내가 짰던 쿼리들을 보면 한참.. join이랑 각종 것들을 엄청해서
나름 최적화시키고, db조회는 최소화로 하는 방법으로 쿼리를 작성했었다.

그러다보니, 이후에 해당 쿼리에 수정을 해야한다 하면.. 정말 수정하기가 복잡해졌다..
거기다가 동적쿼리도 하려고했다보니 한번 수정하기가 너무 힘들었다.
GPT가 요즘엔 도와줘서 그래도 괜찮다 싶다가도, GPT의 코딩은 좀 더 빡셀때가 많다 ㅋㅋㅋ

그래서 하면서도.. 이거 만든 나도 힘든데, 다른사람이 알아보기 좀 빡셀 것 같은데 라는 생각을 하고있었는데,

최근데 다녀왔던 2025토스컨퍼런스에서, 레거시 코드를 뜯어고친 것을 주제로 한 연사를 들었다.
다른부분은 아 그냥 묶고 분리하고 뭐 그런거군 하면서 듣고있다가,

레거시 query가 정말 너무길고 join도 여러번에 너무 복잡해서 
다 끊어내고 알아보기쉽게했다. 그래야 에러도 덜나고 디버깅도 쉽다

이런말을 하셨었는데,
아.. 나만하던 고민이 아니였구나 라는걸 깨닫고, 이 질문에 대해 다시한번 생각해보게되었다.

그래서 지금 현재 나의 생각은..

그치, 한번에 조회하는게 connection차지도 덜하고 좋지만,
하지만 그것이 협업을 할때 유지보수에 있어 지대한 영향을 준다면 성능보다 더 앞으로 크게 작용을 할 수 있겠구나

이다.


앞으로의 나의 생각이 어떻게 변하게 될지 나도 궁금하다.

profile
방황중인 서버개발자

0개의 댓글