320x100
320x100

SQL을 떠나고 싶어하는 이유 13가지

1. 테이블은 확장되지 않는다

 

2. SQL은 JSON이나 XML에 최적화 되어있지 않다

일부 SQL 데이터베이스는 JSON을 지원하는 기능을 내장하고 있지만 변환 비용이 발생한다

 

3. 마샬링은 시간 낭비다

데이터베이스는 테이블로 데이터를 저장하지만 프로그래머는 객체로 코드를 작성한다

결국 애플리케이션 설계의 많은 시간이 데이터를 객체로 변환하고, 이를 다시 SQL UPSERT로 역변환하는데 사용된다

 

4. SQL은 실시간 처리를 지원하지 않는다

SQL은 원래 일괄 처리와 대화형 분석을 위해 설계됐다

 

5. JOIN은 악몽이다

관계형 데이터베이스의 강점은 데이터를 정규화해 분리하는데 있다

문제는 다시 합치는 과정이다
JOIN은 대다수 작업에서 가장 많은 연산 비용이든다

특히 데이터가 RAM을 초과하기 시작하면 상황은 더욱 복잡해진다

 

6. 컬럼은 공간 낭비다

NoSQL의 핵심 개념중 하나는 컬럼에서의 해방이었다

새로운 값을 추가할 때만 태그를 붙이면 되며, 스키마를 수정할 필요가 없었다

대규모 테이블에서 새로운 컬럼을 추가하는 작업은 매우 번거롭고 시간도 오래 걸린다

 

7. 최적화는 한계가 있다

복잡한 쿼리에 대해서는 한계가 분명하다

 

8. 비정규화는 테이블의 가치를 무시한다

테이블을 비정규화하면 복잡한 JOIN 없이도 모든 데이터를 한 곳에서 조회할 수 있지만

이는 SQL과 관계형 데이터베이스 이론의 정수를 무시하는 결과가 된다

데이터베이스가 단순한 CSV 파일처럼 변해버리기 때문

 

9. 덧붙여진 기능이 성능을 해칠 수 있다

서브쿼리, 공통 테이블 표현식(CTE), 뷰, 윈도 함수 등은 쿼리의 복잡도를 급격히 높일 수 있다

 

10. 좋은 아이디어가 기존 기능을 방해한다

윈도 함수는 평균 값 같은 기본 분석 결과를 빠르게 계산할 수 있도록 설계되었다

그러나 많은 SQL 사용자는 내장 기능 대신 별도로 추가된 복잡한 기능을 선호한다

 

11. SQL 문법은 지나치게 취약하면서도 충분히 취약하지 않다

SQL은 악의적인 사용자에게도 과도한 권한이 주어지는 일이 발생할 수 있다

 

12. 세상 모든 데이터가 테이블에 맞지 않다

 

13. SQL은 사실상 표준이 아니다

 

 

 

 

 

 

Reference

 

SQL을 떠나고 싶지만 떠날 수 없는 13가지 이유

SQL은 인기와 성공에도 불구하고 수많은 모순을 안고 있다. 다소 투박하고 장황한 문법을 지녔지만, 개발자에게는 여전히 가장 단순하고 직접적인 데이터 추출 방법이다.

www.itworld.co.kr

 

300x250
728x90