• 카테고리

    질문 & 답변
  • 세부 분야

    백엔드

  • 해결 여부

    미해결

URL 매핑 관련해서 질문드립니다.

23.12.31 17:26 작성 조회수 127

0

안녕하세요 선생님. 수업 잘듣고 있습니다.

"장고앱 폴더만 다른 프로젝트로 복사하면 복잡한 설정없이 사용할 수 있다."라는 것에 대해 질문이 있는데요.

폴더를 복사해서 사용하게 되면

복사가된 폴더와 복사를 한 폴더의 models 파일이 같은 테이블을 바라보게 되는데 한 폴더에서 models의 내용을 수정해 table내용을 변경하게 된다면 나머지 다른 폴더도 변경해줘야 하지 않을까요? 그렇게 된다면 models라는 폴더는 공용으로 쓰는게 맞지 않나 생각합니다.

 

또 다른 질문이 있습니다. FastAPI를 사용했다는 가정하에 Layer가 잘 나눠져 있다는 가정하에 UrL이 매핑되어 있어도 Controller 함수만 하나더 추가하면 더 유연한 구조가 될거 같은데요. 선생님 생각은 어떤지 궁금합니다.

느슨한 결합 부분에서 복붙을해서 프로젝트를 확장하는 것이 확장성이 있는 장점인지 잘 모르곘습니다.

 

수업 잘듣고 있습니다. 감사합니다!

답변 1

답변을 작성해보세요.

1

안녕하세요.

장고 앱은 재사용성을 위한 기반을 제공해주는 것 일 뿐, 개발자가 재사용성이 떨어지도록 활용한다면 그 의미가 퇴색될 것입니다. 각 모델의 디폴트 db_table 명은 prefix 로 "앱이름_" 을 사용하고 있어서, 기본적으로 각 앱 간에 중복이 되진 않습니다. 하지만 db_table을 변경해서 다른 앱과 중복이 발생토록 한다면, 그 장고 앱은 재사용성이 떨어질 것입니다. 장고 앱으로 배포되는 라이브러리들은 db_table 속성을 지원하지 않으시는 것이 맞습니다.

라이브러리가 아닌, 개발하시는 프로젝트 내에서는 그 프로젝트만의 코드를 작성하실테니 재사용성을 고민하실 필요가 없으실 것이고, 프로젝트 내에서 굳이 여러 앱으로 나누실 필요는 없습니다. 단일 앱 내에서 폴더 구조를 깊게 가져가시는 방법도 있습니다. models.py 모듈을 models/ 팩키지로 가져가시는 거죠.

"Controller 함수만 하나더 추가하면 더 유연한 구조가" 부분은 제가 질문이 잘 이해가 안 되어서요. 맥락을 좀 더 설명해주실 수 있으실까요?

살펴보시고 댓글 부탁드립니다.

질문에 감사드리고, 새해 복 많이 받으세요. :-)