API 안정성Link to this heading
Django는 1.0 버전부터 API의 안정성과 앞으로의 호환성을 보장하고 있습니다. 요컨대, 새로 나올 Django 버전에서도 기존에 작성한 코드는 문제 없이 돌아갈 것이라는 뜻입니다. 그렇지만 업그레이드 시에 프로젝트 별 소소한 변경 작업들은 해줘야 할 수 있습니다. 이에 대해서는 “이전 버전과 호환되지 않는 변경사항” 섹션에서 릴리스 노트 기존 버전 혹은 업그레이드 대상 버전의 문서를 참조하시기 바랍니다.
“안정적인 것”의 의미Link to this heading
이 문맥에서, 안정적인 것은 다음을 의미합니다.
공개된 모든 API(이 문서에 있든 모든것)들이 이전 버전과 호환되는 별명을 제공하지 않고 이동되거나 이름이 바뀌지 않을 것 입니다.
이 API들에 새로운 기능이 추가된다면, 이 기능들은 이미 존재하는 메소드들의 의미를 바꾸거나 중단시키지 않을 것 입니다. 다시 말하면 “안정적인 것”의 의미는 (어쩔 수 없이) “완벽한 것”이 아닙니다.
만약 어떤 이유로 안정적인 것에 선언된 API가 삭제되야 하거나 대체되야 한다면, 이것은 사용 금지로 선언될 것 입니다 그러나 이것은 앞으로 두번의 릴리스에서 API에 포함될 것 입니다. 사용이 금지된 메소드가 호출될 때 경고들이 발생될 것 입니다.
Official releases에 Django 버전 번호를 붙이는 기준과, 어떻게 기능들이 비활성화 되는지에 대한 자세한 설명이 있습니다.
저희는 버그나 보안 문제가 완전히 피할 수 없는 문제가 되지 않는 이상 이전 버전 호환성을 지킵니다.
안정적인 API들Link to this heading
일반적으로 모든 것을 문서에서 다루되 내부 영역에 있는 것은 안정적이라고 간주합니다.
예외Link to this heading
이러한 안정성과 하위 호환성 보장에 대한 몇 가지 예외가 있습니다.
보안 픽스Link to this heading
우리가 보안 보고 정책에 따라 보안 문제를 인지하게 되면, 그것을 해결하기 위해 무엇이든 할 것입니다. 이것은 하위 호환성을 깰 수도 있다는 말입니다. 보안이 호환성 보장보다 우선이기 때문입니다.
API들은 내부것으로 표시됩니다.Link to this heading
어떤 API들은 다양한 방법으로 “internal”로 표시됩니다.
몇몇 문서에서 internal이라고 언급한 경우. 문서에 어떤 것이 internal이라고 되어 있을 경우, 우리는 그것을 변경할 권한이 있습니다.
밑줄(
_)로 시작하는 함수, 메서드, 그외 객체. 이것은 Python에서 어떤 것이 비공개(private)임을 표시하는 표준 방식입니다._로 시작하는 메서드는 내부 API입니다.