| 스피커 |
성적 증명서 |
| 브라이언 코코란 |
아침 업데이트에 오신 것을 환영합니다. JMP Discovery Europe 2021에서 제 발표 내용을 전해드리겠습니다. |
| |
저는 브라이언 코코란이고 JMP 개발 관리자입니다. |
| |
그럼 오늘은 무엇을 하려고 할까요? |
| |
REST 프로토콜을 사용하여 인터넷 기반 데이터 제공자를 기반으로 JMP에서 보고서를 만드는 방법을 보여드리고 싶습니다. |
| |
그러면 JMP 16에 추가된 업데이트된 JMP 스크립팅 엔진을 사용하여 이 보고서를 JMP Live에 게시하는 방법을 소개해 드리겠습니다. |
| |
마지막으로, 이 테스트를 자동화하는 방법을 알려드리겠습니다. 그러면 매일 출근할 때 보고서가 자동으로 업데이트되어 아침 커피나 차를 마시면서 바로 볼 수 있습니다. |
| |
좋아요, 그럼 먼저 인터넷 데이터 제공업체에 대해 이야기해 보겠습니다. |
| |
대부분은 REST 프로토콜이라는 것을 기반으로 합니다. |
| |
이는 상태 비저장(stateless) 호출로, URL 끝에 매개변수가 태그로 추가된 것처럼 보입니다. 점점 더 많은 기관들이 이를 활용하여 공개 데이터를 최종 사용자에게 공개하고 있습니다. 세계은행, 미국 인구조사국, 구글 등이 그 예입니다. |
| |
JMP에는 HTTP 요청이라는 기능이 있습니다. 이를 통해 이러한 서비스에 접근할 수 있습니다. 일반적으로 이러한 서비스에 접근하기 위해 GET 또는 POST 메소드를 사용하는데, HTTP 요청을 통해 이러한 메소드를 사용할 수 있습니다. |
| |
이 특정 보고서에서는 Johns Hopkins COVID를 사용할 것입니다. |
| |
팬데믹 관련 데이터를 포함한 REST API입니다. |
| |
존스홉킨스는 전 세계의 데이터를 모아서 공개 API를 무료로 제공하는 미국의 대학입니다. |
| |
이제 프리미엄 버전도 있는데, 이를 통해 데이터에 대한 더 나은 접근성과 세부성을 얻을 수 있지만, 지금은 무료 버전을 사용해보고, 제가 제공하는 스크립트 중 일부를 직접 사용해보시기 바랍니다. |
| |
그렇다면 REST API는 어떻게 생겼을까요? |
| |
한번 살펴보죠. |
| |
존스홉킨스의 사례를 살펴보겠습니다. |
| |
이 기본 URL, 즉 이 경우 API, 즉 COVID19API.com으로 시작합니다. 여기서 URL을 보고 "국가별 총 확진자 수를 요청합니다."라고 말할 수 있습니다. |
| |
괄호 안에 국가명이 적혀 있는 곳에는 실제로 국가명을 입력해야 합니다. 저는 독일을 사용할 겁니다(독일은 영어 이름을 사용하거든요). |
| |
하지만 이걸 시도해 볼 수 있는 나라는 아마 100개국은 될 거예요. |
| |
존스홉킨스에서는 시작일과 종료일을 제공해야 합니다. |
| |
물음표가 있는 이 기본 URL 뒤에 있습니다. 그리고 이는 본질적으로 이 API 호출에 대한 매개변수이며, 이를 통해 반환할 수 있습니다. |
| |
우리가 지정한 날짜 범위 내의 값입니다. |
| |
그리고 이건 좀 긴 형식이에요. |
| |
월...년도, 월, 일, T는 시간을 의미하고 그 뒤에 Z를 붙여 24시간제를 뜻합니다. |
| |
다행히 JMP에는 이런 작업을 도와주는 기능이 있습니다. 형식 호출을 사용하면 오늘 현재 시간과 날짜를 함께 정확하게 알려드리겠습니다. 사용할 형식 문자열을 지정한 후, 끝에 Z를 추가하면 됩니다. |
| |
존스홉킨스에 필요한 형식입니다. |
| |
그래서 제가 말했듯이, |
| |
REST 호출은 일반적으로 GET 또는 POST 후행 동사를 사용합니다. 존스 홉킨스 대학교는 GET을 사용합니다. 잠시 파워포인트에서 나가서 이 부분을 보여드리겠습니다. |
| |
내가 거기에 가지고 있던 그 웹사이트에 가면, |
| |
슬라이드나 종이에도 |
| |
API를 유형별로 제공하고, 정보를 전달하는 방법과 여기에서 반환되기를 기대하는 내용을 기본적으로 보여줍니다. |
| |
좋습니다. 여기서 살펴보면 각각 무엇이 필요한지 알 수 있고, 프리미엄 카테고리가 있는데, 이에 접근하려면 한 달에 일정 금액을 지불해야 합니다. |
| |
좋아요. |
| |
그래서. |
| |
그러면 무엇을 얻게 될까요? JSON을 얻게 되는데, JSON은 이름-값 쌍으로 이루어진 문자열 묶음입니다(예: 대소문자, 콜론, 그리고 숫자 문자열). |
| |
이 특정 관측치에 대한 사례 수를 나타낼 겁니다. JMP에는 JSON에 접근할 수 있는 좋은 기능이 있는데, 잠시 후에 보여드리겠습니다. |
| |
실제 HTTP 요청 호출은 다음과 같습니다. URL과 원하는 메서드(GET)를 전달하고, 그 다음에 보안 0을 전달합니다. 왜 이렇게 해야 할까요? |
| |
존스홉킨스는 공개 API이고 SSL(Secure Socket Layer)을 사용하지 않으므로 이를 꺼야 합니다. 그렇지 않으면 호출이 실패합니다. |
| |
그런 다음 send 명령으로 호출을 하면 JSON이 데이터로 반환됩니다. |
| |
그럼 스크립트를 좀 더 자세히 살펴보겠습니다. PowerPoint를 종료하고 JMP를 불러오겠습니다. |
| |
저는 JMP Pro 16을 사용하고 있지만, 일반 JMP에서도 작동할 겁니다. |
| |
그리고 이 스크립트는 우리가 살펴볼 논문과 함께 컨퍼런스 자료에 포함되어 있다는 점을 말씀드리겠습니다. |
| |
알겠습니다. |
| |
여기서 뭘 설정해야 할까요? 우선, 제...문서 폴더에 데이터를 저장하고, covid19_de.jmp라는 테이블에 저장할 겁니다. |
| |
나중에 보고서를 생성해서 항상 이 이름을 유지하도록 하겠습니다. 이 경우에는 표준화된 이름을 사용하는 것이 매우 중요한데, 그 이유는 나중에 설명드리겠습니다. |
| |
마지막으로, 내 이름과 파일에 있는 문서 경로를 전체 경로로 변환하여 사용합니다. |
| |
좋습니다. 여기서는 날짜 형식 지정 기능에 대해서는 걱정하지 않고, 데이터를 수집하는 핵심적인 방법에 대해 알아보겠습니다. |
| |
그렇습니다. 여기서 패턴을 사용할 것입니다. 즉, |
| |
이전에 스크립트를 실행한 적이 없다고 가정하겠습니다. 이제, |
| |
이전에 데이터가 누적된 파일을 찾을 수 없다면 데이터 테이블을 생성하고 값을 채웁니다. 하지만 이미 데이터 테이블을 찾았다면 최근 며칠 동안의 데이터, 즉 하나의 값으로 테이블을 업데이트합니다. |
| |
이렇게 하면 이전에 실행했는지 아닌지 걱정할 필요가 없습니다. 그냥 아무 생각 없이 이 스크립트를 실행하고, 다른 사람에게 넘겨주면 됩니다. 그러면 효과가 있을 겁니다. |
| |
좋아, 그럼 여기 |
| |
파일이 존재하고, 문서 폴더에 데이터 테이블이 있다면, 그냥 열어서 데이터가 이미 있다고 플래그를 설정하겠습니다. |
| |
그렇지 않으면 날짜, 열, 사례, 일일 변경 사항을 포함하여 데이터 테이블을 만들 것입니다. |
| |
오른쪽. |
| |
다음 단계는 존스 홉킨스에 대한 호출 문자열의 형식을 지정하는 것입니다. 시작일과 종료일 범위가 필요했던 것을 기억하세요. 자, 여기 우리가 이미 살펴본 문자열이 있습니다. 오늘 값을 위한 문자열입니다. |
| |
좋아요, 만약 내가 단지 값만 필요한 경우에는... |
| |
오늘의 값으로 데이터를 업데이트하고 있을 뿐입니다. |
| |
어제부터 오늘까지, 사실상 어제에서 오늘까지 가보겠습니다. 좋아요, 그럼 오늘에서 이틀을 빼서 어제를 만들고, 오늘로 넘어가겠습니다. |
| |
저는 이틀 동안 작업합니다. 존스홉킨스에서 데이터가 업데이트되는 시간과 시기에 따라 하나의 값을 얻는 경우도 있고, 두 개의 값을 얻는 경우도 있기 때문입니다. |
| |
만약 두 개가 나온다면 가장 최근의 값만 가져올 것이지만, 뭔가를 얻는지 확인하고 싶습니다. |
| |
좋아요, 다음으로는 데이터를 한 번도 받지 못했다면 시작일을 지정하고 싶습니다. 2020년 9월 1일부터 시작하도록 하겠습니다. 원하는 날짜를 입력하시면 됩니다. 여기서는 8월 31일을 사용하고 있는데, 존스 홉킨스 대학교에서 실제로 데이터를 제공하지 않기 때문입니다. |
| |
일별 변화량 값을 입력하면 팬데믹 데이터의 누적 확진자 수만 표시됩니다. 따라서 변화량을 계산하려면 |
| |
오늘의 가치는 어제의 가치와 비교됩니다. |
| |
글쎄요, 9월 1일부터 시작하려면 9월 1일의 변화를 계산하기 위해 8월 31일 데이터가 필요하거든요. 그래서 그렇게 하는 거죠. |
| |
존스홉킨스에서 프리미엄 API에 대한 비용을 지불하면 다음을 수행할 수 있습니다. |
| |
변경 값을 가져옵니다. |
| |
좋습니다. 앞서 논의했던 URL을 알려드리겠습니다. |
| |
좋아요, 여기서 중요한 게 있어요. URL이 어제부터 시작해야 한다는 데이터가 있는데, 그렇지 않고 이 if 문을 사용한다면, 그렇지 않으면 시작일인 9월 1일부터 시작하게 됩니다. |
| |
그럼 오늘로 넘어가겠습니다. |
| |
디버깅 목적으로만 이 URL을 보여드리지만, 실제로 요청을 하고 호출을 보내는 곳은 여기입니다. |
| |
오른쪽. |
| |
실행될 기회가 있는지 확인하기 위해 잠시 기다렸습니다. |
| |
여기서 JSON 데이터를 다시 가져오는데, JMP에는 이를 위한 매우 편리한 기능이 있습니다. |
| |
JSON 파싱은 이 큰 문자열 블록을 이름-값 쌍으로 구성된 배열로 나눕니다. 그런 다음 해당 배열의 items를 호출하여 가져온 데이터 개수를 확인할 수 있습니다. |
| |
그리고 배열 서브스크립트를 사용하여 해당 데이터를 배열로 참조할 수 있습니다. |
| |
좋아요. |
| |
그럼 이제 조금 더 아래로 내려가 볼까요. |
| |
여기서 데이터 테이블을 채워보겠습니다. 이미 데이터가 있다면, |
| |
그러면 우리는 테이블의 끝에 한 행만 추가할 것입니다. |
| |
그리고 오늘의 값과 어제의 값을 비교하여 계산한 변화와 함께 그 데이터 값을 입력하겠습니다. |
| |
그러면 우리는 그냥 그것을 저장합니다. |
| |
지금. |
| |
이전에 생성한 적이 없다면 헤더 정보가 있기 때문에 1을 뺀 행 수를 추가하고 이를 순환하여 일일 변경 사항을 모두 계산합니다. |
| |
날짜 값 및 |
| |
사례 데이터를 표에 입력하세요. 그리고 지금 바로 처음부터 실행해서 보여드리도록 하겠습니다. 163일 정도 남았는데 말이죠. |
| |
그리고 그 표를 문서 폴더에 저장합니다. |
| |
좋습니다. 이제 데이터가 있으니 JMP Live에 게시하는 것에 대해 생각해 보겠습니다. |
| |
하지만 이것은 아마도 JMP Live에서 JSL 프로그래밍을 하는 방법과 JMP Live 16과 JMP 16에서 그것을 어떻게 바꾸었는지 설명하기에 좋은 기회일 것입니다. |
| |
이 강연과 관련된 논문을 언급하겠습니다. 커뮤니티에도 게시될 겁니다. |
| |
좋습니다. JMP 16에서는 스크립팅을 다시 작성하여 더 강력하면서도 사용하기 쉽게 만들었으며, 스크립팅은 연결 또는 관리되는 연결 정보를 저장하는 아이디어를 중심으로 진행됩니다. |
| |
그래서. |
| |
무슨 일이 일어나는지... JMP를 다시 불러오겠습니다. |
| |
무슨 뜻인지 알려드릴게요. 파일, 게시, 연결 관리로 가세요. |
| |
괜찮은. |
| |
그리고 하나 더 추가할 수도 있습니다. |
| |
여기서 원하는 연결 이름과 URL을 지정합니다. JMP Live는 본질적으로 REST 서비스이며, JMP Live 사이트가 위치한 곳입니다. 관리자가 스크립팅을 활성화하기 위해 비밀 API 키를 요구하는 경우, 여기에 해당 키를 제공해야 합니다. |
| |
이렇게 하고 다음 버튼을 누르면 자격 증명에 대한 인증 메커니즘에 따라 메시지가 표시됩니다. |
| |
이러한 정보를 입력하면 기본적으로 액세스 토큰이 제공되는데, 이는 자격 증명이 아니라 디스크에 저장된다는 의미입니다. 즉, 이 사이트에 액세스하고 스크립트를 작성할 수 있게 해주는 액세스 토큰만 저장됩니다. |
| |
이렇게 하면 스크립트에 이 정보를 입력하지 않고도 입력하신 연결 이름만 참조할 수 있습니다. 예를 들어, 제가 사용할 JMP Live Daily를 보여드리겠습니다. 제 URL과 API 키는 다음과 같습니다. |
| |
JMP Live Daily를 참조하기만 하면 스크립트 내에서 연결하는 방법을 알게 됩니다. |
| |
좋아요. |
| |
그럼 연결을 만들려면 "새 JMP Live"라고 하고 연결 이름을 입력하면 됩니다. 여기서는 "필요하면 프롬프트를 표시하겠습니다"라고 말하고 있는데, 이게 무슨 뜻일까요? 음, 어떤 이유에서인지 |
| |
귀하의 자격 증명이 만료되었거나 액세스 토큰이 오래된 경우 자격 증명을 입력하라는 메시지가 표시됩니다. |
| |
스크립트가 시작되면 이 정보를 제공하지 않고 사용자 인증 정보가 만료되면 스크립트가 실패합니다. |
| |
좋아요. 그럼 JMP Live에 보고서를 게시하는 방법은 무엇일까요? 좋아요, Big Class에서 부족할 수 있는 간단한 이변량 분석의 예를 들어보겠습니다. |
| |
따라서 이를 게시된 보고서로 만들려면 새 웹 보고서를 만들고 변수에 할당하기만 하면 됩니다. |
| |
그리고 이 이변량 참조를 가져와서 해당 보고서를 웹 보고서에 추가하겠습니다. |
| |
그리고 선택적으로 제목과 설명을 제공하겠습니다. |
| |
그리고 publish를 호출하면 publish가 결과를 반환합니다. |
| |
알겠습니다. 그러면 JMP Live에 게시해서 그런 식으로 보여드리겠습니다. |
| |
원한다면, 결과를 통해 성공 여부를 알 수 있고, 사실 우리는 공개 객체이기 때문에... 공개는 HTTP 호출과 비슷해서 원한다면 상태나 오류 메시지를 볼 수 있습니다. 알겠습니다. |
| |
괜찮은. |
| |
또 다른 흥미로운 점은 |
| |
만약 우리가 수행한 작업의 결과가 JMP Live에 보고서나 폴더를 추가하는 것과 같은 것이라면, 우리가 얻는 결과에는 해당 항목을 추가로 조작할 수 있는 정보가 포함됩니다. |
| |
이 정보를 사용하여 스크립팅 내에서 보고서와 같은 객체를 생성하고, 나중에 접근할 수 있도록 'As Scriptable'이라고 명명할 수 있습니다. 예를 들어, 이렇게 한 후에는 보고서를 사용하고 보고서 제목을 설정할 수 있습니다. 그러면 JMP Live에 연결되어 보고서 제목이 변경됩니다. |
| |
좋아요. |
| |
현재 JMP Live의 전체적인 아이디어는 보고서와 폴더 조작, 폴더 검색, 보고서 검색 등과 같은 것입니다. |
| |
보고서는 이해합니다 |
| |
식별자가 있다는 거죠. 그리고 이 식별자는, 자세히 보면, 스크립트에 입력하거나 기억하기에는 정말 불편할 정도로 긴 영숫자 문자열입니다. |
| |
하지만 보고서를 고유하게 식별하는 데에도 필요합니다. 보고서를 고유하게 식별해야 하는 이유는, 보고서를 삭제하고 싶다고 가정해 보겠습니다. |
| |
JMP Live에서 보고서를 삭제하고 싶다고 말하면 해당 보고서에서... 해당 보고서 개체의 ID 가져오기를 사용하여 고유 ID를 제공하면 JMP Live에서 어떤 보고서를 제거할지 알 수 있습니다. |
| |
나는 당신에게 이 특정 항목을 보여드리고 있습니다. 왜냐하면 그것은 우리에게 중요할 것이기 때문입니다. |
| |
우리가 만들고 싶은 최고의 대본입니다. |
| |
정말 중요한 또 다른 영역은 검색 시 신분증을 꼭 지참해야 한다는 것입니다. |
| |
이제 여기서 보고서를 찾을 수 있습니다. 예를 들어, Biv로 시작하는 모든 이변량 보고서를 찾고 싶다면 JMP Live에 보고서를 찾아 결과 목록을 반환해 달라고 요청하면 됩니다. 그러면 그 목록을 보고서 목록으로 만들 수 있습니다. |
| |
해당 보고서 목록에는 각 항목을 아래 첨자로 순환할 수 있는 '항목 개수 가져오기'라는 기능이 있습니다. |
| |
그리고 제가 원한다면, 원한다면 모두 삭제할 수도 있습니다. 네, 검색 기능은 새롭게 추가된 기능이며, JMP Live 사이트에서 대규모 작업을 수행하는 데 매우 유용할 것으로 기대합니다. |
| |
그렇죠. 스크립트를 더 자세히 보여주기 전에 먼저 처리해야 할 작업이 하나 있습니다. |
| |
그리고 이것이 업데이트 데이터입니다. |
| |
그래서 JMP Live 16에서는 |
| |
JMP Live에 전체 보고서를 다시 게시하지 않고도 보고서의 데이터만 업데이트하는 기능을 추가했습니다. |
| |
원하는 대로 보고서를 받았다고 가정해 보겠습니다. 보고서가 약간 사용자 지정되었고 모양이 마음에 들어서 수정하고 싶지 않을 수도 있습니다. |
| |
하지만 데이터를 업데이트하고 다시 계산하고 싶으시다면, 이제 해당 보고서의 데이터 테이블만 JMP Live로 전달하고 전송 시간도 줄일 수 있습니다. |
| |
이를 위해 Update Data를 호출하고, 보고서 ID를 제공한 다음, 업데이트된 데이터가 있는 데이터 테이블만 제공합니다. |
| |
보고서는 데스크톱에서 계산하는 대신 JMP Live에서 다시 계산됩니다. |
| |
그리고 보고서를 보는 모든 사람은 업데이트도 볼 수 있습니다. |
| |
좋습니다. 이제 실제로 스크립트를 작성하는 데 필요한 도구는 모두 갖추었으니 살펴보겠습니다. |
| |
괜찮은. |
| |
그래서, |
| |
여기서 JMP Live 연결을 생성합니다. |
| |
이제 관리도를 만들어 보겠습니다. 관리도는 사실 이상적인 방법은 아닙니다. |
| |
이 데이터 분석 플랫폼이 있는데, 왜 이걸 사용하는 걸까요? 두 가지 이유가 있습니다. 첫째, 매일매일의 변화를 볼 수 있어서 좋고, |
| |
둘째, JMP Live 16에 새로운 기능이 추가되었다는 사실을 홍보하거나 삽입할 수 있습니다. 즉, 통제 차트 경고를 표시하는 것입니다. |
| |
통제 차트를 게시하고 범위를 벗어난 관찰이 있는 경우 |
| |
JMP Live에 게시하거나 데이터를 업데이트할 때 데스크톱에 경고가 생성됩니다. |
| |
JMP Live는 해당 보고서를 구독하고 웹사이트에서 특정 범위에 속하지 않는 내용에 대한 이메일이나 알림을 받고 싶어 하는 모든 사용자에게 경고 메시지를 생성할 수도 있습니다. 이는 프로세스 제어와 같은 작업에 매우 유용할 수 있습니다. |
| |
그래서 내 동료들은 |
| |
통제 차트 경고에 대한 강연을 하고 있는데, 기회가 된다면 여러분도 들어보시길 권합니다. |
| |
이걸 어떻게 생성했냐고요? 방금 JMP에 들어가서 오래된 데이터를 가지고 있었는데, 예를 들어 JMP에 "스크립트 창에 스크립트 저장" 기능이 있어서 분석할 때 스크립트 창에 스크립트 저장을 할 수 있더라고요. |
| |
저는 그 정보를 그냥 가져다가 이 스크립트에 넣었는데, 꽤 편리하더군요. |
| |
좋아요. |
| |
이제 보고서를 어떻게 게시할지에 대한 핵심을 살펴보겠습니다. 약속드립니다. |
| |
잠시 후에 실행해 보겠습니다. |
| |
알겠습니다. |
| |
다시 한번 패턴을 만들어 보겠습니다. JMP Live에 이미 올라와 있는지 보고서가 있는지 확인해 보겠습니다. |
| |
그렇지 않은 경우 게시하겠지만 이미 게시되어 있는 경우 이전에 만든 업데이트된 데이터 테이블을 그대로 가져오겠습니다. |
| |
그리고 서버 측에서 데이터를 업데이트하고 적합하다고 판단되면 보고서를 다시 계산하도록 하겠습니다. |
| |
좋아요, 그럼 어떻게 해야 할까요? 먼저 보고서를 검색해 보겠습니다. (앞서 지정한 표준화된 보고서 이름을 사용했기 때문에 항상 같은 보고서를 찾게 됩니다.) |
| |
그리고 혹시라도 다른 분이 같은 제목의 보고서를 가지고 계신다면, 제가 직접 출판한 것이라고 말씀드리겠습니다. 저는 그런 보고서를 받고 싶지 않거든요. |
| |
좋아요, 내가 볼 수 있는 목록으로 만들게요. 그리고 만약 그 수가 |
| |
reports가 0이면 이전에 게시된 보고서를 찾지 못했다는 의미입니다. |
| |
그래서 새 웹 보고서를 만들고, 관리도 작성기 출력을 추가한 후 게시하려고 합니다. 그리고 "공개(1)"로 설정하여 모든 사람이 볼 수 있도록 하고 싶습니다. |
| |
만약 하나를 찾았다면, 반환된 첫 번째 항목을 참조하는 보고서를 가져오고, 이전에 생성한 업데이트된 표를 사용하여 여기의 데이터를 업데이트할 것입니다. |
| |
나머지 내용은 모든 것이 제대로 되었는지 확인하기 위해 로그에 표시한 디버깅 정보일 뿐이지만 실제로는 필요하지 않습니다. |
| |
마지막으로, 여기 마지막에 그만두라는 문장을 쓰겠습니다. |
| |
나중에 실제로 이것을 자동화할 때, |
| |
이 기능은 JMP를 종료하고 모든 창을 닫아야 하기 때문에 중요합니다. 그렇지 않으면 다음에 실행할 때 JMP가 이미 실행 중인 것을 보고 이전 작업으로 인해 중단되었다고 판단할 수 있습니다. |
| |
하지만 대화형 작업의 경우 지금 당장 이 부분에 주석을 달겠습니다. |
| |
좋아요. |
| |
그래서 나는 |
| |
여기로 갈 준비가 된 것 같습니다. 한번 시도해 보고 좋은 결과가 나오기를 기대해 보겠습니다. 존스 홉킨스가 너무 바빠서 데이터 요청을 거부하는 경우가 있는데, 그럴 때는 안타까운 일입니다. |
| |
이걸 시도해 봅시다. |
| |
그리고 보여드리자면, 이 시점에서 문서 폴더에는 내가 지정한 이름의 JMP 테이블이 없고, 내가 이동하면 |
| |
내가 게시하고자 하는 JMP Live 사이트에서는 아무것도 보이지 않습니다. |
| |
통제 차트 작성기의 출력이 여기에 있습니다. |
| |
좋습니다. 한번 시도해 볼까요. |
| |
그렇죠. 이게 우리의 통제 차트입니다. |
| |
JMP Live를 새로고침하겠습니다. |
| |
좋아요, 관리도 작성기 출력 결과입니다. 여기에는 경고가 있었습니다. |
| |
JMP Live 내에서 이것을 살펴보면, |
| |
포인트 위에 마우스를 올리면 최신 데이터를 확인할 수 있습니다. 이건 2월 10일 데이터이고, 저는 11일 데이터라서 최신 데이터가 있습니다. 1월과 12월 말 이동 평균을 기준으로 볼 때, 통제 불능 상태라고 판단되는 데이터입니다. |
| |
네, 지금까지는 잘 됐어요. |
| |
내가 만약 |
| |
내 문서 폴더를 열고 새로 고침하세요. |
| |
JMP 테이블이 생성된 것을 볼 수 있습니다. |
| |
괜찮은. |
| |
그러니까, 우리는 이 기사가 1분 전에 게시된 것을 보았습니다. |
| |
좋습니다. 그럼, 이걸 종료해 봅시다. |
| |
그리고 우리는... 사실, 저는 그걸 하고 싶지 않았어요... 잠깐만요. |
| |
여기서 우리는 약간의 부정행위를 할 것입니다. |
| |
계속해서 마지막으로 얻은 값을 삭제해 보겠습니다. 그런 다음 해당 값을 저장합니다. |
| |
그리고 닫아 봅시다. 좋습니다. 그럼 오늘 아직 실행하지 않은 것을 시뮬레이션해 보겠습니다. 좋습니다. 그리고 다시 실행해 보겠습니다. |
| |
좋아요, 마지막 값만 가져오겠습니다. |
| |
그리고 우리는 웹사이트에 접속합니다. |
| |
그리고 몇 초 전에 다시 생성된 것을 볼 수 있습니다. 이 경우에는 방금 데이터를 업데이트했고 마지막 값을 얻었습니다. |
| |
내가 만약 |
| |
제기하다 |
| |
내 메일, 우연히 경고를 구독하게 되었고, 바라건대, |
| |
여기서도 약간의 업데이트가 있을 수 있습니다. 다음과 같은 알림을 받고 있습니다. |
| |
이 통제 차트 작성기에는 출판물이 있고 경고가 있었습니다. 원하면 실패한 부분과 범위를 벗어난 지점을 확인할 수 있습니다. |
| |
좋아요. |
| |
좋아요, 이제 자동화 작업을 시도해 볼 준비가 된 것 같습니다. 그럼 이 글을 삭제하겠습니다. |
| |
오른쪽. |
| |
이걸 멈춰야지. |
| |
이걸 꺼버려. |
| |
이제 자동화된 방식으로 일방통행을 실행하기 위해 우리의 종료를 다시 거기에 넣을 것입니다. |
| |
이것으로 마무리하겠습니다. |
| |
문서 폴더로 가서 삭제하려고 합니다. |
| |
우리의 데이터를 활용해서 처음부터 이 작업을 실행한다고 가정해 보겠습니다. |
| |
오른쪽. |
| |
그리고 JMP가 종료되었는지 확인합시다. |
| |
좋아요. |
| |
지금. |
| |
제 이전 Discovery 강연을 보셨다면 제가 작업 스케줄러를 사용하는 모습을 보셨을 겁니다. 제가 자주 사용하는 주제거든요. |
| |
여기 Windows에서 작업 스케줄러를 입력하기만 하면 됩니다. 보셨기를 바랍니다. |
| |
Mac에서는 Automator나 Chron Job을 사용해야 합니다. 저는 Automator를 추천합니다. |
| |
좋습니다. 하지만 작업 스케줄러를 사용하면 정기적으로 무엇이든 실행할 수 있습니다. |
| |
그럼 계속해서 가보죠 |
| |
새 작업을 만듭니다. 여기서는 작업을 만들고 이름을 지정합니다. |
| |
독일의 COVID 데이터. |
| |
나는 높은 특권을 누리며 달리고 싶다. |
| |
자격 증명 데이터를 입력하고 싶지 않기 때문에 사용자가 로그인한 경우에만 실행하려고 합니다. 하지만 제안하고 싶습니다. |
| |
프로덕션 목적으로 이 작업을 수행하는 경우 사용자가 로그인했을 때 실행을 선택할지 여부 |
| |
윈도우 업데이트나 다른 이유로 컴퓨터가 재부팅되더라도 계속 실행되도록 하고 싶은데, 이 옵션을 지정하면 계속 실행할 수 있습니다. 자격 증명을 입력해야 하며, 마지막으로 이 작업을 저장해야 합니다. |
| |
괜찮은. |
| |
그럼 트리거는 뭐죠? 제가 원하는 건 바로 그때 실행되도록 하는 거예요. 그럼 시작해 볼까요? |
| |
그리고 내일부터 매일 실행하고 싶다고 가정해 보겠습니다. |
| |
그리고 아마도 나는 아침에 출근하기 전 오전 6시에 그것을 실행하고 싶을 수도 있습니다. |
| |
이제는 어떻게 해서든 들어갈 수 없게 됐어. |
| |
침대에서 일어나서 일하러 가기 전에요. 좋아요. |
| |
따라서 이 작업이 30분 이상 실행되면 중단될 가능성이 높으므로 작업을 중지합니다. |
| |
그렇지 않으면 우리는 거기로 가는 게 좋다고 생각합니다. |
| |
그럼 어떤 작업을 수행해야 할까요? JMP를 실행하고 싶으니, jmp.exe가 설치된 위치를 찾아야 합니다. Program Files, SAS, 그리고 JMP 또는 JMP Pro 16이 있습니다. 해당 폴더를 선택하세요. |
| |
그리고 우리의 주장은 불행히도 여기에 수동으로 입력해야 하는 JSL 스크립트입니다. |
| |
내가 그렇게 할게. |
| |
하지만 조심해서 다루어야 한다는 점을 명심하세요. |
| |
좋아요. |
| |
이제 설정에서 "항상 허용"을 설정하겠습니다. 요청 시 실행해야 하므로, 지금 바로 시도해 보고 제대로 작동하는지 확인할 수 있습니다. |
| |
이미 실행 중인 작업이 있다면 반드시 중지하세요. 이는 아마도 작업이 멈췄다는 것을 의미할 수 있습니다. 한 시간 이상 다시 실행되면 작업이 멈췄을 경우를 대비해 작업을 중지하세요. |
| |
좋아요, 매일 실행해야 할 작업이 생겼습니다. 언제든 실행되도록 설정했으니, 지금 바로 실행해 보면서 디버깅해 볼 수 있습니다. 마우스 오른쪽 버튼을 클릭하고 "실행"을 선택해 보겠습니다. |
| |
작업 표시줄이 보이면 좋겠네요. JMP가 잠깐 나타났다가 실행되다가 사라질 겁니다. |
| |
여기 아래를 내려다보면, 바라건대 무슨 일이 일어나고 있는 것 같습니다. |
| |
알았어, 그리고 그것은 사라졌어. |
| |
우리 웹사이트를 살펴보겠습니다. 새로고침이 필요할 겁니다. |
| |
몇 초 전에 생성된 보고서가 있습니다. |
| |
폴더를 살펴보면 JMP 테이블이 생성되었고 내일 아침 6시에 생성되기를 바랍니다. |
| |
우리의 작업은 실행되어 새로운 데이터 배치와 업데이트된 보고서를 제공합니다. 그리고 커피나 차를 가지고 사무실에 들어오면 그 데이터를 살펴보고 오늘의 결정을 내릴 수 있습니다. |
| |
그럼 제 강연은 여기까지입니다. 오늘 우리가 논의한 세 가지 측면 중 하나가 |
| |
인터넷 기반 데이터 수집, |
| |
JMP Live 스크립팅이나 자동화된 작업 생성이 귀하의 작업에 도움이 되었습니다. |
| |
참석해 주셔서 감사드리고, 남은 컨퍼런스도 즐겁게 보내시길 바랍니다. 안녕히 계세요. |