클라우드응용SW개발

[cloud] 클라우드 데이터 플랫폼(2)

jubin0615 2026. 4. 7. 00:16

📍관리형 데이터베이스 

테이블
관계형 데이터베이스에서 데이터는 기본적으로 테이블에 저장된다. 테이블은 행과 열로 구성되며, 각 행은 하나의 데이터 레코드가 되고 각 열은 이름, 전화번호, 아이디처럼 특정 속성을 의미한다.

결국 테이블은 데이터를 보기 좋게 정리한 표가 아니라, 데이터의 구조와 규칙을 함께 담는 핵심 객체라고 볼 수 있다. 

 

엔터티

엔터티는 현실 세계의 실제 대상일 수도 있고, 주문처럼 개념적인 대상일 수도 있다.

중요한 점은 이 엔터티들이 서로 관계를 맺는다는 것이다.

출처: 코딩팩토리

 

정규화  

정규화의 핵심은 데이터를 적절히 분리해서 중복을 줄이고, 기본 키와 외래 키를 이용해 테이블 사이의 관계를 명확하게 만드는 것이다. 결과적으로 저장 효율이 좋아지고 데이터 품질도 함께 올라간다.

 

인덱스 / 뷰  

인덱스는 검색 속도를 높이기 위해 사용하는 구조로, 원하는 데이터를 찾을 때 읽어야 하는 데이터 페이지 수를 줄여준다.

뷰는 쿼리 결과를 기반으로 만든 가상 테이블이다. 여러 테이블을 조인하는 복잡한 쿼리를 매번 직접 작성하지 않고, 자주 쓰는 조회 결과를 하나의 논리적 창처럼 사용할 수 있게 해준다.

즉 인덱스는 성능을 돕고, 뷰는 사용성을 돕는다고 이해하면 쉽다.  

 

📍SQL 쿼리 기초

< SQL문의 유형 >

DML DDL DCL
- 데이터를 조회하고 조작하는 언어
- SELECT, INSERT, UPDATE, DELETE
- 데이터베이스 객체의 구조를 정의하는 언어
- CREATE, ALTER, DROP, RENAME
- 권한과 보안을 관리하는 언어
- GRANT, REVOKE, DENY

SQL은 단순한 조회 도구가 아니라 데이터와 구조, 권한까지 모두 다루는 언어이다!

 

SELECT 

테이블이나 뷰에서 필요한 데이터를 읽어오는 데 사용된다. SELECT는 단순히 데이터를 꺼내는 문장이 아니라, 조건을 걸고, 묶고, 정렬해서 원하는 형태의 결과를 만들어내는 문장이다.

SELECT문의 예시

 

INSERT / CREATE

INSERT는 새로운 행을 테이블에 추가할 때 사용한다.

CREATE는 테이블이나 뷰 같은 새 객체를 만드는 문장이다.

INSERT가 데이터를 채우는 작업이라면, CREATE는 그 데이터를 담을 구조를 만드는 작업이라고 정리할 수 있다.

INSERT문 예시

 

 

📍Azure SQL Database 실습

1. MySQL Tutorial 사이트에 접속하여 샘플 데이터베이스를 다운받는다.

https://www.mysqltutorial.org/getting-started-with-mysql/mysql-sample-database/

 

MySQL Sample Database

This page provides you with a MySQL sample database that helps you to practice with MySQL effectively and quickly.

www.mysqltutorial.org

 

다운받은 샘플 데이터베이스를 MySQL 워크벤치에서 사용할 수 있도록 스키마에 추가했다.

 

2. 기본 SELECT 구문을 실행하여 데이터를 확인해본다.

 

 

3. 로컬에서 클라우드 환경으로 범위를 확장하여 Azure에서 SQL 리소스를 생성 및 배포한다.

 

데이터베이스를 단순히 로컬 개발 도구에서 사용하는 수준을 넘어, 실제 클라우드 환경에서 서비스 형태로 운영할 수 있는 기반을 마련하는 과정이다. 마켓플레이스에서 Azure SQL Database를 검색하여 다음과 같이 생성하면 된다.

 

4. 리소스를 만든 뒤에는 Azure 가상머신에 SSH로 접속한다.

 

5. cmd에서 vi로 편집기를 열어 아래와 같이 mysql-test.py 라는 이름의 파이썬 코드를 작성하고 저장한다.

가상머신에서 파이썬 코드로 MySQL 데이터베이스에 접속할 수 있는지 확인하려는 목적이다. 이를 실행하기 위해 mysql-connector-python 라이브러리도 설치한다.

 

하지만 이 상태로 코드를 실행하면 아래와 같은 오류가 발생할 것이다.

이는 데이터베이스 서버의 네트워크 접근 제한과 접속 환경 설정 문제로 인해 연결 오류가 발생한 것이다. 

 

7. 따라서 가상머신 IP를 방화벽 규칙에 추가하고 접속 설정을 보완하여 원격 접속이 가능하도록 설정한다.

 

 

8. MySQL 워크벤치에 note_db 스키마를 만들고 아래와 같은 구문을 실행해본다.

 

 

9. mysql-test.py를 열고 database 항목에 note_db를 반영한다.

프로그램이 어떤 데이터베이스를 대상으로 접속할지 지정하는 것이다.

 

 

10. MySQL 연결 객체가 출력되었다! 따라서 원격 접속에 성공했음을 확인할 수 있다.