관리 편의를 위해, 자동실행 용으로 프로그램을 NT의 서비스로 돌리기 위해서는

command window에서 해당 프로그램이 설치된 디렉토리로 이동한 다음 다음과 같은 과정을 수행하면 된다.



ex )  d:\test\ 에 해당 프로그램의 실행화일이 있고  실행파일명이 test.exe 일 경우


      cygrunsrv --install test  -p d:\test\test

     

      라고 입력한다.



d:\test\test 부분은 해당 프로그램이 설치된 곳의 full path를 의미한다.
주의할 점은 test.exe가 아니라 그냥 test로 등록해야 한다는 점이다.
cygrunsrv --install test -p d:\test\test.exe가 아니라
cygrunsrv --install test -p d:\test\test가 올바른 입력이다.


이렇게 서비스로 등록이 되면, 부팅시에 자동으로 백그라운드에서 작동하게 되므로, 매번 실행과 관련된 노력을 상당부분 줄일 수 있다.

반응형

데몬툴을 사용하는경우 트래이에서 마운트 해야했었지요.


간단하게 레지스트리 추가로 파일을 바로 클릭해서 첫번째 데몬 가상드라이브로 마운트 시켜주는 레지스트리 입니다~


데몬 깐 위치에 따라서 수정이 좀 필요합니다. 메모장 여시고 깐 위치로 수정해주세요~


기본으로는 c:\Program Files\DAEMON Tools\daemon.exe 이 파일입니다.


option->secure mode는 해제하시고 사용하시면 더 편리합니다
(클릭으로 마운트시 마다 물어보는 과정 생략하기 위함)


(혹시 다른 가상 드라이브 유틸도 사용하여, 이 레지스트리 수정으로 인한 피해는 책임지지 않습니다 ㅡ.ㅡ;;; )

(에러가 나면 아마 제가 추가한 부분만 지우면될듯~)


이전에도 데몬툴을 위한 유용한 팁들이 있었습니다~ (아마 레지스트리도 잇었던거 같은데,,, 안보이길래 제가 만들어서 걍 올립니다~)


지정현님의 daemon UI

데몬 트래이를 통해 마운트 하지않고 cd space같이 이미지 파일 리스트를 관리해주는 프로그램입니다.
http://www.parkoz.com/zboard/view.php?id=my_tips&page=1&sn1=&divpage=2&sn=on&ss=off&sc=off&keyword=%C1%F6%C1%A4%C7%F6&select_arrange=headnum&desc=asc&no=7063

양지영님의 팁

이미지 파일 마우스 우클릭하여 쉘커맨드로 마운트 가능하게 해주는 팁입니다.

저랑 거의 같지요. (저같이 그냥 더블클릭이 편하지 않을까요?? ^^;)

사실 이렇게 까지 세밀하게 윈도우가 파일연결을 할수있는지 몰랐습니다. (유저단에서 말이지요)
http://www.parkoz.com/zboard/view.php?id=my_tips&page=1&sn1=&divpage=2&sn=off&ss=on&sc=off&keyword=%B5%A5%B8%F3&select_arrange=headnum&desc=asc&no=7736

반응형

'기본설정' -> '사용자 도구' 에서 다음과 같은 항목을 추가해 보십시오.

예제 1. 자바 컴파일러

메뉴제목: Java Compiler
명령: c:\java\bin\javac.exe
인수: $(FilePath)
디렉토리: $(FileDir)
출력내용 캡처: ON

예제 2. Turbo C 2.01

메뉴제목: Turbo C
명령: c:\tc\tcc.exe
인수: -Ic:\tc\include -Lc:\tc\lib -n$(FileDir) $(FilePath)
디렉토리: c:\tc
출력내용 캡처: ON

예제 3. Borland C++ 5.5

메뉴제목: Borland C
명령: c:\bc\bin\bcc32.exe
인수: -Ic:\bc\include -Lc:\bc\lib -n$(FileDir) $(FilePath)
디렉토리: c:\bc\bin
출력내용 캡처: ON

예제 4. Visual C++

메뉴제목: Visual C++
명령: c:\msdev\vc98\bin\cl.exe
인수: "$(FilePath)"
디렉토리: $(FileDir)
출력내용 캡처: ON

위에서 '명령' 란에는 실제 자바 컴파일러의 경로를 입력해야 합니다.

이렇게 설정하면 '도구' 메뉴에서 'Java Compiler' 항목을 선택하거나 '사용자 도구모음'에 있는 아이콘을 눌러서 자바 컴파일러를 실행시킬 수 있습니다.

컴파일된 *.class 파일을 실행하려면 다음과 같이 설정해 보십시오.

메뉴제목: Java
명령: c:\java\bin\java.exe
인수: $(FileNameNoExt)
디렉토리: $(FileDir)

역시 '명령' 항목에는 실제 자바 인터프리터의 경로를 입력해야 합니다.

컴파일된 *.exe 파일을 실행하려면 다음과 같이 설정해 보십시오.

메뉴제목: Run
명령: $(FileNameNoExt)
인수:
디렉토리: $(FileDir)

반응형

윈도우를 사용하면서 특정한 설정을 고정시키기를 원할때가 있습니다.
예를 들어 마우스속도를 고정하거나, 비디오 해상도를 고정하거나, 키보드 속도를고정하거나, IE 홈페이지를 고정하는 것처럼.. 뜻하지 않게 변경될 여지가 있는 값들은 자신이 사용하는 값으로 항상 고정하는게 편합니다. 자동시작 프로그램도 마찬가지입니다.

이글에서는 레지스트리와 서비스를 사용해서 특정한 설정을 고정하는 간단한 방법에 대해서 알아보겠습니다. 어려울거 하나도 없고, 하품이 나올정도로 -_- 간단하니 맘편하게 그대로 따라하시면 됩니다.

이 파일 을 내려받아서 C:\Windows\System32폴더에 파일 두개를 압축풉니다.
② 압축푼후에 시작 -> 실행 -> CMD를 실행해서
  C:\>instsrv.exe 등록할 서비스 이름 srvany.exe를 실행합니다.


여기에서는 등록할 서비스 이름에 (AutoRun)을 사용했습니다.
※ 예,   C:\>instsrv.exe AutoRun srvany.exe
정상적으로 서비스가 등록되면, "CreateService SUCCESS at creating:"이라는 메시지가 출력됩니다.

③ 레지스트리 편집기를 띄워서HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\AutoRun 키를 찾아갑니다. AutoRun이 아닌 다른 이름으로 만든분은 그 이름의 키로 찾아갑니다.

④ AutoRun위에서 새로만들기 -> 키를 선택해서 Parameters 하위키를 만듭니다.

⑤ 하위키 안에 아래 스샷처럼 3개의 문자열값(REG_SZ)을 만듭니다.

설명을 입력할 분은 Description이라는 키를 만들어서 간단하게 설명을 한글로 작성합니다.

⑥ 이제 서비스 콘솔을 열어서 (시작 -> 실행 -> services.msc) 방금전에 만든 서비스로 이동합니다. AutoRun으로 이동해서 "로그온"탭에 아래 스샷처럼 체크합니다.

이제 서비스 등록은 끝났습니다.
◆ 이제 로그인 할때마다 레지스트리 편집기가 c:\windows폴더에 있는 myrun.reg라는 등록파일을 강제로 병합하는데, 이 등록파일에 자신이 고정할 설정내용을 기록하면 됩니다.

⑴ 시작 프로그램 고정
시작 프로그램은 윈도우 부팅(로그인)과 함께 실행되어서 메모리에 적재되는데.. 많을수록 부팅 속도에 악영향을 끼칩니다. 스파이웨어나 에드워어나 일부 S/W를 통해서 원하지 않는 시작프로그램이 자신도 모르는 사이에 등록되거나 자신이 등록한 것이 사라지는 경우가 생길수 있습니다.
레지스트리를 통해서 시작프로그램을 고정하겠습니다.

윈도우 시작후에 자동으로 실행되는 자동 시작프로그램의 경우...

3개의 폴더
C:\Documents and Settings\All Users\시작 메뉴\프로그램\시작프로그램
C:\Documents and Settings\사용자계정이름\시작 메뉴\프로그램\시작프로그램C:\WINDOWS\Tasks (시작시에 실행하도록 예약한 작업)

그리고 4개의 레지스트리 값[HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Run][HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\RunOnce][HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Run][HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\RunOnce]

그리고 1개의 파일
C:\Windows\System.ini에서 [Run]섹션 까지............
마지막으로 서비스를 통해서 시작될수 있습니다. 폴더와 System.ini에 등록되는 경우는 거의없으니, 신경쓰지 않아도 되지만 혹시 모르니 남아있는 파일이 있다면 다 삭제합니다.

아무 에디터나 열어서 (메모장이든 뭐든..) 새로운 문서를 작성합니다.
맨위에 Windows Registry Editor Version 5.00를 입력하고 그 밑에
Windows Registry Editor Version 5.00
[-HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Run]
[-HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Run][HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Run]
"S/W이름1"="S/W1의 경로"
"S/W이름2"="S/W2의 경로"
"S/W이름3"="S/W3의 경로"

※ 예,  "PowerPro"="C:\\Program Files\\Tool\\PowerPro\\PowerPro.exe"

를 차례대로 입력합니다. 앞에 -가 붙은 위 두줄은 Run키 자체를 삭제하라는 뜻입니다.
세번째 키가 바로 Run키에 등록되는 값인데, 저같은 경우 "PowerPro"하나만 사용합니다.
이곳에 자신이 부팅과 함께 자동실행시킬 S/W를 추가합니다. 형식은...
"S/W이름"="확장자까지 포함한 경로"입니다. 경로를 입력시에 폴더구분단위인 \를 하나만
입력하면 \문자 자체로 인식하니 반드시 \\ 두개를 입력해야 합니다.

※ 예를 들어 Winamp를 자동시작 프로그램으로 등록한다면..
"Winamp"="C:\\Program Files\\Winamp\\Winamp.exe"

위와 같이 입력합니다. 여러개를 실행한다면 똑같이 계속추가합니다.
이제 매번 부팅할때마다 Run키에 등록된 모든 값들이 다 지워진후에 자신이 입력한 프로그램만이 자동시작 프로그램으로 기록됩니다.  

⑵ IE 시작페이지 고정하기

[HKEY_CURRENT_USER\Software\Microsoft\Internet Explorer\Main]
"Start Page"="
www.pipi.co.kr"

myrun.reg파일에 위와 같이 추가해 줍니다. Start Page값에 자신이 사용하는 URL을 입력합니다.저같은 경우 www.pipi.co.kr를 시작페이지로 사용합니다.

"FullScreen"="yes"값을 추가해주면, 이름그대로 IE가 항상 "꽉찬화면"으로 실행됩니다.

⑶ IE 다운로드 경로 고정하기

[HKEY_CURRENT_USER\Software\Microsoft\Internet Explorer]
@=""
"Download Directory"="D:\\My Documents\\"
키를 추가합니다. Download Directoryr값에 자신이 원하는 값을 입력합니다. 저같은 경우 D:\\My Documents\\을 다운로드 경로로 사용합니다. 주의할것은, 위에서도 언급했지만 폴더구분기호의 경우 \\를 두번사용해야 합니다.

⑷ 키보드 속도 고정하기
[HKEY_CURRENT_USER\Control Panel\Keyboard]
"InitialKeyboardIndicators"="0"
"KeyboardDelay"="0"
"KeyboardSpeed"="31"

위와 같이 추가합니다. InitialKeyboardIndicators 값은 NumLock ON/OFF입니다. 0이면 OFF, 1이면 ON입니다. KeyboardDelay값은 연속입력시 딜레이입니다. 0이면 지연없이 바로 입력합니다. KeyboardSpeed는 키보드 스피드 입니다. 클수록 빠릅니다. 31이 최대값입니다.

⑸ 마우스 이동 속도 고정하기

[HKEY_CURRENT_USER\Control Panel\Mouse]
"MouseSensitivity"="10"

값을 추가합니다. MouseSensitivity값이 이동속도입니다. 0이 최소,20이 최대입니다. 마지막으로, 고정할 설정을 다 추가했으면.. 작성한 파일을 myrun.reg 파일로 저장합니다.  아래 스샷처럼 작성하시면 됩니다. 잘 모르시는 분은 아래 스샷을 참고로 작성하세요.

저장후에 c:\windows 폴더로 옮깁니다. 끝입니다. 더이상 해줄게 없습니다. 혹시 자동실행이 안되거나 변경사항이 적용되지 않을경우 서비스 제어판에서 새로 만든 서비스를 "중지"한 후에 다시 "시작"하면 적용됩니다. 시작유형은 반드시 "자동"으로 되어있어야 합니다. 그래야 부팅시마다 읽어들이기 때문입니다.

반응형

앞서 설명했던 XML스키마나 DTD를 활용하는 것 까지는 아니라도

가장 기초적인 단순 Tag타입의 XML 파일을 만들수 있게 되었다.


<?

// xml 버전라인
$doc = domxml_new_doc("1.0");

// <HTML> element 선언
$root = $doc->create_element("HTML");

// 자식 element로 <HTML> 추가
$root = $doc->append_child($root);
$head = $doc->create_element("HEAD");

// <HEAD>를 <HTML>의 자식으로 추가 $doc->$root
$head = $root->append_child($head);
$title = $doc->create_element("TITLE");

// <TITLE>을 <HEAD>의 자식으로 추가 $doc->$root->$title
$title = $head->append_child($title);

// <TITLE>에 텍스트노드 추가
$text = $doc->create_text_node("This is the title");
$text = $title->append_child($text);

echo "<PRE>";

// 메모리를 덤프해서 htmlentitie로 표시
echo htmlentities($doc->dump_mem());
echo "</PRE>";
?>


다음의 소스코드를 그대로 .php 로 저장해서 실행시켜보면 다음과 같은 결과를 볼 수 있다.

<?xml version="1.0"?> <HTML><HEAD><TITLE>This is the title</TITLE></HEAD></HTML> echo를 할때 htmlentities() 함수 대신....$doc->dump_file("/tmp/test.xml", false, true);dump_file()함수를 쓰면 xml파일을 얻을 수 있게 된다.

모든 xml은 다음과 같은 정의를 최상단에 단 한번만 주어야 한다.


<?xml version="1.0"?>


이것은 "이 문서는 xml표준 버전 1.0 의 규칙에 따른다..." 라는 것을 정의함을 의미한다.

그리고, 내가쓰는 PHP4 에서 사용되는 domxml_new_doc() 함수를 살펴보면...


(PHP 4 >= 4.2.1)

domxml_new_doc --  Creates new empty XML document
[사용법]
object domxml_new_doc ( string version)
다음과 같이 정의 되어 있으며 입력값으로 version이 들어간다.
문서의 처음에 사용해서 비어있는 xml 문서를 생성해야만 추가작업이 가능하다.
근데 난 한국사람이고 영어문화권을 제외한 나머지 언어를 가진 나라에서는 모든 xml문서를 선언할 때 encoding 값을 줘야한다.
한국어 xml 문서라면...
<?xml version="1.0" encoding="euc-kr"?>
과 같이 써야 한단 소리다.
근데 주어진 xml문서 생성함수로는 구현이 되지 않았다.
그래서, 고민끝에 domxml_open_file(), domxml_open_mem() 함수를 써서 만들어 보기로 했다.
비어있는 xml문서를 만들기 위해서 미리 선언된 양식의 문서가 있어야 한다.
################################### example.inc
<?php
$xmlstr = "<?xml version='1.0' encoding='euc-kr' standalone='yes'?>
<!DOCTYPE HTML SYSTEM 'HTML.dtd'>
<HTML>
</HTML>
";
?>
##########################################################
위에 dtd 문서 선언은 없어도 된다. 하지만 xml문서 선언부와 root element 역할을 하는 tag가 필요하다.
그리고, 이를 php에서 불러서 root element를 불러낸뒤 그뒤에 자식element를 추가해주면 원하는 xml문서를 얻을 수 있다. 물론 xml선언부는 주어진 PHP함수를 사용하지 않고 내 마음데로 조절이 가능하다.
#################################### dom01.php
<?
include("example.inc");
if (!$dom = domxml_open_mem($xmlstr)) {
  echo "Error while parsing the document\n";
  exit;
}
$root = $dom->document_element();
$head = $dom->create_element("HEAD");
$head = $root->append_child($head);
$title = $dom->create_element("TITLE");
$title = $head->append_child($title);
$text = $dom->create_text_node("This is the title");
$text = $title->append_child($text);
echo "<PRE>";
echo htmlentities($dom->dump_mem());
echo "</PRE>";

?>
####################################################
결과는 다음과 같다.
<?xml version="1.0" encoding="euc-kr" standalone="yes"?> <!DOCTYPE HTML SYSTEM "HTML.dtd"> <HTML> <HEAD><TITLE>This is the title</TITLE></HEAD></HTML>
이와 같은 방법으로 문서를 작성해 나가면 될 것이다.

한글로 인코딩하는 xml 선언문까지 해결보고나서 문서를 만들려던중

create_element() , create_text_nod, set_content() 같은 함수들에 한글을 입력하게 되었다.

그러면...


Warning: dump_file(): output conversion failed due to conv error in D:\XML\ex01.php on line 60

Warning: dump_file(): Bytes: 0xC0 0xCC 0xB8 0xA7 in D:\XML\ex01.php on line 60

Warning: dump_file(): xmlOutputBufferFlush: encoder error in D:\XML\ex01.php on line 60


다음과 같은 에러가 발생했다.

output 버퍼가 어쩌구... -_-;


한글을 써야할텐데... 이러면 낭패다.


열씸히 검색해보니 php.ini에 가서 buffer,flush 관련 항목의 주석제거와 알맞게 샛팅후 다시 써보라는둥... 혹 윈도우버전이라 안되는건 아닐까... 모듈이 없는건 아닐까 고민고민했다.

그러다가 나와 같은 에러를 갖은 사람의 문서를 찾게 되었고 그 문서를 통해서 해답을 찾는듯 했다.


http://bugs.php.net/bug.php?id=26443


결론이 난 이문서의 최종 해결책은

Please try using this CVS snapshot:

  http://snaps.php.net/php4-STABLE-latest.tar.gz
  http://snaps.php.net/win32/php4-win32-STABLE-latest.zip

다음과 같은 STABLE 버젼을 다시 설치하고 해보라했다.

웹서버의 종류도 특성이 있는듯 했고 window용에 대한 언급도 있었다.


내공이 부족해서 시키는데로 했다.


덕분에 새로운 팁을 익히게 되었지만 한글을 뿌리게끔 현실적으로 보탬이 되진 않았다.

계속 찾아 헤매던중 eocoding쪽에 관련이 있을것 같아서 문서 검색을 해보니...


xml 파서함수의 uft8-encode() 함수를 쓰도록 하고있었다.

그래서, 해봤다... 이제 위와같은 버그는 없었다. 다만 읽을수 없는 문자가 난무했다.

이유인 즉슨 ISO-8859-1 문자열을 UTF-8 로 바꿈에 있었다.


PHP내공이 부족해서 대책을 바로 찾지 못했는데 한글문자열은 UTF-8 포맷으로 바꿔줘보기로 했다.


iconv 함수를 이용해서...


string iconv ( string in_charset, string out_charset, string str)


예 1. iconv() example:

echo iconv("ISO-8859-1","UTF-8","This is test.");

적용해보니 한글을 잘 뿌릴 수 있게 되었다.

이제 걸리는 문제는 모두 해결하게 되었다.


이제부터 문서를 만드는 일만 남았다.



[소스]


폼을 통해 전달해주는 문서 index.html


<form name=form1 method=POST action=ex01.php?X=KKK>
<input type=hidden name=rootName value="EXTEXT">
<table border=1>
  <tr>
   <td>name</td>
<td><input type=text name=name></td>
  </tr>
  <tr>
   <td>title</td>
<td><input type=text name=title></td>
  </tr>
  <tr>
   <td>content</td>
<td><textarea name=content></textarea></td>
  </tr>
  <tr>
   <td></td>
<td><input type=submit></td>
  </tr>
</form>


넘어온 form 값을 XML로 만들어주는 PHP프로그램 ex01.php


<?
print_r($_REQUEST);


if(!array_key_exists("rootName",$_REQUEST)) {
///////// 넘어온 폼에서 rootName값이 없을 경우 default XML root element value를 만들어준다. set "TEMPTEXT"
$RootName="TEMPTEXT";
} else {
//////// 있다면 그냥 준다.
$RootName=$_REQUEST["rootName"];
unset($_REQUEST["rootName"]);
}

/////////////////////////////// XML root ELEMENT(부모) 생성
$xmlstr = "<?xml version='1.0' encoding='euc-kr'?><$RootName></$RootName>";

if (!$dom = domxml_open_mem($xmlstr)) {
  echo "Error while parsing the document\n";
  exit;
}
$root = $dom->document_element();
////////////////////////////////////////////////////////////////


foreach($_REQUEST as $key=>$value) {

$$key = $dom->create_element($key);
$$key = $root->append_child($$key);
$$key->set_content(iconv("EUC-KR","UTF-8",$value));

}


//echo htmlspecialchars($dom->dump_mem(1, 'euc-kr'));
echo $dom->dump_mem(true);
//echo htmlentities($dom->html_dump_mem());

/// xml문서로 바로 남기고 자 하면 dump_file을 쓴다.
//$dom->dump_file("result.xml", false, true);
?>


[결과]


<?xml version="1.0" encoding="euc-kr" ?>
-<EXTEXT>
<X>KKK</X>
<name>이름</name>
<title>제목</title>
<content>내용</content>
</EXTEXT>

반응형
3.4 JSP Application Design with MVC

JSP technology can play a part in everything from the simplest web application,
such as an online phone list or an employee vacation planner, to full-fledged
enterprise applications, such as a human-resource application or a sophisticated
online shopping site. How large a part JSP plays differs in each case, of course.
In this section, I introduce a design model called Model-View-Controller (MVC),
suitable for both simple and complex applications.

JSP 기술은 전화번호부나 직원휴가일정과 같은 간단한 웹어플리케이션에서부터
구인구직, 정교한 쇼핑몰 등의 성숙한 기업 어플리케이션에 이르기까지 모든 분야에서
유용하다. .. 나는 간단하거나 복잡한 어플리케이션에 모두 적합한 모델-뷰-컨트롤러
(MVC: Model-View-Controller) 라는 설계 방법을 소개하려고 한다.

MVC was first described by Xerox in a number of papers published in the late
1980s. The key point of using MVC is to separate logic into three distinct units:
the Model, the View, and the Controller. In a server application, we commonly
classify the parts of the application as business logic, presentation, and
request processing. Business logic is the term used for the manipulation of an
application's data, such as customer, product, and order information.
Presentation refers to how the application data is displayed to the user, for
example, position, font, and size. And finally, request processing is what ties
the business logic and presentation parts together. In MVC terms, the Model
corresponds to business logic and data, the View to the presentation, and the
Controller to the request processing.

MVC는 제록스가 80년대말 발표한 여러 논문에서 처음 설명되었다. MVC 의 핵심은
프로그램로직을 세 개의 유닛 [ 모델, 뷰, 콘트롤러 ] 로 분리하는 것이다.
서버어플리케이션에서는 [ 비즈니스로직, 프레젠테이션, 리퀘스트프로세싱 ] 으로
어플리케이션 구성요소를 분류한다. 비즈니스로직은 고객,상품,주문 정보등과 같은
어플리케이션 데이터의 처리를 말할 때 쓰는 용어이다. 프레젠테이션은 이러한
데이터가 사용자에게 어떻게 보여지느냐를 의미한다. 예를들어 데이터의 위치,
글자의 종류나 크기 등을 말한다. 마지막으로 리퀘스트프로세싱은 비즈니스로직과
프레젠테이션 영역을 연결해주는 부분을 말한다. MVC 용어에 있어서, 모델은
비즈니스로직과 데이터에, 뷰는 프레젠테이션에, 콘트롤러는 리퀘스트프로세싱에
해당된다.

Why use this design with JSP? The answer lies primarily in the first two elements.
Remember that an application data structure and logic (the Model) is typically
the most stable part of an application, while the presentation of that data
(the View) changes fairly often. Just look at all the face-lifts many web sites go
through to keep up with the latest fashion in web design. Yet, the data they
present remains the same. Another common example of why presentation should be
separated from the business logic is that you may want to present the data in
different languages or present different subsets of the data to internal and
external users. Access to the data through new types of devices, such as cell
phones and personal digital assistants (PDAs), is the latest trend. Each client
type requires its own presentation format. It should come as no surprise, then,
that separating business logic from the presentation makes it easier to evolve an
application as the requirements change; new presentation interfaces can be
developed without touching the business logic.

왜 JSP 를 가지고 이렇게 설계를 할까? 그 답은 우선 앞의 두 요소에 있다.
어플리케이션 데이터구조와 로직(모델)은 전형적으로 가장 안정된 영역이고, 반면에
그러한 데이터의 프레젠테이션(뷰)은 사실 자주 변경된다는 점을 상기해보자. 단지
웹디자인의 최근 유행을 따르기 위해 많은 웹싸이트가 겪는 모든 성형수술을
주목해보자. 그러나 웹싸이트가 보여주는 데이터에는 변함이 없다. 프레젠테이션
로직이 비즈니스로직에서 분리되어야 하는 또 다른 평범한 예로, 국내외의
사용자에게 다양한 언어로 데이터를 보여주고 싶을 수 있다. (역자 주: 이 경우는
동일 템플릿에 다른 데이터할당을 말하는 것 같습니다.) 핸드폰이나 PDAs 와 같은
새로운 장치들에 대한 데이터처리는 최근의 경향이다. 각 클라이이언트 유형은
그에 맞는 프레젠테이션 포맷을 요구한다. 그렇다면, 비즈니스로직과
프레젠테이션을 분리함으로써 이러한 요구의 변경에 따라 어플리케이션을
진화시키기 쉽다는 것은 놀라운 일이 아니다. 비즈니스로직을 변경하지 않고 새로운
프레젠테이션 인터페이스를 개발할 수 있다.

반응형
싸이월드를 사용할때 쓰는 BGM 플레이어는 기본적으로 방화벽 처리에 사용자 동의 없이 예외로
처리 시키고 사용자의 컴퓨터를 음악 재생용 서버로 사용하여 업로드 대역폭을 일정량 차지한다.
그것을 방지하는 프로그램으로 싸이월드 BGM 플레이어 제거 프로그램이다.

사용하면 인터넷 속도(웹서핑)가 약간 향상된것을 느낄수 있다. 경우에 따라 득이 없을수도 있음..
반응형

http://www.xtac.net/ 싸이트 주소
http://www.xtac.net/reference/ 레퍼런스 주소
스킨등 사용할때나 동시 접속자 처리등에 유용한 개발 방식
100%는 아니지만 디자인과 프로그램 코딩의 분리가 가능하여
개발하는데 보다 쉽다~, 캐슁이 가능해 잘사용하면 정말 좋을듯..
게시판을 보면. 동시접속자 500만 싸이트도 이방식을 사용하여 운영이 가능하다고 되어있다.

invalid-file

사용하려면 다운(라이브러리)

출처는 위 싸이트
반응형

+ Recent posts