분류 Nodejs

단일 JSON 파일이 전체 코드 기반이 되는 방법

컨텐츠 정보

  • 조회 337 (작성일 )

본문

문제 


소프트웨어를 개발하는 데 비용이 많이 들고 많은 시간과 노력이 든다는 것은 우리에게 새로운 소식이 아닙니다. 결국 우리는 코드, 좋은 코드에 대해 이야기하고 있습니다.


문제를 해결하는 것은 그런 종류의 코드이며 우아하고 가독성이 높으면서도 문제를 해결합니다. 하지만 그렇게 하는 것은 어렵습니다. 여기서 우리는 어려운 문제의 표면을 만집니다.


좋은 코드는 정말 비싸고 대부분의 사람과 회사에서 액세스할 수 없습니다. 


불량/결함이 있는 코드는 종종 문제를 해결하지 못할 뿐만 아니라 자체 문제가 되기도 합니다. "단순한" 버그를 수정해야 했기 때문에 레거시 코드 기반의 엄청나게 지저분한 클래스 시스템을 이해해야 했던 적이 있을 것입니다.


My theory 


저는 재미있는 개인 이론을 가지고 있습니다. 코드에 대해 만들어진 모든 것은 코드를 조금씩 더 쉽게 만드는 유일한 목적으로 코드 접근성 문제로 어느 정도 역추적될 수 있다는 것입니다.


사람들은 C를 사용하기 시작하여 바이트를 수동으로 자주 이동할 필요가 없습니다. 웹에서 JQuery의 등장으로 점점 더 복잡하고 유능한 웹사이트가 탄생했습니다. 이는 꿈만 같은 일이었습니다. 그런 다음 Java, C#, ReactJS, Docker와 같은 도구 및 우리의 삶을 더 좋게 만들기 위한 셀 수 없는 기타 제품이 등장했습니다.


그러나 현재 시나리오에 맞게 조정되었지만 "좋은 코드 작성" 문제는 여전히 지속됩니다.


솔직히 이 문제에 확실한 해결책이 있다고 생각하지 않습니다. 우리 사회와 기술이 점점 더 유능해지고 복잡해짐에 따라 우리의 문제도 복잡해집니다. 하지만 소프트웨어에 더 쉽게 접근할 수 있도록 하기 위해 우리가 더 잘할 수 있다고 생각합니다.


코드를 액세스 가능하고 저렴하게 만들기 


이제 그러한 "좋은 코드"가 한 번만 작성될 수 있고 우리 모두가 자신의 목적을 위해 그 코드를 자유롭게 사용할 수 있다면 어떨까요? 상용구 코드를 작성할 필요 없이 여러 좋은 코드를 함께 연결할 수 있다면 어떨까요?


아마도 더 나은 방법으로 사용 사례에 절대적으로 필요한 코드만 작성할 수 있습니다.


여기에서 JSON이 사용됩니다.


Code as Data 


시작하기 전에 "데이터로서의 코드"가 존재하려면 다음이 참이어야 합니다.


어떤 코드라도 정보의 조각으로 표현하는 것이 가능하다면, 그것을 구성하여 특징과 기능을 구성하는 것이 가능합니다.


다행히 데이터는 무엇이든 나타낼 수 있습니다. 


날 믿지 않아? 이것을 읽어보십시오.


{
  "variables": [{ "name": "highestAllowedNumber", "value": 3 }],
  "code": [
    {
      "procedureName": "if",
      "boolean": {
        "procedureName": "higherThan",
        "input": "functionInput1",
        "targetValue": "highestAllowedNumber"
      },
      "then": { "procedureName": "stdOut", "message": "too high!" },
      "else": { "procedureName": "stdOut", "message": "you're fine." }
    }
  ]
}


사용자 입력이 3보다 높으면 "Too high!"라는 메시지가 표시됩니다.


자, 아마도 당신은 이것과 일반 코드의 차이점이 무엇인지 스스로에게 묻고 있을 것입니다.


언뜻보기에는별로 많지 않지만 실제로는 근본적으로 다릅니다. 이 데이터를 실행할 수는 없지만 코드로 구문 분석한 다음(좋은 코드도!) 실행할 수 있습니다.


Data as Code 


생각해 보면, 프로그래밍의 좋은 부분은 비즈니스 프로세스의 정보를 컴퓨터가 더 쉽게 작업할 수 있는 언어로 변환하는 것입니다.


이 간단한 운동을 해보십시오. 마지막 섹션에서 해당 데이터를 가져와 JavaScript로 작성한 다음 C#으로 작성한 다음 C++로 작성하십시오.


완료한 후에는 컴퓨터가 우리를 위해 이 변환을 수행하도록 지시할 수 있다는 것을 어느 정도 시각화할 수 있을 것입니다.


데이터와 코드에 액세스할 수 있도록 만드는 사용자 


이해를 위해 지나치게 단순화하여 최고의 if 문을 작성했으며 위에서 본 것과 동일한 데이터 구조로 나타낼 수 있다고 가정해 보겠습니다.


우리의 의도를 정확하게 나타내는 데이터를 얻을 수 있다면 구현에 대해 전혀 생각하지 않고도 우리가 가진 최고의 코드가 될 수 있습니다. 최상의 결과를 얻으려면 오픈 소스로 만드십시오.


단일 JSON 파일이 전체 코드 기반이 되는 방법 


지금 당장은 제목이 현실과 그리 멀지 않다는 것을 확신합니다. 글쎄요, 실제로 그러한 것은 이미 존재하며 여기에 WIP의 예가 있습니다.


이것은 내가 즐겁게 작업한 오픈 소스 소프트웨어인 Meta-System을 사용하여 가능했습니다. 소프트웨어에 액세스할 수 있게 하는 동시에 이러한 액세스 가능성에 기여할 수 있는 방법을 제공합니다.


Repository를 확인하고 소프트웨어 세계를 보다 친근하고 덜 도전적으로 만드는 것에 대해 이야기하는 디스코드에 참여하십시오.


출처 : https://dev.to/zelcion/how-a-single-json-file-could-become-your-entire-code-base-356j