Django Hands-on experience 4-1) - MySQL integration

Turtle·2023년 12월 21일
0
post-thumbnail

📌SQLite3 특징

  • 로컬 파일에 데이터를 저장함
  • 별도의 시스템 설치 등이 필요하지 않음
  • 단일 사용자 시스템에 가볍게 사용하기 적합

📌SQLite3 문제점

  • 동시에 여러 요청을 처리할 때 파일 잠금 현상(Database Locked)이 발생함
  • 로컬에 위치하기 때문에 하나의 컴퓨터 내 실행중인 프로그램만 접근

→ 서버 구현 시에는 동시성 처리가 가능하고 여러 시스템에서 접속 가능한 데이터베이스 서버 시스템을 사용해야 함

📌MySQL이란?

  • 범용적으로 많이 쓰이는 RDBMS
  • 오픈소스 기반으로 커뮤니티 버전은 무료. 비슷한 엔진으로 MariaDB가 있다.

📌적용

주의사항

※ 엔진 옵션을 MySQL로 선택 후 [템플릿]을 선택해야하는데 이 때, 실제 회사에서 개발을 진행할 때는 [프로덕션] 항목을 클릭하여 사용하지만 엄청난 비용을 감당할 자신이 없는 우리같은 사람들이라면(?) [프리 티어] 항목을 선택해야한다.

※ [설정] 항목으로 이동 후 [DB 클러스터 식별자]와 [마스터 사용자 이름], [마스터 암호], [마스터 암호 확인]를 입력한다.

※ [연결] 항목으로 이동 후 [퍼블릭 액세스]를 로 설정한다.

  • [AWS 관리 콘솔] → [RDS] → [데이터베이스 생성] → [표준 생성] & [엔진 유형 : MySQL] → [프리 티어] → [설정] & [연결]

  • 위의 과정을 정상적으로 완료하고 데이터베이스를 생성하면 생성이 완료될때까지 기다리면 된다. 생성이 완료되면 다음과 같이 생성이 완료된 것을 확인할 수 있다.

  • 세부 정보를 확인하기 위해서 DB식별자를 클릭해보면 [연결 및 보안] 항목에서 엔드포인트 링크를 복사한다.

  • 그 다음은 DBeaver를 다운로드 받아서 실행한다. DBeaver는 Community Edition 버전을 사용하면 라이센스가 무료이고 시각적으로 RDBMS를 보여주는 효율적인 DB 관리툴이다.

  • DBeaver를 실행하면 위와 같은 화면이 나타나고 여기서 우리가 사용할 엔진 옵션인 MySQL을 선택한다.

  • 그 다음 위에서 복사했던 엔드포인트 링크와 입력했던 [DB 클러스터 식별자], [마스터 사용자 이름]. [마스터 암호] 등을 입력 후 [Test Connection]을 클릭하면 되는데 바로 하게 되면 Test Connection이 실패한다. 이 때, 보안 그룹에서 추가로 설정을 해야한다.

  • 보안 그룹의 인바운드 규칙을 편집하여 아래와 같이 4개의 규칙을 추가해야한다.(보안 그룹 규칙 편집 후 다시 연결을 하면 Test Connection이 문제없이 성공적으로 이루어진다.)

  • 연결 후 Django의 settings.py 파일에 들어가서 DATABASE 부분을 MySQL 엔진에 맞게 수정해야한다.

  • ENGINE 부분에 MySQL 엔진에 맞는 데이터베이스를 넣고, HOST 부분에 데이터베이스의 엔드포인트를 넣어주고 PORT에는 MySQL의 포트 번호인 3306, NAME에는 MySQL 이름을 넣고, USER에는 관리자 계정 이름, PASSWORD에는 자신이 생성했던 마스터 암호를 입력한다.

  • 입력이 끝나면 터미널을 실행하여 python manage.py migrate를 수행하면 DBeaver에 Django의 데이터베이스가 정상적으로 연동이 되는 것을 확인할 수 있다.

0개의 댓글