[7] MySQL 마무리

ttt-1-2·2026년 3월 7일

강의: https://www.inflearn.com/course/database-2-mysql-강좌?cid=119293

관계형 데이터베이스(Relational Database)를 제대로 사용하려면 단순히 데이터를 저장하는 것만으로는 부족하다. 실제로 서비스를 운영하다 보면 데이터 조회, 성능, 설계, 안정성까지 모두 고려해야 한다.

대표적으로 중요한 요소는 다음 네 가지다:

  • SQL
  • Index
  • Modeling
  • Backup

(1) SQL - 데이터베이스의 기본 언어

관계형 데이터베이스를 다루기 위해서는 SQL을 이해하고 잘 사용할 수 있어야 한다. SQL은 데이터베이스와 대화하는 언어다.

SQL에는 여러 종류의 명령이 있지만 그 중에서도 가장 중요한 것은 SELECT이다. 실제 서비스에서는 데이터를 저장하는 것보다 데이터를 조회하는 일이 훨씬 많기 때문이다. (ex: 유튜브 영상 업로드 1번에 조회수 수백만 번, 쇼핑몰 상품 등록 1번에 상품 조회 수천 번…)

그래서 데이터베이스에서는

데이터를 얼마나 빠르고 정확하게 조회할 수 있는지가 매우 중요하다.

(2) Index - 데이터를 빠르게 찾는 방법

데이터가 적을 때는 문제가 없지만 데이터가 많아지면 검색 속도가 느려질 수 있다. 이때 사용하는 것이 인덱스이다.

ex: 책에서 특정 내용을 찾는다고 생각해보자

  • 인덱스가 없는 경우 처음 페이지부터 끝까지 다 읽어야 한다.
page 1 → page 2 → page 3 → ... → page 500
  • 인덱스가 있는 경우 목차에서 바로 찾을 수 있다
index → page 327

데이터베이스에서도 같은 원리가 적용된다. 예를 들어 title 컬럼에 index가 있다면

SELECT * FROM topic WHERE title='MySQL';

이 검색을 훨씬 빠르게 수행할 수 있다.

(3) Modeling – 좋은 데이터 구조 설계

데이터가 많아질수록 테이블 구조를 잘 설계하는 것이 매우 중요하다. 이 과정을 데이터 모델링(Data Modeling)이라고 한다.

ex: 다음과 같은 테이블이 있다고 생각해보자.

user
-------------------
id
name
email
phone
address

그리고 게시글을 저장하는 테이블이 있다.

post
-------------------
id
title
content
user_name
user_email
user_phone

이 구조에는 같은 정보가 여러 번 저장되어 있다. 사용자가 전화번호를 바꾸면 user 테이블, post 테이블 둘 다 수정해야 한다. 그래서 보통 다음처럼 설계한다:

user
-------------------
id
name
email
phone
post
-------------------
id
title
content
user_id

이렇게 하면 데이터 중복이 줄어들고 관리가 쉬워진다. 이 과정을 정규화(Normalization)라고 한다. 좋은 데이터 모델링은 데이터 중복 감소, 데이터 일관성 유지, 유지보수 편리 같은 장점을 만든다.

(4) Backup – 데이터 보호

데이터베이스에서 가장 중요한 것 중 하나가 백업이다. 왜냐하면 데이터는 언제든지 사라질 수 있기 때문이다.

ex: 하드디스크 고장, 서버 오류, 실수로 데이터 삭제, 해킹,…

그래서 실제 서비스에서는 정기적으로 백업을 수행한다.

최근에는 클라우드를 많이 사용한다. 대표적인 클라우드 서비스: AWS (Amazon Web Services), Google Cloud, Microsoft Azure… 클라우드를 사용하면 자동 백업, 데이터 복구, 안정적인 저장 같은 기능을 쉽게 사용할 수 있다.


마무리

웹 애플리케이션을 개발하다 보면 자연스럽게 느끼게 되는 것이 하나 있다. 웹 서비스는 결국 데이터와 함께 돌아간다는 것이다. (ex: 회원가입을 하면 사용자 정보가 저장된다, 게시글을 작성하면 글 내용이 저장된다, 로그인하면 저장된 정보와 비교해서 인증을 한다)

프로그래밍 언어마다 데이터베이스에 연결하기 위한 라이브러리나 API가 존재한다. ex: Python MySQL API, PHP MySQL API, Java MySQL API. 이러한 API를 통해 웹 애플리케이션은 데이터베이스와 연결되어 데이터를 저장하고 조회하며 실제 서비스가 동작하게 된다.

0개의 댓글