데이터를 통합하여 효율적으로 관리하기 위한 데이터 집합체를 데이터베이스(DB)라고 한다. 데이터를 구조화하여 관리함으로써 데이터 중복을 막고, 효율적이고 빠른 데이터 연산을 가능하게 한다.
웹에서는 웹 어플리케이션에 의해 데이터가 삽입, 삭제, 수정되는 곳을 말한다. 이걸 도와주는게DBMS(DataBase Management System)로 데이터베이스의 운영 및 관리를 해줍니다. 대표적으로 ORACLE과 MYSQL이 있다.
SQL은 데이터베이스에 연산을 요청하기 위해 사용되는 언어로, 데이터를 생성(Create), 조회(Read), 수정(Update), 삭제(Delete)하는 기능을 수행할 수 있다. 해거의 모든 관계형 데이터베이스 관리 시스템(DBMS)에서 SQL을 지원하며, 데이터베이스를 효과적으로 관리하는 데 필수적인 기술다. 다만 NoSQL 데이터베이스(예: MongoDB, Cassandra)에서는 SQL을 사용하지 않는다.
SQL 주요 명령어
| SQL 명령어 | 기능 |
|---|---|
| INSERT | 데이터를 삽입 |
| SELECT | 데이터를 조회 |
| UPDATE | 데이터를 수정 |
| DELETE | 데이터를 삭제 |
SHOW DATABASES;
CREATE DATABASE [데이터베이스명];
USE [데이터베이스명];
테이블을 생성할 때, 각 컬럼의 데이터 타입을 지정해야 한다.
CREATE TABLE member (
id INT,
name VARCHAR(30),
pwd VARCHAR(30)
);
DROP TABLE 테이블명;
SELECT * FROM 테이블명;
SELECT 컬럼명1, 컬럼명2 FROM 테이블명;
SELECT 컬럼명 FROM 테이블명 WHERE 조건;
SELECT 컬럼명 FROM 테이블명 ORDER BY 컬럼명 [ASC | DESC];
ASC: 오름차순(기본값)DESC: 내림차순INSERT INTO 테이블명 (컬럼명1, 컬럼명2, ...)
VALUES (값1, 값2, ...);
UPDATE 테이블명 SET 컬럼명 = 새로 바꿀려는 값
WHERE 조건;
주의!!WHERE을 생략하면 모든 데이터가 변경되므로,명확히 해야함
DELETE FROM 테이블명 WHERE 조건;
주의!!WHERE을 생략하면 모든 데이터가 삭제되므로 주의해야함
SELECT a.column_1, b.*
FROM table_a AS a
INNER JOIN table_b AS b
ON a.column_1 = b.column_0;
SELECT a.column_1, b.*
FROM table_a AS a
LEFT JOIN table_b AS b
ON a.column_1 = b.column_0;
SELECT a.column_1, b.*
FROM table_a AS a
RIGHT JOIN table_b AS b
ON a.column_1 = b.column_0;
애플리케이션을 컨테이너라는 독립적이고 격리된 환경에서 실행할 수 있도록 해주는 플랫폼이다.
컨테이너는 컴퓨터 한대에 OS전체를 설치하는게 아니라 소프트웨어를 실행하는데 필요한 만큼만 설치하여 리소스를 적게 사용하고, 특정 환경을 일관성 있게 유지해주기에 개발과 배포에서 많은 이점을 가질 수 있게 해주다.
설치는 Docker사이트에서 사양에 맞는 파일을 다운로드하여 설치하면 된다.
# 실행 중인것만
docker ps
# 모든 컨테이너(중지된 컨테이너 포함)
docker ps -a
docker logs [컨테이너 이름]
docker stop [컨테이너 이름]
docker start [컨테이너 이름]
컨테이너 삭제 전에는 항상 중지한 후 삭제할 것
# 특정 컨테이너 삭제
docker rm [컨테이너 이름]
# 중지된 모든 컨테이너 삭제
docker container prune
docker image prune
docker stop $(docker ps -aq) && docker rm $(docker ps -aq)
MariaDB는 MySQL과 호환되는 오픈 소스 관계형 데이터베이스 관리 시스템(RDBMS)이므로 데이터베이스로는 MariaDB를 사용할려고 한다.
Docker가 설치되어 있다면 터미널에서 아래 명령어를 실행해 MariaDB 이미지를 다운로드할 수 있다.
docker pull mariadb
처음 실행할때 명령어는 다음과 같이 사용하면 좋다.
docker run --name mariadb -d -p 3306:3306 --restart=always -e MYSQL_ROOT_PASSWORD=root mariadb
docker run: Docker에서 컨테이너를 생성하고 실행하는 기본 명령어입니다.-name mariadb:실행될 컨테이너의 이름을 mariadb로 지정합니다.-d: 컨테이너를 백그라운드(Detached Mode)에서 실행합니다. 터미널에 출력되지 않고 백그라운드에서 실행되므로, 계속해서 다른 작업을 진행할 수 있습니다.-p 3306:3306: 호스트(내 컴퓨터)의 포트 3306을 컨테이너 내부의 포트 3306에 매핑합니다. 이를 통해 호스트의 3306 포트를 통해 MariaDB 데이터베이스에 접근할 수 있습니다.--restart=always: 컨테이너가 종료되었거나 Docker 데몬이 재시작될 경우 항상 컨테이너를 재시작하도록 설정합니다. 안정적인 서비스 운영을 위해 유용합니다.-e MYSQL_ROOT_PASSWORD=root: 환경 변수를 설정하는 옵션입니다. 여기서는 MariaDB의 루트 사용자 비밀번호를 root로 설정합니다. 데이터베이스 초기 설정에 필요한 중요한 옵션입니다.mariadb: 사용할 Docker 이미지의 이름입니다. Docker Hub 등에서 해당 이름의 이미지를 다운로드하여 컨테이너를 실행합니다.이후 컨테이너가 실행중이라면 다음 명령어로 접속할 수 있다.
docker exec -it mariadb /bin/bash
docker exec: 실행 중인 컨테이너에서 명령어를 실행할 때 사용합니다.-it: 컨테이너 내부에서 인터랙티브 모드로 접속할 수 있도록 합니다.mariadb: 접속할 컨테이너의 이름입니다./bin/bash: 컨테이너 내부에서 Bash 쉘을 실행합니다.이후 컨테이너 안에서 MariaDB에 접속할려면 다음과 같다.
MraiaDB -u root -p
MraiaDB: MraiaDB(MySql)클라이언트를 실행-u root: root 사용자로 로그인-p: 비밀번호 입력을 요구, 위에서 부터 차례대로 입력했다면 MYSQL_ROOT_PASSWORD=root로 인해 비밀번호가 root가 된다.