'neouser'에 해당되는 글 112건

  1. 2008.01.16 사용자 추가 하기
  2. 2008.01.15 2개의 날짜차이 구하기
  3. 2008.01.14 [javascript sample] 최근 개발 sample
  4. 2008.01.14 [sample] httpclient 요청후 상태확인
  5. 2008.01.13 Ruby on Rails : 초고속 웹 개발의 시작
  6. 2008.01.12 최근에 만든 shell 프로그램
  7. 2008.01.11 펄떡이는 물고기처럼 1
  8. 2008.01.11 요즘 관심이 가는것들
  9. 2008.01.10 XML-RPC의 이해 01 1
  10. 2008.01.10 Daum openAPI개발에 필요한 JAR파일

GRANT SELECT, INSERT, UPDATE ON test.* TO 'testuser'@'localhost' IDENTIFIED BY 'testuser';


사용자를 testuser라 추가하고 비밀번호를 testuser라 부여한다.
더불어 table test에 SELECT, INSERT, UPDATE의 권한을 주고 생성한다.

이와같이 하면 굳이 FLUSH PRIVILEGES;를 수행하지 않아도 된다.
select itemid from test where  markcnt <=0 and (TO_DAYS(now())-TO_DAYS(last_modified_time)) > 10



현재시간에서 입력되어있는 시간의 day단위 시간차를 구해옵니다.
10일 이상인것만 가져오는 Query 입니다.

본 소스코드는 innerHTML의 다양한 활용을 볼 수 있는 소스코드입니다.
단순이 HTML을 넣을때 뿐만아니라 해당 내용을 get 해올적에도 innerHTML이 사용되고
있는것을 볼 수 있답니다.

더불어 페이지 리로드 하는것도 있네요.

조건절에 특별히강조를 더한이유는
document.getElementById("rssGrp"+grp+"Area").innerHTML ㄴ의 실행결과 기대값으로 NULL이거나 선언되어있지 않다면 if절에서는 false를 보이기 때문입니다.


 function notReadAllFinal(resultCode, url, param){
  var chid = param[0];
  var viewOrer = param[1];
  var allynflag = param[2];

    if (allynflag =="N") {  
     document.getElementById("itemCount_notRead_top").innerHTML = ""; //(0)
     document.getElementById("itemCount_notRead").innerHTML = ""; // (0)
     for (var k=0; k < channelList.length; k++) {
      document.getElementById("itemCount_" + channelList[k]).innerHTML = "";  // 메뉴상의 신규아이템 카운터 (0)    
     }
     for (grp =1; grp < 100; grp++) {
      if (document.getElementById("rssGrp"+grp+"Area") != null && document.getElementById("rssGrp"+grp+"Area").innerHTML
        && document.getElementById("set_rssGrp"+grp))
{
       document.getElementById("set_rssGrp"+grp).innerHTML ="";// (0)
      }
     }
    } else {
     window.location.reload();
    }
   }
}

HttpClient를 이용해서 해당 url을 호출한뒤 상태를 확인해보는 sample입니다.
이것을 가지고 해당 url이 오류여부 확인 가능하다.

 public void test_001 () {
//  String rssurl = "
http://crizin.net/rss";
  String rssurl = "
http://neouser.tistory.com/rss";
  HttpClient client = new HttpClient();
  GetMethod getMethod = new GetMethod(rssurl);

  try {
   int status = client.executeMethod(getMethod);  
   String message = getMethod.getStatusText();
   
System.out.println("status : "+status);  
System.out.println("001 : "+getMethod.getResponseBodyAsString());  
System.out.println("002 : "+getMethod.getStatusLine());  
System.out.println("003 : "+getMethod.getName());
System.out.println("003 : "+getMethod.getResponseHeader("Location"));
//System.out.println(new String (request));  
  } catch (HttpException e) {
   e.printStackTrace();
  } catch (IOException e) {
   e.printStackTrace();
  }
 
 }



진화라는것은 불필요한것을 줄이고 장점인 부분을 더욱 돋보이게 해주는것이라고 개인적으로 생각한다.
이러한 나의 생각으로 본다면 Ruby on Rails 은 WEB의 진화의 과정에서 탄생한
아름다운 작품으로 봐야할것 같다.

script/generate 라는 이 마법과도 같은 단순한 명령어가 만들어 내는 web프로그램의 세계는
생각보다 매력적으로 다가온다고 볼 수 있다.

과거 나는 Ruby on Rails의 Cookbook만을 가지고 5개의 step을 밟아 보았다.
당시 아무런 사전적 지식이 없었기 때문에 Ruby on Rails의 단순히 구동되는 모습을 보고 "해봤다!" 라는
개인적인 작은 목적에 다다른적이 있었다.
그 이후 쉽게 구할 수 있는 레퍼런서의 부족으로 Ruby on Rails의 진도를 잠시 중단했었다.
그리고 맞이한 바로 이책!!

솔찍히 이렇게 다양한 기능이 Ruby on Rails에 숨겨져 있다는 사실에 놀라웠다.
아니 진작 책을 봤더라면 Cookbook의 레벨에서 바로 한단계 진일보 했었을 꺼라는 생각이 불쑥 불쑥 들었다고
봐도 과언이 아니다.
혹시 이 서평을 읽는 분들중에 나와같이 Cookbook만을 연마한 사용자라면 개인적으로
이책을 추천해 보고 싶다.

책은 CookBook에 없는 다양한것들을 보여주고 있다.
 - 엑티브 레코드의 속성과 기본 구성
 - 스캐폴딩이라는 새로운 접근과 DB들간의 접근
 - 뷰 확장하기를 통해 pulic 폴더 그리고 이미지 ,css들이 놓이는 위치설정
 - ..

 그 이상 참 많은것들이 담겨져 있다.
CookBook이 맞보기 레시피라면 책은 레시피가 만들어진 상세 메뉴얼 수준이라고 볼 수 있다.
수준이 이렇다 보니 얇은책! 많은 정보를 담고 있는게 사실이다.
TDD나 리스크 관리처럼 술술술 보여지지 않을 수도 있으나 루비를 이용한 빠른 개발을 해보고 싶은 분이라면
역시나 또한번 추천드리고 싶다.

책을 이용해서 운영툴을 만들 었다.
가용 간은 1달여..
사용할 수 있는 리소스는 나 혼자 뿐이였으며 나또한 다른 업무까지 병행하는 상황에서 운영툴 개발은
매우 어려운 난재가 아닐 수 없었다.
하지만 모두가 공감할 수준의 output은 생산이 되었고 나는 그 성공요인을  Ruby였기 때문에 가능했다고 본다.

Ruby on Rails이 만능이 아닐 수 있다.
하지만 운영툴과 같이 훌륭한 디자인이 피요하지 않는 서비스에서는 충분한 빛을 발휘한다고 본다.
물론 멀티 DB나, nil 처리 등과 같은 까칠한 풀어야할 숙재가 있긴 하지만
이또한 찾아내는데 큰 매력이 있는것 같다.

끝으로 아쉬운 부분이 있다면 정가 2만원.. 아~! 정말 IT서적은 비싼게 흠이다.

CookBook URL :
http://www.onlamp.com/pub/a/onlamp/2005/01/20/rails.html?page=1

shell 내부에서 외부명령을 실행시키고 해당 명령의 결과값을
파싱해서 내가원하는 데이터가 수집되었다면 새로운 수집 txt를 만들어 내는것 입니다.

#!/bin/bash

READLOCATION=/data2/test/neouser/work/
READDATA="testuser_id.txt testuser_id.txt"
#READDATA="neousertest.txt"

for readdata in $READDATA
do
        readcount=0
        devcount=0
        while read line
        do
                TESTINFO=`outcommand -n $line`
                if [ "$TESTINFO" == "" ]
                then
                        echo $line >> "not_"$readdata
                else
                        ID=`echo $TESTINFO | awk '{print $3}'`
                        NAME=`echo $TESTINFO | awk '{print $6}'`
                        echo $line $ID $NAME >>"ok_"$readdata
                fi

                let "readcount = $readcount + 1"
                let "devcount = $readcount % 100"

                if [ $devcount == 0 ]
                then
                        echo "read count $readdata $readcount"
                fi
        done < $readdata
done



매일같이 좁은 골방에서 7시간씩 혹은 9시간씩 일을 한다고 생각해보자.
그곳에서 일하는 사람들과는 사랑하는 사람보다 더 오랜동안 얼굴을 마주대하며
웃어도 웃는게 아니고 행복하게 표정지어도 행복이 아닌 그런곳이라고 사람들이 말을한다.
휴,..
얼마나 답답한가?

책은 이런 좁은공간 닫힌공간 나를 답답하게 만드는 공간 더불어 내 삶을 패닉의 길로 내몰고 있는
직장생활에 대해 어떻게 하면 알차게 보람차게 할 수 있는지를 개혁시켜주는 혁명서적
이라고 볼 수있다.

사실 이 책을 내가 언급하기 이전에 이미 많은 언론과 미디어에서 추천서적으로 꼽았다.
또한 기업과 단체에서  refresh 하기 위해 대량구입후 직원들에게 읽도록 하고 있다.
나역시 그런 대량살포의 빗속을 거닐다가 비를 맞은 격으로 책을 잡게 되었고 외 그토록 많은 사람들이
이책에 대해 떠들고 이책에서 이야기 하는데로 실행하려고 하는지 그 미스테리에 다가가게 되었다.

책은 유독성패기물더미로 지칭되는 3층 부서가 개조되어가는 과정을 그려내고 있다.
매우 현실적이면서 현재 내가 격고, 사회생활을 하는 모든 사람이 격고 있는 직장문화에 대해
매우 통찰력있게 변화의 과정을 그려내주고 있다.

남편과 사별한 한 여자(메리제인)가 아이 둘을 키우면서 사별전 발생한 병원비용에 값을 치뤄가살아간다.
대출도 있고, 책임질 아이도있고, 자신의 피곤한 직장에서 살아야 하는 모습은 실패를 열심히 맛보았다고 해도
과언이 아닌걸 같다. 이여자는 자신이 원한 실패를 하지는 않았다.
다만 외부로부터 다가오는 변화로 인해 자신이 안정을 취해야 하는곳 (가정)까지 위협받게 되는
외부적 실패자에 해당한다.

헌데 이 여자(메리제인) 한사람으로 인해 직장도 바뀌고 가정도 바뀌고 더불어 책의 말미에는
훌륭한 프로포즈도 다시 받게 된다.
한사람의 의식변화는 정말 대단한 효과를 몰고 왔기에 자식들은 엄마를 이해하는 훌률한 아이로 자라고
직장에서는 인정받는 엘리트로 다시 평가 받게 되고 그와 함께 일하는 동료들은 당신이라면 믿고 따를 수 있다라는
신용까지 얻어낸다.

삶의 실패자가 자신을 짖누르는 실패의 거적들을 하나 하나 씩 걷어내는것을 보고 있노라면
사실 펄떡이는 물고기처럼은 삶을 얼마나 적극적으로 살아가는 사람이 긍정의 변화를 이끌어 내는지를
엳볼 수 있다.

작은 분량이라고 우습게 보지 않았으면 좋겠다, 작은 분량이지만 책값이 9천원에 가깝다고 욕하지 마라.
책의 내용은 성경의 구절처럼 짧지만 그 임팩트는 강하고 9천원의 가치를 충분히 하고 있다.
   (아~ 물론 저의 경우는 책값이 비싸서 구매를 안하다 대량 살포의 비까지 맞게 된거랍니다.)

끝으로 책의 훌륭하고 맘에 드는것은 놀이 였다.
개인적으로 요즘 "재미이론" 이라는 이름을 붙인 삶을 살아보려고 하고 있기에 책에서 말하는 놀이를
추천해 본다.

플레이 톡이다.
1줄로 작성하는 블로그 과연 이것이 차세대 1인미디어가 가지는 가치가 될것인가?
아니면 미니홈피의 유행의 끝을 이어가는 서비스가 될것인가?
써보고 판단하자

http://playtalk.net/neouser/profile.aspx




스프링노트
이들의 실험은 언제까지 계속될까?
역시나 web의 진화의 한 단계로써 참다운  실험정신과 노트다운 면모를 가지고 있다.
스프링노트를 보노라면 블로그 보다는 정말 노트다운 모습이다.
공신의 필기력이 잘 되어있는 노트 그런 노트 말이다.

http://neouser.springnote.com/

XML-RPC의 이해 01

openAPI 2008. 1. 10. 21:33

XML-RPC를 이해해야만이 보다 수월하게
본 openAPI를 이용할 수 있습니다.
그래서 먼저  XML-RPC에 대해 선수학습을 수행하도록 하겠습니다.


XML-RPC란 무엇인가?
 > HTTP를 통한 간단하고 이식성 높은 원격 프로시져 호출 방법입니다.
XML-RPC는 Perl, Java, Python, C, C++, PHP 와 그 외 다른 많은 언어로 사용할 수 있으며 Unix, Windows, 그리고 Macintosh에서 실행할 수 있습니다.


XML-RPC는 어떻게 작동하는가?
 > 아래그림에서 보듯 XML-RPC는 외부로부터 우입받은 데이터를 XML로 제가공을 합니다.
내부적으로 가공한 XML은 리모트 HTTP서버에 자신이 생성한 XML정보를 전송합니다.
물론 수신측에서도 이에 상응하는 받을 준비를 해야겠죠.
이때 우리는 보내는 쪽을 client라고 설명을 하고 있고 받는쪽을 server라고 총칭합니다.

사용자 삽입 이미지
바로 위 시접에서 우리는 왼쪽에 있는 데이터를 전송하는 작업을 진행하면 되고 openAPI를 제공
하는 서버측에서는 이에상응하는 method 만들어 놓고 넘어올 데이터 맞이할 준비를 하고 있습니다.

우리가 만들어야 하는 모듈은 client모듈을 만들어야 하는 미션이 수행해야하는 과제인데요.
일반적으로 client모듈을 생성할때 XmlRpcClient 를 사용하게 됩니다.


아래는 KLDPwiki 에서 제공한 소스코드입니다.
http://wiki.kldp.org/wiki.php/DocbookSgml/XML-RPC-HOWTO#XMLRPC-HOWTO-INTRO


import java.util.Vector;
import java.util.Hashtable;
//import helma.xmlrpc.*;
import org.apache.xmlrpc.*;  // helma.xmlrpc.* -> org.apache.xmlrpc.* 로 변경, 2004.1.26, thkim86@하나포스.com

public class JavaClient {

    // The location of our server.
    // 아래의 서버프로그램을 로컬호스트에서 기동하는 경우에 테스트하기 위해서 url 변경
    // 변경자 : thkim86@하나포스.com, 2004.1.26
    private final static String server_url =
        "http://localhost:8080";
        //"http://xmlrpc-c.sourceforge.net/api/sample.php";


    public static void main (String [] args) {
        try {

            // Create an object to represent our server.
            XmlRpcClient server = new XmlRpcClient(server_url);

            // Build our parameter list.
            Vector params = new Vector();
            params.addElement(new Integer(5));
            params.addElement(new Integer(3));

            // Call the server, and get our result.
            Hashtable result =
                (Hashtable) server.execute("sample.sumAndDifference", params);
            int sum = ((Integer) result.get("sum")).intValue();
            int difference = ((Integer) result.get("difference")).intValue();

            // Print out our result.
            System.out.println("Sum: " + Integer.toString(sum) +
                               ", Difference: " +
                               Integer.toString(difference));

        } catch (XmlRpcException exception) {
            System.err.println("JavaClient: XML-RPC Fault #" +
                               Integer.toString(exception.code) + ": " +
                               exception.toString());
        } catch (Exception exception) {
            System.err.println("JavaClient: " + exception.toString());
        }
    }
}




 

- xmlrpc-2.0-plp.jar  (XML RPC 통신에 필요한 API)
- junit.jar (모든개발 프로젝트에 꼭 들어가는 유닛 테스터)
- log4j-1.2.8.jar (모든개발 프로젝트에 꼭 들어가는 로그 기록)
- commons-httpclient-2.0.jar  (Apache에서 제공한 httpclient)
- commons-logging-1.1.jar  (Apache에서 제공한 logger)
- commons-codec.jar (Apache에서 제공한 codec)

1 2 3 4 5 6 ··· 12 

글 보관함

카운터

Total : / Today : / Yesterday :
get rsstistory!