몇 년째 회사에서 Django를 간헐적으로 써오고 있음. 전반적으로 마음에 들지만 ORM이 여전히 어렵게 느껴짐
Django는 의견이 강한 프레임워크라 ‘Django 방식’을 따라야 한다는 걸 이제야 이해했음.
문제는 여러 사업 부서의 다중 데이터베이스를 다뤄야 해서, 매번 그 특이점을 맞추느라 고생함.
결국 managed를 끄고 inspectdb로 스키마를 가져온 뒤, 웹에 노출하고 싶지 않은 테이블을 수동으로 삭제하는 식으로 처리함.
새로 만드는 웹앱에는 Django가 여전히 최선의 선택임
동의함. 하지만 DB 마이그레이션 워크플로우는 여전히 아쉬움
Django는 코드와 함께 스키마 상태를 저장하지 않아서, 매번 DB 명령을 실행할 때마다 현재 상태를 추론해야 함.
모델 코드로 DB 상태를 정의하는 건 본질적으로 한계가 있음.
나는 Rails처럼 명시적인 DB 명령으로 마이그레이션을 구성하고, 그 위에 모델을 얹는 방식을 더 선호함
나는 주로 Odoo를 쓰지만 Django와 Celery도 조금 다뤄봤음.
Odoo의 OCA queue 모듈을 많이 사용하는 입장에서,
Django가 왜 Postgres의 LISTEN/NOTIFY 기능을 활용하지 않는지 늘 궁금했음.
아마 내가 Django 생태계에 익숙하지 않아서일 수도 있음
Template Partials와 HTMX는 Django 버전의 Rails View Components + Stimulus처럼 느껴짐.
Tasks 기능이 정식 지원되는 것도 반가움
Hacker News 의견들
몇 년째 회사에서 Django를 간헐적으로 써오고 있음. 전반적으로 마음에 들지만 ORM이 여전히 어렵게 느껴짐
Django는 의견이 강한 프레임워크라 ‘Django 방식’을 따라야 한다는 걸 이제야 이해했음.
문제는 여러 사업 부서의 다중 데이터베이스를 다뤄야 해서, 매번 그 특이점을 맞추느라 고생함.
결국
managed를 끄고inspectdb로 스키마를 가져온 뒤, 웹에 노출하고 싶지 않은 테이블을 수동으로 삭제하는 식으로 처리함.새로 만드는 웹앱에는 Django가 여전히 최선의 선택임
Django는 코드와 함께 스키마 상태를 저장하지 않아서, 매번 DB 명령을 실행할 때마다 현재 상태를 추론해야 함.
모델 코드로 DB 상태를 정의하는 건 본질적으로 한계가 있음.
나는 Rails처럼 명시적인 DB 명령으로 마이그레이션을 구성하고, 그 위에 모델을 얹는 방식을 더 선호함
Manager 인터페이스는 처음엔 헷갈리지만, 마이그레이션 도구는 정말 훌륭함
SQL 튜닝의 유연함과 Django의 편리함을 동시에 얻을 수 있음.
단, 마이그레이션 스크립트 안에서 생성하는 걸 잊지 말아야 함
Django가 매 릴리스마다 조금씩 꾸준히 개선되는 게 정말 마음에 듦.
특히 6.0 버전은 유용한 기능이 많아서 흥미로움.
믿을 수 있는 기술이 지루하다는 말은 틀렸음. 이런 식으로 발전하는 게 맞음
지금 Django의 탄생지 근처에 살고 있음.
덧붙여, 어제부터 구직 중이니 경험 많은 Django 개발자를 찾는다면 연락 바람 (oldspiceap@gmail.com)
Adam이 쓴 코드나 블로그는 언제나 읽을 가치가 있음.
앞으로 tasks 프레임워크가 어떻게 발전할지 기대됨.
다만 훌륭한 Django-Q2가 Celery와 함께 언급된 건 조금 아쉬움
버그가 많지만 사용자층이 워낙 커서 문제를 처음 겪는 경우가 드묾.
Celery + RabbitMQ 조합으로 하루 수천만 건의 메시지를 안정적으로 처리했음.
여전히 첫 번째로 고려할 만한 솔루션임
다른 스택에서는 Kafka도 쓰지만, 그건 완전히 다른 수준의 사용 사례임
Django를 5~6년 정도 써왔는데, ‘배터리 포함’ 이라는 장점은 분명하지만 전반적으로 무겁게 느껴짐
Template partial 기능이 좋아 보임.
React가 인기를 얻은 이유 중 하나가 코드 재사용성인데, Django도 그 방향으로 가는 듯함
예시는 여기 코드에 있음
나는 주로 Odoo를 쓰지만 Django와 Celery도 조금 다뤄봤음.
Odoo의 OCA queue 모듈을 많이 사용하는 입장에서,
Django가 왜 Postgres의 LISTEN/NOTIFY 기능을 활용하지 않는지 늘 궁금했음.
아마 내가 Django 생태계에 익숙하지 않아서일 수도 있음
Template Partials와 HTMX는 Django 버전의 Rails View Components + Stimulus처럼 느껴짐.
Tasks 기능이 정식 지원되는 것도 반가움
Django 1.x 시절, ORM이 없던 때부터 써왔음.
이제서야 task 실행 기능이 추가된 게 정말 놀라움.
비판하려는 건 아니고, 그저 흥미로운 진화임
각 기능이 충분히 검증된 뒤에야 포함시키고, LTS와 API 안정성에 집중함.
덕분에 새 버전이 나와도 전체 앱을 다시 써야 할 일이 거의 없음
당시엔 단순했지만, 꽤 오랫동안 raw SQL을 쓸 필요가 없었음
추가 토론은 이 스레드에서 이어지고 있음
나는 Django와 HTMX를 함께 쓰면서 컴포넌트 단위 템플릿이 너무 불편해서,
직접 Python 기반의 컴포넌트 라이브러리 Compone를 만들었음.
Django뿐 아니라 모든 Python 웹 프레임워크에서 쓸 수 있고, 훨씬 쾌적한 개발 경험을 줌