brunch

You can make anything
by writing

C.S.Lewis

by 김유환 Sep 06. 2019

3. 데이터베이스 설치하기

데이터베이스가 설치가 일반 프로그램과 동일하다는 것을 보여줍니다

이 글은 SQL 입문자들이 데이터베이스가 신비한 물건이 아니라 평소 우리가 컴퓨터에 설치하는 다른 프로그램들과 동일하다는 것을 느끼게 하는것을 목표로 합니다. 이를 위해서, 반드시 직접 데이터베이스를 설치해볼 필요가 없으므로 설치 과정을 매우 간략화 시켰습니다.


배경

"데이터베이스 이해하기" 글에서 다루었던 데이터베이스 구조에 대해서 다시 한번 복습하고 넘어가도록 합시다. 데이터베이스는 DBMS 와 저장소 2가지로 구성되어 있고, 사용자는 데이터에 접근하기 위해서 반드시 DBMS 를 통해서 요청한다고 이야기했습니다. 데이터베이스의 개념적인 구조에 대해서는 지난 글에서 설명했지만, 실물을 보지 못하면 와닿지 않을 수 있습니다. 이 글에서는 데이터베이스를 직접 컴퓨터에 설치하는 과정을 봄으로써 데이터베이스와 더욱 친해지는 시간을 가지고자 합니다.


데이터베이스 종류

설치에 앞서 스프레드시트 기반 업무의 문제점 글에서 이야기했던 내용을 다시 한번 상기해봅시다. 테이블 형태로 데이터를 관리하는 프로그램을 스프레드시트 라고 부르며, 마이크로소프트 엑셀 과 구글 시트가 이에 해당한다고 했습니다. 다시 정리해보면, 스프레드시트는 프로그램의 종류를 의미합니다. 마이크로소프트 엑셀과 구글 시트는 해당 프로그램을 구현한 응용 프로그램입니다. 우리는 이 응용 프로그램을 컴퓨터에 설치하거나 브라우저를 통해 사용합니다.


데이터베이스도 마찬가지입니다. 데이터베이스는 DBMS 와 저장소로 구성해 안정적으로 데이터를 저장하고 강력한 분석 기능을 제공하는 프로그램 종류입니다. 이를 구현한 응용 프로그램은 MySQL, PostgresSQL, MS SQL 등 굉장히 다양합니다. 이 중에서 가장 유명하게 알려진 응용 프로그램인 MySQL(마이에스큐엘)을 설치해봅시다.


GUI vs CLI

설치에 앞서 한 가지만 더 배경지식을 익히도록 합시다. 지금은 운영체제(윈도우, 맥 OS) 바탕화면에 있는 아이콘을 클릭해서 프로그램을 실행시키는 방식을 일반적으로 사용하고 있습니다. 하지만, 초창기 운영체제는 검정색 바탕화면에 여러 글들이 써져있고, 여기에 텍스트로 명령어를 입력해서 프로그램을 실행시켰습니다. 최근 일반적으로 사용하고 있는 마우스 기반 방식을 GUI (Graphic User Interface), 과거에 사용했던 검정색 화면에서 키보드 기반 명령어 기반 방식을 CLI (Command Line Interface)라고 합니다.


우리가 잘 사용하지는 않지만, 모든 GUI 형태 운영체제는 CLI를 지원합니다. 윈도우에서는 CMD, 맥에서는 터미널이라는 이름으로 지원하고 있습니다. 맥에 있는 터미널을 이용해서, 달력 프로그램을 실행시켜 봅시다. 아래와 같이, 터미널을 실행시키고 cal 이라고 명령어를 치면 됩니다. CLI 에서 달력 프로그램이 실행되고, 오늘 날짜가 표시되는 것을 확인할 수 있습니다.


우리는 GUI 형태로 컴퓨터에 프로그램을 설치하는것이 익숙하지만, 개발자들이 주로 사용하는 데이터베이스와 같은 프로그램을 설치할때는 CLI 방식을 자주 사용합니다. 데이터베이스를 설치하는 과정이 GUI보다 CLI가 간단하고 깔끔하기 때문에, 이 글에서는 CLI를 통해 컴퓨터에 데이터베이스를 설치하는 과정을 보여드리겠습니다.



데이터베이스 설치

이제 본격적으로 데이터베이스 응용 프로그램인 MySQL을 컴퓨터에 설치해보도록 하겠습니다.


1. mysql 설치 확인

터미널에서 mysql 이라는 명령어를 실행시켜봅시다. 아직 프로그램이 설치 되어있지 않기 때문에, "찾을 수 없음 (command not found)" 라는 오류가 발생합니다. 

GUI 환경으로 해석해보자면, 프로그램은 삭제했는데 여전히 바탕화면에 바로가기 아이콘이 있는 경우가 있을 겁니다. 이때 이 바로가기를 실행시키면, "응용 프로그램을 찾을 수 없습니다."라고 나오는 것과 동일합니다.


2. mysql 설치

이제 mysql을 컴퓨터에 설치해봅시다. 위에서 언급했듯이, CLI 환경에서 데이터베이스를 설치하는 일은 매우 간단합니다. 아래와 같은 명령어를 순서대로 실행시키면 MySQL 프로그램이 컴퓨터에 설치됩니다.
(내용 자체는 무엇인지 이해할 필요는 없습니다. 다만, 데이터베이스가 컴퓨터에 설치되고 있다는 모습만 확인하시면 됩니다.)


이 설치 과정에서 컴퓨터는 아이디와 비밀번호를 물어보게 됩니다. 아무나 데이터베이스에 접속하는 것을 막기 위해서죠. 설치 과정에서 설정한 아이디와 비밀번호를 4번째 줄, 'your id''your password'에 넣어주면 접속됩니다.


3. mysql 접속

이제 mysql에 접속해보도록 합시다. 그림에서 제일 첫줄에 'mysql -u root -p' 라고 입력하는 화면이 보이실 겁니다. 달력 프로그램을 cal 이라는 명령어를 통해 실행했듯이, mysql 이라는 명령어를 이용해서 프로그램을 실행시킵니다.  '-u root' 는 제가 데이터베이스 설치시 설정해둔 데이터베이스 접속에 사용하는 사용자 아이디입니다. 그 다음줄에 'Enter password' 가 나오는데 설치시 설정한 root 아이디에 해당하는 비밀번호를 입력하게됩니다.

'Welcom to the MySQL monitor' 문구와 함께 mysql에 성공적으로 접속된 것을 확인할 수 있습니다.


4. SQL 실행

이제 MySQL 데이터베이스에 앞으로 배울 SQL 문을 이용해 요청을 보내보도록 하겠습니다. 'SELECT'로 시작하는 문장이 SQL이며, 아직 SQL은 익숙하지 않아도 상관없습니다. 여기에서는 요청이 전달되고 그 결과를 받는 모습을 확인하시면 됩니다. 'mysql>' 이라고 되어있는 부분에 간단한 SQL을 작성해서 실행(엔터) 하고, 그 결과가 테이블 형태로 나오는 것을 확인할 수 있습니다.





MySQL 모니터와 DBMS

여기서 한가지 반드시 알고 넘어가야하는 중요한 부분이 있습니다. 지금 위에서 'mysql' 명령어로 실행시킨 프로그램은 MySQL DBMS가 아니라는 것입니다. 그렇다면 무엇일까요? 바로 사용자의 SQL을 입력받아 MySQL DBMS에 요청을 전달하고, 그 결과를 보여주는 응용 프로그램인 MySQL 모니터입니다. 2번째 단계에서 MySQL을 설치할때, MySQL DBMS와 함께 MySQL 모니터가 설치된 것입니다. 전체 그림으로 이 과정을 살펴보도록 합시다.



1. 터미널 (Terminal)

우리는 맥 컴퓨터에서 CLI 환경을 동작시키기 위해 터미널이라는 응용 프로그램을 실행시켰습니다. 터미널 환경에서 'mysql' 이라는 명령어를 통해 MySQL 모니터 프로그램을 실행시킨 것입니다. 이 과정은 윈도우 환경에서 아이콘을 더블 클릭해서 프로그램을 실행시키는 것과 동일합니다.


2. MySQL 모니터

터미널에서 'mysql' 명령어를 통해 MySQL 모니터를 실행시킬때, 아이디와 비밀번호 정보를 함께 전달했습니다. 이 아이디와 비밀번호는 MySQL 모니터의 아이디와 비밀번호가 아니라, MySQL DBMS에 접속하기 위해 필요한 아이디와 비밀번호입니다. MySQL 모니터는 전달받은 아이디와 비밀번호로 DBMS에 접속하는 것을 시도해보고 성공적으로 인증되면 'Welcome to MySQL Monitor' 문구와 함께 SQL 요청을 사용자로부터 받을 준비를 합니다.  


3. DBMS

우리가 터미널에서 눈으로 보고 있는 프로그램은 모두 MySQL 모니터입니다. MySQL 모니터는 'mysql>' 이라는 문구를 사용자에게 출력해서, 그 뒤에 사용자가 DBMS에 전달하고 싶은 요청을 SQL로 입력하기를 기대하고 있습니다. 사용자가 여기에 SQL 문을 입력하면, MySQL 모니터는 이를 DBMS에 전달합니다. DBMS는 해당 요청을 분석해서, 원하는 데이터를 저장소(Storage)에서 가지고 나옵니다. 이렇게 가지고 나온 결과를 다시 MySQL 모니터에 전달하게 되고, MySQL 모니터는 해당 정보를 테이블 형태로 화면에 출력한 것입니다.



마치며

오늘 글에서는 CLI 환경을 이용해 데이터베이스 프로그램 중 가장 유명한 MySQL을 설치하는 과정을 살펴보고, MySQL 모니터 프로그램을 이용해 MySQL 데이터베이스를 이용하는 과정을 살펴보았습니다. 지난 글 데이터베이스 이해하기에서 개념적으로 데이터베이스를 설명했다면, 이번 글에서는 실제 실행 화면을 보여주면서 어떻게 데이터베이스가 동작하는지 설명했습니다. 멀게 느껴졌던 데이터베이스 프로그램이 이 글을 통해서 조금 더 친숙해졌으면 좋겠습니다.


설명의 편의성을 위해서 CLI 환경에서 데이터베이스를 설명했지만, 실제 업무 환경에서 CLI 를 계속 사용하기에는 많은 불편함이 있습니다. 다음 글 데이터베이스 접속하기에서는 MySQL 모니터를 대체할 수 있는 GUI 프로그램인 TablePlus를 이용해서 데이터베이스에 접속하는 방법을 다루겠습니다.










이전 02화 2. 데이터베이스 이해하기
브런치는 최신 브라우저에 최적화 되어있습니다. IE chrome safari