발생일: 2009.08.11 문제: IP에 따라 각각 다른 페이지를 보여주고 싶다. 지난 번에 브라우저의 헤더를 가지고 구분하는 방법을 썼었는데, (Accept-Language 로 언어 자동 설정하기 참고) 더 간단하게 IP 를 가지고 구분할 수는 없을까? 해결책: 지난 번 제시했던 곳보다 더 간단하게 국가별 IP 정보를 제공해 주는 사이트가 있다. (IPInfoDB.com 참고) 위 사이트에서 제공하는 API 에 따라 get 방식으로 요청을 하면 XML 형태로 정보를 리턴해준다. 요청 예) http://ipinfodb.com/ip_query.php?ip=74.125.45.100 응답 예) 74.125.45.100 OK US United States 06 California Mountain View 94..
발생일: 2009.08.07 문제: 이클립스에서 디버그 모드 사용 시 source 를 찾지 못해 source lookup path 를 설정해주라는 메세지가 뜰 때가 있다. Edit Source Lookup Path... 버튼을 눌러 소스 경로를 잡아주면 정상적으로 소스가 표시되기는 하는데... 따로 이 Lookup Source Path를 설정할 수는 없을까? 해결책: Debug View 에서 해당 창을 띄울 수 있다. Debug View 를 띄운다. (Window > Show View > Debug) 뷰의 Context Menu (오른쪽 마우스 클릭)를 열면 Edit Source Lookup... 메뉴가 있다.
발생일: 20009.08.07 문제: Class.getResource() 로 해당 클래스의 절대 경로를 읽어오는 걸 사용하고 있었는데, ClassLoader.getResource() 도 같은 정보를 리턴한다. 두 방법의 차이점이 뭘까? 해결책: 이에 대해 아주 잘 정리해놓은 블로그가 있다. DEV용식의 Class.getResource() 와 ClassLoader.getResource() 이 외에도 API 를 비교하며 설명해 놓은 holycall 의 블로그도 참고하자.
발생일: 2009.08.07 문제: 현재 클래스와 같은 패키지(폴더)에 있는 파일을 읽어오려고 한다. 상대 경로로 접근해서 가져오려고 하는데, new File("./test.txt"); 와 같이 상대 경로로 접근하니 정상적으로 불러지지 않는다. 해결책: 자바의 File 에서 사용되는 상대 경로의 기준은는 일반적으로 우리가 생각하는 것처럼 해당 클래스 파일이 있는 위치가 아니라, 클래스 파일이 포함되어 있는 프로젝트 폴더이다. 예를 들어, 클래스를 하나 생성하고 File path = new File("."); System.out.println(path.getAbsolutePath()); //--> 프로젝트 폴더의 주소가 출력됨 위와 같이 현재 클래스 위치에서 폴더를 생성하여 절대 주소를 출력해보면 프로젝트..
발생일: 2009.08.06 문제: jquery 를 이용하여 작업하고 있는데, 좀 쉽게 drag & drop 을 구현하고자 한다. jquery 는 플러그인이 무지 많던데 말이야... 해결책: http://blog.threedubmedia.com/ jquery 를 바탕으로 drag & drop 을 잘 구현해놓은 플러그인이 있다. 사용도 간단하고 매우 잘 작동한다. 간단하게 아래와 같이 사용하면 되겠다. $(obj).bind('drag'), function(e) { // 핸들러 }); 이 외에도 좋은 플러그인을 구현해 놓았으니 참고해보자.
발생일: 2009.07.30 문제: 친구 홍이 얘기한다. apache commons의 BeanUtils 에서 getSimpleProperty 메서드의 소스를 보면... -- BeanUtils class public static String getSimpleProperty(Object bean, String name) throws IllegalAccessException, InvocationTargetException, NoSuchMethodException { return BeanUtilsBean.getInstance().getSimpleProperty(bean, name); } 근데 여기에서 왜 getSimpleProperty 를 static 으로 선언하지 않고, 굳이 BeanUtilsBean을 생성해..
발생일: 2009.07.21 문제: 부모창에서 자식창의 내용이 모두 로드된 후에 함수를 호출하려고 한다. 팝업의 내용이 모두 완료된 후에 부모창에서 자식창의 제어를 하고 싶다. 예) 공지사항 팝업 컨트롤러에서 팝업이 모두 뜨고 난 후에 팝업창의 사이즈를 조절하고 싶은 경우. 또는 팝업이 모두 완료된 이후에 특정 문구나 스타일을 추가하고 싶을 경우. 해결책: 일반적으로는 팝업이 표시되는 페이지에서 onload 이벤트를 구현해주면 되겠지만, 여기서는 부모창에서 자식창의 status를 확인한다. 아래와 같이 부모창에서 팝업을 띄울 때 팝업창 객체를 변수에 담아두고, 그 객체의 onload 이벤트 핸들러를 정의해주면 된다. var pop = window.open('팝업창의 주소'); setEventHandler..
발생일: 2009.07.02 문제: 친구의 작업을 도와주는 중, MultipartRequest로 구현된 파일 업로드 페이지가 나왔다. 오레일리에서 제공하는 라이브러리인 듯 싶은데,.. MultipartRequest라...? 해결책: 1. MultipartRequest에 대한 기본적인 내용에 대한 블로그를 참고. 2. 좀 더 실질적이고 자세한 내용들에 대해 쉽게 설명해 놓은 블로그도 있다. 3. MultipartRequest API 도 참고하자.
발생일: 2009.06.30 문제: 구글 코드잼 문제를 풀다보니, 중국인의 나머지 정리(Chinese remainder theorem)가 적용되어야 했다. 중국인의 나머지 정리라... 당췌 이게 뭔지 모르겠다.... -_-a. 해결책: 중국인의 나머지 정리에 대해 쉽게 정리해 둔 블로그가 있다. 어느 정도 감이 잡히기는 하는데,... 아직 잘 모르겠다. @_@ 10 이하의 소수 중 하나(2 또는 3, 5, 7)로 나눠지는 수 x 가 있다. 근데 이 x의 수가 꽤 크다면, 아래와 같이 계산한 x' 도 10 이하의 소수 중 하나로 나눠진다고 한다. x' = x MOD (2 * 3 * 5 * 7) 왜 그런 걸까...... -_-a 알려주세요.... * 팁: 수학사랑 사이트에서 주요 수학 정리에 대해 잘 설명해..
발생일: 2009.06.24 문제: option에 포함된 text 길이에 따라 동적으로 가로 사이즈가 늘어나는 select box가 있다. 사이즈는 대략 맞으면 되었기 때문에 내부적으로는 font size(대충 11 정도)에 text 길이를 곱한 값으로 select box의 스타일을 설정하는 로직이 있었다. 이제까지는 text에 영어만 있었기 때문에 별 탈 없이 운영되고 있었는데, 이번에 한글이 포함되면서 select box의 가로 사이즈가 정상적으로 늘어나지 않는다. 한글이 2byte 임에도 length를 구하면 1byte로 표시되기 때문이다. 한글을 포함한 문자열의 길이를 구할 수 있을까? 해결책: 검색해보니 한글 포함 문자열의 길이를 구하는 로직에 대해 정리해둔 블로그가 있다. 텍스트 내 캐릭터를 ..