'분류 전체보기'에 해당되는 글 256건

  1. 2010.05.07 쿠키를 다루는 여러가지 방법
  2. 2010.04.28 콘솔의 한글이 깨질때
  3. 2010.04.15 hiberfil.sys 제거
  4. 2010.04.08 ORACLE 날짜 between / 날짜 구간에 대한 조회 1
  5. 2010.03.24 java File 다루기 / 용량만큼 파일 자르기 및 용량이하는 파일 덧붙이기
  6. 2010.03.23 이 글을 트위터로 보내기 / 요즘 보내기 1
  7. 2010.03.19 정규표현식 / <img , <a 를 변환해보자.
  8. 2010.03.19 사람들 이야기 : Good bye Jerome B.York 1
  9. 2010.03.17 오래기다렸다!! htmlUnit 2.7 1
  10. 2010.03.17 사람들 이야기 : 변화 적응기와 생산성과의 관계

 바보같이 보이겠지만 쿠키를 다루는 여러가지 방법이 있는 이유는
쿠키를 내가 받아서 다른 서버에 넘겨야 하는 이슈가 있기 때문입니다.
 CGI도 있겠고 JAVA도 있고 Apache도 있는데 여기서 각기 다른 원하는 형태와 버전의 이슈가 있습니다.


 

// httpClient2.x 에서 지원되는 방식
HttpClient client = new HttpClient();
PostMethod httppost = new PostMethod(POSTING_URL);
httppost.setRequestHeader("User-Agent", "Nozilla 9.9");
httppost.setRequestHeader("Content-Type", "application/x-www-form-urlencoded; charset=utf-8");
httppost.setRequestHeader("Cookie", msg.getSenderCookieString());


// httpClient2.x 에서 지원되는 방식
HttpState clientstate = new HttpState();
clientstate.addCookies(msg.getSenderCookieOrg());
clientstate.setCookiePolicy(CookiePolicy.COMPATIBILITY);
client.setState(clientstate);




// HttpClient 3.x 버전부터 지원되는 로직입니다. ymko
httppost.getParams().setParameter(HttpMethodParams.RETRY_HANDLER, new DefaultHttpMethodRetryHandler(3, false));
httppost.addRequestHeader("COOKIE", msg.getSenderCookie());



아울러 쿠키는 jdk 쿠키와 apache 쿠키가 다르다. 이에 대한 변환과정을 만들어 두는것도 좋다.



:set enc=UTF-8

putty를 통해 파일을 열었더니 깨진다면 환경변수 조작하는 방법도 있겠지만
간단하게 위와같은 방법으로 인코딩을 변경해서 확인할 수 있다.
별것 아니지만 역시나 매번 사용하지 않으면 잊어먹기 쉽상이라 적어놔 본다.

hiberfil.sys 제거

비스타 2010. 4. 15. 15:14

C:\Users\daum>powercfg -H OFF


hiberfil.sys 이 C:\에 대한 점유율이 생각보다 높아졌다.
혼자서 2G씩을 잡아먹는데 눈에 예쁘게 보일리 없다.
어차피 데스크탑!~ 사용을 하지 말자!

※ 참고로 본 파일은 절전모드를 위해 사용되는 파일입니다.


select name, id, regdt  from testTable where regdt  between to_date('2010030906','YYYYMMDDHH24') and to_date('2010033123','YYYYMMDDHH24') order by regdt  asc;


ORACLE에서 날짜 구간에 대한 조회를 할때 날릴 수 있는 QUERY 입니다.
여기에서 keypoint는 2010033123이 2010033124가 될 수 없다는 점 입니다.

지원기능 :  파일분할, 파일존재유무, 파일폴더 존재유무, 생성할 파일이 이미 존재 확인, 크기확인..

아래 예제는 객체 정보를 파일로 생성하는데 있어서 2M의 MAX 크기를 기본으로 설정하고
2M가 넘으면 새로운 파일을 만들어내는 로직이다.

다소 위험한 부분들도 있지만 (특히 NumberFormatException) 이런 취약부분은 코드가 길어지는
관계로 생략하고, 파일이 생성되야 하는 폴더에 생성이되고 증가되면서 임계치를 넘었는지 봐서
다음번 파일 생성시에는 이름을 달리해서 생성시키는 방법을 가지고 있다.

이런로직의 핵심은    OutputStream os = new FileOutputStream(neoPathFile, addFile);  로써
addFile true 라면 덧붙이기가 가능하고 false면 새롭게 생성하게 된다.
이미 단위메소드 활용법에 대해서는 알고 있을테지만 종합선물셋트 형태에서는 고민할꺼리가 많아지는터라 이렇게 정리를 해본다.

 public static String  makeFileOneContents(String fileName,  String serviceRoot, XMLHeaderBean xmlUserInfo, List<XMLCategoryBean>  xmlCategory,  XMLPostBean postBean,  NeoBean neoBean) {
  boolean makeFileBoolean = false;
  boolean addFile = false;
  String neoFileName = fileName;
  
  String neouserFileRoot = serviceRoot+File.separator+neoBean.getName()();
  long maxFileSize = 2 * 1024 * 1024; // 2M
  long nowFileSize = 0; // 2M

  File fileDirRoot = new File (neouserFileRoot);

  if (fileDirRoot.isDirectory()) {  // 디렉토리 존재하는가? / 네 존재합니다.
   File[] files = fileDirRoot.listFiles();
   
   for (File fileDir : files) {
          String fileNames = fileDir.getName();
          long file_size = fileDir.length();

          if (fileNames.equals(neoFileName+".xml") && file_size >= maxFileSize) {
           int fileCount = Integer.parseInt(neoFileName.substring(neoFileName.lastIndexOf("_")+1, neoFileName.length())) + 1;
           neoFileName = neoFileName.substring(0, neoFileName.lastIndexOf("_")) +"_"+fileCount;
          } else {
           nowFileSize = files.length;
           addFile = true;
          }
      }
  } else {
   fileDirRoot.mkdir();
  }
  
  String neoPath = serviceRoot+File.separator+neoBean.getName()()+File.separator+neoFileName;
  neoPath = neoPath +".xml";  // 넘어올때 xml이라는 확장자 이름을 달고오지 않습니다.
    
  File neoPathFile = new File(neoPath);
  XMLBean xmlBean = new XMLBean();

  BufferedReader in = null; 
  BufferedWriter out = null;
  try {
   OutputStream os = new FileOutputStream(neoPathFile, addFile);  //addFile의 옵션에 따라 파일을 덧 추가하거나 분할한다. (true: 추가 / false : 분할) 
   out = new BufferedWriter (new OutputStreamWriter(os, "UTF-8"));
   
   // XML을 만들때 setting + category 를 1개의 Set으로 간주해서 우선 파일을 생성합니다.
   // 그리고 postAL 의 경우는 attach된 파일이 있을경우를 대비 1개씩 추가로 삽입합니다.
   String readLine;
   String readSetting = xmlUserInfo.getXml().toString();
   StringBuffer sbCate = new StringBuffer();
   for (XMLCategoryBean categoryBean: xmlCategory) {
    sbCate.append(categoryBean.getXml());   
   }
   readSetting = readSetting+sbCate.toString(); // setting + category
   
   if (!addFile) {  // 새로만든 파일은 해더와 카테고리 정보를 넣습니다. 
    out.write(xmlBean.getHeader());
    in = new BufferedReader (new InputStreamReader(new ByteArrayInputStream(readSetting.getBytes())));
    while ((readLine = in.readLine()) != null) {
     out.write(readLine);
     out.newLine();
    }
   }
      
   if (postBean != null) {
    nowFileSize  =+ postBean.getXml().toString().getBytes().length;
    in = new BufferedReader (new InputStreamReader(new ByteArrayInputStream(postBean.getXml().toString().getBytes())));
    while ((readLine = in.readLine()) != null) {
     out.write(readLine);
     out.newLine(); 
    }     
   }
 
   makeFileBoolean = true;
   
   if (nowFileSize >= maxFileSize) {  // 생성될 파일의 크기가 크다면 Footer 정보를 넣어줍니다.
    out.write(xmlBean.getFooter());
   }   
  }
  catch (MalformedURLException e) { e.printStackTrace(); }
  catch (IOException e) { e.printStackTrace(); }
  finally {
       try {
    in.close();
    out.close();
   } catch (IOException e) { e.printStackTrace(); }
  }  
  return neoFileName;
 }
}





http://twitter.com/home?status=이곳에UTF-8로 메세지를 작성해 넣습니다.
http://yozm.daum.net/home?m=이곳에UTF-8로 메세지를 작성해 넣습니다.



너무 단순해서 놀랬는가?
사실 나도 놀랬다.
무슨 openAPI같은것 사용하지 않아도 되고 .. 그냥 바로 쏜다.
별 기술이란! "인지적이고 편리한게 별 기술이다"

문득 enamu 님이 말씀하신 서비스는 개발한 사람을 닮는다는 말이 생각이난다.
요리사는 요리하듯, 건축가는 건축하듯, 그리고 보수적경영과 M&A나 하는 경영자는
고따우 마인드로 만들어진다.

그러고보면 트윗과 요즘의 저런 마인드 맘에 든다.


아참!
기업에서 트윗과 연동할때는 서비스끼리의 연동의 경우 OAuth 를 통한 연동이 방법이다.
짧게 생각하지 않았으면 좋겠다

content.replaceAll("(?i)<img[^>]*"+fileUrl+"[^>]*.?>", sb.toString());
content.replaceAll("(?i)<a[^>]*"+fileUrl+"[^>]*.?>[^>]*.?[^>]*.?</a>", sb.toString());



늘 그렇지만
난 먹기 편한 음식이 좋다.
코드를 찾을때도 마찬가지 인것 같다.
좀 정형화 된것이다 싶을때는 있는것 쓰는게 좋을것 같다.

위의 2개의 구문은 html안에 img, a 가 들어있을때 원하는 구문 형태로 변경하는것이다.
물론 본문안에 있는 fileUrl은 해당 파일 명에 해당한다.

어떤가? 한번 test 해보시기 바란다.
아참 test 방법은 html 코드를 EditPlus에 넣고 해보면 된다.
혹시나 몰라서 하는말인데.. 꼭 찾을때는 [Regular expression] 을 체크하고 찾기 바란다.

 



애플 직원이 죽었다.
열심히 일해서 이사라는 직함도 얻었다.
애플을 위해 노력했고 애플의 수많은 구성원중 조금 특별한 한 사람이였다.

2010년03월19일..
지금 www.apple.com에는 그의 죽음을 애도하는 이미지가 TOP페이지에 걸려져 있다.
글로벌 기업이 글로벌한 자신의 얼굴에 단 한사람의 동료를 떠나 보낸 것에 대한 애도의 뜻을
더하기 위해 그가 일평생 일군 회사에서 배풀어준 배려로 오늘 애플의 메인에 선것이다.

우리는 SW를 만들기 이전에 사람이다.
기계가 뭔가 다 할것 같지만 결국 사람이 만들어 놓은 메크로에 지나지 않는다.
애플이 아이폰을 만들고 그렇게 글로벌 시장에서 약진하더라도
그의 성장 이면에는 소중한 사람이 있었다.

문득 이렇게 인간적인 이들의 모습을 보려니 숙연해 진다.
사람을 귀중하게 생각하는 그들의 모습.
어쩌면 애플의 그토록 사용성 좋은 인터페이스는 마음가짐부터가
"사람을 향해 있어서" 였지 않았을까?





사실 더이상 개발이 안되는줄 알았다.
UX의 비중높은 WEB환경의 변화와 ActiveX가 결코 htmlUnit을 호락호락하게
놔둘것 같지 않았기 때문이다.
그런데 2010년02월09일 전격적으로 발표가 났다!!

"javaScript 지원 Native ActiveX 지원"

정말 수고 많았다. 너의 자랑스런 탄생을 기반삼아 이제 새로운 WEB을 보일때가 된것 같구나!
웃샤!!
버닝이다.


변화,  혁신, 자기개발.. 이  수없는 단어들이 2008년을 강타했던게 생각이 난다.
그땐는 아침형 인간이 아니면 뒤로 물러나는것 같은 느낌까지 들었는데 어쩌면 그또한
지속 가능할때만 가치있는 일이지 그렇지 않으면 엉뚱한 희생만 하는 수가 생기는것 같다.

더불어 변화 적응기에는 생산성이 떨어진다는 상관관계!
무척이나 마음에 든다.
지켜보는 입장에서는 그시간을 격려해주고 다독거려줘야 한다는 말을 보며
새삼 나는 왜 저런 반짝! 이는 생각을 하지 못할까? 저런 견적을 내지 못할까? 하는 아쉬움도 든다.
1 2 3 4 5 6 7 8 ··· 26 

글 보관함

카운터

Total : / Today : / Yesterday :
get rsstistory!