오늘도 삽질삽질을 하다가 드디어-_-;
저도 테스트라는 것을 하게 되었습니다.

우선 Junit4를 스프링에서 하기 위해서는 spring-framework-2.5.1.zip파일에서 lib/junit 폴더에 있는 junit-4.4.jar파일을 lib에 추가합니다.
참고로 이클립스에서 있는 놈은 4.3인데 최신버전을 좋아하는 저로썬 그냥 4.4를 /WEB-INF/lib에 추가해서 써요. 이거 이렇게 추가안하고 이클립스에서 제공하는 junit을 사용하면 뭐 이상한 워닝이 떠요-_-;
원래 기존에는 프로젝트의 properties에 Java Build Path에서 Libraries에서 Add Library에서 junit을 추가하는 식으로 했는데 이렇게 하면 워닝막 뜨던데-_-;

Classpath entry org.eclipse.jdt.junit.JUNIT_CONTAINER/4 will not be exported or published. Runtime ClassNotFoundExceptions may result. 

이런거 ^^ 아마 무슨 실행할 때에 클래스가 없다고 뜰 것 같다고 말하는 것 같아요-_-;
저렇게 하지말고 그냥 lib에다가 처박아넣으니 그냥 워닝도 안 뜨더라구요.

뭐어쨌든 테스트클래스를 만들어봅시다.

Project에다가 대고 New -> Source Folder 를 클릭해서 test라는 소스폴더를 만듭시다.
그리고 원하는 테스트를 만들고 싶은 클래스에 대고 오른쪽마우스를 클릭하고
New -> Other -> JUnit Test Case선택
맨위에 source folder만 프로젝트명/src를 /test로 바꿔주고 넥스트를 클릭합시다.
원하는 메소드를 선택할 수 있는데 원하는 메소드를 선택합시다.
그럼 이렇게 작성이 되네요.
[code]
@Test
 public void testUserDeptSearch() {
  fail("Not yet implemented");
 }
[/code]
코드를 작성해봅시다.
[code]
package com.mudchobo.searchbatch.service;

import static org.junit.Assert.assertTrue;

import java.util.List;

import org.junit.Test;
import org.junit.runner.RunWith;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.test.context.ContextConfiguration;
import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;
import org.springframework.test.context.transaction.TransactionConfiguration;
import org.springframework.transaction.annotation.Transactional;

import com.mudchobo.searchbatch.dao.UsersDao;
import com.mudchobo.searchbatch.domain.Users;

@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration(locations = {
  "file:WebContent/WEB-INF/applicationContext.xml",
  "file:WebContent/WEB-INF/applicationContext-ibatis.xml" })
@TransactionConfiguration(transactionManager = "transactionManager",
       defaultRollback = true)
@Transactional
public class UsersManagerImplTest {

 @Autowired
 private UsersDao usersDao;
 
 @Test
 public void testUserDeptSearch() {
  System.out.println("UserDeptSearch");
  String dept = "김치";
  List<Users> usersList = usersDao.searchUsersDept(dept);
  Users users = usersList.get(0);
  System.out.println(users.getDept());
  assertTrue(users.getDept() != null);
 }
}
[/code]
저렇게 RunWith를 사용하면 되는 듯.
그리고 applicationContext파일은 여러개 일 때에는 저렇게 설정하면 돼요.
여기서 또 주의할 점은!
applicationContext.xml파일에 properties파일, sqlMapConfig.xml파일 같은 것을 표시할 때
보통 /WEB-INF/~~ 경로에다가 두시는 경우가 많은데요.
저기다가 두고,
[code]
<bean id="propertyConfigurer"
class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer"
  p:location="WEB-INF/jdbc.properties" />
[/code]
이렇게 작성해버리면 이 JUnit4는 저 jdbc.properties파일을 못찾습니다.
class path resource [WEB-INF/jdbc.properties] cannot be opened because it does not exist
이딴식으로 뜨는데요.
그래서 저런 파일들은 classpath인 classes폴더 아래에다가 두면 됩니다.
그냥 src폴더에 package하나 만들어서 설정파일은 다 때려박으세요-_-;
jdbc.properties, SqlMapConfig.xml파일 같은 것은(즉 applicationContext.xml파일에 써진 파일경로 같은거) classes경로 아래에 두도록 합시다. 그런다음에 파일경로 적는 부분에다가는
classpath:<package명>/SqlMapConfig.xml 이렇게 쓰면 돼요^^
그러면 JUnit도 잘 찾아요 ^^

실행할 때는 테스트자바파일에 대고 오른쪽버튼 누르면 JUnit Test가 나와요~

 
Posted by 머드초보
,
 
이 큐브리드는 설치후기라고 쓰는게 맞을 듯 해요-_-;

그냥 국산DBMS가 뭐가 있을까 라는 생각에 검색을 해봤습니다. 알티베이스는 JCO가서 알게 된거라 다른 것도 뭔가 있을 듯해서 찾아봤습니다. 그랬더니 큐브리드라는 것이 나오더군요. 한번 설치를 해볼까? 라는 생각에 설치를 시도했습니다.
이럴수가-_-; 그냥 인스톨하니 SERVER랑 CLIENT가 다 설치되고, 알아서 작동도 되는군요.
오른쪽 아래에 tray아이콘을 생성해서 서버를 start하거나 stop할 수 있게 해놨구요.

큐브리드 매니저라는 것을 제공하는데 처음 비밀번호는 admin, admin인 것 같습니다.
그리고 처음에 설치할 때 sample을 설치할 것인지를 묻는데 이것을 설치하면 subway라는 데이터베이스를 생성하는 것 같습니다.

매니저를 통해서 접속을 해보면, demodb랑 subway 2개의 db가 있는 것을 볼 수 있습니다.
subway를 클릭하면 dba라는 계정으로 권한이 있는 듯 한데, 처음에 비밀번호는 없습니다.
그냥 dba 하고 비밀번호 비어두고 로그인하면 로그인이 됩니다.
dba 비밀번호 바꿔주고 ^^ db별로 start를 시킬 수 있는 듯 합니다. 데이터베이스서버를 가동해봅시다.
bus, gate, line, running, station, transit 등의 테이블이 있네요.

우선 설치면에서는 MySQL이나 Altibase보단 훨씬 쉽네요-_-; 다음신공으로 DB가 설치가 되다니-_-;
jdbc도 CUBRID\Server\java\jspserver.jar 파일이 JDBC드라이버 같네요.
JDBC도 당연히 되는 듯 합니다.

저는 DBMS는 Oracle, MySQL, MSSQL, DB2 뭐 그외에는 별로 안쓰는줄 알았는데 국산 DBMS도 있는 줄 처음 알았어요 ^^ 앞으로도 많은 발전이 있었으면 하네요.

PS. 아 그리고 이 큐브리드가 보니까 NHN에 납품하는 것 같던데 맞나요?--; 네이버가 이것을 쓰는건가-_-;
 
Posted by 머드초보
,
 

저번달에 JCO놀러갔다가 알티베이스라는 국산DBMS를 알게 되었습니다. 그래서 한번 사용해볼까 라는 생각을 가지고 있었는데 시간이 없어서 그냥 있다가 갑자기 생각나서 설치를 해봤습니다.

Windows용은 설치가 완전 쉽습니다-_-; installer를 제공해서 걍 설치를 하면 알아서 환경변수도 등록해주고, 알아서 다 해주네요. 나중에 Linux나 Unix용으로도 한번 해봐야겠습니다.

우선 altibase홈페이지에서 Windows용으로 설치파일을 받습니다. 회원가입을 해야합니다.
http://adc.altibase.com/
여기서 Product -> Package클릭 후 WINDOWS용으로 클릭하면 나옵니다.
32BIT이면 32BIT용으로 받고, 64BIT이면 B4BIT용으로 받아야합니다.
저는 이걸로 altibase-WIN_NT_5.0-32bit-4.3.9.75-release-VC6.exe

실행하면 설치화면이 나오고 다음신공으로 설치를 합니다. 설치가 완료되면 환경변수를 등록해야하는데
자동으로 환경변수를 등록하게 됩니다.
ALTIBASE_HOME이라는 환경변수를 등록하고 해당 BIN디렉토리를 PATH로 잡아주더군요.

라이센스를 받아야합니다.
홈페이지에서 Member -> Download Info를 클릭하면(http://adc.altibase.com/member/down_info.jsp)
자기가 뭘 다운받았는지 다 나옵니다. 오른쪽에 보시면 라이센스신청클릭해서 신청하면 됩니다.
여기서 Windows에서는 Mac Address를 입력 잘해야합니다.
잘못 입력했더니 Internal Error : Invalid Protocol이라면서 안되더군요.
참고로 ipconfig/all해서 나오는 것 중에 랜카드가 여러개 있으면 가장 위에 것을 입력해야하는 것 같습니다.
가장 위에 것을 입력했더니 되더군요 ^^

라이센스가 메일로 날아오는데 이 license라는 파일을 ALTIBASE_HOME/conf 디렉토리에 복사하면됩니다.
그다음 이렇게 하면 됩니다.


C:\Documents and Settings\Owner>isql -u sys -p manager -sysdba
-----------------------------------------------------------------
     Altibase Client Query utility.
     Release Version 4.3.9.75
     Copyright 2000, ALTIBASE Corporation or its subsidiaries.
     All Rights Reserved.
-----------------------------------------------------------------
ISQL_CONNECTION = TCP, SERVER = 127.0.0.1, PORT_NO = 20300
iSQL(sysdba)> startup process;
Trying connect to database server. Connected with database server.

TRANSITION TO PHASE : PROCESS
Command execute success.
iSQL(sysdba)> create database mydb initsize=10M noarchivelog;
DB Info (Page Size     = 32768)
        (Page Count    = 385)
        (Total DB Size = 12615680)
        (DB File Size  = 1073741824)
        Creating MMDB FILES     [SUCCESS]
        Creating Catalog Tables [SUCCESS]
        Creating DRDB FILES     [SUCCESS]
  [SM] Rebuilding Indices [Total Count:0] **** [SUCCESS]
DB Writing Completed. All Done.
Create success.
iSQL(sysdba)> shutdown abort;
Database server killed..
iSQL(sysdba)> startup service;
Trying connect to database server. Connected with database server.

TRANSITION TO PHASE : PROCESS

TRANSITION TO PHASE : CONTROL

TRANSITION TO PHASE : META
  [SM] Recovery Phase - 1 : Preparing Database
  [SM] Recovery Phase - 2 : Loading Database
                          : Dynamic Memory Version => Loading Type-2
  [SM] Recovery Phase - 3 : Skipping Recovery & Starting Threads...
                            Refining Disk Table
  [SM] Refine Memory Table : ...................................................
... [SUCCESS]
  [SM] Rebuilding Indices [Total Count:64] ****.................................
................................................................................
............... [SUCCESS]

TRANSITION TO PHASE : SERVICE
--- STARTUP Process SUCCESS ---
Command execute success.
iSQL(sysdba)> exit
C:\Documents and Settings\Owner>

근데 그냥 위처럼 안하고 clean이라고 쳐도 돼요-_-;
그리고 나중에 서버구동할 때에는 그냥 isql접속 안하고 server start 라고 치면 돼요.
종료할 때는 server stop이라고 치면 되구요 ^^
어쨌든 이제 됐는지 확인해봅시다.

이클립스(eclipse)에서 제공하는 Data Source Explorer를 이용해서 접속해봅시다.
우선 Altibase용 JDBC가 필요하겠죠? 이것도 ALTIBASE홈페이지에서 받도록 합시다.
Product -> Environment에 있습니다. http://adc.altibase.com/product/environment.jsp
다운로드받고 Data Source Explorer 설정을 해봅시다.

오른쪽 아래에 Data Source Explorer가 안보인다면 Windows -> Other -> Data Source Explorer 확인 ^^

Databases대고 오른쪽버튼을 누르고 New클릭
Generic JDBC Connection 클릭
Name은 대충 AltibaseTest라고 써놓고 Next
Select a driver from the drop-down에서 ...을 클릭해서 Add
Generic JDBC Driver선택, Add Jar/ZIP클릭 후 다운받은 Altibase.jar 선택
Driver Name은 Altibase Driver라고 바꿈.
아래부분에 Driver Class를 ...클릭해서 Altibase.jdbc.driver.AltibaseDriver 선택
방금 추가한 Altibase Driver를 선택
Database는 mydb, URL은 jdbc:Altibase://127.0.0.1:20300/mydb
User name은 sys
Password는 manager
Finish후에 AlitibaseTest오른쪽버튼 대고 Connect!
접속 되면 된겁니다 ^^ 아마도-_-;

이제 설치밖에 안해봤는데 사용자계정 추가하고, 뭐 이것저것 알아볼라면 또 삽질해야하네요 ^^
어쨌든 국산인데 이런 훌륭한 DBMS가 있는 줄 몰랐네요. 지켜봐야겠네요^^

 
Posted by 머드초보
,
 
어서 알송보다 더 좋은 AIR기반의 Desktop용 mp3플레이어가 나왔으면 좋겠어요!
AIR로 제작한다면 꽤나 멋진 플레이어가 나올 듯 한데 ^^

ADOBE사의 제품은 예전부터 참 좋아했었어요-_-;
Photoshop의 합성은 정말 충격적이었어요!
예전에 고등학교 친구녀석이 고등학교 때 소풍단체사진을 스캔을 떠서 친구 얼굴을 오려서 주유소습격사건 포스터에 합성했던 기억이 나요! 그 녀석 합성의 달인이였는데-_-;

그리고 Adobe Reader는 뷰어가 이렇게 이쁘게 보여질 수 있다는 것을 보여준 좋은 예였죠^^

게다가 인터넷 서핑하다가 안 볼 수가 없는 Flash!!! (사실 이건 Macromedia사꺼였지만^^)

그리고 깔끔한 제품의 로고들이 참 좋아요. 전혀 복잡해보이지 않는 로고! ^^


사용자 삽입 이미지

Fx만으로도 깔끔하면서도 멋진 로고를 연출해낸-_-; 나만 멋지게 보이는건가-_-;
어쨌든 좋아요 ^^

그런데 다른 것들은 대부분 Beta1, Beta2, Beta3, Release Candidate1, Release Candidate 2, 정식~ 이런순으로 가는데 이건뭐 Beta3에서 바로 출시해버리네요-_-;

이번에는 Desktop Application을 쉽게 제작할 수 있는 AIR도 포함되어 있어서 더욱 멋지네요.
웹 기술로 Desktop Application을 제작한다면 정말 손쉽게 웹에 관련된 것을 연동할 수 있고, 여러가지 장점들이 있겠죠 ^^ 하지만, 그에 비해서 단점도 좀 있는 듯 합니다. C/C++, JAVA보다 약간 제한적이겠죠. Action Script가 아무리 강력하다지만, 아직은 쟤네덜 보단 약한 것 같습니다. 그래서 ADOBE에서 Action Script 4를 낸다고 한 것을 열이아빠님 블로그에서 본 듯 하네요.

그리고 RIA시장에서는 MS가 가세를 했죠. SilverLights라는 놈을 내놨는데 이 놈은 정말 막강한 놈이라고 하네요. .NET 라이브러리를 서버단이 아닌 클라이언트단에서도 사용할 수 있게 하는.... ADOBE에게 빼앗긴 웹시장을 차지하려고 하는 움직임인 듯하네요.

예전에 MS에서 주최하는 실버라이트세미나를 갔었는데 아직 Flash보다는 약하지만, 점점 버전업을 하고 있는 듯 합니다. 샘플을 봤을 때에 참 놀라웠습니다. 게다가 WPF라고 하는 놈은 웹에서 사용할 수도 있는데 XBAP이라고 하더군요. 이놈은 3D가속까지 지원하는 미친놈이였습니다.

MS가 이번에 야후도 먹을라고 하고 웹시장을 예측하는 걸까요?-_-; 완전 다 먹으려고하네-_-;
어쨌든 이야기가 좀 샜습니다만, AIR로 개발된 유틸리티들이 많이 나왔으면 하네요 ^^
 
Posted by 머드초보
,
 
변신을 했습니다.
하지만........스킨이 바뀌지 않으니 마치 코딩을 해서 refactoring을 했는데 아무도 알아보지 못하는 것과 같아요!

하지만, 관리자 화면이 바뀌었어요! 우선 로그인 할 때 화면입니다^^
사용자 삽입 이미지

오.....이 화사한 로그인화면-_-; 저 텍스트큐브상자가 저에게 외치는군요! "로그인을 해줘!"

근데 업그레이드 도중 문제가 발생했습니다.
로그인을 한다음에 센터화면에 아무것도 안떠요 ㅠㅠ
사용자 삽입 이미지

고쳐줘요!!! 어떻게 고쳐야하지-_-;

어쨌든 이것저것 둘러본 결과.....뭐가 바뀐지 모르겠습니다.
좀 더 둘러봐야 할 듯 하네요.
확장팩으로 설치했는데 플러그인이 더 많이 늘었네요 ^^

플러그인 이것저것 둘러보는중 ^^

어쨌든 항상 업데이트하고 최고의 설치형블로그를 향해 달려가는 텍스트큐브 보기 좋습니다 ^^
 
Posted by 머드초보
,