
JSON 덩어리를 발견하고 여기에 당신이 찾고 있는 정보가 포함되어 있는지 궁금해 본 적이 있습니까? 포함된 내용을 더 쉽게 볼 수 있도록 공백을 추가하는 데 시간을 소비하셨나요? JSON 데이터를 검토하는 데 도움이 되는 오락실 슬롯 머신토타입을 고려해 보셨나요?
JSON은 시스템 간 데이터 전송에 적합하며, 스키마와 데이터가 모두 포함되어 있어 수신 시스템에서 쉽게 수집할 수 있습니다. 그러나 특히 공백이 없는 경우에는 인간 사용자가 이 형식을 소화하기가 쉽지 않습니다. 아래에서 살펴볼 것과 같은 간단한 오락실 슬롯 머신토타입이 유용한 경우가 바로 여기에 있습니다. 분석가가 JSON 형식의 사이버 위협 보고서를 발견한 경우 테이블 형식이면 정보를 더 쉽게 소화할 수 있습니다. 정렬 및 필터링을 추가하면 분석가가 더 짧은 시간에 필요한 정확한 데이터를 더 쉽게 찾을 수 있습니다. 분석가가 데이터가 유용하다고 판단하면 나머지 데이터 피드를 평가하거나 현재 워크플로에서 데이터 피드를 사용하는 오락실 슬롯 머신덕션을 평가하기 위한 결정을 내리는 데 도움을 줄 수 있습니다.
결국 사이버 위협 보고서 JSON bob을 빠르게 평가할 수 있는 빠른 오락실 슬롯 머신토타입 예제를 살펴보겠습니다.
1단계 – 요구사항의 빠른 검토 및 우선순위 지정
고객이 이 오락실 슬롯 머신토타입에서 실제로 원하는 것이 무엇인지 빠르게 생각해 봅시다. 그들은 JSON blob을 쉽고 빠르게 검색하고 정보를 소화할 수 있는 것을 원합니다. 정의상 JavaScript 개체 표기법인 JSON blob부터 시작하겠습니다. 따라서 JavaScript를 사용하여 무언가를 작성하는 것을 고려해 보겠습니다. 이렇게 하면 브라우저가 있는 사람이라면 누구나 이 오락실 슬롯 머신토타입을 사용할 수 있습니다. 또한 서버에 연결되지 않으므로 더욱 유연하고 유용하게 사용할 수 있습니다.
2단계 – 이미 존재하는 항목이 있는지 확인
이제 여기에서는 JavaScript가 최선의 선택일 것이라고 판단했으므로 빠른 검색을 해보겠습니다. Prettify는 일반적으로 최소화된 내용을 읽기 쉬운 형식으로 인쇄하려는 개발자가 사용하는 용어가 되었습니다. 이는 일반적으로 인쇄된 텍스트에 공백, 줄바꿈, 심지어 색상까지 추가하는 것을 의미합니다. 이 지식을 바탕으로 내 검색은 "json javascript Pretty"가 됩니다. 최고의 결과 중 하나는 Stackoverflow에서 나온 것입니다.. 여기에서 JavaScript에 JSON.stringify()라는 내장 함수가 있음을 알 수 있습니다. 이는 기본적으로 JavaScript의 JSON prettify 기능이지만 정렬이나 필터를 제공하지 않습니다. blob이 더 많은 레벨로 인해 더 복잡하거나 매우 큰 경우 특정 데이터를 검색하기 위해 JSON을 검토하는 데 여전히 시간이 걸립니다.
3단계 – 기존 솔루션 평가
몇 가지 다른 응답을 계속 살펴보겠습니다. 누군가가 이미라는 JSON 보고서 스크립트를 개발한 것 같습니다.. 그것이 우리의 요구에 맞는지 살펴 보겠습니다. 언뜻 보기에, 그것은 내가 원래 생각했던 것보다 훨씬 더 가깝습니다. 확실히 JSON을 더 쉽게 소화할 수 있으며 정렬도 포함됩니다. 좀 더 자세히 살펴보겠습니다. 첫 번째 문제는 사용된 JSON blob이 정적으로 정의된다는 것입니다. 스크립트에서 JSON을 교체한 다음 페이지를 다시 로드할 수 있지만 개발자 외에는 사용할 수 없습니다. 누구나 쉽게 사용할 수 있는 것을 원합니다.
4단계 – 기존 솔루션 수정
기존에서 시작스크립트, 사용성을 좀 더 향상시키겠습니다. 먼저 텍스트 영역을 추가하겠습니다. 이를 통해 사용자는 JSON Blob을 페이지에 붙여넣고 새 보고서를 동적으로 로드할 수 있습니다. 그런 다음 보고서 처리를 위해 JSON을 제출하는 버튼이 필요합니다. 충분히 간단합니다. 이제 다음이 있습니다.

이제 버튼이 뭔가를 해야 합니다. 여기에서 보고서가 생성되는 방식을 파악하기 위해 코드를 자세히 살펴보아야 합니다. 정적으로 설정된 JSON 모델 변수 줄을 따르는 함수에 아직 래핑되지 않은 코드 줄은 몇 개뿐입니다. 사용자가 새 버튼을 클릭할 때 호출할 수 있도록 해당 행(323-329)을 새 함수로 래핑하는 것부터 시작하겠습니다. 함수는 다음과 같습니다:

그런 다음 이전에 추가한 버튼에서 newModel()에 대한 호출을 추가하므로 HTML 코드는 이제 다음과 같습니다.

이것은 단지 오락실 슬롯 머신토타입이라는 것을 기억하십시오. 따라서 지금은 텍스트 영역의 크기나 버튼에 멋진 CSS를 추가하는 것에 대해 걱정하지 않습니다. 지금 나의 주요 관심사는 우선순위 요구사항을 충족하는 기능적 오락실 슬롯 머신토타입을 만드는 것입니다.
5단계 – 테스트
이 솔루션을 제공하기 전에 사용자에게 지시한 대로 작동하는지 확인하기 위해 몇 가지 기본 테스트를 수행하고 싶습니다. "json api"를 사용하여 몇 가지 예제를 다시 검색하면 JSON REST 서비스의 예제 출력이 제공됩니다. 첫 번째 결과는 다음과 같습니다.. 해당 예제를 텍스트 영역에 붙여넣으면 예상대로 작동합니다. 다양한 복잡성을 몇 가지 더 시도해 보았는데 NY Times 베스트셀러에 대한 API를 발견할 때까지 모든 것이 예상대로 작동하는 것 같습니다. 해당 API에는 키가 필요하지만 나에게는 없지만 예제 출력을 제공하므로 지금 당장 필요한 것은 그것뿐입니다. 예시 사용, 텍스트 영역에 붙여넣고 보고서 생성 버튼을 클릭해도 아무 일도 일어나지 않습니다.
6단계 – 문제 해결, 조정, 테스트, 반복
빠른 문제 해결을 할 시간입니다. 브라우저의 개발자 디버거 콘솔을 열고 JSON.parse에서 오류가 발생하는 것을 빠르게 확인합니다. 꽤 쉬운 수정입니다. 코드를 try/catch 문으로 래핑하면 됩니다. 그런 다음 사용자에게 피드백을 제공하기 위해 사용자에게 오류를 알립니다. 오류는 형식 오류가 있는 위치를 알려주므로 다소 도움이 됩니다. 형식이 지정되지 않은 더 큰 JSON blob의 경우 유용성이 떨어질 수 있지만 현재로서는 작동합니다.

이제 내 기능은 다음과 같습니다:

지금까지는 괜찮았지만 원래 우선순위 요구사항 중 하나는 필터링이었습니다. 이제 추가해 보겠습니다. 먼저 입력 텍스트 필드와 버튼을 추가하겠습니다.

다시 말하지만, 필터를 적용하기에 가장 좋은 위치를 찾기 위해 코드를 자세히 살펴봐야 합니다. 이미 정렬 기능이 있으므로 수정할 수 있는지 살펴보겠습니다. 코드가 익명 함수를 사용하는 것 같습니다.

그 기능의 대부분은 정렬과 관련이 있으며 필터링에 추가할 적절한 위치가 보이지 않습니다. 마지막 줄은 makeRows()를 참조합니다. 이를 살펴보겠습니다. 예, 코드가 테이블 행에 대한 HTML을 작성하는 곳인 것 같습니다. 각 <tr>을 빌드하는 동안 makeRows()에 필터를 적용할 수 있습니다. 필터 및 숨기기 변수를 추가하면 수정된 makeRows() 함수가 다음과 같이 표시됩니다.

코드를 읽어보면 사용자가 필터링한 텍스트를 강조 표시하는 보너스 기능도 적용했음을 알 수 있습니다. 문제를 해결하고, 조정하고, 테스트하고, 반복하세요. 필터링 및 강조표시가 예상대로 작동하는 것 같습니다.

7단계 – 솔루션 검증
이제 사이버 위협 보고서와 같은 보다 관련성이 높은 JSON blob을 사용하여 테스트할 수 있습니다. JSON blob 예시를 찾을 수 있습니다.. 이러한 JSON blob의 형식은 훌륭하지만 여전히 데이터를 처리하는 데 약간의 시간이 걸립니다. 이제 우리가 할 수 있는 일은 PoisionIvy 보고서의 JSON을 복사하여 수정된 HTML5ReportFormat에 붙여넣는 것입니다. 이제 정렬 가능한 목록이 있고 포함된 다양한 유형의 개체(맬웨어, ID, 캠페인, 공격 패턴, 조치 과정, 지표, 취약성, 보고서 및 관계)를 빠르게 확인할 수 있습니다.

이 보고서를 빠르게 스크롤하면 이 공격자가 6개의 서로 다른 CVE를 활용하고 있으며 그들의 활동은 스피어 피싱 캠페인을 통해 Mandiant 공격 수명 주기 모델의 초기 침해 단계를 다루며 이 보고서와 관련된 악성 코드는 원격 액세스 도구(RAT)임을 알 수 있습니다.


8단계 – 오락실 슬롯 머신토타입 제공, 피드백 요청
이 시점에서 내 오락실 슬롯 머신토타입은 좋은 출발점에 있습니다. 이 오락실 슬롯 머신토타입은 기능적이고 가치를 제공하므로 첫 번째 단계로 고객에게 전달할 수 있습니다. 고객은 이 오락실 슬롯 머신토타입을 사용하여 데이터 구조를 보고 데이터가 필요하거나 기대하는 정보를 제공하는지 확인할 수 있습니다. 여기에서 오락실 슬롯 머신토타입의 향후 반복을 위한 몇 가지 피드백과 추가 요구 사항 수집을 시작할 수도 있습니다.
개발자로서 API를 평가할 때 이 오락실 슬롯 머신토타입을 사용하여 예상 데이터를 가져오고 있는지 확인할 수도 있습니다. 예를 들어노벨상 수상자 JSON. 정렬 기능을 사용하여 JSON이 특정 상품에 대한 비수상 연도를 어떻게 나타내는지 찾고 있는 경우 HTML5ReportFormat은 Laureates 필드가 누락되었음을 오락실 슬롯 머신하게 표시할 수 있으며 전반적인 동기 부여 필드에서 정보를 찾을 수 있습니다. 이 데이터 세트는 또한 정렬 기능이 완벽하게 작동하지 않는다는 것을 보여 주므로 향후 요구 사항 목록에 완벽하게 추가하겠습니다. 정렬 후에는 "노벨상 없음"이라는 문구를 필터링하여 상이 수여되지 않은 연도 및 카테고리 목록을 얻을 수 있을 만큼 충분한 정보를 얻습니다. 또한 상이 없는 횟수도 빠르게 계산할 수 있습니다(5개 부문에 걸쳐 49회).
피드백에는 쉽게 읽을 수 있도록 다른 모든 테이블 행의 배경색을 변경하려는 요구가 포함될 것이며 더 큰 JSON blob이 사용되는 경우 페이지 매김이 향후 요청이 될 수 있습니다. 이 오락실 슬롯 머신토타입을 향상시키는 몇 가지 추가 기능은 잘못된 JSON의 오류가 있는 위치를 강조하고 사용자에게 JSON을 잘라내거나 붙여넣도록 요구하는 대신 JSON을 가져올 수 있는 URL을 제공할 수 있도록 하는 것입니다. 이러한 추가 작업은 나중에 이 시리즈의 1부에서 설명한 혁신적인 오락실 슬롯 머신토타입 제공 스타일을 사용하여 수행할 수 있습니다.
고객 혜택
고객이 원시 JSON을 오락실 슬롯 머신하게 검토할 수 있게 하는 것 외에도 오락실 슬롯 머신한 프로토타이핑 솔루션을 사용할 때 얻을 수 있는 다른 이점에는 고객에게 빠른 솔루션을 저렴하게 제공하는 것이 포함됩니다. 이와 같은 프로토타입은 하루도 안 걸리는 노력, 어쩌면 한두 시간 정도 밖에 걸리지 않습니다. 이 프로토타입은 휴대성이 매우 뛰어나 연결이 끊긴 시스템에서도 사용할 수 있고 서버나 인터넷에 액세스할 필요가 없으며 사용자가 도구를 시작하는 데 회전 시간이 거의 또는 전혀 걸리지 않습니다.
또한 이 오락실 슬롯 머신토타입을 사용하여 더 큰 시스템에 대한 추가 요구 사항을 수집할 수 있습니다. 고객이 이 기능을 내장하기를 원하는 오락실 슬롯 머신덕션 애플리케이션을 갖고 있을 수도 있지만 나머지 오락실 슬롯 머신덕션 애플리케이션에 영향을 주지 않고 새로운 기능을 추가하려면 솔루션에 대한 시간과 훨씬 더 많은 엔지니어링이 필요합니다. 이 빠른 솔루션을 제공하면 고객은 지금 필요한 기능을 얻고 주요 도구가 업데이트될 때까지 기다리는 동안 필요성을 확인할 수 있습니다. 그러면 보다 영구적인 솔루션을 위해 이 저렴한 솔루션을 폐기할 수 있습니다.
오락실 슬롯 머신한 프로토타이핑에 대한 3부작 시리즈에서는 오락실 슬롯 머신한 프로토타이핑 솔루션이 사용되는 이유와 시간에 민감한 요구사항 충족 또는 진화하는 요구사항 해결과 같은 고객에게 제공되는 이점을 살펴보았습니다. 2부에서는 기술과 도구 세트를 확장하여 오락실 슬롯 머신한 프로토타이핑 기술을 향상하는 방법에 대해 이야기했습니다. 3부에서는 1부와 2부에서 논의한 내용을 사용하여 실제 사례를 살펴보았습니다.