소프트 코딩
Softcoding![]() |
소프트 코딩은 텍스트 파일, INI 파일, 프리프로세서 매크로, 외부 상수, 구성 파일, 명령줄 인수, 데이터베이스, 사용자 입력, HTTP 서버 응답 등의 외부 리소스에서 값 또는 함수를 얻는 것을 가리키는 컴퓨터 코딩 용어입니다.소스 코드의 값 및 함수를 코드화하는 하드 코드와는 반대입니다.
프로그래밍 연습
일반적으로 변경되는 값의 하드코딩을 피하는 것이 좋은 프로그래밍 방법입니다.소프트웨어 사용자는 프로그램의 소스 코드를 편집할 필요 없이 합리적으로 자신의 요구에 맞게 소프트웨어를 커스터마이즈할 수 있어야 합니다.마찬가지로 신중한 프로그래머는 코드 내의 매직넘버를 피하고 읽기 쉽고 유지보수를 지원합니다.이러한 방법은 일반적으로 '소프트 코딩'이라고 하지 않습니다.
이 용어는 일반적으로 소프트 코딩이 안티패턴이 되는 경우에 사용됩니다.너무 많은 값과 기능을 추상화하면 필요할 때 코드를 변경할 때보다 복잡성과 유지 보수 문제가 더 많이 발생할 수 있습니다.그런 의미에서 소프트코딩은 The Daily WTF [1]기사에 실렸다.
잠재적인 문제
궁극적으로는 소프트 코드화된 프로그램이 제대로 설계 및 구현되지 않은 자체 스크립트 언어 및 편집에 고급 프로그래밍 기술이 필요한 구성 파일을 개발합니다.이로 인해 원래 프로그램 구성을 지원하는 유틸리티가 생산될 수 있으며, 이러한 유틸리티는 대부분 자체에서 '소프트 코드'가 됩니다.
적절한 설정 가능성과 문제가 있는 소프트 코딩의 경계는 프로그램의 스타일과 특성에 따라 달라집니다.최종 사용자는 변경을 위해 소스에 액세스할 수 없기 때문에 클로즈드 소스 프로그램은 구성이 매우 용이해야 합니다.사내 소프트웨어 및 배포가 제한된 소프트웨어는 변경된 복사본을 배포하는 것이 더 간단하기 때문에 구성하기 어려울 수 있습니다.커스텀 빌드의 Web 애플리케이션은, 설정 가능성의 제한이 있는 것이 가장 좋은 경우가 많습니다.스크립트를 변경하는 것은 설정 파일을 변경하는 것보다 어려운 일이 거의 없기 때문입니다.
'소프트 코딩'을 피하려면 최종 사용자에게 제공하는 추가 유연성의 가치를 고려하여 추가 구성 시 발생하는 복잡성 및 관련 유지 보수 비용과 비교합니다.
유연성 실현
소프트 코딩이 제공하는 유연성을 실현하기 위한 몇 가지 정당한 설계 패턴이 존재합니다.컨피규레이션파일에 적합한 것 이상의 유연성을 필요로 하는 어플리케이션은 스크립트 언어를 도입함으로써 이점을 얻을 수 있습니다.대부분의 경우 적절한 설계는 확립된 스크립트 언어에 통합된 도메인 고유의 언어입니다.또 다른 접근법은 애플리케이션 기능의 대부분을 라이브러리로 이동하여 관련 애플리케이션을 신속하게 작성할 수 있는 API를 제공하는 것입니다.
다른 의미
- 하드 코딩: 기능이 시스템에 코딩되어 구성을 허용하지 않습니다.
- 파라미터: 기능은 테이블 기반 또는 파라미터 값이 제한된 속성 파일을 통해 구성할 수 있습니다.
- 소프트 코딩: 기능은 임의의 수의 파라미터 값(BRE의 비즈니스 규칙 등)을 기반으로 결과를 도출하는 "엔진"을 사용합니다.규칙은 코드화되어 있지만 시스템 내 파라미터로 존재하며 스크립트 형식으로 작성됩니다.