"내 컴퓨터에서는 되는데"는 아키텍처 문제다 노트

"내 컴퓨터에서는 되는데"는 아키텍처 문제다

개발자의 컴퓨터에서는 작동하지만 다른 곳에서는 실패하는 소프트웨어의 일반적인 문제는 아키텍처 문제를 나타냅니다. 이는 시스템 동작의 중요한 부분이 버전 관리 시스템에 포함되지 않아 개발자의 워크스테이션이 암묵적이고 문서화되지 않은 종속성이 되기 때문에 발생합니다. 런타임 버전, CPU 아키텍처, 파일 시스템, 로케일, 시간대, 네이티브 라이브러리, 인증서, 환경 변수, 종속성 해결 또는 빌드 도구의 차이가 이러한 실패의 원인이 될 수 있습니다. 이러한 불일치는 시스템이 빌드 및 실행 조건에 대한 완전하고 재현 가능한 정의를 가지고 있지 않다는 것을 의미합니다. 재현 가능한 빌드 관행은 선언된 소스 및 입력이 검증 가능한 아티팩트를 생성하도록 보장함으로써 이를 해결하는 것을 목표로 합니다. 현재 리포지토리는 종종 소스 코드와 구성을 보유하지만 운영상의 가정을 제외합니다. 예를 들어, 다른 Java Development Kit는 서비스의 동작을 변경할 수 있습니다. 호스트의 시간대에 의존하는 코드는 Java Virtual Machine의 런타임 환경의 차이로 인해 다양한 결과를 생성할 수 있습니다. 마찬가지로, 로케일 민감한 작업을 포함하는 기본 로케일은 환경에서 상속될 수 있으며, 이는 일관되지 않은 결과로 이어집니다.