[.bat]psexec remote

원격 컴퓨터의 1.bat 실행하기

psexec 다운로드 받기 https://technet.microsoft.com/ko-kr/sysinternals/bb897553

pstools 압축 파일안에 psExec.exe를

c:\windows\system32 안에 복사한다.
psexec -i -s -d \\192.168.xx.xxx -u [username] -p [password] cmd /k “C:\share\1.bat

예>psexec -i -s -d \\192.168.99.100 -u abc -p 1234 cmd

 

기본 모듈

모듈은 탄탄한 어플리케이션 구조를 만들기 위한 필수적이 요소입니다. 모듈을 통해 프로젝트의 코드를 깔끔하고 잘 구조화된 형태로 구조화 시킬수가 있습니다.

var info = {first : ‘lee’, name : ‘junghyun’, sns:’mygumi.tistory.com’};

var fn = (function(info) {

var fullname = info.first + ‘ ‘ + info.name, url = info.sns, title = ‘title’;

var getUrl = function () {

return url;

};

var getName = function() {

return fullname;

};

return {

name : getName, url : getUrl, title : title

}; })(info);

console.log(fn.fullname); // undefined

console.log(fn.name()); // lee junghyun

console.log(fn.title); // title

//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////

var sliderOptions = {

sliderId: “slider”,

startSlide: 0,

effect: “series1”,

effectRandom: false,

pauseTime: 2800,

transitionTime: 1200,

slices: 14,

boxes: 8,

hoverPause: 1,

autoAdvance: true,

thumbnailsWrapperId: “thumb_container_id”,

m: false,

license: “mylicense”

};

var imageSlider=new mcImgSlider(sliderOptions);

function mcImgSlider(i){

for(var I=function(a){

return …………….

///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////

var testModule = (function () {

         var counter = 0;

        return {

incrementCounter: function ()      {

                                          return counter++;

},

resetCounter: function () {

                                     console.log( “counter value prior to reset: “ + counter );

counter = 0;

}

};

})();

testModule.incrementCounter();

testModule.resetCounter();

 

////////////////////////////////////////////////////////////////////////////////////////

class myClass {
constructor() {
this.value = null;
}
set setValue(value) {
this.value = value + ‘ from myClass’;
}
get getValue() {
return this.value + ‘ @datetime …’;
}
}
// same like above
var myInstance = new myClass();
myInstance.setValue = ‘foo’;
myInstance.getValue;

 

 

16장 스레드 스택 개요

  1.  스레드가 생성되면 시스템은 프로세스의 주소 공간으로부터 스레드 스택으로 사용할 영역을 예약하고(각각의 스레드는 자신만의 스택을 가진다), 이 영역에 물리적 저장소를 일부 커밋한다.
  2. 기본적으로 시스템은 1MB의 주소 공간을 예약하고, 이 중 물리적 저장소로 두 개의 페이지를 커밋한다.
  3. 애플리케이션을 빌드하는 과정에서 링커는 스택의 크기를 .exe나 .dll 파일의 PE 헤더 상에 추가한다. 시스템은 스레드 스택을 생성할 때 파일이 PE 헤더 내에 지정되어 있는 스택 크기를 참조해서 스레드 스택으로 활용할 영역을 예약한다.

AJax

Ajax란 비동기 javaScript와 XML을 말한다.

서버측 Script와 통신하기 위한 XMLHttpRequest객체를 사용하는 것을 말한다. 서버측을 다양한 형식(JSON, XML, HTML 및 일반 텍스트 형식 등)의 정보를 주고 받을 수 있다. Ajax의 강력한 특징은 페이지 전체를 리프레쉬 하지 않고서도 수행되는 “비동기성”이라는 것이다. 이러한 비동기성을 통해 사용자의 Event가 있으면 전체 페이지가 아닌 일부분만을 업데이트할 수 있게 해준다.

페이지 일부분을 업데이트 하기 위한 정보를 서버에 요청할 수 있으며, 서버로부터 받은 데이터로 작업을 할 수 있다.

ajax-fig1

CGI

CGI란 하나의 규약을 의미하며 흔히 마라는 CGI 프로그래밍처럼 특정 프로그래밍 언어를 지칭하는 말이 아니다. CGI(Common Gateway Interface)란 각 클라이언트의 웹브라우저와 서버의 웹서버 그리고 응용 프로그램간의 인터페이스를 지칭한다.

즉 클라이언트의 브라우저로부터 서버로 전달되는 데이터를 어떻게 응용 프로그램에 전달하고 응용 프로그램의 결과 데이터를 어떻게 클라이언트 브라우저에 전달하는가를 정해놓은 하나의 인터페이스이다.

CGI 프로그램이 일반 다른 프로그램과 프로그램의 구조적 차이를 보이는 것이 아니라 단지 HTTP서버와 정보를 교환하는 특성을 가지고 있는 것이다. 그러므로 HTTP 서버로부터 프로그램 수행에 필요한 입력을 전달받는 부분과 프로그램의 출력이 HTTP서버를 통하여 클라이언트에 전달되는 방식을 택하고 있는 것이다.

그러므로 프로그램의 결과가 HTTP 서버에 의해 클라이언트에 전달되므로 가장 많이 사용하듯이 HTML에 의해 전달되며 이는 가장 일반적인 HTTP서버와 클라이언트 사이의 전달 형식이 되기 때문이다.

다시 정리하면 CGI프로그램은 웹서버를 중간 매개로 웹서버에 의해 클라이언트의 요구를 받아들이고 클라이언트으 요구를 받아들인 웹서버에 의해 CGI 프로그램이 돌아가며 CGI 프로그램에 의해 발생한 결과물이 다시 웹서버에 의해 클라이언트 브라우저로 보여지게 된다. 그리고 보여지는 형식을 HTML로 주로 이용하고 있는 것이다.

1085619015217_cgi01

위의 그림처럼 클라이언트 브라우저에서 서버로 요청(request)이 들어온다. 이 요청을 server 측의 web server에서 받아들이고 클라이언트가 요청한 CGI 프로그램을 실행시킨다. 그리고 CGI 프로그램을 수행하면서 클라이언트에게서 전달받은 데이터를 CGI프로그램에 전달하게 된다. CGI 프로그램은 요청에 의해 프로그램을 수행하고 결과를 다시 web server에 전달하게 된다. web server에서는 CGI 프로그램에서 전달된 결과를 다시 클라이언트에게 전달된다.