Recent Posts
Tags
- 데이터 분석 기반 에너지 운영 관리자 양성 및 취업과정
- AI 플랫폼을 활용한 데이터 분석
- Django
- 코딩테스트
- PY4E
- 파이썬
- boostcoures
- 코딩테스트 python
- 빅데이터분석기사
- boostcourse
- 부스트코스
- 빅데이터 분석 기반 에너지 운영 관리자 양성 및 취업과정
- DB
- 이기적
- Oracle
- 이것이 취업을 위한 코딩테스트다 with 파이썬
- 인공지능기초다지기
- 데이터베이스
- Ai
- 오라클
- 기초다지기
- 정보처리기사
- [멀티잇]데이터 시각화&분석 취업캠프(Python)
- SQL
- r
- 빅분기
- 네이버부스트캠프
- python
- unsub
- 프로그래머스
- Today
- Total
매일공부
[Django] 등록 안 된 admin 클래스, 지워도 되는 죽은 코드였다 본문
Q. 삭제한 BaseSafeAdmin, 이게 어떤 역할이었지?
코드 정리 작업을 하다가 지운 클래스였는데, 나중에 다시 보니 "이게 뭐 하던 코드였지" 싶었다.
class BaseSafeAdmin(admin.ModelAdmin):
readonly_fields = ("is_deleted", "deleted_at")
의도됐던 역할
Django admin 화면에서 특정 모델을 등록할 때, is_deleted/deleted_at 필드를 관리자가 admin 화면에서 실수로 직접 수정하지 못하게(읽기 전용으로) 막아주려던 공통 베이스 클래스였던 것으로 보인다. Soft delete 필드를 admin에서 직접 건드리면 트리거·soft-delete 로직을 우회하게 되니, 그걸 방지하려던 안전장치 성격이었을 것.
그런데 실제로는 아무 역할도 안 하고 있었다
관련 앱들의 admin.py를 확인해보니, @admin.register(모델, BaseSafeAdmin) 같은 식으로 실제 모델에 연결하는 코드가 어디에도 없었다. 클래스만 정의해놓고 아무도 상속하거나 등록하지 않은 채로 방치된 상태였던 것.
그 결과:
- 이 클래스가 보호하려던 모델들은 애초에 Django admin(/admin/)에 전혀 노출되지 않고 있었다 (등록 자체가 안 됐으니까)
- 그래서 이 클래스를 지워도 admin 화면 동작에는 아무 변화가 없다 — 지우기 전이나 후나 /admin/에서 해당 모델을 볼 수 없는 건 동일하다
정리
즉 "쓰이고 있던 기능을 없앤 것"이 아니라, "언젠가 쓰려고 만들어놓고 실제로는 연결을 안 한 죽은 스캐폴딩"을 치운 것이었다. 이런 코드는 grep으로 클래스명이나 함수명을 검색해서 실제로 참조/등록하는 곳이 있는지 확인하지 않으면, "지워도 되는 코드"인지 "지금 동작 중인 코드"인지 구분하기 어렵다.
나중에 다시 admin에서 관리하고 싶어지면, 다른 모델에 이미 쓰고 있는 @admin.register(모델) 패턴처럼 새로 등록하면서 필요하면 이런 read-only 처리도 그때 다시 추가하면 된다. 삭제 자체는 되돌리기 쉬운 결정이었다.
'IT > 작업기록' 카테고리의 다른 글
| [Claude Code] VS Code에서 "credit balance" 에러 — 원인은 로그인 방식이었다 (0) | 2026.07.28 |
|---|---|
| [Django] 환경변수로 빼야 하는 값과 아닌 값 구분하기 (0) | 2026.07.27 |
| [Django] DRF(Django REST Framework) 안 쓰고 있는데, 이대로 괜찮나 (0) | 2026.07.27 |
| [Python] 날짜 계산에서 계속 헷갈리는 것 — "며칠 차이"와 "포함해서 며칠"은 다르다 (0) | 2026.07.24 |
| [Git] 진짜 충돌인 줄 알았는데 아니었던 이야기 — 그리고 거꾸로 했던 pull (0) | 2026.07.23 |
Comments