약 2시간 동안 멘토님과 팀 멘토링을 진행했다. 미니프로젝트 기획 단계뿐만 아니라, 앞으로도 서비스 기획간 참고할 내용들을 말씀해주셨다.
프로젝트를 기획할 때 목적과 페르소나를 잘 설정하는게 왜 중요한지를 더 이해하게 되었다. 사실 그동안 문제를 도출하고 목적을 설정하는 것 까지는 와닿았으나 페르소나 설정은 도외시하는 마음이 있었는데, 기획하는데 드는 비용을 줄이기 위해선 제한사항도 고려해 프로젝트 범위를 명확히 하는게 중요하다.
여러 모델들을 테스트 했을 때 기획했던 서비스에 사용할만큼 만족스럽지 않은 결과를 내놓는 경우가 많았다. 학습된 모델을 사용하는게 처음이라 이런 경우에 모델들을 얼마나 더 찾아나서야 할지 고민이었다.
즉, 모델 탐색에 시간을 얼마나 투자해야하는지 명확하지 않았다. 물론 내 경험이 적기 때문에 원하는 Task에 맞는 모델을 찾는 능력이 부족한 것도 맞다.
하지만 오픈소스 모델이 대부분 모여있는 Hugging face같은 곳에서 찾은 모델이 불만족스럽다면 오픈소스 모델로는 한계가 있는걸 인정하는게 낫다. 이때는 서비스를 위해서 LLM을 이용하는 것도 고려해볼만 하다.
https://www.mongodb.com/try/download/community
.msi
는 윈도우 설치 패키지 확장자로, 설치 파일 하나를 통해 설치하는 방식
.zip
는 무설치 압축본.
💫 이하는 zip파일로 다운 했을 때의 과정입니다.
MongoDB는 C://data/db
경로를 필요로 하므로 없다면 생성
mongoDB의 bin파일 위치를 환경변수에 설정
다음의 명령어로 mongoDB 서버를 로컬에서 시작
mongod --dbpath="C:\data\db"
몽고디비는 기본적으로 27017
포트를 이용한다. 접속해서 아래의 메세지가 뜨면 서버가 실행중인 것임.
💡 참고
mongod - 몽고디비 서버 (d는 daemon을 의미. 백그라운드에서 돌아가는 프로세스)
mongos - 샤딩 라우터
mongo - 데이터 베이스 쉘
이후 다음의 추가과정이 필요하다. mongoDB 6.0버전 이상부터는 mongoDB shell을 따로 설치해서 몽고디비를 컨트롤 해야 한다. 아래에서 다운받자.
mongoDB 쉘 설치 링크
https://www.mongodb.com/try/download/shell
이 쉘은 CLI환경에서 mongoDB를 컨트롤할 수 있는 말 그대로의 쉘이다.
GUI도 지원한다고 함. 이름은 compass이다.
mongoDB comapss설치
https://www.mongodb.com/try/download/compass
exe를 선호하지 않지만… 이번엔 옵션이 exe뿐이었다. stable 버전으로 다운받자.
설치를 시작하면 이런 화면이 나온다.
커넥션을 얻어오자. 서버가 열려있다면 URL을 입력해 자동으로 커넥션을 얻어올 수 있다.
그 이후에는 GUI환경에서 편안하게 DB관리 가능
이후 mongoDB를 fastAPI로 구축한 서버에 연결하고 테스트를 진행하려고 했다. 이때 이용하 수 있는 드라이버로는 pyMonogo와 motor가 있다.
MongoDB python 기반 서버 연결 드라이버 확인
https://www.mongodb.com/ko-kr/docs/drivers/python-drivers/
motor설명에서 비동기를 지원한다는 점을 집어 설명하는걸 보니 pyMongo는 그런 기능이 없는걸까 싶다. 간단하게 지피티에게 물어보니 motor가 python의 AsyncIO 라이브러리 기반으로 만들어져있다고는 답변해줬다.
애플리케이션에서 DB커넥션을 연결하는 것 까지는 좋다. 그런데 이어서 드는 고민은 다음과 같다.
이밖에 파이썬에서는 기존 자바진영에서 presentation계층에서 주로 사용되는 MVC 패턴을 어떻게 사용하고 있는지도 궁금하다. 이번 미니 프로젝트에선 규모가 jinja를 이용하기로 했는데, 이 경우에 애플리케이션 아키텍쳐는 어떤 구조로 되어야 할까...?