발단 모델을 수정하고 Alembic의 revision을 생성하려고 하는 커맨드를 입력하는 도중, env.py 에서 내 프로젝트의 app 모듈을 찾지 못 하는 ModuleNotFoundError 에러가 떴다. 원인 어떠한 이유에서 Alembic은 커맨드를 실행할 때, local "." 경로를 sys.path에 추가하지 않는데 그래서 프로젝트의 모듈을 못 찾는 것 같다. 해결 alembic.ini로 가서 아래 코드의 주석을 해제해주어 local "." 경로를 sys.path에 추가하자. (주석되어있음) prepend_sys_path = . stack overflow :alembic-modulenotfounderror-in-env-py alembic github :해당 에러에 대한 커밋

post나 put처럼 delete를 사용하는데 안돼서 당황할 때가 있다. 혹시 delete를 호출할 때 두번째 인자에 body를 넣고있지않은가? Axios는 RESTful API 방식을 지키기 위해서 delete메소드에 절대 바디를 담지않으려는 친구였다. (RESTful이 궁금하다면 찾아보자) 즉, POST나 PUT처럼 두번째 인자에 body를 담지않는다! 그래서 두 번쨰 인자로는 data option을 인자로 넣어줘야 바디로 얹혀진다. const res = await axios.delete('https://here/is/path/for/delete', { data : { id : 1} });

DIP - 의존 역전 원칙(Dependency inversion principle) 고차원 모듈은 저차원 모듈에 의존하면 안 된다. 이 두 모듈 모두 다른 추상화된 것에 의존해야 한다. 추상화된 것은 구체적인 것에 의존하면 안 된다. 구체적인 것이 추상화된 것에 의존해야 한다. 로버트 C. 마틴은 DIP에 대해 이렇게 말했다. 이것만 보면 이 말이 의존 역전 원칙이라는 용어와 잘 맞물리지 않는다. 고차원 모듈은 뭐고 저차원 모듈은 뭐지? 먼저 이것부터 알아보자. 고차원 모듈(High Level Module) : Interface/abstraction 같이 저차원 모듈을 조종하는 모듈 저차원 모듈(Low Level Module) : 고차원 모듈이 일을 할 수 있게 도와주는 작은 모듈들 예를 들어 고차원 모..