urls.py 파일에 작성한 코드 분리 여부
245
2 câu hỏi đã được viết
안녕하세요. 정말 강의 재밌게 잘 듣고 있습니다.
들으면서 궁금한 부분이 있어 질문드립니다.
/orders API를 예시로 들었을 때, urls.py 파일에 모든 코드가 작성되는데, 쿼리나 비즈니스 로직을 따로 분리하는 방식은 파이썬 프레임워크에서는 잘 사용하지 않는 방법인가요?
일반적으로 스프링에서는 service와 respository 클래스로 해당 코드를 분리하는 편이어서 이 차이점이 궁금합니다.
Câu trả lời 2
1
안녕하세요! 재밌게 들어주셔서 감사합니다 😄 파이썬에도 프로젝트가 커지면 service나 repository를 분리합니다. 다만 예시 프로젝트에서는 비지니스 로직이 복잡하지 않아서 따로 계층을 분리를 하지 않았습니다. 가장 마지막 강의에 매우 간단하게 service layer를 분리하는 강의가 있습니다.
0
네, 강의 잘 들었습니다.
해당 강의 듣다가 또 궁금한 부분이 생겨서 질문드립니다.
서비스 클래스 내 함수를 모두 staticmethod로 선언하셨는데, 해당 클래스를 인스턴스화 해서 함수에 접근하게 하신 다른 이유가 있을까요?
강의 초반에 AuthenticationService에서 관련 부분 언급을 좀 해주셨는데, 여기서는 encode_token을 self 메서드로 선언해서 인스턴스화를 해야 함을 알고 있는데, 위의 서비스 클래스는 그런 함수가 없어서요.
0
도메인 별로 비지니스 로직끼리 하나의 클래스 안에 묶어서 코드 응집력 있게 관리하기 위해서 서비스 클래스의 메소드로 모두 구현하였습니다. 현재 구현에서는 서비스 클래스 내부 의존성이 없어서 전부 staticmethod로 구현되어 있는데요. 이 부분은 프로젝트가 복잡해지고 의존성이 생기면 인스턴스 메소드로 변경될 수도 있습니다.
0
안녕하세요, 인프런 AI 인턴입니다. 김재홍님.
Django에서도 마찬가지로 비즈니스 로직과 데이터 접근 로직을 분리하는 것이 좋은 프랙티스입니다. Django 프로젝트에서도 이런 목적으로 views, services, repositories나 models(FOR: File Organization by Responsibility)로 코드를 나누는 방법을 많이 사용합니다. 이에 대해 더욱 자세히 알아볼 수 있는 몇 가지 유사한 질문과 답변을 제공드립니다.
간단한 설명 추가:
- urls.py 파일은 주로 URL 라우팅을 담당하며, 쿼리와 비즈니스 로직은 views.py나 특정 비즈니스 로직을 담는 services.py, 데이터 접근 로직을 담는 repositories.py로 분리하여 관리하는 것이 좋습니다.
- Django에서는 views.py 파일에 비즈니스 로직을 담고, 이러한 로직이 복잡해질 경우 별도의 services.py 파일로 옮겨서 관심사를 분리할 수 있습니다.
- 데이터 접근 로직은 Django의 모델로 구현될 수 있으며, 이를 보다 추상화하기 위해 repositories.py 파일로 분리하여 사용할 수도 있습니다.
저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다.
현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏
추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.
구글 그래피티 마켓 오류...?!
0
8
2
디스코드 소통창구는 없어졌나요 ??
0
7
1
FOREIGN KEY 정리하기, 영상대로 SQL코드 복붙해도 안되요.
0
5
1
모델 서빙과 관련된 강좌 출시 예정된 바가 있으신지 여쭤봅니다!
0
7
1
모델 서빙과 관련된 강좌가 출시되는지 질문드립니다.
0
6
1
20번강좌에 대한 질문입니다.
0
6
1
6-6
0
18
1
작업형 1 유형 부분
0
19
2
수강평 이벤트
0
23
2
작업형 1 (삭제예정, 구 버전)
0
34
2
강의노트는 어디있나요?
0
21
1
노션 학습 자료 권한 요청
0
17
1
수강기간 연장 문의드립니다.
0
26
1
2유형 레이블 인코딩 VS 원핫 인코딩
0
26
3
part2강의 문의사항입니다.
0
23
2
수강기간 연장 문의드립니다.
0
28
1
인덱스 슬라이싱
0
28
2
코드를 첨부해야하는 이유가 있나요?
0
22
2
소리가 겹쳐서 들려요
0
23
2
pyenv는 윈도우에서는 잘 안되나 보네요..
0
171
1
강의와 .md 차이
1
108
1
pg_bigm으로 product의 name필드로 상품 검색
0
274
1
product의 name 필드로 상품 검색시 생성한 gin index사용 여부
0
253
1
python manage.py showmigrations 문제
0
278
1

