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

  1. 2011.02.21 폭설이 내리면...
  2. 2011.02.18 Apache Tomcat User Guide - 3.2) Installation
  3. 2011.02.18 Apache Tomcat User Guide - 3.1) Introduction
  4. 2011.02.18 Apache Tomcat User Guide - 3) First webapp
  5. 2011.02.18 Apache Tomcat User Guide - 2) Setup
  6. 2011.02.15 NetBeans 를 실행시켰는데 아무것도 없다.
  7. 2011.02.15 시간 기록
  8. 2011.02.11 HSQLDB
  9. 2011.01.31 꿈을 밀고 나가는 힘은 이성이 아니라 희망이며, 두뇌가 아니라 심장이다.
  10. 2011.01.27 시그널 처리 테스트 코드 작성
  11. 2011.01.25 2011년 고교야구 주말리그
  12. 2011.01.25 Java 에서 시그널 처리하기(Windows)
  13. 2011.01.23 [The NetBeans E-commerce Tutorial] 5. Preparing the Page Views and Controller Servlet
  14. 2011.01.22 오리옥스
  15. 2011.01.20 JUnit TestSuite 사용하기
  16. 2011.01.15 Rostropovich
  17. 2011.01.11 구글 주소록에 CSV 데이터 넣기
  18. 2011.01.01 [IBM dWs] Java SE 6, Ecipse, Ant 를 이용한 간단한 웹 서비스
  19. 2010.12.24 인터넷 속도가 느려지거나 인터넷 전화가 끊기면... 1
  20. 2010.12.23 Apache Tomcat User Guide - 1) Introduction
  21. 2010.12.20 Short-circuit 확인 테스트 코드
  22. 2010.12.20 서울시 버스운행 정보
  23. 2010.12.13 편리한 UI - GMail
  24. 2010.12.13 MCI
  25. 2010.12.10 BigDecimal - 100 과 100.00
  26. 2010.12.09 문제의 원인을 되짚어 보자
  27. 2010.11.22 청송집
  28. 2010.11.18 SVN 주석 규칙
  29. 2010.11.18 불친절한 능수화
  30. 2010.11.17 ORA-00990

폭설이 내리면...

눈이 많이 오면 고립되는거는 당연할 거고.

비닐하우스도 무너지고,
재래시장 지붕도 무너졌다고 한다.

정답은 눈이 오면 빨리 치워야 한다는거.

Apache Tomcat User Guide - 3.2) Installation

JDK
Tomcat 7.0 은 J2SE 6.0 이 필요하다.

Tomcat

Ant

CVS

Apache Tomcat User Guide - 3.1) Introduction

이 문서는 아키텍쳐를 논의하거나 ... 개발 툴에 대한 것을 깊이있게 다루지는 않는다.
여기서는 텍스트 에디터, 커맨드 라인 툴을 사용한다.

http://java.sun.com/products/jsp/
JavaServer Pages (JSP) Specification, Version 2.0.
Specific information on scripting (Chapter 6)
tag extensions (Chapter 7)
packaging JSP pages (Appendix A)

http://java.sun.com/products/servlet/download.html
Servlet API Specification, Version 3.0.
web application directory structure and deployment file (Chapter 9)
methods of mapping request URIs to servlets (Chapter 11)
container managed security (Chapter 12)
syntax of the web.xml Web Application Deployment Descriptor (Chapter 13)

http://java.sun.com/j2ee/blueprints/
Sun BluePrints (tm) Design Guidelines for J2EE.
servlet and JSP design 장은 J2EE 환경이 아니더라도 유용한 내용을 담고 있다.


Apache Tomcat User Guide - 3) First webapp

Craig R. McClanahan 아저씨가 많이 도와줬다.

Apache Tomcat User Guide - 2) Setup

자세한 내용은 RUNNING.txt 을 볼 것.

Windows에서는 기본적으로 서비스로 설치된다.
보안을 위해서는 권한이 제한된 다른 계정으로 서비스를 실행시키는 것이 좋다.

[todo] Windows service HOW-TO
http://tomcat.apache.org/tomcat-7.0-doc/windows-service-howto.html

Unix 에서는 Tomcat 을 commons-daemon 프로젝트의 jsvc 를 이용해서 데몬으로 실행시킬 수 있다.
-user 옵션을 사용해서 데몬 초기화 후 사용자를 변경할 수 있다.
이러면 root 가 아니더라도 80 포트로 Tomcat 을 띄울 수 있다.

Commons-Daemon JAR 파일이 Tomcat 을 실행시키는 런타임 클래스패스에 있어야 한다.
bootstrap.jar manifest 파일 Class-Path 에 Commons-Daemon JAR 파일이 기술되어 있지만 ClassNotFoundException, NoClassDefFoundError 가 발생하면 jsvc 실행시 -cp 옵션에 명시해주면 된다.

NetBeans 를 실행시켰는데 아무것도 없다.

EJB3 을 Tomcat 에 배치시켜 보려고 오랜만에 NetBeans 를 실행시켰는데 아무것도 없다.
Window 가 아무것도 없다.
이런...

Projects, Files, Services Windows 를 하나씩 꺼내서 배치를 시켰다.
Console Output 도 하나 꺼내고.
대강 모양을 잡으니 비슷한 모양이 되었다.

그런데 문제는 Projects Window 에서 파일을 더블클릭하면 편집할 수 있게 열리는데 Projects Window 와 같은 곳에서 열린다.


난감하다.
검색해도 잘 나오지도 않고(이런 경우 어떤 검색어를 사용해야 하나).
새로 깔아야 하나?
메뉴를 이것저것 눌러봐도 없고...에이...포기할려고 할때쯤.

Window 메뉴 제일 아래에 Reset Windows 가 보인다.
찾던게 이놈이다.

- 넷빈즈 프로파일링 기능이 좋은데 언제 해보나.

시간 기록

다시 시간을 기록한다.
요즘 너무 시간을 허비하는거 같다.

할일이 너무 많아서 인지 조금씩 나는 시간에 뭘해야 할지 모르겠다.
아...뭔가 하고 싶은데...

HSQLDB

http://hsqldb.org/doc/2.0/guide/running-chapt.html

1. HyperSQL Database 에는 데이터를 저장하는 형태에 따라 세가지 종류의 catalog가 있다.
  • mem:
  • file:
  • res:

2. 데이터에 접근하는 방식은 두가지가 있다.

2.1. In-Process 방식
Connection c = DriverManager.getConnection("jdbc:hsqldb:file:/opt/db/testdb", "SA", "");
Connection c = DriverManager.getConnection("jdbc:hsqldb:mem:mymemdb", "SA", "");

2.2. Server Modes

2.2.1. HyperSQL HSQL Server
java -cp hsqldb.jar org.hsqldb.server.Server --database.0 file:mydb --dbname.0 xdb
java -cp hsqldb.jar org.hsqldb.server.Server --database.0 mem:mydb --dbname.0 xdb

2.2.2. HyperSQL HTTP Server
java -cp hsqldb.jar org.hsqldb.server.WebServer --database.0 file:mydb --dbname.0 xdb

2.2.3. HyperSQL HTTP Servlet

2.2.4. Database Server에 접근하는 방법
Connection c = DriverManager.getConnection("jdbc:hsqldb:hsql://localhost/xdb", "SA", "");
Connection c = DriverManager.getConnection("jdbc:hsqldb:http://localhost/xdb", "SA", "");

3. 데이터베이스 종료 시키기
반드시 SHUTDOWN 명령이나 쿼리를 실행시켜서 종료시킬 것.
아니면 연결 문자열에 속성을 지정한다.[각주:1]
Connection c = DriverManager.getConnection("jdbc:hsqldb:file:testdb;shutdown=true", "SA", "");

In-Process, file: 카타로그로 실행시킨 경우 shutdown으로 정상종료시키지 않으면 script 파일에 기록되지 않는다.

  1. 이 옵션은 아마 1.8부터 될거야. [본문으로]

꿈을 밀고 나가는 힘은 이성이 아니라 희망이며, 두뇌가 아니라 심장이다.

The power which keeps carrying on your dream is not a reason but hope, and also not a brain but a heart.

-도스토예프스키

시그널 처리 테스트 코드 작성

- 인터럽트 거는 부분은 어떻게 작성해야 하나?

- 테스트를 작성하면서 알아낸 사실
testRaise() 에서 시그널을 발생시켜도 바로 전달되지 않는다는 것을 알게 되었다.
sleep 을 하지 않으면 테스트가 실패할 경우도 생긴다.

테스트 작성의 순기능인가...ㅎㅎ

2011년 고교야구 주말리그

2011년 고교야구 주말리그 시행

 제65회 황금사자기 전국고교야구대회 겸 주말리그 왕중왕전  5.14~6.6(주말&공휴일)  목동야구장
 제66회 청룡기 전국고교야구선수권대회 겸 주말리그 왕중왕전  7.30~8.6(방학중)  목동야구장
 제45회 대통령배 전국고교야구대회  8.22~8.27  목동야구장

봉황기는?

현장에서 선수들을 수업에 들여보내야 할건데.
이 녀석들 수업들어가서 잠만 잘텐데...
어느 정도 혼선이 있겠지만 바람직한 방향이다.
그런데... 주말리그면 에이스급 2명만 돌리면 되지 않나?

Java 에서 시그널 처리하기(Windows)

Windows 환경에서는 제약사항이 있다.

> java SignalHandlerImpl
start
signal.name : TERM, signal.number : 15 //Signal.raise() 로 발생시킴.
Ctrl - C
signal.name : INT, signal.number : 2

end

- TERM, ABRT, ILL, SEGV 는 Windows 운영체제에서 발생되지 않는다.

- BREAK, FPE 도 사용할 수 없다.
Signal already used by VM: SIGBREAK

- QUIT 도 사용할 수 없다.
Unknown signal: QUIT

- MSDN signal

[The NetBeans E-commerce Tutorial] 5. Preparing the Page Views and Controller Servlet

[todo] 이거에 대한 화면 캡쳐를 보여주면 이해가 잘될거 같다.

http://netbeans.org/kb/docs/javaee/ecommerce/page-views-controller.html

- index.jsp affablebean.css

  • width와 height로 위치를 잡고 background로 공간이 보이게 한다.
  • margin: 20px auto
    위, 아래로 20px을 띄우고, auto로 좌, 우로도 그만큼 띄운다.
  • float: left
    좌, 우측 컬럼을 만든다.
  • clear: left
    footer에 넣어서 위쪽 border가 표시되게 한다.
    (이게 없으면 footer가 제대로 보이지 않는다.)

- div 로 페이지 구조 잡기
  1. Create the structure in HTML.
  2. Create a set of styles to define the appearance.
  3. View the page to examine the results of your changes.

- jsp 파일을 WEB-INF/view/ 로 옮김.

- Creating a Header and Footer
include를 해도 되지만 모든 페이지에서 반복해야 한다.
header와 footer를 지정하는 방법이 있다.
web.xml 에 추가
- Controller Servlet 작성

오리옥스

타임스퀘어 4층

즉석코너는 괜찮음.
디저트, 케잌 종류는 많음.

해산물, 회 형편 없음.
돌잔치가 있었는데 그 손님들이 다 먹은거 같은데 음식이 제대로 채워지지 않음.
그럴거면 음식그릇을 빼던지 하지, 말라 붙은 회가 그대로 있음.
(저렴한 웨딩 뷔페도 이렇게 방치하지 않음, 우띠 그냥 한일관이나 일식집으로 갈걸...)

음식 종류가 다양하지 않음.
주말 49000원(부가세 별도)을 감안하면 절대 다시 안감.

JUnit TestSuite 사용하기

@RunWith(Suite.class)
@SuiteClasses({Test1.class, Test2.class}) //TestCase, TestSuite 가 올 수 있다.
public class AllTests {

    public static Test suite() {
        TestSuite suite = new TestSuite("Test for tt");
        //$JUnit-BEGIN$

        //$JUnit-END$
        return suite;
    }
   
    //@BeforeClass, @AfterClass 는 가장 먼저, 늦게 실행된다.
    //@Before, @After 는 실행 안됨.
}
여기에서 데이터베이스 초기화 작업을 하자.

Rostropovich

구글 주소록에 CSV 데이터 넣기

우여곡절 끝에 구글 주소록을 사용하기로 하고 야후 주소록을 구글 주소록으로 가져왔다.
깔끔하게 잘 된다.

그 이후 팀공용 주소록에 추가된 연락처를 추가하려고 하는데 문제가 생겼다.
도움말에서 안내한 대로 CSV 파일을 만들어도 연락처가 제대로 들어가지 않는다.
(메일 주소는 잘 들어가는데, 전화번호는 안들어간다)

야후 주소록에는 CSV 파일을 예전에도 올렸으니깐 일단 먼저 야후로 올리고 구글에서 주소록을 가져와야겠다고 생각했다.
그러나... 야후 주소록 가져오기에서 CSV 파일을 올리는 옵션이 없어졌다.
윽... 늘어난 연락처가 100개나 되는데.

구글의 주소록 CSV 파일을 보니 헤더가 영문으로 되어 있다.
도움말에는 한글로 되어 있는데.
영문으로 바꾸니 잘된다.

- 순서
  1. 팀공용 주소록을 엑셀로 다운로드한다.
  2. 변경일자를 기준으로 필요한 데이터가 남기고 삭제한다.
  3. 첫번째 컬럼, 변경일, 필요없는 헤더를 지우고 영문 헤더를 보이게 한다.
  4. CSV 파일로 다시 저장한다.
  5. 구글 주소록에서 가져오기를 한다.
  6. 주소록을 병합한다.

[IBM dWs] Java SE 6, Ecipse, Ant 를 이용한 간단한 웹 서비스

- Eclipse와 Java SE 6을 사용하여 독립형 웹 서비스 개발하기, Part 1: 웹 서비스 서버 애플리케이션
Create stand-alone Web services applications with Eclipse and Java SE 6, Part 1: The Web service server application
- Eclipse와 Java SE 6을 사용하여 독립형 웹 서비스 개발하기: Part 2: 웹 서비스 클라이언트 응용프로그램
Create stand-alone Web services applications with Eclipse and Java SE 6: Part 2: The Web service client application

- Java SE 6, Ecipse, Ant 를 이용해서 간단한 웹서비스를 구현하고 모니터링한다.

Java SE 6 JDK 설치
Eclipse JRE 설정

서버
Ant 를 실행시키면 com.myfirst.wsServer.jaxws 가 생김 서버를 실행시키고, Internal Web Browser 로 http://localhost:8080/wsServerExample?wsdl 을 입력하면 WSDL 을 볼 수 있다.

Eclipse 의 Web Services Explorer 를 이용해서 웹서비스를 테스트해 볼 수 있다.
Java EE Perspective 에서 Run - Launch the Web Services Explorer 을 선택하고
http://localhost:8080/wsServerExample?wsdl 를 호출해서 getGreeting 을 직접 호출해 본다.

클라이언트
wsimport 태스크를 실행하면 WSDL 를 참조해서 JAX-WS 관련 스텁?이 생성된다.
  • wsgen은 서비스 엔드 포인트 클래스를 읽고서 웹 서비스 전개 및 호출에 필요한 모든 아티팩트를 생성한다.
  • wsimport는 WSDL을 읽고서 웹 서비스 개발, 전개 및 호출에 필요한 모든 아티팩트를 생성한다.

- Eclipse TCP/IP Monitor 를 이용해서 모니터링을 할 수 있다.

인터넷 속도가 느려지거나 인터넷 전화가 끊기면...

집에서 무선 공유기로 Wifi를 사용하는데 이미지 뜨는 속도가 눈에 띄게 느려졌다.
인터넷 속도가 느려졌네 하고 넘어 갔는데...

집사람이 아이팟 터치로 유투브에서 음악을 듣는데 너무 느리다고 한다.

인터넷 전화가 통화중에 자꾸 끊긴다.
우~띠
기사분이 오셨는데 인터넷 속도가 느리면 그럴 수 있다고 함.
그건 나도 알고...
노트북을 가져 오지 않아 인터넷 회선 속도를 점검하지 못했다.

저녁에 집에 가서 모뎀, 무선 공유기, 전화기 모뎀을 끄고 다시 켜니깐 인터넷 전화 끊김도 없어지고 인터넷 속도도 잘 나오네.

인터넷 속도가 느려지거나 인터넷 전화가 끊기면 열폭하기 전에 장비를 껐다 켜보자.

- ActiveX 없이 인터넷 속도 측정하기
- speed.io

Apache Tomcat User Guide - 1) Introduction

Context is a web application

$CATALINA_HOME, $CATALINA_BASE

톰캣 시작시 설정을 읽어들이므로 설정 파일을 수정하면 재시작이 필요함.

3, 4 버전대 server.xml 과 차이가 많이 난다.

Short-circuit 확인 테스트 코드


서울시 버스운행 정보

편리한 UI - GMail

- 페이징 처리가 되어 있어서 페이지가 많은 경우 모든 페이지를 일일이 열어서 선택을 하고 작업을 해야 한다.
모든 대화 선택이라는 기능이 있다.

- 어떤 기능을 이용하면서 다른 기능의 새로운 카테고리가 필요할때 화면 이동없이 바로 처리가 가능하게 해준다.
필터를 만들면서 새 라벨을 만들기 위해 다른 페이지로 이동할 필요가 없다.

- 필터를 만들면서 제대로 적용되었는지 검사를 해볼 수 있다.

MCI

Multi Channel Integration

다양한 외부 채널 통합
다양한 문서, 프로토콜, 미들웨어를 연계

서로 다른 표준간 문서를 맵핑하여 전환 제공
XML, Text 에 의한 전문을 처리하여 외부 시스템과 IF 통합

BigDecimal - 100 과 100.00

합이 100인지 비교하는 코드가 있다.
합이 100.00인데 예외가 발생한다. 테스트케이스를 작성해 본다.
BigDecimal#equals() 는 scale을 비교한다.

데이터베이스에서 데이터를 가져와서 비교할때 primitive type으로 비교하는게 좋을거 같다.

문제의 원인을 되짚어 보자

어떤 요구사항이 들어오면 그것에 맞춰 구현을 해주려고 하기 보다 왜 그런 요구사항이 들어오게 되었는지 부터해서 처음부터 다시 생각해 보자.

천천히 생각해 보자.
이걸 꼭 해야 하는가.
왜 해야 하지?
요구한 대로 말고 다른 곳을 변경해서 처리할 수는 없나?
다른 더 좋은 방법은 없는가.

원칙은 뭐지?
우리는 솔루션인데 마구 변경해야 하나?

서로 협의된 내용인가. 상대방만의 생각인가.
서로 같은 언어로 이야기하고 있는가.

청송집

민물장어 1인분 18000
양념구이로 조리되어서 나온다.
개인적으로는 소금구이를 더 좋아하는데.
뼈튀김, 쓸개주 이런거는 없음(달라고 하면 주는지...)
1인분에 200g이라고 하는데 그거보다는 좀 더 나간다고 친절한 사장님이 그러시네.
백김치, 더덕, 생강편과 싸서 먹으면 맛있다고 함.

식사에 나오는 재첩국이 좋다. 명란이 여기 나오나?

장어 내장 묵, 장뇌삼, 차가운 물x

언제 sk쪽으로 옮긴건지...




옆에 양산도집도 있음.




SVN 주석 규칙

- 주석은 반드시 달아야 한다.

- 관련 티켓이 있으면 적어둔다(#ticket_no)

- 글머리를 이용한다.
  • [Branch] 새로운 브랜치를 시작하는 경우
  • [Merge] 병합하는 경우, 어디와 어디를 병합했는지도 적는다.
    예) [Merge] trunk를 B01 branch에 병합, B01 branch를 trunk에 병합
  • [Tag]
    예) [Tag] 운영계에 반영


불친절한 능수화

고객사 근처
이 식당은 내가 갈때마다 홀에 주문받는 사람이 없다.
사장님으로 보이는 분이 이리저리 뛰어다니며 주문을 받는데 반말 비스무리. 불쾌하다.
점심시간에만 사람을 더 쓰시지.

음식은 나름대로 괜찮다.
너무 늦게 나와 탈이지.


ORA-00990

조회는 되는데 업데이트가 안된다.
권한도 있는데 그러네.

명령의 4 행에서 시작하는 중 오류 발생:
UPDATE TB_CODE SET code_nm = '스캔파일' WHERE code='016'
오류 보고:
SQL 오류: ORA-00990: 권한이 부적합합니다
00990. 00000 -  "missing or invalid privilege"
*Cause:   
*Action:

데이터베이스를 관리하는 프로그램에서 툴에서는 업데이트가 안되게 할 수 있단다.
관리자에게 쿼리 전달해서 진행.

- 2020-03 
명령의 183 행에서 시작하는 중 오류 발생 -
ALTER TABLE TAB001
 ADD CONSTRAINT TAB001_PK PRIMARY KEY ( PK1,PK2 )
 USING INDEX TAB001_PK
오류 보고 -
ORA-00990: * Permission denied. ??? //여기 이상한 문자가 포함되었다. 
00990. 00000 -  "missing or invalid privilege"

DBSAFER에서 명령어차단