웹서비스에서 데이터를 저장하려면 데이터베이스란 녀석이 필요하다고 한다.
데이터베이스는 크게 SQL과 NoSQL 이 있는데, SQL 은 저장되는 구조를 미리 정의 해 놓아서 속도나 저장 공간 등에 이득이 있는 것 같다. 구조를 쉽게 못 바꾼다거나, 특정 규모 이상이 되면 오히려 대응이 어렵다고 한다. NoSQL 은 그에 비해 미리 정의된 구조가 없기 때문에 자유롭게 업데이트가 가능한 대신 SQL 에 비해 속도나 저장 용량에 손해가 있어 보인다.
보통 SQL 을 많이 쓰며 그중 에서도 MySQL을 많이 쓴다는데, 왠지 오픈소스인 PostgreSQL 이 좋아 보여서 이녀석으로 설치 해보자.
설치는 도커라는 걸로 했다.
$ docker run -p 5432:5432 --name db_main -e POSTGRES_PASSWORD=hello1234$#@! -d postgres
뭔가 그냥 설치가 된다
잘 생성되었는지 확인 해 보자.
$ docker exec -it db_main /bin/bash
root@1a4fed951fd4:/# psql -U postgres -W
Password:
psql (15.0 (Debian 15.0-1.pgdg110+1))
Type "help" for help.
postgres=# \l
List of databases
Name | Owner | Encoding | Collate | Ctype | ICU Locale | Locale
Provider | Access privileges
-----------+----------+----------+------------+------------+------------+-------
----------+-----------------------
postgres | postgres | UTF8 | en_US.utf8 | en_US.utf8 | | libc
|
template0 | postgres | UTF8 | en_US.utf8 | en_US.utf8 | | libc
| =c/postgres +
| | | | | |
| postgres=CTc/postgres
template1 | postgres | UTF8 | en_US.utf8 | en_US.utf8 | | libc
| =c/postgres +
| | | | | |
| postgres=CTc/postgres
(3 rows)
오 뭔가 잘 나오는 것 같다.
내일은 Rust 에서 PostgreSQL 을 사용할 수 있도록 해야겠다.