urls.py 파일에 작성한 코드 분리 여부
245
작성한 질문수 2
안녕하세요. 정말 강의 재밌게 잘 듣고 있습니다.
들으면서 궁금한 부분이 있어 질문드립니다.
/orders API를 예시로 들었을 때, urls.py 파일에 모든 코드가 작성되는데, 쿼리나 비즈니스 로직을 따로 분리하는 방식은 파이썬 프레임워크에서는 잘 사용하지 않는 방법인가요?
일반적으로 스프링에서는 service와 respository 클래스로 해당 코드를 분리하는 편이어서 이 차이점이 궁금합니다.
답변 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 파일로 분리하여 사용할 수도 있습니다.
저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다.
현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏
추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.
part2강의 문의사항입니다.
0
2
2
수강기간 연장 문의드립니다.
0
17
1
인덱스 슬라이싱
0
17
2
코드를 첨부해야하는 이유가 있나요?
0
15
2
소리가 겹쳐서 들려요
0
17
2
데스크톱과 노트북 연결
0
21
1
dict, zip
0
21
2
노션 : 파트3번 링크와 권한 , 파트4번 권한요청, 파트 5번도 미리 요청 드립니다.
0
25
4
6-6 실습 문의
0
20
2
미션 06-02
0
20
2
yes24 수집 md 파일 만들 때
0
18
2
python main.py 실행시 게임이 실행이 안돼요
0
21
2
antigravity 대신 cursor를 활용해도 되나요?
0
25
1
뉴스 검색 분류 한도초과
0
35
2
완성자료
0
24
2
섹션5 노션링크 는 따로 없나요?
0
25
2
필기자료 사라졌나요?(실기 일주일만에 안돼서 재도전-_-)
0
34
2
Part 4에서 강의 연관 노션 정보들이 워드파일에 없습니다.
0
31
2
첨부자료 Part 4 코드 확인 부탁드리겠습니다.
0
26
2
pyenv는 윈도우에서는 잘 안되나 보네요..
0
171
1
강의와 .md 차이
1
108
1
pg_bigm으로 product의 name필드로 상품 검색
0
273
1
product의 name 필드로 상품 검색시 생성한 gin index사용 여부
0
250
1
python manage.py showmigrations 문제
0
278
1





