Postgre에 필요한 테이블을 만들고 Django와 연동까지 잘된 듯했으나
가상 환경, 명령어 사용, 모듈 찾기 등등 모든 곳에서 약 32489793827개 정도의 에러가 발생해서 가만히 뜯어다 보니 과정을 너무 뒤죽박죽 진행하는 바람에 엉망진창이 된 폴더 구조가 문제인 것 같다는 결론이 났다.
그래서 프로젝트를 싹 갈아엎고(시작 단계니까 괜찮다.) 처음부터 다시 해 보기로 했다.

우선 프로젝트를 만들 공통의 폴더인 DevProject를 먼저 생성해주고,
# /c/DevProject
python -m venv ChatBB
위 명령어로 가상 환경을 만들어준다.
# /c/DevProject/ChatBB
source ./Scripts/activate # 가상 환경 활성화

pip install django
가상 환경 활성화 후 django를 한 번 더 설치해줬다.
# /c/DevProject/ChatBB
django-admin startproject company_platform
위 명령어로 django 프로젝트를 생성할 수 있는데, 프로젝트와 앱의 차이점을 구글링해 보니
하나의 프로젝트 = 하나의 웹 사이트,
앱 = 프로젝트를 이루는 여러 기능들
이라고 이해하게 되었다.
컨셉을 회사의 챗봇으로 잡았기 때문에 django 프로젝트로 company_platform을 생성한다.
# /c/DevProject/ChatBB/company_platform
python manage.py startapp chatbot
프로젝트를 생성했으면, 내부의 manage.py 파일을 통해 앱을 생성한다.
챗봇의 기능을 할 것이므로(이렇게 이해한 게 맞겠지...) chatbot이라는 이름의 앱을 생성해줬다.

앱이 생성되었으면 settings.py 파일 INSTALLED_APPS에 해당 앱을 추가해줘야 한다.

그럼 이러한 폴더 구조를 갖게 된다.
chatbot 내부의 models.py는 원래 manage.py와 같은 폴더 경로에 위치해 있었는데, 여러 블로그를 참조하며 초기 셋업을 하다 보니 앱을 생성한 후, 기존의 models.py 파일을 앱 폴더 내부로 옮겨야 한다는 글이 있어서(분명 블로그 주소를 남겨 뒀는데 사라졌다. 찾는 대로 추가해야겠다.) 파일 이동만 시켜준 상태이다.
프로젝트가 잘 구성되었다는 전제하에 내가 다음으로 해 보고 싶었던 것은 테이블에서 데이터가 잘 불러와지냐 하는 것이었다.
참고 블로그

이전 포스팅과 달라진 점이 있다면 우선 사용하는 데이터베이스명이 members로 바뀌었다는 것과 5432 포트 번호를 추가해준 부분이다.

pgAdmin 4를 통해 확인한 members 데이터베이스의 users 테이블이다. 총 14개의 유저 정보가 저장되어 있다.
# manage.py 파일이 있는 경로
python manage.py inspectdb > models.py
위 명령어를 통해 생성한 models.py 파일을 위 최종 폴더 구조처럼 chatbot 폴더 안으로 옮겨준 것이다.
# manage.py 파일이 있는 경로
python manage.py makemigrations
python manage.py migrate
DB와 관련된 조작을 하고 나면 위의 명령어들로 마이그레이션을 진행해야 한다.

models.py 파일 안에 users 테이블이 동기화되어 있는 것을 확인할 수 있다.
이제 위 참고 블로그의 코드를 chatbot 앱 내부의 tests.py 파일에 작성하고 manage.py를 통해 테스트를 진행하면 테이블에서 꺼내오는 값이 보이겠지?
라는 생각으로 테스트 파일을 실행했는데,
# /chatbot/tests.py
import json
from django.http import HttpResponse
from django.test import TestCase
# Create your tests here.from models import Users
def checkMember(request):
m = Users.objects.all()
data = m.values('id')[0]
t = ""
for k, v in data.items():
if k == 'id':
try:
t = str(data[k])
print(t)
except KeyError:
print('Nothing')
return HttpResponse(json.dumps(t), content_type='application/json')

models 모듈을 찾을 수 없다는 에러가 발생했다.

이렇게 잘 불러와져 있는데 말이다.
manage.py에서 models를 못 찾는 건가? 싶어서 models.py 파일을 복사하여 원래 존재하던 위치인 company_platform 폴더 밑에 붙여넣기 해주었다.

그리고 다시 테스트를 실행한 결과,

앱이 INSTALLED_APPS에 등록되지 않았다는 에러가 발생한다.
말 그대로 장고에 등록되지 않은 앱을 실행시켰을 때 발생하는 에러라는데....

?

??

???
내가 등록한 건 대체 무엇인가.
수백 번의 구글링과 함께 경로도 등록해 보고 manage.py 파일도 점검해 보고 vscode도 종료했다 다시 실행해 보았지만 같은 에러만 계속 발생할 뿐이었다.
test를 이렇게 실행 시키는 게 아닌가?
앱 등록과 test 실행은 뭔가 차이가 있나?
내가 빠뜨린 단계가 있나?

그냥 나는 잘못됐나?
간단히 테이블 불러와지는 걸 테스트하고 원래는 Django와 Vue의 연동이 본 목적이었는데, 해가 질 때까지 이것만 붙잡고 있는 사람이 됐다.
ModuleNotFoundError: No module named 'models'
from models import Users
이 부분을
from .models import Users
이렇게 바꾸어 작성했더니

에러는 없어졌지만 테스트가 실행되지도 않았다.
...함수 테스트는 이렇게 하는 게 아닌가? 하는 마음에 그냥 tests.py를 직접 실행해 보기로 결정했다.
django.core.exceptions.ImproperlyConfigured: Requested setting INSTALLED_APPS, but settings are not configured. You must either define the environment variable DJANGO_SETTINGS_MODULE or call settings.configure() before accessing settings.
chatbot 앱 폴더로 들어가 아래 명령어를 실행하면 위와 같은 에러를 뱉는다.
python -m tests
해당 블로그를 참고하여
export DJANGO_SETTINGS_MODULE='config.settings'
명령어를 실행하고 다시 tests 파일을 실행 시켜주면 기존 에러는 없어졌지만 새로운 에러가 발생한다!
ImportError: attempted relative import with no known parent package
나더러... 어떡하라고?
진짜 포기하고 싶었지만 일단
from company_platform.chatbot.models import Users
import문부터 절대 경로로 바꿔주고, 위에서 export 한 구문을 다시 'company_platform.settings'로 바꿔주었다.

그럼 두 번째 에러로 회귀한다.
OpenAI에 삥($5)도 뜯겼는데 여기서 안 될 일인가... ㅋㅋ