[python] My first trouble shooting

2022. 11. 7. 22:21BACKEND/TROUBLE SHOOTING

 

 

 

강의와 똑같이 하는데 오류가 난다. 몇 번을 돌려봐도 똑같이 하는 중인데 오류가 난다.

터미널 창에 빨간 글씨가 가득한 걸 보니 혼란···

컴퓨터에 대해 아무것도 모르는 사람에게는 두려운 광경이었다.

어느 정도로 컴퓨터를 몰랐냐 하면 처음에는 노트북 망가진 줄 알고 들고 서비스센터 가고 싶었다.

그러나 개발자는 구글링이라는 지인들의 말을 따라 일단 검색을 했다.

컴퓨터를 모른다는 게 첫번째 난관이었다면 그에 이어 뭘 잘못 건드릴까봐 무서워서 못 건드리는 게 두번째 난관이었다.

잠깐 고민하다가 일단 따라해보고 고장나면 이번 기회에 노트북 바꿔야지, 하는 생각으로 질렀다.

무슨 오류였냐면,

mongoDB 연결할 때, pymongo.errors.ServerSelectionTimeoutError가 발생했다.

 

 

 

사용하고 있는 인터넷 환경에 따라 보안 관련 추가 설정이 필요한 게 원인이었다.

certifi 패키지를 가상환경에 먼저 설치한 후, 코드 부분을 수정하면 해결할 수 있었다.

아래 코드블럭의 1, 2번째 줄을 추가하고 3번째 줄은 괄호 안에서 끝부분에 tlsCAFile=ca만 추가하면 된다.

2번째 named parameter로 전달해주어야 적용이 된다고 한다.

 

from pymongo import MongoClient
import certifi                                # 여기
ca = certifi.where()                          # 여기
client  = MongoClient(DB주소, tlsCAFile=ca)   # 여기
db = client.dbfirst

 

단번에 빨간불이 사라지는 것을 보니 마음이 편안하다. 막상 해결해보니 별 거 아니었지만 아까는 놀랐다고.

그래도 이제 노트북 사양이나 내부 환경설정에 따라서 오류가 날 수도 있다는 것을 알게 되었으니

다음에 또 다른 응용 프로그램 설치할 때는 서비스센터를 목놓아 부르지 않으리.