Search Results for '프로그래밍/프로그램 팁 관련'


255 posts related to '프로그래밍/프로그램 팁 관련'

  1. 2010/09/26 RWAPM X-Server 32bit 5.7.4.4 릴리즈
  2. 2010/09/26 [함수] iframe resize 함수
  3. 2010/09/26 [정보] 다음 실시간이슈 검색어 XML 출력하기
  4. 2010/09/26 [정보] 다음/네이버 실시간 검색 XML
  5. 2010/09/26 [정보] 다음/네이버 실시간 검색 XML
  6. 2010/09/26 [함수] JPEG EXIF 정보 얻는 함수(read_exif_data 사용 안함)
  7. 2010/09/20 긴주소 줄이기
  8. 2010/09/02 핑으로 서버의 운영체제를 알자
  9. 2010/09/02 Twitter API 링크
  10. 2010/09/02 IP, 도메인 -> 국가코드 바꿔주는 GeoIP DLL
  11. 2010/08/18 이미지 버튼 클릭할때 생기는 테두리 ..
  12. 2010/08/18 $_SERVER[HTTP_REFERER] 사용가능하게 하기
  13. 2010/08/18 트위터 개발하기
  14. 2010/08/18 mircosoft에서 jquery cdn 호스팅을 이용하기
  15. 2010/08/18 flash 자동 컴파일 프로젝트, 구글에서 검색한 결과 괜찮은 자료가 있어서 링크 합니다.
  16. 2010/08/09 Daum Open Editor - Daum에서 진행하는 오픈소스 프로젝트 입니다.
  17. 2010/08/09 Server Utility Tools 1
  18. 2010/07/18 [정보] 한글 HWP 문서파일 양식 공개
  19. 2010/06/15 Jabber 개요
  20. 2010/06/07 vista x64용 아파치 (비공식 사이트)
  21. 2010/06/07 asp 파일 다운로드 문제
  22. 2010/06/04 텍스트를 이미지로 변환하는 간단소스(한글지원) - PHP
  23. 2010/06/04 2010년 제1차 우편번호 2010.02.25자 (최신) DB
  24. 2010/06/04 PHP 성능 벤치마크
  25. 2010/06/02 플래시 위에 레이어 나오게 하는 방법
  26. 2010/05/03 Source2Html v1.0
  27. 2010/05/02 초간단 XMPP 트위터 봇
  28. 2010/04/27 xmpp 개요
  29. 2010/04/27 공개 채팅서버 OpenFire 설치 XMMP 1
  30. 2010/03/29 [프로그래밍] 아이폰 어플 개발자 SDK V3.0 스노우 레오파드용
  출처 : http://ncafe.kr/qna.xml
. 파일크기 : 21.39 MB
. 지원 OS : 2003/XP/Vista/2008/7
. 개발환경 : Microsoft Visual Studio C++, asm,cygwin,Python .ETC
. 사용제한 : GNU General Public License (GPL)

. 자료설명 :


Changes with Rwapm 32bit 5.7.4.4(2010.09.11)


Apache 2.2.17-dev (OpenSSL, Zlib , ASM, SVN), ZLIB 1.2.5, PCRE 8.10
mod_korea, mod_bw, mod_evasive, mod_fastcgi, mod_security 2.5.12 etc..
mod_bw, mod_evasive 코드 수정.
OpenSSL 1.0.0a + SEED + ASM
Subversion 1.6.12 (SSL,zlib,Quantify,Sqlite3,Neon enable)
PHP-5.2.14 Patch (APC, eAccelerator, Xdebug, Suhosin)
GD extension: freetype-2.4.2, jpeg-8, libpng-1.2.44, libxpm-3.5.7, t1lib-5.1.2
FreeType, T1Lib, GIF Read, GIF Create, JPG, PNG, WBMP, XPM, XBM,
JIS-mapped Support enabled
Curl-7.21.1, libiconv-1.13, libmcrypt-2.5.8, libxml2-2.7.7,
Sqlite-3.7.2, ZLIB 1.2.5
Sendmail/Smtp (SSL,TLS)
eAccelerator-1.0.0
MYSQL 5.1.50(MYSQLI 5.1.50)
GeoIP Webalizer2.21-02 (Korean Lang Patch) 코드 수정


RWAPM X-Server 간단 소개:
RWAPM은 윈도우 환경에서 간단히 서버를 운영할 수 있도록 Apache,Php,Mysql등을 모아놓은 패키지 형태의 프로그램입니다.
최신의 Apache2.2를 사용해 Apache1에 비해 윈도우에서 월등한 성능을 보여줍니다.
또한 RWAPM은 컴퓨터의 레지스터리를 건들지 않으며,기본적으로 mod_evasive HTTP DoS or DDoS 공격 방어
모듈과 Mod_Security 방화벽이 설정되어 있습니다.
2010/09/26 23:36 2010/09/26 23:36
<script>
<!--
function resize_frame(obj) {
    var obj_document = obj.contentWindow.document;
    if(obj_document.height) {
        obj.style.height = obj_document.height;
        obj.style.width = obj_document.width;
    } else {
        obj.style.height = obj_document.body.scrollHeight;
        obj.style.width = obj_document.body.scrollWidth;
    }
}
//-->
</script>

위에다가 살포시 복사해서 붙여 넣으시고
onload='resize_frame(this)' 추가 하시면 됩니다.

예제 코드 ex)
<iframe src="" frameborder=0 scrolling="no" onload='resize_frame(this)'></iframe>
2010/09/26 23:34 2010/09/26 23:34
우연히 다음 실시간 순위 XML을 필요로 해서 만들게 되었습니다.
올만에 글을 쓰기는 하네요..피식.
필요하신분.....ㅋㅋ 조심히 쓰세요.....

======================================================
Header("Content-type: text/xml; charset=UTF-8");
$fp = fopen("http://img.search.daum-img.net/jumpkeyword/tot.js","r");            
while(!feof($fp)) {                
    $data=fread($fp,2048);
    $text = iconv("CP949","UTF-8",$data);                    
    preg_match_all("/K:\"(.*?)\r\n/i",$text,$matches);
    for($i=0;$i<=sizeof($matches[0]);$i++) {
        $cno = $matches[0][$i];
        $cno = str_replace("K:\"","",$cno);
        $cno = str_replace("\"","",$cno);
        $cno = str_replace(",","",$cno);
        $cno = str_replace("\r\n","",$cno);
        $cno = trim($cno);
        $chart[$i] = $cno;
    }
}
fclose($fp);

$xml = '<?xml version="1.0" encoding="UTF-8" ?>';
$xml .= '<root>';
for($i=0;$i<$chart_cnt;$i++) {
    $xml .= "<cno><![CDATA[{$chart[$i]}]]></cno>";
}
$xml .= '</root>';    
echo $xml;
======================================================

Link1 http://banner.adget.co.kr/_mkXML/webseach.xml.php?fs=daum
Link2 http://banner.adget.co.kr/_mkXML/webseach.xml.php?fs=naver
2010/09/26 23:31 2010/09/26 23:31
예전에 만든거 좀더 보안해서
그냥 추가적으로 작성한 내역 공유해 드립니다.
참고항목으로 `네이버 코드` 부분이 있는데
이 부분은 네이버 openAPI 사용시 코드를 발급하셔야 합니다.
1개의 코드에 보낼수 있는 쿼리양이 정해져있어서 그부분을 해결해보고자
코드 2~3개 를 추가발급받으신후 등록하면 무리없으실거에요.

그리고 저번에 정규식 부분에 대해
`\r\n` 로 한건 해당 입력부분안에 대한 내용물중에 , 부분도 있을 경우를 대비한겁니다.
참고로......허접해도....자비좀 부탁드려요..^^

<?

    //################ MB- SKM - 쿠레이지쌩 ###################
    Header("Content-type: text/xml; charset=UTF-8");
    //Header("Content-type: text/html; charset=UTF-8");
    $chart_cnt = 10;
    switch($_GET["fs"]) {
        case "daum" :    
            $fp = fopen("http://img.search.daum-img.net/jumpkeyword/tot.js","r");            
            while(!feof($fp)) {                
                $data=fread($fp,2048);
                $text = iconv("CP949","UTF-8",$data);
                $chart = load_Daum($chart, $text,"K","K");            // 타이틀        
                $chart = load_Daum($chart, $text,"S","S");         // 아이콘설정                
                $chart = load_Daum($chart, $text,"V","V");            // 등업                
            }
            fclose($fp);
            break;        
        default :
            //##################################### 기본 naver
            $chart    = load_Naver("nexearch",10);                         
            //##################################### 기본 naver
            break;
    }
    //print_r($chart);    
    $xml = '<?xml version="1.0" encoding="UTF-8" ?>';
    $xml .= '<root>';
    for($i=0;$i<$chart_cnt;$i++) {
        if(!empty($chart[$i]["K"])) {
            switch($chart[$i]["S"]) {
                case "n"    : $chart_S="http://www.adget.co.kr/_global/_img/chart/new.png";        break;
                case "+"    : $chart_S="http://www.adget.co.kr/_global/_img/chart/up.png";        break;
                case "-"    : $chart_S="http://www.adget.co.kr/_global/_img/chart/down.png";         break;                    
                default    : $chart_S="http://www.adget.co.kr/_global/_img/chart/none.png";        break;
            }
            $xml    .= "<chart>";
            $xml    .= "    <K><![CDATA[".$chart[$i]["K"]."]]></K>";
            $xml    .= "    <S><![CDATA[".$chart_S."]]></S>";
            $xml    .= "    <V><![CDATA[".$chart[$i]["V"]."]]></V>";
            $xml    .= "</chart>";        
        }
    }
    $xml .= '</root>';        
    echo $xml;

//#################################################### 다음용
    function load_Daum($chart, $value,$str,$avalue) {
        preg_match_all("/{$str}:\"(.*?)\r\n/i",$value,$matches);
        for($i=0;$i<sizeof($matches[0]);$i++) {
            $value = $matches[0][$i];                    
            $value = str_replace("{$str}:\"","",$value);
            $value = str_replace("\"","",$value);
            $value = str_replace(",","",$value);
            $value = str_replace("\r\n","",$value);
            $value = trim($value);
            if($str=="S") {
                switch($value) {
                    case "new"    : $value="n";        break;
                    case "++"    : $value="+";        break;
                    case "--"    : $value="-";        break;                    
                    default        : $value="";            break;
                }
            }
            $chart[$i][$avalue] = $value;
        }        
        return $chart;
    }
//#################################################### 다음용

//#################################################### 네이버 API
    function load_Naver($query,$cnt) {                
        $err = "";
        $naver_key = array(
            "네이버 코드1",
            "네이버 코드2",
            "네이버 코드3",
            "네이버 코드4",
            "네이버 코드5");                
        $key = array_rand($naver_key);
        $xmlURL     = "http://openapi.naver.com/search?key={$naver_key[$key]}&query={$query}&target=rank";
        $xmlView = simplexml_load_file($xmlURL);
        for($i=1;$i<=$cnt;$i++) {
            $K     = $xmlView->item->{"R{$i}"}->K;
            $S     = $xmlView->item->{"R{$i}"}->S;
            $V     = $xmlView->item->{"R{$i}"}->V;
            
            switch($S) {
                case "new"    : $S="n";        break;
                case "+"        : $S="+";        break;
                case "-"        : $S="-";        break;                    
                default        : $S="";            break;
            }
            
            if(empty($K) || empty($S) || empty($V))    { $err = "Y"; break; }
            else {
                $chart[] = array(
                    "K"     => $K,
                    "S" => $S,
                    "V"     => $V,
                );
            }
        }
        if($err == "Y" ) $chart = load_Naver($query,$cnt);    
        return $chart;
    }    

    /* load_Naver( A, B );
        // A 입력값
        nexearch    : 통합검색
        cafe            : 카페검색
        blog            : 블로그 검색
        dic                : 사전검색
        image            : 이미지검색
        kin                : 지식iN검색
        music            : 음악검색
        video            : 동영상검색
        webkr            : 웹문서검색
        site            : 사이트검색
        news            : 뉴스검색
        // B 입력값 ( 노출갯수 )
    */
//#################################################### 네이버 API
?>
2010/09/26 23:30 2010/09/26 23:30
예전에 만든거 좀더 보안해서
그냥 추가적으로 작성한 내역 공유해 드립니다.
참고항목으로 `네이버 코드` 부분이 있는데
이 부분은 네이버 openAPI 사용시 코드를 발급하셔야 합니다.
1개의 코드에 보낼수 있는 쿼리양이 정해져있어서 그부분을 해결해보고자
코드 2~3개 를 추가발급받으신후 등록하면 무리없으실거에요.

그리고 저번에 정규식 부분에 대해
`\r\n` 로 한건 해당 입력부분안에 대한 내용물중에 , 부분도 있을 경우를 대비한겁니다.
참고로......허접해도....자비좀 부탁드려요..^^

<?

    //################ MB- SKM - 쿠레이지쌩 ###################
    Header("Content-type: text/xml; charset=UTF-8");
    //Header("Content-type: text/html; charset=UTF-8");
    $chart_cnt = 10;
    switch($_GET["fs"]) {
        case "daum" :    
            $fp = fopen("http://img.search.daum-img.net/jumpkeyword/tot.js","r");            
            while(!feof($fp)) {                
                $data=fread($fp,2048);
                $text = iconv("CP949","UTF-8",$data);
                $chart = load_Daum($chart, $text,"K","K");            // 타이틀        
                $chart = load_Daum($chart, $text,"S","S");         // 아이콘설정                
                $chart = load_Daum($chart, $text,"V","V");            // 등업                
            }
            fclose($fp);
            break;        
        default :
            //##################################### 기본 naver
            $chart    = load_Naver("nexearch",10);                         
            //##################################### 기본 naver
            break;
    }
    //print_r($chart);    
    $xml = '<?xml version="1.0" encoding="UTF-8" ?>';
    $xml .= '<root>';
    for($i=0;$i<$chart_cnt;$i++) {
        if(!empty($chart[$i]["K"])) {
            switch($chart[$i]["S"]) {
                case "n"    : $chart_S="http://www.adget.co.kr/_global/_img/chart/new.png";        break;
                case "+"    : $chart_S="http://www.adget.co.kr/_global/_img/chart/up.png";        break;
                case "-"    : $chart_S="http://www.adget.co.kr/_global/_img/chart/down.png";         break;                    
                default    : $chart_S="http://www.adget.co.kr/_global/_img/chart/none.png";        break;
            }
            $xml    .= "<chart>";
            $xml    .= "    <K><![CDATA[".$chart[$i]["K"]."]]></K>";
            $xml    .= "    <S><![CDATA[".$chart_S."]]></S>";
            $xml    .= "    <V><![CDATA[".$chart[$i]["V"]."]]></V>";
            $xml    .= "</chart>";        
        }
    }
    $xml .= '</root>';        
    echo $xml;

//#################################################### 다음용
    function load_Daum($chart, $value,$str,$avalue) {
        preg_match_all("/{$str}:\"(.*?)\r\n/i",$value,$matches);
        for($i=0;$i<sizeof($matches[0]);$i++) {
            $value = $matches[0][$i];                    
            $value = str_replace("{$str}:\"","",$value);
            $value = str_replace("\"","",$value);
            $value = str_replace(",","",$value);
            $value = str_replace("\r\n","",$value);
            $value = trim($value);
            if($str=="S") {
                switch($value) {
                    case "new"    : $value="n";        break;
                    case "++"    : $value="+";        break;
                    case "--"    : $value="-";        break;                    
                    default        : $value="";            break;
                }
            }
            $chart[$i][$avalue] = $value;
        }        
        return $chart;
    }
//#################################################### 다음용

//#################################################### 네이버 API
    function load_Naver($query,$cnt) {                
        $err = "";
        $naver_key = array(
            "네이버 코드1",
            "네이버 코드2",
            "네이버 코드3",
            "네이버 코드4",
            "네이버 코드5");                
        $key = array_rand($naver_key);
        $xmlURL     = "http://openapi.naver.com/search?key={$naver_key[$key]}&query={$query}&target=rank";
        $xmlView = simplexml_load_file($xmlURL);
        for($i=1;$i<=$cnt;$i++) {
            $K     = $xmlView->item->{"R{$i}"}->K;
            $S     = $xmlView->item->{"R{$i}"}->S;
            $V     = $xmlView->item->{"R{$i}"}->V;
            
            switch($S) {
                case "new"    : $S="n";        break;
                case "+"        : $S="+";        break;
                case "-"        : $S="-";        break;                    
                default        : $S="";            break;
            }
            
            if(empty($K) || empty($S) || empty($V))    { $err = "Y"; break; }
            else {
                $chart[] = array(
                    "K"     => $K,
                    "S" => $S,
                    "V"     => $V,
                );
            }
        }
        if($err == "Y" ) $chart = load_Naver($query,$cnt);    
        return $chart;
    }    

    /* load_Naver( A, B );
        // A 입력값
        nexearch    : 통합검색
        cafe            : 카페검색
        blog            : 블로그 검색
        dic                : 사전검색
        image            : 이미지검색
        kin                : 지식iN검색
        music            : 음악검색
        video            : 동영상검색
        webkr            : 웹문서검색
        site            : 사이트검색
        news            : 뉴스검색
        // B 입력값 ( 노출갯수 )
    */
//#################################################### 네이버 API
?>
2010/09/26 23:30 2010/09/26 23:30
JPEG의 이미지 metadata 정보를 얻어오는 클래스 라이브러리 입니다.
PHP에서 제공하는 exif관련 함수를 전혀 사용하지 않고 hexData를 분석하여 추출해 내므로 별도의 EXIF 관련 외부 라이브러리를 설치하지 않으셔도 이용하실 수 있습니다.





사용하는 법은 아래와 같습니다.

<?php
$exif = new exif('image.jpg');

print_r($exif ->getImageInfo());
?>

exif::exif() 함수로 읽어올 이미지 파일을 설정한후
exif::getImageInfo() 함수로 해당 이미지의 EXIF 및 기타 모든 정보를 리턴받습니다.




- 클래스 설명
- exif class
*exif::exif("(string)파일경로", "(string)언어설정(en|ko)", "(boolen)디버그 정보 출력여부");
*exif::getImageInfo(void);


라이센스는 기본 MIT 을 따릅니다.
Copyright (c) 2010 M_FireFox

Permission is hereby granted, free of charge, to any person
obtaining a copy of this software and associated documentation
files (the "Software"), to deal in the Software without
restriction, including without limitation the rights to use,
copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the
Software is furnished to do so, subject to the following
conditions:

The above copyright notice and this permission notice shall be
included in all copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
OTHER DEALINGS IN THE SOFTWARE.



ASP 용도 있습니다. ..

http://www.spaz.com/mr/work/aspexiffuncs/
2010/09/26 23:27 2010/09/26 23:27
유용한 웹 페이지가 있을때. 주소가 너무 길어 불편한적이 있었습니다.

이 사이트를 활용 한다면. 해결 될거라 생각합니다.

http://spedr.com/

http://tinyurl.com/


http://spedr.com/
2010/09/20 00:00 2010/09/20 00:00
핑을 써보면 핑을 쏜 서버의 운영체제를 알수 있습니다.

윈도우 계열



유닉스 계열


제가 핑을 쏘아 봤습니다.
34번의 경우는 윈도우 계열의 서버
32번은 리눅스 서버입니다.

어떻게 구별 할 수 있냐하면 ... 바로 TTL (Time To Live)

ttl 값이 255 는 유닉스 계열
ttl 값이 128 은 윈도우 계열입니다.
ttl값은 라우터를 하나 지날때 마다 1씩 감소 합니다.
그러므로 ttl값이 100번때이면 윈도우 계열
ttl값이 200번때면 유닉스 계열 이겠지요!
그럼 다음 서버에 한번 핑을 쏘야 봅시다.

다음


ttl값이 247인것 으로 보아 유닉스 계열 이겠지요!
아마 프리비나 리눅스를 쓰는 것 같군요!
2010/09/02 18:24 2010/09/02 18:24
http://dev.twitter.com/
http://blog.yesyo.com/entry/twitter-Anywhere-적용-방법
http://blog.yesyo.com/entry/twitter-API-for-PHP

http://twtkr.com -> 한국어 트위터
http://bit.ly -> 주소를 잛게 만들어주는 사이트 API 제공
2010/09/02 18:10 2010/09/02 18:10

GeoIP 국가별 IP체크
http://www.maxmind.com/

국가별 IP체크 꼭 필요한 사항은 아니나 사이트 접속정보 구성시 고려해볼 만한 사항이며
로그분석 업체에서는 이미 사용중인 기능이기도 합니다.

로그분석에 어떤 국가의 IP인지 확인할 수 있다면 악의적인 IP의 접근 차단도 할수 있을것이며
인젝션 공격등 방어를 위해 특정 국가의 접속을 막을수도 있을 것입니다.

위 사이트에서는 데모 버전이 올라와 있습니다.
ASP 버전으로 데모버전에는 데모데이터를 활용하고 있습니다.
데모데이터를 실제 마지막으로 업데이트된 데이터로 교체하여 사용하시면 된답니다.

첨부파일에는 2009년 2월 데이터와 예제 프로그램이 있으니 필요하신 분은 첨부파일을 받아 사용하세요~


사용법
1. GeoIPCOM.dll을 system32 폴더에 복사
2. regsvr32 GeoIPCOM.dll - 레지스트리에 DLL등록
3. ASP 프로그램에 적용

set geoip = Server.CreateObject("GeoIPCOM.GeoIP")

geoip.loadDataFile("C:\Program Files\GeoIP\GeoIP.dat")
country_code = geoip.country_code_by_name(hostname)
country_name = geoip.country_name_by_name(hostname)

2010/09/02 17:59 2010/09/02 17:59
 

<HEAD>와</head>사이에 아래의 스크립트를 넣어줍니다.

<script language="Javascript">
<!--
function bluring(){
if(event.srcElement.tagName=="A"||event.srcElement.tagName=="IMG") document.body.focus();
}
document.onfocusin=bluring;
// -->
</script>

2010/08/18 21:15 2010/08/18 21:15
$_SERVER[HTTP_REFERER] 이 않되는 경우는 아래 불당님께서 말씀하신 경우이구요.

$_SERVER[HTTP_REFERER] 이 가능하게 하려면

1. a 링크 ,

2. form 전송시 ,

3. form 을 새창으로 전송시,

4. form 이나 a 링크를 아이프레임으로 전송시

위 네가지 테스트 해 보니 $_SERVER[HTTP_REFERER]  이 생성이 되었습니다.

다른 방법이 또 있는지는 잘 모르겠구요...  예를 들어 location.href

는 $_SERVER[HTTP_REFERER] 이 생성되지 않습니다.

좀더 보안적으로 사이트를 만드시려면 location.href 보다 <a href=''> 와 폼으로 전송하여

$_SERVER[HTTP_REFERER]  를 체크 하는 것이 보안적으로 좀더 우위에 있을 것 같더군요.
2010/08/18 21:14 2010/08/18 21:14
@username + 메시지 내용
다른 한 사람에게 메시지를 보내는 기능입니다. Reply기능이라고 보시면 됩니다.
트위터를 잘 모르더라도 흔히 사용하는 기능입니다.

D username + 메시지 내용
사적인 메시지를 보내는 기능입니다. 위의 @를 붙이는 방법과 다른 점은 @를 붙여서 보내면 다른사람에게도 공개가 되지만 D를 붙이면 다른사람은 볼 수 있는 방법이 없다는 차이가 있습니다.

WHOIS username
트위터 사용자의 프로필을 보여줍니다.

GET username
해당 사용자의 최근 포스트를 가져옵니다.
2010/08/18 21:13 2010/08/18 21:13
마소꺼

<script src="http://ajax.microsoft.com/ajax/jquery/jquery-1.4.2.js" type="text/javascript"></script>    
<script src="http://ajax.microsoft.com/ajax/jquery/jquery-1.4.2.min.js" type="text/javascript"></script>


구글꺼

<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.4.1/jquery.min.js"></script>
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jqueryui/1.7.2/jquery-ui.min.js"></script>
2010/08/18 20:57 2010/08/18 20:57

down load file

flash auto compile  using jsfl

jsfl same like mecro ...script

core file :  compileProject.jstl, compile_schma.txt

flash 자동 컴파일 프로젝트, 구글에서 검색한 결과 괜찮은 자료가 있어서 링크 합니다.

2010/08/18 20:55 2010/08/18 20:55

다음에서 공용 FTP 를 이용해 Cent OS 를 설치 했습니다. 속도가 무지 빠르고 좋네요.

아래 링크 따라 들어 가시면 [ 공용 FTP 지원] 메뉴가 있습니다.


Daum에서 진행하는 오픈소스 프로젝트 입니다.

Daum Open Editor

Daum Open Editor는 Daum 에서 개발된 WYSIWYG기반의 오픈 웹 에디터로 독립적이고 확장에 유연하도록 설계 되었습니다. 주요 브라우저의 크로스브라우징을 지원하며, Daum에서 서비스되고 있는 Daum Editor와 함께 업데이트 될 예정입니다. 상세한 설명은 여기에서 참고해 주세요.

다음오픈에디터의 라이센스는 GNU LGPL(Lesser General Public License) 으로 오픈되어 있는 소스이므로 저작권료 없이 사용이 가능하며, 목적에 맞게 수정하여 사용할 수 있으십니다. 또한 LGPL에는 수정한 부분의 소스공개를 권장하고 있으나, 강제 사항은 아니므로 공개하지 않으셔도 무방합니다. 다만 사용하시는 소스 상단 부분에 다음오픈에디터를 사용하였음을 명시해 주시길 권장합니다.

IE 5.5+ 지원 (safari 3.2 + , chrome 1, ff 2+, opera 9.64+) IE 5.5+ 지원 (safari 3.2 + , chrome 1, ff 2+, opera 9.64+)

[다운로드]

 

2010/08/09 18:57 2010/08/09 18:57
- Windows Script Encoder - 스크립트 인코더로 스크립트 소스코드 보호
- Windows Installer 3.0 Redistributable - Windows Installer 3.0 버젼. msi 배포시 필요.
- Windows Script 5.6 - Windows 2003용 Windows Script 5.6 버젼
- Windows Script 5.6 - Windows 2000,XP용 Windows Script 5.6 버젼
- Microsoft Network Monitor 3 패킷분석기
- SyncBack Freeware - Freeware 파일 백업/동기화 유틸
- Reflector for .NET - 닷넷디컴파일러
- Sourceforge Project - Clam AntiVirus - 실시간 바이러스DB 업데이트 제공
- Sourceforge Project - Packetyzer - 패킷분석기
- Microsoft Data Access Components (MDAC) 2.8 한글
- Microsoft .NET Framework 2.0 베타 2(x86)
- Microsoft .NET Framework 1.1 Redistributable 한글
- WMI Code Creator v1.0
- WMI Administrative Tools
- Debug Diagnostic Tool v1.1 디버깅툴
- Debugging Tools for Windows - WinDbg 디버깅툴

- Sysinternals - Diskmon v2.01 - HDD 작동상태 모니터링
- Sysinternals - Filemon v7.02 - 실시간 파일시스템 모니터링
- Sysinternals - Junction 1.032 - NTFS 심볼릭 링크 생성
- Sysinternals - PsTools v2.24 - 프로세스관리툴 모음
- Sysinternals - Autoruns v8.31 - Autorun 관리툴
- Sysinternals - RootkitRevealer - 루트킷 검색툴
- Sysinternals - Tokenmon - 토큰모니터
- Sysinternals - TDIMon - TCP/IP 실시간 모니터
- Sysinternals - Process Explorer - 프로세스탐색기
- Sysinternals - Portmon for Windows NT/9x - 네트워크포트 모니터
- Sysinternals - Regmon for Windows NT/9x - 레지스트리 모니터
- Sysinternals - CPUMon - CPU 모니터
- Sysinternals - Filemon for Windows - 파일 모니터
- Sysinternals - BlueScreen Screen Saver - 블루스크린 세이버

Windows Server
- Web Application Stress Tool
- Windows Server™ 2003 Performance Advisor
- Windows Server 2003 Resource Kit Tools
- IIS 5.0 Process Recycling Tool - IIS 5 재생을 통해 가용성을 높이는 툴
- User Profile Hive Cleanup Service(EventlogID:1000..)
- Internet Information Services (IIS) 6.0 Resource Kit Tools
- IIS Diagnostics Toolkit (x86)
- Urlscan 2.5 Install Package
- IIS Crash/Hang Agent & IIS Dump
- Active Directory Migration Tool v3.0 한글

SQL Server
- SQL Server Web Data Administrator
- SQL Server Express Utility
- SQL Server Health and History Tool (SQLH2)
- Best Practices Analyzer Tool for Microsoft SQL Server 2000 1.0
- Microsoft SQL Server Report Pack for Internet Information Services (IIS Logs)

Exchange Server
- Exchange 지능형 메시지 필터 - Exchange Server 2003 버젼용
- Exchange Server Stress and Performance 2003
- Microsoft Exchange Server 2003 Load Simulator (LoadSim)
- Microsoft Exchange Server User Monitor
- Microsoft Exchange Server Mailbox Merge Wizard (ExMerge)
- Exchange Server 2003 Exchange 배포 도구
- Exchange Server Performance Troubleshooting Analyzer Tool v1.0
- Exchange Server Best Practices Analyzer Tool 한글
2010/08/09 18:50 2010/08/09 18:50
HWP 파일포맷이 드디어 공개적으로 오픈되었습니다.
http://www.hancom.co.kr/notice.noticeView.do?targetRow=1¬ice_seqno=33
사용자 삽입 이미지
2010/07/18 22:31 2010/07/18 22:31

0. 개요
  jabber는 구글Talk에서 사용하고 있는 XMPP 기반의 프로톨이다. 이 XMPP는 XML을 기반으로 구성되어 있으며 인스턴스 메신저들이 가져야 할 프로토콜 요소들을 모두 갖추고 있다. 오픈 프로토콜이라는 것은 이처럼 모든 인스턴스 메신저들이 가져야할  기능들에 대하여 jabber.org의 JEPs에서 프로토콜 네임스페이스들을 제공함으로써 누구나 쉽게 메신저 프로토콜을 구현할 수 있도록 제공한다는 의미에서 오픈 이라고 표현한다.

  또한 jabber를 사용하는 서버들 사이에 통신을 할 수 있으며 따라서 다른 도메인을 사용하는 사용자들과 대화를 가능하게 해준다. jabber를 지원하는 메신저들은 이미 많이 배포되어 있으며 아쉽게도 국내용은 아직 없는것으로 알고 있다. jabber를 지원하는 클라이언트(메신저)는 어떠한 공개 jabber 서버에도 접속할 수 있다. 아쉽게도 구글은 아직 공개 jabber로 오픈하지는 않고 있다.

아마 구글이 Talk서버를 오픈하게 되면 jabber를 사용하는 인스턴스 메신저 그룹들은 굉장히 환영할 만한 일이 될것이다.



1. jabber의 구조

사용자 삽입 이미지

 

  • C1, C2, C3 = XMPP Client
  • S1, S2 = XMPP Server
  • G1 = XMPP와 외부 메시징 네트워크에서 사용되는 프로토콜들 사이의 Gateway
  • FN1 = 외부 메시징 네트워크
  • FC1 = 외부 메시징 네트워크의 클라이언트


  [간단한 구조]


 - jabber 메신저 사용자들은 모두 어떠한 jabber public server에 위치하고 있더라도 다른 server에있는 사용자와 대화가 가능해 진다.

 - 구글 토크의 경우 서버와 서버 간 연결을 현재 막아놓은 상태이다.

 - 위 클라이언트들은 공개된 jabber 서버에 계정을 가지고 있는 사용자들이다.

3. 프로토콜  예
   Server advertises resource binding feature to client:

   <stream:stream
       xmlns='jabber:client'
       xmlns:stream='http://etherx.jabber.org/streams'
       id='c2s_345'
       from='example.com'
       version='1.0'>
   <stream:features>
     <bind xmlns='urn:ietf:params:xml:ns:xmpp-bind'>
   </stream:features>

   Client asks server to bind a resource:

   <iq type='set' id='bind_1'>
     <bind xmlns='urn:ietf:params:xml:ns:xmpp-bind'/>
   </iq>

4. jabber의 장점
- 장점 :
   전 세계 jabber 사용자와 대화가능
   구글 토크와 연동가능
   인증된 프로토콜사용으로 메신저 신뢰성 향상
   기존 메신저와의 차별화 가능
   서버 및 클라이언트 라이브러리 제공
   서버를 오픈하지 않고 프로토콜만 활용하여 쓸 수 있다.
   프로토콜로 인한 문제를 미연에 방지할 수 있다.
   XML로 표준화됨으로 타 기능과 연동에 용이하다.  

5. 향후 전망
- 현재 구글 토크는 서버를 Gmail 사용자에게만 오픈하고 있는데 곧 public server로 등록할 것이라는 내용을 구글 토크 홈페이지에서 간접적으로 언급하고 있다. 그렇게 되면 jabber는 엄청난 사용자들을 확보 할 수 있을 것이다.
http://www.google.com/talk/about.html#open


-  XMPP(extensible messaging and presence protocol) 메신저는 SIMPLE과 함께 국제 인터넷 표준 기술 협회(IETF)의 인스턴트 메신저 표준 후보 중 하 나로 인텔, 휴렛패커드(HP), AT&T 등이 지원 의사를 밝혔다


6. 참조 사이트

  http://www.jabber.org/

2010/06/15 03:57 2010/06/15 03:57
 
vista x64용 아파치 (비공식 사이트)
 
 
Here you will find 64-bit unofficial binaries that I've compiled using Visual Studio 2005.
I read the ApacheLounge Forums every day, you can post problems you have there and I'll try to answer them.
For Apache x64 specific questions post here.

 File  Description
httpd-2.2.4_x64.exe Apache Server Binary Including mod_deflate & mod_ssl.
mod_macro1.1.8_x64.zip Provides macro support in your configuration files. More Info
mod_security2.0.4_x64.zip Intrusion detection and prevention engine. More Info
mod_jk1.2.21_x64.zip Apache Tomcat Connector. Use the 64-bit JDK!More Info
mod_auth_xml_x64.zip Provides authentication with an XML backend.
2010/06/07 14:37 2010/06/07 14:37

웹서버에 c:\windows\system32\inetsrv\MetaBase.xml 에서 보시면 되고

시작 -> 제어판 -> 관리도구 -> 서비스에서

IIS Admin 을 중지하셔야 정상적으로 metabase.xml 파일을 수정하실 수 있습니다.


수정후에 IIS Admin 관련 하위 항목들을 재시작

'---------------------------------------------------------------------------

그리고 2번째 이야기


.xls 엑셀파일은 다운이돼도

.gul . hwp<-- 뭐이런 확장자 파일은 또 오류가 나네요??;;


office파일은 a href로 다운이 됩니다.

즉 MS사것은 모두..

그리고,gif나 jpg는 바로 웹브라우저로 뜹니다.

그러나 기타 GUI나 머 이런것들은 반드시 다운받을 수 있는 소스가 있어야만 가능합니다.

즉, 기타의 첨부파일은 다운로드 소스없이 다운 받으실 수 없습니다.


[해결방법]

1. IIS 6(인터넷 서비스 관리자)를 중지시킨다.

   (컴퓨터 선택 후 오른쪽 마우스 클릭 -> 모든작업 -> IIS 다시 시작을 클릭 후 중지 선택)

2. c:\windows\system32\inetsrv\MetaBase.xml 파일을 메모장 등으로 연다.

   AspMaxRequestEntityAllowed="204800000" <- 업로드 용량제한을 200MB로 설정한 예

   AspBufferingLimit="204800000" <- 다운로드 용량제한을 200MB로 설정한 예

   byte로 입력하기 때문에 1024 는 1KB이므로 알아서 잘 계산하세요 ^^

3. MetaBase.xml을 저장하고 그 다음 IIS 6를 시작한다. (IIS 다시 시작을 클릭 후 시작 선택)

2010/06/07 13:59 2010/06/07 13:59

function textToImage($text, $fname, $fsize) {
    $text = iconv("EUC-KR", "UTF-8", $text); // 한글지원
    $padding = 10; // 이미지여백
    $ttf  ="폰트가 있는 서버경로";
    $size = imagettfbbox($fsize, 0, $ttf, $text);
    $xsize = abs($size[0]) + abs($size[2])+($padding*2);
    $ysize = abs($size[5]) + abs($size[1])+($padding*2);
    $image = imagecreate($xsize, $ysize);
    $bcolor = imagecolorallocate ($image, 255, 255, 255);
    $fcolor = imagecolorallocate ($image, 255, 0, 0);
    imagefilledrectangle($image, 0, 0, $xsize, $ysize, $bcolor);
    imagettftext($image, $fsize, 0, $padding, $fsize+$padding, $fcolor, $ttf, $text);
    imagejpeg($image,$fname, 85);
    imagepng($image);
    imagedestroy($image);
}

textToImage("한글 English 특수문자 ♥","title1.jpg","25");
2010/06/04 06:09 2010/06/04 06:09
http://www.zipfinder.co.kr/ 다운 받아서 MY-SQL 백업 용으로 변경 했습니다.

MY-SQL 쿼리브라우저 에서 데이터 복원 하시면 편하게 쓸수 있습니다.

최신 우편본호 원본 파일은  http://www.zipfinder.co.kr/  곳에서 다운받아서 사용하십시오.

현  2010 최신 자료 입니다


2010/06/04 00:17 2010/06/04 00:17
유용한 링크 소개하는거라 딱히 팁이랄 것도 없습니다. ^^;

http://www.phpbench.com/

위 사이트에 들어가보시면 PHP 개발자들이 궁금해할만한 이슈에 대한 벤치마크 결과가 있습니다.

- for가 빠를까, while이 빠를까?
- echo가 빠를까, print가 빠를까?
- foreach, for, while 중 뭐가 빠를까?
- == 가 빠를까, ===가 빠를까?

등에 대한 성능 벤치마크 자료가 있습니다.

개발하실 때 참고하세요~
2010/06/04 00:10 2010/06/04 00:10
플래시를 넣어준 태그 안에
< embed > ~~~< /embed > 태그 사이에.. < PARAM NAME=wmode VALUE=transparent >
2010/06/02 04:09 2010/06/02 04:09
사용자 삽입 이미지
C/C++, h, java소스를 HTML로 변환하는 s2html v1.0 입니다.
www.codein.co.kr에서 배포하는 프로그램입니다.
2010/05/03 13:00 2010/05/03 13:00
간만에 간단한 코딩을 한번 해 보기로 한다. 만들어 볼 것은 아주 아주 간단한 트위터 봇(bot)인데, 제목 그대로 내가 내 메신저에서 트위터로 메시지를 날릴 수 있게 해 주는 메신저 봇이다. 트위터(Twitter)는 아주 인기있는 마이크로블로깅 서비스인지라 이미 세상에는 너무나도 많은 봇들이 나와서 돌아 다닌다. 게다가 봇을 자동으로 생성해 주는 서비스도 여럿 있다. 그렇지만 간단한 봇 정도야 1분, 아니 10분 안에 만들어 쓸 수도 있지 않을까?

우선 몇 가지 준비를 하자. 메신저 프로토콜은 오픈 프로토콜인 XMPP를 사용하기로 하자. 부연하자면, XMPP는 예전에Jabber라 불리던 것으로 현재 구글이 GTalk 서비스에 사용하고 있는 XML 스트림 기반의 근사한 메시징 프로토콜이다. 그럼 루비로 간단한 봇 프로그램을 만들어 보자. 코드는 다음과 같다.

require 'rubygems'
require 'eventmachine'
require 'xmpp4r-simple'
require 'twitter'

class TwitterBot
  def initialize(jid, j_pass, tw_email, tw_pass)
    @logger = Logger.new(STDOUT)
    @im = Jabber::Simple.new(jid, j_pass)
    @tw = Twitter::Base.new(tw_email, tw_pass)
  end
 
  def update_messages
    @im.received_messages do |msg|
      jid = msg.from.strip
      @tw.update(msg.body)
      @logger.info "%s update: %s" % [ jid, msg.body ]
      @im.add(jid) if !@im.subscribed_to?(jid)
      @im.deliver(jid, "업데이트 성공.")
    end
  end
end

루비의 XMPP 라이브러리인 xmpp4r-simple과 트위터 API wrapper인 twitter 라이브러리를 사용하였기 때문에, 설명할 여지도 없이 간단한 코드가 되었다. 하는 일이라고는 그냥 메신저로부터 메시지를 받아 그 메시지를 다시 트위터로 보내는 게 전부다.

이제 이 봇을 실행해 보자. 간단한 loop문만 돌려도 되지만, 향후 이 봇의 확장성(?)을 고려해서 루비 이벤트 기반 네트워크 라이브러리인 eventmachine을 사용하기로 하였다. 마지막으로 XMPP 서버가 필요한데, 물론 ejabberd 같은 XMPP 서버를 직접 설치하여도 좋겠지만, 굳이 간단한 봇을 위해 그런 수고까지야. 이미 세상에는 아주 훌륭한 XMPP서버가 나와 있으니 그걸 이용하기로 하자. 바로 구글 Talk다! 봇의 구동 코드는 다음과 같은데, 봇의 생성자에 자신의 구글메일ID, 즉 구글토크ID와 패스워드, 그리고 자신의 트위터 접속 정보를 넘겨주기만 하면 된다.

tb = TwitterBot.new(구글메일 주소, 구글메일 패스워드, 트위터 이메일, 트위터 패스워드)

EM.run do
  EM::PeriodicTimer.new(1) do
    tb.update_messages
  end
end  

이제 이 봇을 실행하고 봇의 ID, 즉 위에서 사용한 구글메일주소를 자신의 메신저 친구 목록에 등록하자. 그리고 나서는 트위터로 무언가 글을 올릴 일이 있을 때마다 그냥 메신저에서 봇에게 메시지만 보내면 그만이다.

이 봇은 트위터를 예제로 하고 있지만, 사실 조금만 변경하면 API가 오픈된 많은 서비스들에 응용할 수 있을 것이다. 자신의 블로그에 블로깅을 하는데 이용할 수도 있고, 미투데이나 스프링노트에 글을 올릴 수도 있을 것이다. 아, 물론 미투데이나 스프링노트는 이미 근사한 봇들이 많이 만들어져 있으니 굳이 그럴 일은 없겠지만.

그리고 또, 음.. 플라타너스트리에도 적용해 볼 수 있지 않을까.
2010/05/02 17:42 2010/05/02 17:42

XMPP란?
RFC3920, RFC3921 등 IETF(Internet Engineering Task Force)에서 제정한 국제 표준 프로토콜로 인스턴트메신저(Instant Messenger)를 위한 프로토콜로 잘 알려져 있다. 국내에서는 몇년 전 구글(google.com)이 XMPP를 채택, googletalk 이라는 인스턴트메신저 서비스를 시작하면서 널리 알려지는 계기가 되었다. XMPP 규격은 2004년 봄에 표준으로 제정되었지만, 사실은 Jabber라는 이름으로 1998년부터 연구가 시작되었고 이 연구의 결과가 표준화라는 결과를 맞이하게 된 것이다.

어떤 규격인가?
이 표준은 인터넷상의 두 지점간의 통신 규격에 관한 것이다. 두 지점은 이메일주소와 같은 방식으로 표현되며 이들 지점간 확장가능한 메시지(message) 그리고 프레즌스(presence)를 거의 실시간(near-realtime)으로 전달해주는 규격이다. 이 규격에 의하면 인터넷상의 지점은 DNS(Domain Name Service) 서비스에 의해 명명될 수 있는 위치들간의 통신으로 예를 들어 yourhost.com 이라는 주소도 하나의 지점이며 yourid@yourhost.com 또한 하나의 주소이다. 결국 DNS에 의해 표현될 수 있는 주소 공간은 새로이 등록되는 도메인 이름에 의해서 계속해서 증가하므로 이론상 무한대의 사용자가 서로 통신이 가능하게 되는 규격인 셈이다.

표준IM을 위한 XMPP?
알려진 대로 XMPP 프로토콜은 표준 인스턴트메신저 서비스를 위한 훌륭한 프레임워크를 제공해준다. 이미 전세계 수 많은 사람들이 XMPP 사용자가 되어 있으며 지금도 계속해서 증가하고 있다. 이것은 XMPP 소프트웨어를 만드는 회사와 단체가 증가하는 것을 보면 알 수 있다. 그러나 인스탄트 메신저 서비스만 가능한 것은 아니다. XMPP라는 규격이 Message와 동시에 Presence라는 것을 정의하고 있기 때문에 그 사용처는 매우 대단하다.

강력한 Presence 기반 응용이 가능
프레즌스(Presence)는 XMPP의 가장 중요한 요소중의 하나이다. DNS에 의해 확장되는 거대한 XMPP 공간에서 각 지점의 상태들을 프레즌스라고 하고 각 지점의 상태가 변경될 경우 이 상태 변경은 즉각 이에 관심있어 하는 지점으로 브로드캐스팅된다. 다른 지점의 상태변경에 관심있는 지점이 되기 위해서는 프레즌스를 구독(subscribe)하는 과정이 필요하다.
 


XMPP IM
 
현재 AOL, MSN, Yahoo 메신저등 다양한 메신저들이 개인간 커뮤니티 도구로 널리 사용되고 있으며, 이를 기반한 다양한 차세대 킬러 어플리케이션 개발에 많은 노력을 하고 있다. 이러한 가운데 대형 포탈 또는 통신업체 등의 기업 메이저시장에서도 업체간 메신저 경쟁도 날로 치열해지고 있다. 불과 몇 년 전만 해도 메신저는 젊은 세대간의 간단한 쪽지 수준의 메시지를 전달하는 도구에 불과했었다.
 
그러나 지금은 메신저가 개인적인 커뮤니티뿐만 아니라 기업내의 협업을 위한 매우 유용한 도구로 활발히 이용되고 있다. 최근 메신저는 이미 수백만 명의 사용자를 가질만큼 규모가 급성장하고 있다. MSN 뿐만 아니라 AOL, Yahoo, ICQ(AOL과 통합되었음) 등 다양한 메신저들이 이미 인터넷 시장에서 ‘작은 포탈’로 주목받고 있다. 이들 메신저는 단순한 메시지 전송 기능과 파일 전송 기능을 넘어서서 교육, 증권, 은행, 음악, 복권 등 다양한 서비스를 함께 제공하고 있어 사용자들에게 인터넷만큼 편리하게 이용된다.
 
그러나 서로 다른 메신저를 사용하는 사용자간의 대화나 파일 전송은 불가능하다는 단점이 있다. 그 뿐만 아니라 친구 등록에는 한계가 있어서 두 개 이상의 메신저 계정을 가지고 있는 사용자는 동시에 여러 계정을 이용할 수 없다. 초기부터 많은 사업자들이 주요 서비스의 부가적인 사업정도로 인식하여 출발한 결과로 이 기종 메신저간에 커뮤니티를 전혀 고려하지 않았다. 그 결과, 서로 다른 메신저를 사용하는 사용자간에는 불편을 감수하여 여러 종류의 메신저를 설치해서 사용하거나 또는 가장 선호하는 메신저를 제외한 다른 메신저를 포기하는 경우가 대부분이다.
 
이러한 고객의 불편함을 해소하기 위해 마이크로소프트(MS), 야후, 아메리카온라인(AOL)등이 비즈니스용 통합 메신저 제품을 공동으로 개발하기로 합의하였다. 이를 바라보는 여러 전문가들은 비즈니스의 영역을 확보하기 위한 이 같은 행보를 꼬집어 비판하면서, 이 세 기업이 새로운 메신저 제품을 위해 얼마나 효율적으로 개발협업을 이끌어낼 지 의문을 제기하였다.
 
다른 한편으로는 여러 업체들이 각기 다른 메시징 소프트웨어를 제작해서 보급함에 따라 메시징 소프트웨어 간의 상호 호환성 문제에 대하여 인터넷기술표준단체 IETF(Internet Engineering Task Force)에서는 메시징 서비스 간의 호환성 문제 해결을 위한 표준 제정을 위해 XMPP(eXtensible Messaging and Presence Protocol) 워킹그룹을 결성하고 표준화를 추진하고 있다. 여기서, XMPP는 XML 스트리밍 기반 확장형 실시간 메시징 기술이다. XMPP는 공개형 프로토콜인 JABBER(http://www.jabber.org) 인스턴트 메신저에 근간을 두고 있으며 HP, SUN 등의 솔루션회사와 AT&T, Orange, France telecom, BellSouth 등의 통신회사가 채택하였다.
 
또한, IETF가 사람들 또는 기계간의 상태와 컨텍스트 정보를 활용하여 실시간 대화형 기술을 제시하고 있는 XMPP-core 및 XMPP-IM을 제안표준으로 채택함에 따라 XMPP 보안, XMPP-연동 등도 표준으로 채택되리라 예상되며, 향후 XMPP가 세계적 표준으로 자리 잡는데 다가섰다고 평가되고 있다.
 
IETF의 인스턴트 메신저 표준은 이전에 이메일이나 웹이 SMTP, HTTP로 인터넷 표준화되어 널리 사용되었듯이 향후 실시간 대화형 서비스 확산에 큰 영향을 미칠 것으로 평가되고 있다. IETF에 의해 XMPP영역의 표준으로 채택된 Jabber는 인터넷에 있는 두 지점간의 메시지, 온라인 상태정보, 및 기타 구조적(structured)정보를 실시간으로 교환하기 위한 스트리밍 XML 프로토콜 및 기술을 의미한다.

 
Jabber 서비스를 이용하기 위해서는 공개된 Jabber 클라이언트를 다운받고 오픈된 공개 서버에 회원가입을 하거나 직접 자신의 서버에 Jabber 대몬을 설치하고 사용할 수 있는데, 일단 가입이 이루어지면 JID라는 식별자를 부여받게 된다. JID는 이메일과 같은 체계로 되어 있다. 예를 들어 씽크테크(thinktek.co.kr)가 재버서버를 설치하고 jklee라는 사용자를 가입시켰다면 이 사용자의 JID는 jklee@thinktek.co.kr이 된다. 이는 공교롭게도 이메일 주소와 동일하다. 즉, JID는 전세계적으로 유일한 ID가 된다.
 
Jabber의 최대 특징은 JID만 알면 다른 어떤 Jabber 서버의 사용자와도 대화가 가능하다는 점이다. 즉, david@jabber.org 라는 JID를 가진 사용자에게 이메일을 쓰듯 메시지를 날리면 실시간 대화가 가능하다. 이 점이 다른 메신저 사업자들과 비교했을 때 가장 특징적이며 획기적인 것이다.
 
향후 재버서버가 메일서버만큼 널리 사용되고 많은 사용자들이 JID를 보유하게 될 때에는 Jabber를 바탕으로 하는 수 많은 응용프로그램 수요가 발생하게 될 것으로 예상된다. 사람들이 일단 JID를 이용하여 상대방과 대화를 하기 시작한다면 그 이후는 대화상태 찾기, 게임, 온라인 거래, 계약 등등 수 많은 일들을 Jabber기반의 네트워크에서 처리할 수 있게 된다.
 
Jabber 프로토콜은 확장성을 고려하여 초기부터 XML이라는 구조적 기술언어를 이용하여 프로토콜이 설계되어 있다. XML의 특성상 풍부한 확장성을 제공하기에 Jabber응용프로그램을 개발하는 개발자는 자신이 새로 설계한 구조적인 정보를 Jabber 네트워크를 통하여 쉽게 전송할 수 있다. 결과적으로 XML에 의해 어떠한 구조적인 정보를 정의하느냐가 Jabber 어플리케이션 개발의 핵심이 되는 것이다.

2010/04/27 23:54 2010/04/27 23:54
XMPP(eXtensible Messaging and Presence Protocol) 프로토콜 기반의 공개 채팅서버인 OpenFire를 로컬 경로에 설치하고 테스트 해 보았습니다.

지원하는 플랫폼은 Windows/Linux/Mac 입니다.

다운로드 URL : http://www.igniterealtime.org/projects/openfire/index.jsp
설치 가이드 : http://www.igniterealtime.org/builds/openfire/docs/latest/documentation/install-guide.html


먼저 java 를 설치 하셔야 합니다.

저는 Windows용 무설치 버전을 받아 C:\openfire 경로에 압축을 해제 하였습니다.
(* 바탕화면에 압축 해제 후 실행시 한글 경로를 찾지 못하는 현상이 있는 듯 합니다.)

압축 해제 후 다음과 같이 실행합니다.

openfire.exe  (실행)

사용자 삽입 이미지




위와 같은 Openfire 창이 뜨면 Launch Admin 버튼으로 초기 세팅을 진행해야 합니다.

화면에 Launch Admin 클릭하면 아래 화면이 나오는데
사용자 삽입 이미지

이곳에서 데이터 베이스 설정 을 하십시오 오라클 MY-SQL , MS-SQL 기타 등등 모두 지원 합니다.

모든 설치과정이 끝나면, 클라이언트를 통해 메신저 서버에 접속 할 수 있습니다.

Spark 또는 SparkWeb을 통해 접속 해 봅니다.


아 참고로 사이트에 접속 하셔서 sparkweb 을 받아서 서버에 업로드 후 HTTP 메신저도 지원 합니다.

사용자 삽입 이미지
--------------------------------------------------------------
추가

웹사이트 작업중 회원 테이블 을 공유 해야할 필요가 생겨서 작업중 알게 되었습니다.

비밀번호가 암호화 되어 있어 MD5 라고 생각했는데 아니더군요 하다 하다 안되서.

이것저것 알아본결과 plainPassword 필드에 암호화 안된 일반 비번을 넣었더니 문제 없이 로그인 되었습니다.

다시 말해 encryptedPassword 에 비밀번호가 없고 널 일경우 plainPassword  에 암호화 안된 비밀번호로 로그인 되는것을

확인할수 있었습니다.

2010/04/27 23:46 2010/04/27 23:46
아이폰 어플 개발에 관심있으신 분들에게...
 
 
당연하지만 맥 OSX 스노우 레오파드용입니다.. 레오파드는 레오파드용이 따로 있는 걸로 봐서 안될듯 합니다. 스노우 레오파드에 설치하세요..
사용자 삽입 이미지

아이폰 어플은 맥OS에서만 가능합니다
한마디로 아이폰을 개발하기 위해서는 애플의 컴퓨터가 있어야되죠
그런데 일반 컴퓨터에 맥OS를 설치할 수 있게 한것이 해킨토시입니다(애플의 정식이 아님)
해킨토시를 설치하기 위해서는 하드웨어를 많이 가린다고 하더군요 자세한 정보는 인터넷을 참고하시면 될거 같네요
2010/03/29 00:56 2010/03/29 00:56