SQL을 왜 사용해야 하나요?

김재현·2022년 9월 4일
0

sql

목록 보기
1/12

유튜브 채널 노마드 코더의 SQL 관련 영상을 기반으로 작성하였습니다.

1. SQL이란?

아시다시피 대부분의 서비스와 프로젝트에서는 데이터베이스가 필요합니다. 그리고 SQL은 이러한 데이터베이스와 대화를 하기 위해 특별히 디자인된 언어이죠. SQL을 사용하면 데이터베이스를 이해하고, 데이터를 어떻게 모델할지 도움이 될 것입니다.

SQL은 프로그램이 언어가 아니라 쿼리용 언어입니다. 그래서 사람이 이해하기 쉽게 만들어져있고, 기본 개념과 원리는 주말에 시간을 조금만 할애한다면 충분히 이해할 수 있을 것입니다.


2. SQL을 다루지 않는 이유

하지만, 대부분의 개발자는 SQL을 다룰지 모릅니다. 바로 ORM 때문인데요. ORM (Object Relational Mapping)이 객체와 관계형 데이터베이스의 데이터를 매핑해주는 것을 돕습니다.

쉽게 말해 Python, Node JS 등 프로그래밍 언어로 코딩된 작업물을 SQL 형태로 변환해준다고 이해하시면 됩니다. 이러한 편의성 때문에 많은 개발자들이 ORM에 너무 의존하게 됩니다.

ORM을 사용하는 것이 나쁘다는 것은 아닙니다. 효율적이고 매우 좋은 기능이죠. 하지만, ORM 사용시 문제가 발생하거나 더 빠르게 작업을 개선해야할 때는 SQL을 사용할 줄 아는 것이 큰 도움이 될 것입니다.


3. SQL과 관계형 데이터베이스

데이터베이스에서 데이터를 저장하는 방법에 따라 부르는 명칭이 다릅니다. 예로들어 계층형 데이터베이스, 객체지향 데이터베이스, XML 데이터베이스, 키-밸류 스토어(KVS) 등이 있습니다.

SQL(structured query language)은 구조화된 쿼리용 언어로 행과 열의 형태로 구조화된 관계형 데이터베이스와의 대화를 가능하게 해줍니다. 관계형 데이터베이스는 엑셀 파일을 생각하면 이해가 쉽습니다.

엑셀의 시트에 행과 열이 있듯이, 관계형 데이터베이스의 테이블에는 행과 열이 있습니다. 행과 열의 형태로 데이터가 저장이 되면 SQL은 이 데이터들을 가지고 원하는 작업을 수행합니다.


4. SQL vs NoSQL

SQL이 구조화된 관계형 데이터베이스와 대화를 한다면, 그렇지 않은 쿼리용 언어도 존재하겠죠? 그것을 통틀어 NoSQL이라고 부릅니다. SQL과 NoSQL을 비교하는 것은 한국 음식과 한국 음식이 아닌 것을 비교해보라는 것과 같습니다. NoSQL의 카테고리의 범주가 크기 때문에 딱 잘라서 비교를 하기는 어렵죠.

큰 틀에서만 이야기를 하자면 SQL에서는 데이터의 구조가 꽤나 엄격합니다. 하지만 NoSQL에서는 데이터를 원하는 어떤 형태로도 저장이 가능합니다. 이 둘에는 장단이 있기 때문에 자신들이 어떤 데이터를 다루고 있는지 이해할 필요가 있습니다.

대부분의 경우 SQL로 커버가 다 가능합니다. 그렇기 때문에, 특별한 이유가 없으면 평범한 SQL로 시작하는 것을 추천합니다. 그 이후에 내가 사용하는 데이터베이스의 변경이 필요하다면 그때 NoSQL로 옮기는 것도 가능합니다. 현재 대다수의 회사, 정부 기관, 은행 등 다수 기관들이 SQL을 사용합니다.


5. 데이터베이스 순위

DB-Engines에서는 데이터베이스의 순위를 확인해볼 수 있습니다. Oracle과 MySQL이 주로 많이 사용되고 있습니다. 대부분의 대기업들은 Oracle을, 스타트업들은 MySQL을 주로 사용합니다. 문법이 거의 동일하기 때문에 무엇으로 시작해도 큰 문제가 되지는 않습니다.

여기서 볼 수 있는 것 처럼 데이터베이스 제품의 종류는 다양하며, 경우에 따라 표준과 다른 SQL 명령을 사용하기도 합니다. 이를 SQL 방언이라고 부릅니다. 하지만, 지금까지 많은 RDBMS가 표준화에 동참하여 기능을 확장해온 덕택에 현재는 방언이 많이 줄어들었습니다.


6. 출처

Youtube

Book

  • SQL 첫걸음
    • (1장) 데이터베이스와 SQL

0개의 댓글