첫번째 포스트에서 말하지 않고 넘어간 부분이 있습니다.
바로 데이터베이스 서버입니다.
저는 brew를 사용하여 MySQL을 설치하였는데 MySQL은 두개의 프로그램을 동시에 설치해 줍니다. 하나는 database client 이고 다른 하나는 database server입니다.
실습을 하면서 database server를 직접 다루는 것처럼 느낄 수 있지만 사실은 데이터베이스 서버는 직접 다룰 수 없습니다.
어떠한 경우에서든 데이터베이스 클라이언트를 사용해야하는데요.
mysql -u root -p
Enter password:
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 23
Server version: 8.0.25 Homebrew
Copyright (c) 2000, 2021, Oracle and/or its affiliates.
Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.
Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
mysql>
Welcome to the MySQL monitor이라고 되어있는게 보이죠.
이 MySQL monitor 가 database client중의 하나였던 것이고, MySQL을 만든 사람들이 서버에 접속할 수 있도록 기본적으로 제공하는 클라이언트가 MySQL 모니터인 것입니다. 그리고 이는 CLI(Command Line Interface)를 통해서 database server을 제어하는 프로그램인 것입니다.
또한, 클라이언트 종류는 생각보다 다양합니다.
- MySQL Workbench
- Sequel Pro
- HeidiSQL
- phpMyAdmin
- Toad for MySQL
- MySQL-Front
- Neor Profile SQL
- …
MySQL monitor의 장점
- 컴퓨터의 자원을 최대한 일 자체에 쓰기 위해서 GUI를 지원하지 않는경우(일반적인 클라우드 서버도 모두 CLI이기도 하죠)가 많은 반면에 MySQL monitor은 어디서든지 지원한다는 장점이 있습니다.
MySQL monitor의 단점
- 명령어 기반이기에 명령어를 기억해야 한다는점
MySQL에서 공식적으로 제공하는 mysqlworkbench라는 프로그램이 있는데 이는 GUI(Graphical User Interface)기반 프로그램으로 엘셀을 다루듯이 database서버와 소통할 수 있습니다.
Database의 서버와 클라이언트의 존재를 알았다면 더 엄청난 것도 할 수 있는것을 알 수 있습니다. 데이터베이스 서버에 데이터를 저장하고, 전세계에 있는 수만은 데이터베이 클라이언트 들이 데이터베이스 서버를 중심으로 데이터를 넣고 빼는것이 가능해지는 것입니다. |
DB에 관해서 앞으로 심화적으로 공부해야 할 것들
- 서브 쿼리 깊게 알아보기
- JOIN 에대해서 더 깊게 알아보기
- INDEX (성능상에 문제가 생겼을때 봐야할것)
- Data Modeling(Table을 어떻게 잘 만들것인지), 정규화 & 비정규화
- Backup - 하드디스크는 죽는다 언제 죽는지는 모르지만 죽는다. 백업의 필요성 (mysqldump, binary log)
- Cloud db service(RDS, Google Cloud SQL for MySQL, AZURE DB for MySQL, …etc) db 기능자체에 집중 할 수 있으니 backup 수월해짐.