4. PyMySQL 익혀보기 > 4-1. PyMySQL을 사용하는 이유
PyMySQL을 사용하는 이유
PyMySQL 은 MySQL을 Python에서 사용할 수 있도록 하는 라이브러리입니다. PyMySQL외에 다른 라이브러리도 존재하지만, 이번 스터디에서는 설치가 쉬워 가장 대중적으로 많이 사용하는 PyMySQL을 배워보겠습니다.
그렇다면, PyMySQL을 사용하는 이유는 무엇일까요? 바로 하나의 프로그램에서 데이터 분석과 저장, 수정을 모두 진행할 수 있다는 '편리성' 때문입니다. 기존에 우리가 사용하는 방식을 생각해봅시다. xlsx 혹은 csv 등의 형태의 데이터를 Python의 pandas를 활용해서 전처리 및 분석을 진행하고, 수정한 데이터는 다시 새로운 xlsx, csv 파일로 저장 합니다. 그러나 xlsx 혹은 csv에 담기지 않는 대용량의 데이터, 즉 DB의 데이터를 사용할 땐 이 방법을 사용할 수 없습니다. 따라서 PyMySQL을 통해 데이터 분석과정과 데이터 저장 및 수정을 한번에, 즉 DB와 바로 연결하여 보다 편리하게 작업을 진행하는 것입니다. 또한 Python을 공부하면서 익힌 함수, 코드, 라이브러리 등을 그대로 적용할 수 있다는 것도 PyMySQL을 사용하면 얻을 수 있는 장점 중 하나입니다.
DB를 연결해줄 때 대부분의 경우 host='localhost', port='3306', user='root'일 가능성이 높습니다. 바꿔줘야할 부분은 password=''와 db=''이죠. 또한 charset=''은 character set을 설정하는 것으로 한글 데이터 처리를 위한 코드를 의미합니다. host와 port에 대해서 조금 더 자세히 알아보기 위해 관련 용어 및 설정해줄 파라미터들에 대한 개념을 하나씩 살펴보겠습니다.
즉, 네트워크 상에서 데이터를 주고 받는다는 것은 '한 호스트의 프로세스 된 데이터가 다른 호스트의 프로세스까지 오고 갔다!'는 것을 의미합니다. 예를 들어 SLACK에서 DM을 보냈다면 상대방의 SLACK에 DM이 도착해야 합니다.
✔️ PyMySQL은 왜 Colab에서는 사용할 수 없을까요?
PyMySQL을 Colab에서 실행하면 다음과 같은 에러가 발생합니다.(2003, "Can't connect to MySQL server on 'localhost' ([Errno 99] Cannot assign requested address)")
즉, 로컬에서 MySQL을 연결할 수 없다는 것을 의미하는데, 정확한 원인은 구글링을 해도 잘 나오지 않지만,, 경로 설정 등 추가로 진행해줘야 할 직업이 생길 가능성이 높으니 가능한 Jypyter notebook을 사용하길 권장합니다.