수정일: 2019년 09월 26일
SQL query VS java (프로그래밍 언어)
java는 알고 있었지만 server 개발을 하면서 query 작성만으로 충분하다고 생각 했었다. 하지만 요즘은 java 로직을 어떻게 작성을 해야할지 더 신경을 쓰게 된다.
매일매일이 다른 변화를 대응을 해야하다보니 query만으로는 한계를 많이 느꼈고 확장성과 유연함을 위해서는 구조 설계 및 아키텍처 설계 능력의 필요성을 자연스럽게 느끼게 되었다.
그래서 최소한으로 db 데이터를 가져 오고, java 로직에서 더 가공을 할 수 있는 쪽으로 server는 점점 발전을 해 나가고 있다.
프로그래밍의 발전 성향으로 봤을 때도 query쪽으로, db쪽으로 발전을 하기 보다는 server 로직 단에서 더 발전을 하고 있음을 몸소 느끼는 중이다.
Server 부하 관리를 로드 밸런싱이 생겼고, 똑같은 Server를 빠르게 생성을 하기 위해서 docker 가 탄생을 하였다.
Db 부하가 발생하면? db를 추가하는 것은 어려운 기술을 필요로 한다.(요즘에는 AWS에서 손쉽게 읽기 전용으로 생성이 가능하지만 Server의 확장 처럼 유연하게 확장하기는 어렵다고 생각한다.)
query 작성 보다는 orm 쪽으로 언어의 특성에 맞게 다양하게 발전 중이라고 생각한다.
query는 정적이다. 동적으로 무언가를 하기가 어렵고, 서비스를 하는 입장에서 확장을 위해서라면 아키텍처 설계는 필수라는 것을 몸소 체감하고 있다.
한번 만들고 유지보수를 하지 않는 프로젝트라고 한다면 단일로 query를 작성하는게 나을수도 있지만 비즈니스, 서비스를 하는 회사라면 빠른 변화의 대응을 위해서는 로직 작성이 우선이 되어야 한다.
왜 서비스를 하는 회사들이 면접을 볼때 디자인 패턴이니, 구현상의 어려움이니 그런 질문들을 하는 이유가 왜 하는지 조금은 알 것 같다.
그때까지 난 query로 모든 것을 해결 하였기 때문에 어려움이 많이 없었다고 생각한다.
지금도 상품의 Sort 로직 작성을 생각하면서 좀 더 나은 방법이 없는지 이런 문제들은 어떻게 해결을 해야하는게 좋은지 더 나은 방법을 찾으려고 하는 것 자체가 많은 발전이라고 생각한다.(현재 서비스하는 시스템에서는 query로 해결 되어 있지만 확장성은 없다)
10년 이상 프로그래밍을 하였지만 아직 더 가야할 길이 먼거 같다.