2020년 8월 27일 목요일

C# - ASP.net MVC Keeping Session Alive

 

-- Create an asp.net mvc app; add the following to the home controller:

[HttpPost]
       public JsonResult KeepSessionAlive()
       {

           return new JsonResult { Data = "Postback " + on " + DateTime.Now};
       }

----Add the following to index.cshtml:

<div id="myDiv"></div>
    @section scripts{
<script src="~/SessionUpdater.js"></script>
<script type="text/javascript">
SessionUpdater.Setup('@Url.Action("KeepSessionAlive","Home")');
</script>

} -- reference the following js file [in addition to referencing jquery]


SessionUpdater = (function () {
var clientMovedSinceLastTimeout = false;
var keepSessionAliveUrl = null;
//var timeout = 5 * 1000 * 60; // 5 minutes
var timeout = 15000; // 15 seconds for testing

function setupSessionUpdater(actionUrl) {
       // store local value
       keepSessionAliveUrl = actionUrl;
//    alert(actionUrl);
       // setup handlers
       listenForChanges();
       // start timeout - it'll run after n minutes
       checkToKeepSessionAlive();
}

function listenForChanges() {
       $("body").on("mousemove keydown", function () {
           clientMovedSinceLastTimeout = true;
       });
}


// fires every n minutes - if there's been movement ping server and restart timer
function checkToKeepSessionAlive() {
       setTimeout(function () { keepSessionAlive(); }, timeout);
}

function keepSessionAlive() {
       // if we've had any movement since last run, ping the server


      if (!clientMovedSinceLastTimeout && keepSessionAliveUrl != null) {
           $.ajax({
               type: "POST",
               url: keepSessionAliveUrl,
               success: function (data) {
                   $('#span').text(data);
                   $('#myDiv').append('<br/>' + data);
                   // reset movement flag
                   clientMovedSinceLastTimeout = false;
                   // start listening for changes again
                   listenForChanges();
                   // restart timeout to check again in n minutes
                    checkToKeepSessionAlive();
               },
               error: function (data) {
                   alert("ERROR");
                   console.log("Error posting to " & keepSessionAliveUrl);
               }
           });
      }
      else {
          clientMovedSinceLastTimeout = false;
          listenForChanges();
          checkToKeepSessionAlive();
      }

}

// export setup method
return {
       Setup: setupSessionUpdater
};

    })();

2020년 8월 10일 월요일

비주얼 프로그래밍 언어 종류

 

비주얼 프로그래밍 언어(Visual Programming Language)란 텍스트를 타이핑하는 것이 아니라

그래픽적 요소들을 이용해서 프로그래밍하는 언어를 말합니다.

 

 

 

ㅣ비주얼 프로그래밍 언어 종류

 

 

스크래치(Scratch)

스크래치는 MIT 미디어 연구소에서 2005년 공식 발표한 교육용 프로그래밍 언어입니다.

스크립트를 블록 맞추듯이 연결하여 코딩을 하는 방식으로 간단한 게임이나 애니메이션 등을 만들 수 있습니다. 누구나 무료로 이용할 수 있으며, 주로 8-16세를 대상으로 만들어졌지만, 프로그래밍 언어에 익숙하지 않은 아이들은 물론이고 모든 연령층이 사용하고 있다. 이외에도 프로그래밍 언어를 접해보지 못한 대학생들의 기초 강좌로 많이 사용하기도 한다.

공식사이트1  공식사이트2

 

비주얼로직(Visual Logic)

비주얼로직은 플로 차트를 이용해서 프로그래밍하는 언어입니다.

학생들이 순서도를 사용하여 프로그램을 작성하고 실행할 수 있는 그래픽 저작 도구로서

일반적으로 입문 프로그램밍 개념을 가르치기 위해 학문적 환경에서 사용합니다.

공식사이트

 

플로우코드(Flowcode)

플로우코드는 임베디드 장치를 프로그래밍하기 위해 상업적으로 제작한 MS 윈도우 기반의

개발 환경입니다.

텍스트 프로그래밍 언어 대신 플로차트를 이용합니다.

미리 만들어진 전용 구성요소 라이브러리를 사용하여 블루투스, 휴대폰 통신, USB 등과 같은

복잡한 기능을 단수화하는 고급 프로그래밍 언어입니다. 소프트웨어 개발 시간을 단축해 주는 장점이

있습니다.

공식사이트

 

구글 블록리(Google Blockly)

블록리는 구글에서 개발한 웹 기반의 블록형 프로그래밍 언어입니다.

오픈소스로 제공하는 블록을 사용자가 정의한 소스코드로 변환해주고, 개인 프로젝트로도 사용 가능합니다.

스크래치와 비슷하지만 블록리로 개발한 프로그램은 자바스크립트, 파이썬, 다트 등과 같은

일반 프로그래밍 언어로 변환할 수 있어서 일반 프로그래밍 언어에 대한 이해를 높일 수 있습니다.

퍼즐, 미로, 그래프 그리기 등 예제를 제공하고 자바스크립트 기반으로 직접 실습을 하면서

일반 프로그래밍 언어에 쉽게 접근할 수 있도록 도와줍니다.

블록리 게임 사이트

 

 

 

ㅣ비주얼 프로그래밍 언어 SW 개발에 활용하기

 

 

소프트웨어(SW)를 개발할 때 비주얼 프로그래밍 언어를 적용한 사례를 통해

활용하는 방법을 소개하고자 합니다.

 

문제점 점검 툴 개발 시 비주얼 프로그래밍 언어 활용

하나의 SW를 개발할 때 다양한 문제점들이 발생합니다.

이러한 문제들을 점검하고 해결하기 위한 문제점 점검 툴에 비주얼 프로그래밍 언어를 적용합니다.

 

예를 들어, A라는 제품의 특정 버전에 계속적으로 문제가 발생한다면,

해당 A라는 제품이 있는지를 확인하고, A제품의 버전을 확인해서 문제를 체크하는 방식입니다.

 

또는, 제품이 동작하기 위해서는 윈도우의 특정 서비스가 동작하고 있어야하는데,

미동작 시 해당 서비스의 동작 여부를 확인해서 알려주거나 동작 시킬 때도 사용합니다.

 

실제로 장애 60~70% 이상이 제품의 문제가 아니라 이런 환경의 문제나 충돌인 경우가 많아서

비용을 줄이기 위해 이런 문제점들을 사전에 점검하고 해결하는 것이 매우 중요합니다.

 

구글 블록리 적용 사례

B SW 회사는 구글 블록리를 이용해 장애대응 시스템을 만들고,

문제 해결 스크립트 블록을 통해 문제점들을 해결하였습니다.

 

블록으로 만든 프로그램은 파이썬으로 변환되어서 서버에 저장되고,

점검 프로그램에서는 해당 스크립트를 다운로드해서 문제 사랑을 점검하는 방식으로 적용하였습니다.

 

 

 

ㅣ비주얼 프로그래밍 언어 활용 장단점

 

 

비주얼 프로그래밍 언어를 SW 개발 시 적용할 경우 장단점에 대해 설명해 드리겠습니다.

 

비주얼 프로그래밍 언어 적용의 장점

1. 시간 절약

유아용, 어린이용으로도 나올 만큼 별도로 매뉴얼을 읽지 않아도

스크립트 사용법을 익히는데 걸리는 시간이 매우 짧습니다.

2. 쉽고 간편한 사용

기능이 설명된 블록을 드래그하는 식으로 작업할 수 있으며,

복사&붙여넣기 방식만으로 간편하게 스크립트를 완성할 수 있습니다.

3. 약용 방지

스크립트를 악용하지 못하게 샌드박스화할 수 있으며, 블록으로 제공된 스크립트만 동작합니다.

4. 한글 지원

개발 언어가 대부분 영어로 되어 있는데, 블록리는 한글이 지원되어 편하게 사용할 수 있습니다.

 

비주얼 프로그래밍 언어 적용의 단점

1. 로직이 복잡한 경우, 텍스트 프로그래밍 보다 난이도가 더 올라갈 수 있습니다.

2. 입력 데이터 또는 변수의 구조가 복잡한 경우, 코딩이 매우 힘들어질 수 있습니다.

3. 개발 툴, 관리 툴을 구현하는 데 최초 투입 비용이 큽니다.

4. 개발 숙련도가 올라갈 경우, 텍스트 프로그래밍에 비해 비효율적입니다.

 

 

 

 



출처: https://blog.softcamp.co.kr/266 [소프트캠프 블로그]




javascript - SQL 예약어 제거

  <script language="javascript"> //특수문자, 특정문자열(sql예약어) 제거 function checkSearchedWord(obj){ obj.value = obj.value+&quo...