2008/10/19

USB 연결 방식 보조 모니터

0 comment(s)

리눅스를 사용하다 보면, 가끔씩 사용하기 위한 모니터가 있었으면 하는 생각을 하게 된다. 서버로 사용하는 장비에서는 전원까지 따로 공급해야 하는 '거창한' 모니터가 불필요한 경우가 많다. 어차피 대부분 원격 접속으로 해결할 수 있으니. 하지만 정말 가끔은 서버 장비를 가지고 놀다 보면 네트웍을 통해 문제를 해결할 수 없는 상황이 발생하는데 그렇다고 다른 곳에서 쓰던 모니터를 잠시 끌어다 연결하는 것도 귀찮은 일이다. 한때는 시리얼 포트에서 시그널을 받아 정보를 출력하던 방식도 사용했었고, 초창기 PDA 등에서 그런 일을 구현해 보았던 적도 있었는데 아무튼 80x25 텍스트 모드 정도가 가능했다. 사실 이 정도면 충분했다.

시간은 흘러흘러 USB 장비들이 점점 대중화되기 시작했고, 디지털 액자 등도 나오기 시작했는데, 그 것을 보조 모니터로 활용할 수 있으면 얼마나 좋을까 하는 생각을 해 보았었다.

최근에 그런 생각을 실현해 줄 것만 같은 제품을 발견했다:

USB 시그널로 화면을 출력하는 장치이다.

(제조사 홈페이지: http://www.nanovision.co.kr)

번거롭지 않게 그냥 USB 연결만 하면 된다. 전원도 USB를 통해 공급받는 방식이다. 그런데, 최상위 모델에서만 지원하는 터치스크린 기능이 조금 아쉽다(일반형 모델은 터치스크린 기능이 없다). 그리고, 역시나 아직은 윈도우만 지원한다. 맥용 드라이버는 만들고 있다고는 하는데 정작 가장 절실한 리눅스 지원이 안 된다고 하니... 기다렸다가 지원이 될 때 사도 늦지 않았을까 싶기도 하다.

2008/10/18

휴가를 마치고

0 comment(s)

길었던 휴가를 마치고 복귀하니 팀이 사라졌다. -0-;

2008/09/04

스트럿츠2 액션 개발 중 했던 바보짓 #1

0 comment(s)

이런 내용은 바로바로 올렸어야 하는데, 역시 시간이 지나니 기억이 희미해진다.

한 1주일 쯤 되었던가...

스트럿츠2의 액션을 안다면 - 사실은 굳이 스트럿츠가 아니라 해도 - 다음 코드를 보면 어디를 잘못했는지 바로 알 수 있을 것이다.


저런 식으로 만들고 나서 NullPointerException 을 보게 되었고, '머리를 안 쓰는' 테스트 기반으로 작업하고 있었기에 디버거를 돌려 보니 getRequired() 를 호출할 때 필요한 어떤 멤버 필드가 null 이었다.

auto wiring 인지 setter/getter injection 인지 뭔지 사용되는 용어는 모른다 해도, 얼핏 들은 스트럿츠2의 액션이 작동하는 방식을 주의깊게 생각해 보면 저 코드는 왜 잘못 만든 것인지 알 수 있을 것이다.

프레임워크에서 액션을 초기화할 때 setter 들을 호출하여 여러 가지 상태를 설정할 것이지만 그 순서는 예측할 수 없다. 즉, 위의 코드에서 경우에 따라 springRepositorynull 일 수도 있고 아닐 수도 있다. 우연히도 저 코드에서는 null 이 아니었지만 결국 다른 무엇인가 중요한 것은 null 이었다.

다행히 처음 코드를 작성하고 테스트케이스를 돌려 보던 시점에서 에러가 발생했었다. 만일 저 상태로 작동을 했었다면 오류를 모르고 넘어갔을 것이고 훗날 치명적인 문제가 생겼을 지도 모를 일이다.

결론은 setter 는 엄격하게 객체 상태를 초기화하는 역할만 담당하게 하고 getter 사용은 확실하게 setter 호출이 다 완료된 시점, 즉 execute() 등의 메소드에서 사용해야 한다는 점이다.

그래도 상당 기간 개발을 해 왔는데 아직도 이런 실수를 하다니 아직 가야 할 길이 멀었다.