:: 세상의 중심 ::

홈페이지를 제작하다가 특정영역을 인쇄하는 기능이 필요해서 나름대로 검색도 하고,
수정도 좀 하다가 보니 보통은 많은 인쇄기능을 PHP나 ASP와 같은 Server Script Language로 많이 연동해서 구현하고 있었다.

이런 Server Script Language를 써서 하는 방법이 그리 어려운 것은 아니지만,
이를 사용하지 않고 간단하게 하는 방법을 원했기 때문에 자료가 별로 없었고, 그래서 공유할만한 가치가 있다고 판단했다.

내가 알고 있는 방법을 정리하자면,
자바스크립트로 할 수 있는 방법은 아래와 같이 2가지가 있다.



1. 인쇄하는 동안만 웹사이트를 변형하여 특정내용만 남기는 방법.

이 방법의 경우 새창을 띄우지 않아도 되기 때문에 사용하기는 편하다는 장점이 있는 반면, 일시적으로 웹사이트가 변형될 수 있다.
특히나 포탈같이 웹사이트의 소스가 긴 경우 이를 소화하지 못하여 웹사이트가 자동복구 되지 않고 새로고침을 해야 할 수도 있다. 직접 간단한 테스트를 해봤을 경우는 정상작동하였으나, 소스가 길어지자 변형된 웹사이트가 자동복구되지 않는 현상을 발견할 수 있었다.

 - <head>에 들어갈 자바스크립트 영역
var initBody;
function beforePrint()
{ 
   initBody = document.body.innerHTML; 
   document.body.innerHTML = print_page.innerHTML;
} 

function afterPrint()
{ 
  document.body.innerHTML = initBody; 
} 

function pageprint()
{
     window.onbeforeprint = beforePrint; 
     window.onafterprint = afterPrint; 
     window.print(); 
}


 - <body>에 들어갈 영역지정 방법
<div id='print_page'>
인쇄내용
</div>


 - 인쇄버튼
<input type='button' value='  인 쇄  ' onclick="pageprint()">



2. 특정영역의 내용을 하나의 문서로 만들어서 새창으로 띄우는 방법.

이 방법은 특정영역을 지정해 놓고, 인쇄버튼을 눌렀을 때 새창으로 특정영역을 그대로 복사하는 방법이다.
새문서를 만들어서 저장하지 않고, 자바스크립트로 동적으로 인쇄할 영역을 만들어내기 때문에 따로 저장공간이 필요하지도 않을뿐더러 인쇄미리보기의 효과도 볼수 있다.

하지만, 새창을 띄우는 것을 싫어하는 유저도 많이 있기 때문에 그다지 추천하지는 않는다.

 - <head>에 들어갈 자바스크립트 영역
function pagePrint(Obj) { 
    var W = Obj.offsetWidth;        //screen.availWidth; 
    var H = Obj.offsetHeight;       //screen.availHeight;

    var features = "menubar=no,toolbar=no,location=no,directories=no,status=no,scrollbars=yes,resizable=yes,width=" + W + ",height=" + H + ",left=0,top=0"; 
    var PrintPage = window.open("about:blank",Obj.id,features); 

    PrintPage.document.open(); 
    PrintPage.document.write("<html><head><title></title><style type='text/css'>body, tr, td, input, textarea { font-family:Tahoma; font-size:9pt; }</style>\n</head>\n<body>" + Obj.innerHTML + "\n</body></html>"); 
    PrintPage.document.close(); 

    PrintPage.document.title = document.domain; 
    PrintPage.print(PrintPage.location.reload()); 
}


 - <body>에 들어갈 영역지정 방법
<div id='print_page'>
인쇄내용
</div>
 

 - 인쇄버튼
<input type='button' value='  인 쇄  ' onclick="pagePrint(document.getElementById('print_page'))">



Posted by bsh Trackback 0 Comment 7

댓글을 달아 주세요

  1.  댓글주소 수정/삭제 댓글쓰기 rebid 2010.04.09 10:29 신고

    혹시 인쇄 버튼이 안나오게 할수는 없는건가요??ㅠㅠ

  2.  댓글주소 수정/삭제 댓글쓰기 우루그래머 2010.10.20 11:22 신고

    좋은 자료네요. 퍼갑니다 ^^

  3.  댓글주소 수정/삭제 댓글쓰기 2011.04.19 16:29

    비밀댓글입니다

  4.  댓글주소 수정/삭제 댓글쓰기 노리터 2016.04.20 09:20 신고

    # 바카라 이기는 법 // MBC114、WU、MS // 바카라 이기는 법 바카라 이기는 법 바카라 이기는 법 바카라 이기는 법 바카라 이기는 법 바카라 이기는 법 바카라 이기는 법 바카라 이기는 법 바카라 이기는 법 바카라 이기는 법

  5.  댓글주소 수정/삭제 댓글쓰기 이시현 2018.07.08 15:31 신고

    <strong>챗봇과 대화하다가 민감한 개인 정보를 입력하는 경우가 많다. 기업 내 챗봇 보안을 강화하고 프라이버시 위협을 최소화하는 방법을 알아보자.<br><br></strong>빅데이터에서 챗봇이 새로운 취약점이 될 가능성이 있을까? 그렇다. 기본적 인사과 질문에 대답하거나 기업 단위 설문조사를 실시할 때, 사용자를 특정인과 연계하기 전 정보를 얻는 챗봇은 슬랙과 기타 메시지 앱에 부가 기능으로 추가되어 보안 위험을 높인다.<br><br>챗봇 업체 탈라(Talla) CEO 롭 메이는 보안 위기가 봇을 구입하는 방식에서 온다고 말했다. 즉, “SaaS 초기에는 마케팅 부서가 IT 부서의 승인 없이도 웹 브라우저만 있으면 바로 소프트웨어를 구입하는 방식으로 판매되었고, IT 부서는 큰 문제가 없다고 생각했지만 결국 기업 전체가 SaaS 방식으로 운영되기 시작했다”고 설명했다.<br><br>그러면 갑자기 기업의 핵심 운영이 난데없이 나타난 사용자나 데이터 관리 경험 없는 플랫폼으로 운영되기 시작한다. 챗봇에서 오는 데이터 취약점을 차단하기 위해 메이는 현재의 봇 구입과 이행 간소화를 권장한다.<br><br>안타깝게도 직원들은 이미 챗봇으로 급여정보, 의료보험 세부사항 같은 기밀 데이터를 공유하고 있을지 모른다. IT 부서가 데이터를 안전하게 보호하기 위해 어떤 조치를 취할 수 있을까? 어떻게 하면 이 취약점을 미리 막을 수 있을까? 그 외에 어떤 질문이 유용할까?<br><br><strong><span style="font-size: 16px;">챗봇을 활용하는 방식을 파악하라</span></strong><br> 컴퓨터 및 네트워크 보안 제공자 라피드7(Rapid7)의 개발자 프라이야 도드워드 는 현재의 상황을 분류하는 것부터 시작하라고 말했다. 그리고 나서 구매에 앞서 사용자와의 면담을 실시한다. 이렇게 하면 2가지 측면에서 도움이 된다. 우선, 사용자 반응을 통해 도입 고려 중인 챗봇을 계획대로 활용하게 될지를 알 수 있어 사용자 도입 및 생산성을 높인다. 또 면담은 위협 수준 평가에 도움이 된다. 보호하고 있는 데이터의 유형을 알면 챗봇 프라이버시 문제에 더욱 잘 대비할 수 있다.<br><br>라피드7이 새로운 챗봇을 고려할 때 도드워드는 “우리는 우선 ‘일단 어떤 정보가 수반되는가? PII(Personally Identifiable Information) 데이터인가 아니면 기밀 또는 매출 관련 데이터인가?’고 생각한다. 봇이 가장 걱정스러운 요소”라고 말했다. 라피드7은 슬랙 채팅에 gif를 붙여 넣는 등 필수적이지 않은 작업에는 엄격하지 않은 프로세스로 봇을 운용하고 있다.<br><br>하지만 문제는 사람들이 부적합한 도구를 통해 중요한 주제로 채팅한다는 점이다. 허브스폿(Hubspot)의 CIO였던 짐 오닐은 “인간들이 자진해서 데이터를 제공한다는 사실을 기억하라”고 경고했다. 예를 들어, gif 봇으로 직원이 재미 있는 문병 메시지를 보내고, 사람들이 이어서 암 진단에 관해 이야기하는 경우다. 오닐은 “봇과의 대화 상호작용의 경우 우리는 의도한 것보다 더 많은 정보를 포기할 수 밖에 없다”고 말했다.<br><br>챗봇이 작동하려면 질문을 던져야 한다. 획득하는 데이터는 상황을 평가하고 훈련하는데 도움이 된다. 오닐은 “봇이 더 많은 도움을 제공하고 더 많이 배우기 위해 더 많은 것을 질문할수록 더 민감한 데이터를 많이 얻게 된다”고 말했다. 예를 들어, 의료보험 고객을 사안에 따라 관련 부서로 이관하는 봇을 생각해 보자. 봇은 우선 고객의 청구 번호를 요청하고, 사용자는 “번호는 4652이며 발진에 대한 조치를 취해야 하기 때문에 STD 테스트가 처리되는지 알아야 한다”고 입력할 것이다.<br><br><strong><span style="font-size: 16px;">그 외에 챗봇 정보를 보는 사람은 누구인가?</span></strong><br>IT는 시스템에 예상치 못한 데이터가 입력되는 상황에 대비해야 하고, CSO는 이 정보를 보는 사람이 누구인지도 파악해야 한다. 새 업체를 고려할 때 메이는 데이터가 필연적으로 이동하는 곳이 어디인지를 파악하라고 권고한다. 데이터가 로컬에 저장되는가? 아니면 클라우드에 저장되는가? 누구에게 이관되는가? 봇은 어떻게 훈련되는가?<br><br>대부분의 머신 러닝에서처럼 사람들은 엔진을 개선하기 위해 기업 챗봇의 작업을 확인하는 경우가 많다. 인간 검토 작업이 업체 프로세스에 포함되어 있는 경우 메이는 이렇게 질문하라고 말했다. “데이터를 보는 사람은 누구인가? 아마존의 미케니컬 터크(Mechanical Turk) 서비스 밖으로 유출되는가? 집단 파일에서 벗어나는가? 이 문제에 관심을 쏟고 있는가?”<br><br>메이에 따르면 이 방법에는 “장단점이 있다”. 때로는 챗봇이 유일한 수단일 수도 있기 때문이다. 결단을 내려야 한다. 데이터가 유출되어도 괜찮은가? 데이터는 어디로 유출되는가? 봇은 어떻게 훈련되는가?”<br><br>메이는 챗봇 위험에 관한 SLA(Service Level Agreement)를 이행하는 것이 하나의 방법이라고 말했다. 일반적으로 SLA에 포함되는 업타임(Uptime) 요건, 품질 기대치, 기타 사안을 포함하는 것 외에 계약서에서 챗봇 암호화와 유사한 보안 기대치를 다루어야 한다. 업체는 어떤 외부 제공자(아마존 터크 등)를 취급하는가? 계약기간 동안 SSAE-16/SSAE-18 인증 또는 SOC 2 준수성이 유지될까? 그렇지 않은 경우 어떻게 되는가?<br><br><strong><span style="font-size: 16px;">챗봇 개념 증명부터 시작하라</span></strong><br> 위험을 완화하기 위해 도드워드는 라피드7에 있는 대부분의 외부 챗봇이 개념 증명(POC)으로써 시작된다고 말했다. POC에 성공한 후에야 광범위하게 도입된다. 그는 POC가 필요를 다시 평가할 수 있는 기회이기도 하다고 말했다. “해당 봇의 범위를 파악하는 것이 중요하다. 모든 직원들에게 도달할까? 아니면 특정 부서에서만 활용될까? 이 문제는 우리가 배치를 계획하고 이를 중심으로 훈련하는 방식에 영향을 끼친다.” 도드워드는 라피드7이 기술 기업임에도 불구하고 많은 직원들이 “기술에 능하지 않기 때문에 봇이 매우 직관적이어야 한다”고 말했다.<br><br>직관적일수록 좋다. 챗봇은 구매 목적에 알맞은 솔루션을 제공할 수 있고, 사용자들도 개인적이고 불필요한 데이터를 입력하지 않게 된다. 의료보험 예시로 돌아가면, 사용자가 너무 많은 데이터를 제공하지 않도록 봇이 “다른 정보는 없이 청구 번호만을 알려주세요”라고 요청하는 경우 발진 등의 의료 정보에 관해 이야기하는 사용자가 줄어들 것이다.<br><br>직원 대응 챗봇은 사용자 교육을 통해 공유에 적합한 정보 수준을 알려준다. 또, 직원 교육은 SaaS 초기에 목격되었던 악의적인 이행의 위험을 낮춘다. 직원들이 챗봇 프라이버시 위험의 중요성을 이해한다면 설치에 앞서 IT가 관리하는 새로운 봇을 사용할 수 있다.<br><br><strong><span style="font-size: 16px;">사소한 챗봇 데이터 유출도 인지하라</span></strong><br> 메이는 IT가 권한이 있는 사람을 판단해야 한다고 말했다. “점심 메뉴 설문조사를 수행하는 봇은 간단하게 여겨지기 쉽지만, 사실 많은 봇들이 크리덴셜을 이용해 시스템을 연결한다”는 것이다. 이것을 어떻게 모니터링할까?<br><br>개인의 즉석 설치까지 제한하려면, 직원들에게 소규모 데이터 유출이라도 큰 피해를 끼칠 수 있음을 인지시킨다. 메이는 탈라를 설립하기 전 회사인 백업피파이(Backupify)에서 해킹을 시도했던 사례를 공유했다. 누군가 CFO의 이메일 주소를 이용해 은행 계좌에서 자금을 인출하려다 실패한 일이 있었다. 메이는 “봇이 회사에 대해 안다면, 사람들이 일련의 질문을 던지고 정보를 검색하며 데이터를 추가할 때 부적절한 정보가 제공된다”고 말했다.<br><br>데이터를 제출할 때 동료를 위협해서는 안 된다. 현재 여러 가지 기업 활동 중 봇에 가장 큰 영향을 받는 것은 HR이다. 기업 챗봇은 채용을 더욱 효율화하고 새로운 직원을 고용하며 직원이 이직할 가능성을 예측할 때 사용된다.<br><br>탈라의 챗봇은 “남아 있는 휴가 기간은?” 등의 보편적인 질문에 답하면서 HR 직원들의 수고를 덜어준다. HR 챗봇 등이 작동하려면 직원들이 반드시 편안하게 대화할 수 있어야 한다. 오닐은 “PII, PHI 등 모든 정보가 제공될 것이다. 우회하기보다는 포용하라. 데이터의 흐름을 이해하고 봇과 채팅 상호작용 통합을 추진하는 기업을 신뢰하게 되면 더 나은 결과에 대한 확신이 설 것이다. 그러면 더 나은 데이터를 얻고 더 많은 정보에 기초한 결정을 내릴 수 있다”고 조언했다.metal powder - http://www.hanaamt.com
    magnesium powder - http://www.hanaamt.com
    3d printing powder - http://www.hanaamt.com
    am powder - http://www.hanaamt.com