API 안정성

Django는 API의 안정성과 다음버젼의 호환성을 보장하고 있습니다. 요컨대, 새로 업데이트되는 Django 버전에서도 기존에 작성한 코드는 문제 없이 돌아갈 것이라는 뜻입니다. 하지만 업데이트후 프로젝트 별 소소한 변경 작업들은 해줘야 할 수 있습니다. 이에 대해서는 “이전 버전과 호환되지 않는 변경사항” 섹션에서 릴리스 노트 기존 버전 혹은 업그레이드 대상 버전의 문서를 참조하시기 바랍니다.

API 안정성을 매우 높은 우선순위로 만드는 동시에 Django는 우리가 제공하는 API에서 (결과적으로) “한 가지 방법”을 목표로 하는 것과 함께 지속적인 개선에도 전념하고 있습니다. 이것은 우리가 일을 하는 데 있어 분명히 더 나은 방법을 발견할 때 이전 방법을 더 이상 사용하지 않고 결국 제거할 것임을 의미합니다. 우리의 목표는 그것을 사용하는 모든 프로젝트에서 모범 사례를 장려하는 최고 품질의 현대적이고 신뢰할 수 있는 웹 프레임워크를 제공하는 것입니다. 점진적 개선을 이용해 정체 및 대규모 중단 업그레이드를 모두 방지하려고 합니다.

“안정적인 것”의 의미

이 문맥에서, 안정적인 것은 다음을 의미합니다.

  • 공개된 모든 API(이 문서에 있든 모든것)들이 이전 버전과 호환되는 별명을 제공하지 않고 이동되거나 이름이 바뀌지 않을 것 입니다.

  • 이 API들에 새로운 기능이 추가된다면, 이 기능들은 이미 존재하는 메소드들의 의미를 바꾸거나 중단시키지 않을 것 입니다. 다시 말하면 “안정적인 것”의 의미는 (어쩔 수 없이) “완벽한 것”이 아닙니다.

  • 만약 어떤 이유로 안정적인 것에 선언된 API가 삭제되야 하거나 대체되야 한다면, 이것은 사용 금지로 선언될 것 입니다 그러나 이것은 앞으로 두번의 릴리스에서 API에 포함될 것 입니다. 사용이 금지된 메소드가 호출될 때 경고들이 발생될 것 입니다.

    Official releases에 Django 버전 번호를 붙이는 기준과, 어떻게 기능들이 비활성화 되는지에 대한 자세한 설명이 있습니다.

  • 저희는 버그나 보안상 문제가 발생하지 않는 이상 이전 버전 호환성을 지킵니다.

안정적인 API들

일반적으로 모든 것을 문서에서 다루되 내부 영역에 있는 것은 안정적이라고 간주합니다.

예외

이러한 안정성과 하위 호환성 보장에 대한 몇 가지 예외가 있습니다.

보안 픽스

우리가 보안 보고 정책에 따라 보안 문제를 인지하게 되면, 그것을 해결하기 위해 무엇이든 할 것입니다. 이것은 하위 호환성을 깰 수도 있다는 말입니다. 보안이 호환성 보장보다 우선이기 때문입니다.

API들은 내부것으로 표시됩니다.

어떤 API들은 다양한 방법으로 “internal”로 표시됩니다.

  • 몇몇 문서에서 internal이라고 언급한 경우. 문서에 어떤 것이 internal이라고 되어 있을 경우, 우리는 그것을 변경할 권한이 있습니다.
  • 밑줄(_)로 시작하는 함수, 메서드, 그외 객체. 이것은 Python에서 어떤 것이 비공개(private)임을 표시하는 표준 방식입니다. _로 시작하는 메서드는 내부 API입니다.
Back to Top