본문 바로가기

FastAPI

퀴즈봇 만들기 - 1

환경 setting 하기 !! 

 

flake8과 black을 설치를 진행해보겠습니다.

 

flake8은 린터라고 한다고합니다. 린터란 소스코드를 분석하여 의심스럽거나, 에러를 발생하기 쉬운 코드에 표시(flag)를 달아 놓는 것을 말하며, 원래는 C 언어에서 사용하던 용어였으나 지금은 다른 언어에서도 일반적으로 사용된다고 합니다.

 

black은 Formatter 라고 합니다. 코드의 스타일을 강제로 변경을 해주는 역할을 해줍니다. black을 사용하는 이유는 바로 코드의 스타일을 통일하기 위해서 사용을 합니다. 사람 마다 코드 스타일이 다르기 때문에 black을 사용해서 이를 일치 시켜 준다고 합니다.
black을 만든 곳이 PSF(Python Software Foundation)라고 하네요 !!(파이썬 제단에서 만든 Formatter)
 
다음으로 필요한 것이 client가 필요합니다.
 

만약 flak8과 black가 설치 되어져 있지 않다면, 추가로 설치해 줍시다.
 
다음으로 setting할 것은 DB입니다 !! 
다음 명령어는 setting할 DB docker입니다.
다음 명령어를 사용해서 docker DB를 형성하면 됩니다.
docker run --name test-db \
-p 3306:3306 \
-e MYSQL_ROOT_PASSWORD=1234 \
-e MYSQL_USER=admin \
-e MYSQL_PASSWORD=1234 \
-d mysql:8.0 \
--character-set-server=utf8mb4 --collation-server=utf8mb4_unicode_ci
 

다음 명령어로 제대로 docker DB container가 만들어 졌는지 확인 할 수 있습니다.

sudo docker ps -a

 

이후 DB에 다음 명령어를 사용해서 접속합니다. 
비밀번호는 위에서 Docker DB를 만들 때의 명령어를 보면 1234로 설정했음을 알 수 있습니다.
docker exec -it test-db mysql -uroot -p

 

DB에 접속해서 다음 명령어를 실행하면 현재 DB에 접속한 user를 알 수 있습니다.

mysql> SELECT current_user();

 

 

DB에서 따로 해야 할 작업이 있습니다. 바로 다른 계정을 생성하는 것입니다. 보통 작업은 root보다는 다른 계정을 생성해서 작업하는 것을 권장하기에 다른 계정을 생성해보겠습니다. 우리는 docker DB를 만들 때, 이미 admin이라는 계정을 생성했습니다. 하지만 이 admin은 아무런 권한이 없는 상태입니다.  따라서 권한을 부여하는 작업을 진행하겠습니다.
mysql> GRANT ALL ON *.* TO admin@'%';

 

GRANT ALL 명령어 다음에 ‘.’을 기준으로 앞에 DB를 의미하고 뒤에는 table을 의미합니다. 즉, admin에게 모든 권한을 준다는 의미입니다. 

mysql> SHOW GRANTS FOR admin@'%';

 

해당 명령어 실행 후 제대로 권한이 주어졌는지 확인하는 코드입니다. 이후 이제 사용할 DB를 생성해야 합니다. 우선, 다음 명령어로 현재 DB에 있는 database 목록을 확인해 보겠습니다.
mysql> show databases;

 

위에 4개의 database 목록은 DB에서 기본적으로 제공하는 database입니다.  위에 4개의 database는 건들지 않는 것을 추천합니다.
mysql database에는 user 정보가 있습니다. 다음 명령어를 사용해서 확인할 수 있습니다.
mysql> select host, user from mysql.user;

 

이제 dev라는 database를 만들고, SHOW databases; 명령어를 실행한 후에 목록을 확인해 보면
mysql> CREATE DATABASE dev;
mysql> SHOW DATABASES;

 

이와 같이 dev라는 databases가 생성된 것을 알 수 있습니다.

'FastAPI' 카테고리의 다른 글

퀴즈봇 만들기 - 3  (0) 2024.04.07
퀴즈봇 만들기 - 2  (0) 2024.04.07
미들웨어 - 2  (0) 2024.03.20
미들웨어 - 1  (0) 2024.03.19
백그라운드 작업 - 2  (0) 2024.03.13