걍 5초가 걸리는 작업들 10개를 ThreadPool 5개에 넣고, 10개의 작업이 끝날 때까지 기다리는 코드

import java.util.concurrent.ExecutorService;
import java.util.concurrent.Executors;
import java.util.concurrent.TimeUnit;

public class TestThread {

   private static ExecutorService indexLoadService = Executors
           .newFixedThreadPool(5);

   public static void main(String[] args) {
       for (int i = 1; i < 10; i++) {
           indexLoadService.execute(new TTest(i));
       }

       indexLoadService.shutdown();
       try {
            // 2초에 한번씩 check한다.
            // awaitTermination의 경우 작업이 종료되었으면 true를 그렇지 않고 timeout이 지났으면 false를 리턴한다.
           while(!indexLoadService.awaitTermination(2000, TimeUnit.MILLISECONDS)){
           }
       } catch (InterruptedException e) {
           // TODO Auto-generated catch block
           e.printStackTrace();
       }

       System.out.println("Done");
   }

   static class TTest implements Runnable {
       private int num;

       TTest(int num) {
           this.num = num;
       }

       public void run() {
           System.out.print(".");
           try {
               Thread.sleep(5000);
           } catch (InterruptedException e) {
               // TODO Auto-generated catch block
               e.printStackTrace();
           }
           System.out.println("finish " + num);
       }

   }
}

'programming > Java' 카테고리의 다른 글

Hibernate Quick Reference  (0) 2006.07.27
Java Puzzlers : 9. Tweedledum  (0) 2006.07.19
Javolution  (0) 2006.07.14
문제는 역시 간단...

x += i;

x = x + i;

와 같지 않다.

왜????

'programming > Java' 카테고리의 다른 글

concurrent 패키지를 이용 간단한 ThreadPool 돌리기  (3) 2006.07.24
Javolution  (0) 2006.07.14
Java Tuning White Paper  (0) 2006.07.13
요즘 점점 XML을 많이 사용해 가는 추세에 맞춰 java 진영에도 다수의 XML 관련 라이브러리들이 존재한다.

나 역시도 어떤 결과 값을 XML로 만들 필요가 생겼는데, 결과 Object를 알아서 XML로 만들어주면 얼마나 좋을까라는 생각에 관련 라이브러리들을 찾다가 아래와 같은 사이트를 발견했다.

XML data to Java classes 를 위한 라이브러리들에 대한 벤치마크를 한 사이트...
https://bindmark.dev.java.net/

눈에 띄는 두개의 라이브러리가 있으니,
JIBX와 Javolution

둘 다 간략하게 리뷰를 해 본 결과 실제 사용하는 사람 입장에서 좀 편한 것을 택하게 되었으니,
그 놈이 Javolution이었다.

Javolution은 단순히 XML관련 라이브러리만이 아니고, 기타 다른 여러 개의 라이브러리 묶음 중 XML관련 기능도 제공하는 것이었다.

이 넘을 이용해 잘 사용하고 있는데... 문제가 발생했다. 서버가 뻗는 --;;
여러 모로 원인을 찾다가... 아무래도 Javolution에 문제가 있는게 아닐까 하는 생각에 만든 사람한테 미친척 오늘 새벽에 메일을 보내봤다. thread dump뜬 내용과 간단한 상황설명과 관련 소스 조금...

그런데... 아침에 와보니 답변이 와 있었다.~~

답장 메일


한편으로 무지 반가웠지만 한편으로는 좀 원망스럽기도 했다. (그 간의 맘 고생을 생각하면...)

엉망으로 보낼 질문 메일의 원문은 공개하기 꺼려져 공개하지 않는다...

뭐... 위 메일대로 수정해서 테스트 중인데, 정말 해결될 지는 잘 모르겠지만...
잘 되길 바라며..

혹시 Javolution을 사용하고 있는 분 특히 CDATA 출력을 위해 CharacterData를 사용하시는 분 참고하시기 바랍니다.

이상~~ 


'programming > Java' 카테고리의 다른 글

Java Puzzlers : 9. Tweedledum  (0) 2006.07.19
Java Tuning White Paper  (0) 2006.07.13
RMI 연결 시 timeout이 안나는 문제  (0) 2006.07.07
돌아댕기다 이런 문서도 발견했네요...

Java Tuning White Paper

'programming > Java' 카테고리의 다른 글

Javolution  (0) 2006.07.14
RMI 연결 시 timeout이 안나는 문제  (0) 2006.07.07
linux 서버 app를 local jconsole에서 monitoring하기  (0) 2006.07.07
--;; 거의 3시간은 헤맨것 같다.

대환님의 도움으로 정말 황당하게 해결했다.
로컬에서는 RMI 서버가 없을 경우 RMI client가 연결을 시도할 때, timeout exception이 잘 나는데... 서버에서 내 컴으로 테스트를 하면, lookup하는 부분에서 먹통이 되어 버렸다.

이 부분 찾는건 역시 최고의 debug 방법인 stdout을 이용했다 --;;

알고 보니 원인은 windows xp에 설치된 방화벽!!!

왜 그런지 모르겠지만 방화벽에 대고 lookup을 하면 connection timeout exception이 발생하지 않았다.
혹시 아시는 분 알려주시면 ㄳ...

참고로... vm에 rmi 관련 timeout 시간을 다 짧게 주고 해도 동일했다.


<<서버에서 할 작업>>
local에서 띄울 땐 -Dcom.sun.management.jmxremote 이 옵션만 추가하고 jconsole를 띄우면 해결되지만 서버의 경우 몇 가지 옵션 설정이 더 필요하다.

-Dcom.sun.management.jmxremote.port=1818
이 옵션은 아마 빼게되면 rmi기본 port인 1099를 이용하겠지만, 내 경우는 내부적으로 사용하고 있어 다른 port 지정

-Dcom.sun.management.jmxremote.authenticate=false
-Dcom.sun.management.jmxremote.ssl=false
일단 언능 해 보기 위해 두가지 인증 절차 안거치게 설정

ant를 이용할 경우
           <jvmarg value="-Dcom.sun.management.jmxremote" />
           <jvmarg value="-Dcom.sun.management.jmxremote.port=1818" />           
           <jvmarg value="-Dcom.sun.management.jmxremote.authenticate=false" />
           <jvmarg value="-Dcom.sun.management.jmxremote.ssl=false" />

<<로컬에서 할 작업>>

jconsole 띄우고 서버 주소와 port 번호만 넣고 connect하면 성공



참고 url : http://java.sun.com/j2se/1.5.0/docs/guide/management/agent.html#no_security

'programming > Java' 카테고리의 다른 글

RMI 연결 시 timeout이 안나는 문제  (0) 2006.07.07
Java Puzzlers : 1. Oddity  (0) 2006.07.03
jstat - Java 가상 머신 통계 데이터 감시 툴  (0) 2006.06.30
아래 코드가 제대로 작동 할 것인가?

-- CODE start --
   public static boolean isOdd(int i){
       return i % 2 == 1;  
   }
-- CODE end --

조금 주의 깊게 생각해 보면 쉽게 알 수 있을지 모르겠지만 --''


이상 오늘 공부한 내용 끝~




출처 : Java Puzzlers
예전부터 많이 고민해 온 부분이다.

web이 발전하면 발전할 수록 사람들이 접할 수 있는 정보들은 많아지고... 몰라서 못하는게 아니고 어디 있는지 못찾아서 못하는 것이 되어 버리는 것 같다.

del.icio.us에서 특정 tag 북마크들을 구독하고,
bloglines에서 여러 블로그들을 구독하며,
gmail로 여러 사이트의 메일을 받아보고,
검색 엔진을 통해 여러 좋은 사이트들을 돌아보며 모아 놓은 자료들...

sql server에 관한 정보는 naver cafe에 모아놓고...
여러 프로그래밍 정보는 naver blog에 모아놓고,
북마크들은 del.icio.us에 모아 놓고...
볼만한 pdf나 소스들은 내 회사 컴에 모아놓고..

이제는 뭐가 어디 있는지 조차 헷갈릴 정도...
음...
gmail의 넉넉한 용량을 이용해 파일들을 메일로 보내 tagging해서 관리해 보기도 하고..
시도는 여러 가지로 많이 해 봤지만, 영 맘에 안든다.

이런 서비스를 만들어 보고 싶기도 하고, 좋은 서비스가 있으면 당장 사용하고 싶기도 하고...

어디서 본 좋은 내용, 파일, 웹 주소, 프로그램 소스코드, 이미지, 갑자기 생각난 아이디어...
이런 모든 것들을 한 곳에 모아두고 관리하고 싶은데...

뭐 좋은 방법이나 좋은 곳 없을까?

목차는 아래와 같다.
  * 개요
  * 설명
  * 가상 머신 식별자
  * 옵션
       - 일반적인 옵션
       - 출력 옵션
  * 예
  * 관련 항목

출력 header 들에 대한 설명도 같이 나와 있다.

출처 : http://pllab.kw.ac.kr/j2seapi/tooldocs/share/jstat.html#examples

lucene에 (YYYYmmDDHHMMSS) 형태로 저장된 컬럼에 대해 sort를 했는데, 결과가 정확히 소트가 되지 않는 문제가 있었다.

 

 

sort를 할 때는 여러 가지 형태로 가능한데.. 가장 간단한 형태인

- searcher.search(new TermQuery(new Term("dataname", "1")), new Sort("regdt");

 

 

이 경우 Sort객체 안에서 대상 컬럼을 소트하기 전 적절한 형태로 type casting을 하게 되는데, 아무 옵션이 없을 경우 lucene은 먼저 int 그 다음 float으로 그 다음 String으로 casting을 해 보게 된다.

 

위와 같이 YYYYmmDDHHMMSS 형태의 데이터는 두번째 float로 casting이 되어 버리면서 문제가 발생하게 된다.

 

Float.parseFloat("20051004130501")=2.00510045E13
Float.parseFloat("20051006102501")=2.00510066E13
Float.parseFloat("20051005102501")=2.00510045E13

 

그래서 정렬이 제대로 안되는 문제가 있다. 이 문제를 해결 하려면 아래와 같이 SortField를 생성하면서 type을 정해줘야 한다.

Sort sort = new Sort(new SortField("regdt", SortField.STRING, true));
searcher.search(new TermQuery(new Term("dataname", "1")), sort);

 

SortField.Auto라는 것이 있는데, 이 값이 default이고 그렇게 하면 역시 Float로 casting 되어 버리니 반드시 SortField.STRING으로 고정해줘야 한다.

 

아래는 위에 설명된 부분의 실제 lucene 소스 코드이다. (ver 2.0)

 

try {
       Integer.parseInt(termtext);
       ret = getInts(reader, field);
} catch (NumberFormatException nfe1) {
       try {
             Float.parseFloat(termtext);
             ret = getFloats(reader, field);
        } catch (NumberFormatException nfe2) {
             ret = getStringIndex(reader, field);
        }
}

 

** 참고로 String은 Int나 Float에 비해 성능이 떨어진다고 한다.

 

참고 사이트 : http://mail-archives.apache.org/mod_mbox/lucene-java-dev/200511.mbox/%3c729868946.1132944655882.JavaMail.jira@ajax.apache.org%3e

'programming > Java' 카테고리의 다른 글

jstat - Java 가상 머신 통계 데이터 감시 툴  (0) 2006.06.30
linux signal 처리하는 방법  (0) 2006.05.27
Java web app monitoring for JAMON  (0) 2006.05.16

Jamon 사용법

 

Jamon이란
The Java Application Monitor (JAMon) is a free, simple, high performance, thread safe, Java API that allows developers to easily monitor production applications

http://jamonapi.sourceforge.net

 


web app 모니터링을 위한 초간단 사용법
1. JAMon.jar를 Tomcat root/Common/lib에 넣는다
2. 모니터링을 원하는 web application web.xml에 아래의 filter를 추가한다.

 <filter>
    <filter-name>JAMonFilter</filter-name>
    <filter-class>com.jamonapi.JAMonFilter</filter-class>
   </filter>

   <filter-mapping>
    <filter-name>JAMonFilter</filter-name>
    <url-pattern>/*</url-pattern>
  </filter-mapping>

뭐 내용을 보면 알겠지만 url-pattern을 수정해서 원하는 요청만 모니터링할 수도 있겠지만..

3. JAMon.war를 web root에 복사하면 준비 끝
4. http://host:port/JAMon/JAMonAdmin.jsp 여기에 접속하면 아래와 같은 모니터링 결과가 나온다.

 

응용
기본적으로는 웹 요청시작부터 결과를 받은 시점까지의 시간이 계산되므로, 내부 로직들의 수행 시간을 구체적으로 알고 싶으면,
아래와 같은 코드를 추가하면 된다.
import com.jamonapi.*;
...
Monitor mon=MonitorFactory.start("myFirstMonitor");
...Code Being Timed...
mon.stop();

그러면 start안에 넘긴 parameter이름으로 monitoring 항목이 하나 더 생긴다.


* 주의 사항
JAMon webappr와 내 web app가 같은 JAMon.jar를 이용해야만 모니터링 결과를 JAMon webapp에서 확인할 수 있으므로,
내 web app에서 build path와 classpath에 tomcat/common/lib를 잡아줘야만 결과를 확인할 수 있다.
(첨에 내 web app에 별도의 jamon.jar를 import하고 테스트 했다가 결과가 안나와서 잠시 당황했었음 --;;)

 

 


 
 
 
위 그림에서 RMIQuery와 ToXml 이 부분이 코드상에 추가한 모니터링 결과 임
 
이상~

 

RMI Clinet를 만들어 Tomcat에서 돌리다가 아래와 같은 에러가 발생했다.

java.rmi.UnmarshallException: error unmarshalling arguments; nested exception is:
java.net.MalformedURLException: no protocol: Files/Apache.

RMI client와 Server 테스트는 잘 됐는데 왜 안될까
거의 3시간 삽질하다가.. 겨우 알았다 --;;


http://forum.java.sun.com/thread.jspa?threadID=367368&tstart=0
여기 보면 사람들이 달아 놓은 답변들이 있는데...

해결책
1. tomcat을 space를 포함하지 않는 경로에 설치한다.(JRE는 상관없을라나 --;;)
2. 문제가 되는 경로의 space를 %20으로 바꿔 아래와 같이 사용한다.
 * file://c:/program%20files/some/other/path


내 경우에는 내가 사용하는 특정 경로의 문제라기 보다 내부적으로 사용되는 경로에 문제가 있는것 같아서, 어디 한 군데를 찾아 바꿔서 될 일이 아닌거 같아 1번을 선택해야 할 듯
함 해보고 결과를 다시 적을 생각이다.

위 글에 보면 아래 링크에 버그 리포팅이 되었다고 한다.

http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=4496398
http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=4273532

이상



* 테스트 후기 *

역시 tomcat만 다시 깔았는데 잘 된다 --;;

삽질한거 생각하면 좀 열받지만... 결국 원인을 찾아 해결을 해서 기분은 좋다

<< class not found 에러 >>

MyRemote service = new MyRemoteImpl();
Naming.rebind("RemoteHello", service);

* 위와 같은 코드를 통해 RMI서버를 등록하는 과정에서 class not found 에러가 나는 경우가 있는데, 이 이유는 rmiregistry를 실행하는 쪽에 classpath에 rmi server 관련 class들의 classpath가 지정되어 있지 않은 경우 발생하므로 rmiregistry를 실행하기 전에 아래와 같이 classpath를 추가해 준 후에 실행하면 된다.

D:>set classpath CLASSPATH=D:\jdk1.5.0_06;D:\Source\RMIServerTest\bin


 

<< 원격서버 객체를 RMI 등록부에 등록할 때 사용하는 이름>>

Naming.rebind("Remote Hello", service);
위와 같은 코드를 통해 등록하게 되는데, 어떤 책에는 이름에 위와 같이 공백이 들어간 경우가 있는데 그러면 에러가 나므로 공백은 삭제

 

 

<< clinet쪽에 필요한 파일 >>

client쪽에는 rmic를 통해 생성된 xxx_Stub.class 파일과 RMI서비스에 사용되는 interface 두개가 필요하다.

rmic HelloImpl

 

여러 책이나 문서에 나온데로 꼴랑 위와 같이 명령을 내릴 경우 target이 되는 class의 classpath가 잡히지 않아서

 

"Class HelloImpl not found."

 

위와 같은 오류가 날 수 있다.

 

classpath 변경없이 아래와 같은 명령으로 한방에 해결할 수 있다.

 

rmic -classpath . -d . HelloImpl

 

 

* package 명이 있는 경우

class파일이 있는 디렉토리 root에서

 

rmic -classpath . -d . rmiTest.HelloImpl

 

위와같이 package 명까지 다 적어준다.

 

 

예전에 해 보고, 다시 하려다 기억이 안나서 --;;

 

정말 이건 거지 같다고 생각함... 찾기 너무 어려움

 

        DateFormat sdFormat = new SimpleDateFormat("yyyyMMdd");
       
        String birthdayStr ="19790806";
        Date birthDay = sdFormat.parse(birthdayStr);

 

'programming > Java' 카테고리의 다른 글

rmic로 Stub와 Skeleton 생성 시 오류  (0) 2006.05.11
서블릿에서 한글 처리  (2) 2006.03.21
[펌] JDBC Driver load 하는 3가지 방법  (3) 2006.01.10

출처 : http://www.jabook.org/jabook/jbjsp01/10000_40000_70000__10000_40000_70000.html

 


>더보기


SQL Server에서 tsql test framework입니다.

 

http://tsqlunit.sourceforge.net/index.html

 

일단 tdd에 대한 개념이 있어야 쉽게 사용 가능 할 것 같은데...

tdd에 대한 개념은 이곳(http://www.xper.org/wiki/xp/TestDrivenDevelopment?action=show&redirect=TDD)을 참고하세요

 

전 사용을 해 볼 상황이 안되는 관계로..

사용해 보신 분 후기 부탁드려요

MySQL에는 MS SQL 처럼 DB 설계에 사용할 수 있는 기본 도구가 제공되지 않는다.

최근에 추가된 MySQL Administator, MySQL Query Broswer에도 그런 기능은 없다.
opensource 진영에서 제공하는 툴 중에 DBDesigner 4라는 넘을 많이 사용한다고 하던데,
설치해 놓고 이것 저것 해 보는 데...

MySQL에 연결이 안되는 문제가 있었다.


그래서 http://www.fabforce.net/dbdesigner4/faq.php
여기서 찾아보니, mysql 4와의 연결에 문제가 있으면 odbc를 사용하라는 말을 발견하고 문제를 해결했음.

 

'programming > MySQL' 카테고리의 다른 글

java, mysql stored procedure 호출  (0) 2006.09.22
DECLARE @var1 int  (5) 2006.01.20
MySQL 5.0 Standards Compliance  (5) 2006.01.16

... 쩝... MySQL을 계속 다뤄왔던 사람들이라면 다 알고 있는 내용이겠지만...

 

MS-SQL을 계속 사용하다가 이번에 MySQL로 간단하게 뭘 좀 해 보려고 5.0을 설치해서 이것 저것 해 보고 있다.

 

MS-SQL을 사용하는 사람이라면 당연히 자주 사용하게 되는 저장 프로시저가 MySQL의 경우 5.0에 새로 추가가 됐다.

책을 하나 사서 보려 해도 5.0책은 없어서 걍 MySQL 도움말 보며 이것 저것 하다가...

 

제목에 있는 저 문장 때문에 20분 정도는 해맸다..

MS-SQL에서 저장 프로시저를 만들때, 일반적으로 쿼리 분석기에서 저장 프로시저의 내용들을 만들어 실행해 보고 문제가 없으면 CREATE PROCEDURE... 를 추가해서 저장 프로시저를 만든다.

 

MySQL에서도 비슷하게 하려고.. 다 만들었는데 온통 문법에러 투성 --;;

도움말에는 예제도 많지 않고...

 

회사에도 5.0은 쓰지 않아 특별히 물어볼 사람도 없고...

하나씩 찾다보니 맨 위의

이 문장에서 오류가 났다..

 

DECLARE @var1 int;

 

도대체 이해가 되질 않았다.

메뉴얼에도..

 

DECLARE var_name[,...] type [DEFAULT value]

이렇게 나와 있는데.. 도대체 틀린게 뭘까??

 

한참 해매다가 메뉴얼을 제대로 읽어보고 허탈했다..

 

DECLARE may be used only inside a BEGIN ... END compound statement and must be at its start, before any other statements.

 

반드시 BEGIN과 END 사이에 기술해야 한다 --;;

쩝... 저 한 줄만 미리 읽어봤더라도...

 

이번 일로 여러 가지를 느꼈다.

 

- 고정 관념을 깨자

- 메뉴얼이 아무리 영어라도 제대로 읽자

 

^^''

 

매일 매일 안하던거만 하니까 좀 막연하기도 하지만 재미있네요..

 

'programming > MySQL' 카테고리의 다른 글

java, mysql stored procedure 호출  (0) 2006.09.22
DBDesigner 4와 MySQL 4.1의 연결  (2) 2006.01.25
MySQL 5.0 Standards Compliance  (5) 2006.01.16

MySQL 5.0 Manual 중에

- What's New in MySQL 5.0

- MySQL 5.0 Standards Compliance

 

이 두 부분을 정리한 내용이다.

 

MySQL을 한 번도 접해보지 않아서 공부하는 샘치고 보면서 정리한 내용


>더보기


'programming > MySQL' 카테고리의 다른 글

java, mysql stored procedure 호출  (0) 2006.09.22
DBDesigner 4와 MySQL 4.1의 연결  (2) 2006.01.25
DECLARE @var1 int  (5) 2006.01.20

쩝...

정규식을 이용해서 html 소스에서 iframe들의 src 값들을 얻어오려고 Regexp Object를 가지고 이것 저것 해 봤으나... Regexp.match를 사용하면 match값이 하나밖에 안나와서 한참 해매다가...

 

현승님의 도움으로 String.scan 을 통해서 해야 한다는 것을 알았다 --;;

 

require 'net/http'

h = Net::HTTP.new('www.keb.co.kr', 80)
resp, data = h.get('/IBS/fx/rate/notice/current/current.jsp', nil )
puts data.scan(/<iframe.+src="(.+)".+<\/iframe>/)

위 예제는

외환은행 환율 보여주는 페이지 소스에서 iframe 테그 안의 src 값만을 가져오는 방법.

 

소스 정말 짧다 ^^''

 

출처 : http://struts.linuxstudy.pe.kr/


>더보기


'programming > Java' 카테고리의 다른 글

서블릿에서 한글 처리  (2) 2006.03.21
[펌] Microsoft JDBC 시작하기  (0) 2004.06.04
[펌] JAVA 성능 향상 팁.  (0) 2004.05.28

링크 : http://www.sqlservercentral.com/Scripts/

 

정말 많네요..

공부하기도 좋을 듯..~

주위에 물어보는 사람이 있어 찾아봤는데.. 간단하네요..
bool firstInstance;

Mutex mutex = new Mutex(false, "Local\\"+someUniqueName, out firstInstance);

// If firstInstance is now true, we're the first instance of the application;

// otherwise another instance is running.
 
출처 : http://www.yoda.arachsys.com/csharp/faq/#one.application.instance
 
위 방법을 이용한 예제 소스
출처 : http://www.codeproject.com/csharp/cssingprocess.asp
 

'programming > .net' 카테고리의 다른 글

[Updated]DotNet 관련 Toool 모음  (0) 2005.11.20
.Net 용 Mock Object 입니다.  (0) 2004.08.10

delicious에서 dotnet 관련 북마크를 구독 중인데, c#관련 커뮤니티 사이트에 닷넷 관련 툴들을 정리해 놓은 페이지 입니다.

 

정말 많군요..

 

http://www.csharpfriends.com/statics/tools.aspx

 

 

이클립스 c#용 plugIn도 있던데.. 혹시 써 보신 분 계신지???

제대로만 지원된다면 괜찮을 거 같은데...

 

 

보다 보니 더 좋은 사이트도 있네요 ^^''

http://sharptoolbox.com/Default.aspx

 

'programming > .net' 카테고리의 다른 글

csharp 프로그램이 하나만 실행되게 하는 방법  (0) 2005.12.02
.Net 용 Mock Object 입니다.  (0) 2004.08.10

휴...

 

오늘 이 문제 해결하는데 자그마치 5시간 걸렸다.

중간에 거치는 과정이 워낙 복잡해서 더 찾기 힘들었지만...

사실 정확히 이 문제를 해결하는데는 얼마 안걸렸지만.. 중간에 다른 것 다 확인하는데 오래 걸려서... --;;

 

결론부터 말하자면... 사용자 계정의 default language가 Thai로 되어 있어, 날짜 연산하는데 오류가 있었습니다.

 

날짜 연산을 하는 Stored procedure가 있는데, 이 sp를 호출할 때 default language가 English인 계정과 Thai인 계정의 결과가 다르게 나왔습니다.

 

내부 로직이 '2005-11-01' 이런 형식을 가정하고 스트링으로 앞의 형식을 만들어 CONVERT하는 부분도 있고, '2005-11-1' 이런 형식의 값과 대소비교하는 로직도 있고 그랬습니다.

 

그래서 결과도 틀리고 심지어 CONVERT하다가 오류가 나기도 했습니다.

 

부디 이런 문제로 고생하지는 분이 없기를...

 

 

'programming > MSSQL' 카테고리의 다른 글

유용한 SQL Server Script들...  (0) 2005.12.02
T-SQL로 레지스트리 조작하는 방법  (0) 2005.10.08
데이터베이스 관련 면접 질문...  (0) 2005.08.12

종종 이용하던 사이트인데... 왜 이 페이지는 못 봤을까요 --;;

이런식으로 날 잡아서 정리 좀 해 놔야겠다 맘만 먹고 있었는데... 쩝

 

딱 한장에 정리가 되어 있으니 인쇄해 놓고 옆에 붙여놓으면 딱이네요..

 

백업용으로 파일로도 첨부...

 

출처 : http://www.regexlib.com/CheatSheet.htm
         http://regexlib.com/CheatSheet.aspx

asp.net으로 변경하면서 주소가 변경되었네요.

'programming > c#' 카테고리의 다른 글

10가지 .Net용 무료 개발 툴  (0) 2005.11.03
C# coding guideline  (0) 2005.10.22
열거형 클래스 예제  (0) 2005.10.22

+ Recent posts