발생일: 2009.12.09 문제: 친구 홍네 파트 연구회에서는 스윙으로 릴리즈 프로그램을 만들고 있다고 한다. 헌데, 아무래도 UI 가 문제인 모양이다. 다들 웹만 하다보니 스윙에는 그닥 익숙치 않아서인 듯 하다. 나도 스윙은 많이 해보지 못했지만 스윙의 UI 는 좀 답답하다. 게다가 간단한 프로그램만 만들려고 해도 영~ 촌스러운 게 모양이 잘 안나온다.ㅎㅎ 이클립스 플러그인으로 구현하면 좋을 듯 싶으나, 잘 모르겠다. -_-a 음... 그렇다면, 로컬 환경에서 브라우저와 자바 파일을 이용해 개발할 수 있는 방법이 있을까...? 생각해보자. 해결책: 로컬에서만 돌아갈 프로그램이라면 이런 방법도 괜찮겠다. 브라우저에서 UI를 구현하고, 브라우저에서 자바 파일을 실행(배치파일을 실행) 하게 하는 식으로 개..
발생일: 2009.12.09 문제: 사이트 바로가기 파일을 만들려고 한다. 다음에 접속 후, 브라우저에서 바로가기 만들기를 생성하니 .url 파일이 생성된다. 에디터로 열어보니 아래와 같은 내용으로 채워져 있더라. [DEFAULT] BASEURL=http://www.daum.net/ [DOC_hFrame] BASEURL=http://sug.search.daum.net/daumtop_suggest_json.html ORIGURL=http://sug.search.daum.net/daumtop_suggest_json.html [DOC_ad_cgi_view] BASEURL=http://amsv2.daum.net/ad/multiview?secid=09E11,09E12,09E13,09E14,09E15&templat..
발생일: 2009.12.08 문제: xper 그룹스 메일링을 받아보고 있는데, 오늘 누군가가 TDD(Test Driven Development) 진행 중 생긴 문제점에 대해 질문을 한 내용이 있다. 유닛 테스트를 위해 모든 메서드를 public 으로 선언하다보니, "public 메서드가 너무 남발되는 게 아닌가, 객체지향의 원칙을 깨버리는 게 아닌가." 하는 생각이 들었다고 한다. 나도 예전에 같은 문제로 질문한 적이 있었는데, 그 당시에 멤버 변수는 private 으로, 메서드는 모두 public 으로 설정하는 쪽으로 결론을 냈었다. 그에 따라 (테스트를 위해) private 으로 작성된 메서드의 접근자를 단순히 모두 public 으로 바꾸는 식으로 구현했었다. 이 때는 마틴파울러의 Refactorin..
발생일: 2009.12.08 문제: 클래스 A를 상속받는 클래스 B가 있다. 테스트를 위해서 각각의 클래스에 main 메서드를 작성해놨다. class A { public static void main(String[] args) {} } class B extends A { public static void main(String[] args) {} // overriding 하려고 시도 } 이런 식이다. 이클립스에서 이 내용을 작성하고 있었는데, 분명 B 클래스의 main 메서드는, A 클래스의 것을 오버라이딩한 게 맞을 텐데, 이상하게 메서드 앞에 오버라이드 됐다는 아이콘이 표시되지 않는다. 어라? 스태틱 메서드는 오버라이딩 되지 않는 건가? 해결책: 검색해보니, static 메서드는 Overriding 할..
발생일: 2009.12.06 문제: 자바스크립트에서 다음과 같은 구문을 많이 사용한다. var result = a || b; a 의 값이 true 이면 result 를 a 로 설정하고, 아닐 경우 b 로 설정하라는 이야기다. 예를 들어, 크로스 브라우징을 위해 이벤트 객체를 가져올 때에도 이와 같이 설정한다. function test(e) { e = e || window.event; // e 가 존재할 경우, e로 설정하고 없을 경우 window 속성의 event 로 설정한다 ...(중략) } 헌데, 몇몇 코드를 보다 보니, var result = a && b; 와 같은 형태도 있더란 말이다. 이건 왠지 true 만 리턴되야 할 것 같은데,.. 음... 갑자기 헷갈린다. 해결책: a && b 도 a ||..
발생일: 2009.12.04 문제: 후배 S가 이클립스에서 소스 내에 에러가 없는데도 프로젝트 루트 폴더에 X 표시가 뜬다며 물어본다. 이클립스의 기본 컴파일러의 버전은 5.0인데, 해당 프로젝트만 1.4로 설정했더니 그런 것 같다고 한다. 이클립스의 Problem window 를 보니 아래와 같은 에러가 보인다. Java compiler level does not match the version of the installed Java project facet 처음엔 Java project facet 부분만 흘려보고는, jsp 인 줄 알고, java compiler 와 jsp 의 버전이 안 맞는 거라고 생각했다. Java 1.4 = JSP 2.3 Java 5.0 = JSP 2.4 이렇게 매치되는 게 맞는..
발생일: 2009.12.03 문제: 담당하고 있는 시스템의 분석 엔진은 문장 분석 기능을 가지고 있다. '나는 아이스크림이 좋아요.' 라는 문장을 가지고, [나 - 아이스크림 - 좋다] 라는 (긍정의) 의미를 뽑아낼 수 있는 거다. 일전에 검색 세미나(STS 2009)에 다녀왔을 때, 시맨틱 웹과 온톨로지라는 개념에 대해 설명을 들었었는데... 아마, 우리 분석 엔진에서 사용한 게 바로 온톨로지라는 개념이 아닐까 싶다. 컴퓨터가 문장을 이해할 수 있도록 해준 게 아마 분석의 기반이 되는 '언어 사전'일 테고, 큰 맥락에서 이 사전이 온톨로지일 것이란 생각도 든다. 사전이 곧 정보의 개념과 관계에 대한 구체적인 설명을 해주니까... 시맨틱 웹에서는 태그 등을 통해 그 의미를 분석할 테고 말이다. 아... ..
발생일: 2009.12.03 문제: javascript 의 변수 참조에 대한 예제 파일을 작성해보다가, (변수는 참조 링크의 마지막 값에 대한 참조를 갖는다. 에 대한 예제였다) 문득 자바에서도 그렇겠지.. 란 생각이 들어 테스트 해보던 중이었다. String a = "abc"; String b = a; a = "def"; System.out.println(b); // "abc" 가 출력된다. a 는 "abc" 에 대한 주소값을 가지고 있고, String b = a 부분에서 b 역시 "abc" 에 대한 주소값을 가지게 된다. (중간에 String c = b; 가 들어있었다면, c 역시 "abc" 에 대한 주소값을 가지게 된다.) a = "def' 부분에서는 a 에 새로운 주소값이 할당되게 되고, b 의 ..
발생일: 2009.11.25 문제: JEUS를 설치하고 끄고 켜기를 몇 번 하다보니, 아래와 같은 에러가 발생했다. java.net.BindException: Address already in use: JVM_Bind 아무래도 기존 프로세스가 죽지 않아서 그런 것 같은데, 무슨 오류일까... 해결책: 해당 포트가 이미 사용 중이란 오류이므로, 해당 포트를 사용하는 프로세스를 종료해주면 된다. 그 프로세스가 어떤 건지 모를 경우, cmd 에서 netstat -a -n -o 명령어를 통해 해당 포트를 사용하고 있는 프로세스를 찾아낸 후, 종료하자. taskkill /f /pid 프로세스아이디 로 프로세스를 종료하자. (cmd 창에서 프로세스 목록을 보거나 삭제하기) 또는 작업 관리자에서 PID 를 보이게 한..
발생일: 2009.11.25 문제: unix 의 ps 나 kill 역할을 할 수 있는 명령어가 cmd 에도 있을까? (윈도우 XP 사용 중이다) 해결책: tasklist 를 사용하자. tasklist /fi "imagename eq 서비스이름" 과 같은 방법으로 사용하면 된다. 저 명령은 이미지 이름이 '서비스 이름'(패턴 포함)에 해당하는 프로세스 목록을 찾는 거다. 자세한 내용은 tasklist /? 를 해서 보면 된다. 프로세스를 죽이고자 할 때에는, taskkill 명령어를 사용하자. taskkill /f /pid 프로세스 아이디 /f 옵션은 강제 종료 옵션이다. 역시 자세한 사용법은 taskkill /? 를 사용해서.^^