본문 바로가기

etc, java : freemarker template을 사용시 server side 변수 접근에 제한이 있습니다. (exception클래스) 제목이 좀 이상하네여 ㅎㅎ 풀어서 말하자면 exception 객체를 collection type에 담아서 server side에 생성한 후 freemarker에서 그 collection type에 접근하면 안된다는 것입니다. 접근까지는 가능하겠지만, list로 뿌릴경우엔 프리마커 에러가 발생하게 됩니다. 풀이해서 적었지만 그래도 좀 이상하네여. 예를 들어보겠습니다. open api를 활용할 때엔 다양한 exception을 핸들링해야합니다.(어느 로직에서든 마찬가지겠죠^^;;) 그렇게 exception을 핸들링할 때엔 client side에 어떠한 문제점이 있는지 사용자에게 알려줄 필요도 있습니다. 예를 들어 open api 사용시에 적합하지 않은 쿼리가 들어왔다면 사용자에겐 input data를 보다 명..
etc, javascript : daum map open api 에서 roadview 구현시 주의점. 뭐... 주의점이라고 적어놓았으나.... 포스팅하기도 부끄러운 사례라 저만 간직할까 하지만... 혹여나 같은 일로 고민하고 계시는 분이 계실까 작성합니다. daum roadview 기본생성하기 튜토리얼같은 것을 보면 function init(){ var p= new daum.maps.LatLng(37.53729488297613, 127.00551022687515); var rc = new daum.maps.RoadviewClient(); var rv = new daum.maps.Roadview(document.getElementById("roadview")); rc.getNearestPanoId(p, 50, function(panoid) { rv.setPanoId(panoid, p); }); } 위와같이..
etc / javascript : daum.maps.event.addListener 여기서는. 반복문을 통해서!! 특히!!! marker 객체에 어떤 이벤트를 주려고 하는 경우에 주목합니다!!! daum map api를 사용할때 어떤 이벤트를 등록할때 제목과 같은 메소드를 자주 사용하게 됩니다. 이 메소드는 인자로 (target(marker, map 등등), 이벤트 명("mouseover", 등등), 함수) 를 받고 있습니다. 1개의 특정 target 에 발생하는 이벤트를 작성할 경우에는 큰 문제가 발생하지 않습니다. 하지만... 반복문 등을 통해서 배열에 담겨있는 target 들을 리스너에 추가하려고 하면 error가 발생합니다. 보통 반복문에 접근할 경우에 작성하는 코드는 for(var i=0; i b, tempArray[2] => c 타겟에 대한 이벤트도 추가되겠죠 자, 그리고 애..
etc : google geocode open api 를 활용한 좌표 to 주소 변환을 알아볼게요~ 주소를 좌표로 변환해주는 api는 국내의 대형 포탈사이트에서 제공하고 있습니다. 튜토리얼이랄 것도 없을만큼 무지무지 쉽게 잘 설명되어있기도 하죠^^ (naver같은 경우엔 XML 형태로만 뿌려서 DOM 파싱을 해야하는데... 뭐... 이해해야죠 ㅠㅠ) 물론 그 말은 해외 유명 포탈사이트는 거의 다 제공한다고 봐야겠습니다 ㅎㅎ 하지만! 좌표 to 주소 변환해주는 api는 daum 에서만 제공하고는 있으나 아쉽게도 주소를 동까지만 알려줍니다. (번지수가 있어야 의미있는 api 서비스가 아닌가 하는데... 참 아쉽습니다) (하지만, naver에서는 그런 api 자체가 없으니 뭔가 더욱 daum DNA가 멋있어 보입니다 두둥-) 썰이 길었네여. 자 우선 링크부터.. http://code.google.com/in..
jQuery : 오늘 정말 엄청난 삽질을 하였습니다. selector .. id 때문이지요. 후아. 이 삽질로 한시간 30분이 흘렀군요. $('#id_of_input') 위 jquery 코드를 실행하였을때 select 되는 것은 무엇일까요? alert을 해보면 object입니다. 무슨 object 인지 답답해 죽을거같아도 여튼 object 입니다. 제가 원하는 것은 text type의 input 에 어떤 data를 추가해야하는 것이었습니다. 반복문을 돌리면서 열심히를 연구하면서 갖가지 방법으로 data를 삽입하려 했지요. $('#id_of_input') = 'some data'; $('#id_of_input').value = 'some data'; $('#id_of_input').value('some data'); $('#id_of_input').text('some data'); ... 외에 별..
java : 정규식 표현을 해야할 경우에는 정규식 표현을 사용하는 것이 좋습니다. :) String 클래스에는 정말 많은 메소드들이 있는데 그 안에 그만큼 많은 정규식 파라미터가 있다는 거 아시나요? 모두 열거하기에는... 제가 그만큼 메소드들을 머릿속에 넣어둔게 아니라 패스할게요^^;;; ㅠㅠ 은근히 자주쓰이고, 은근히 많이 접하는 코드에 집중해볼까요? split, replaceAll 메소드들은 data를 특별하게 가공하거나 할 경우에 정말 많이 접하는 메소드들입니다. 그런데 이 녀석들 어떤 때에 많이 쓰시나요? 오늘 제가 한 작업중에는 웹(클라이언트)에서 넘어온 data의 공백을 제거해야하는 일이 있었습니다. clientString = "아버지가 방에 들어가신다."; clientString.replaceAll(" ", ""); 잘 먹혔을까요? ㅠㅠ 알면서도 만들어내는 버그들중 하나가 바..
jQuery : $(window).load, $(document).ready 로드 후 실행되는 시간 $(document).ready(function(){ // code }); 브라우저에서 DOM 트리를 생성하고난 후에 실행되게 되는 코드입니다.(DOM is ready) $(window).load(function(){ // code }); 모든 include 되는 프레임들과 object들, 이미지까지 로드된 이후에 실행됩니다. document가 ready된 시점에는 DOM에 대한 접근만이 자유롭겠지만 아직 브라우저에서 다른 객체들이나 이미지들을 로드하지 않은 상황이므로 어떤 페이지를 사용자가 접근할 때 이미지에 대한 가공을 하려한다면 실패하게 되겠죠. 하지만, window를 로드하고난 이후에 실행되는 코드들은 모든 객체나 프레임들(외부 contents를 담는 프레임까지), 이미지까지 모두 로드한 이후에 ..
facebook : page tab (welcome tab) 개발시에 유용한 무료툴 미흡한 영어실력으로 며칠동안 구글링을 하면서 알게된 자료를 공유할까 합니다^^; 뭐 미리 여러번 국내에 소개되었다면 뒷북이네요 ㅎㅎ 우선 welcome tab이라 하는 것은 페이스북 페이지에 접근하였을때 가장 우선적으로 보여줄 메뉴(?)를 말합니다. 아래 그림에 나열되어있는 메뉴들을 보시면 이해가 쉬울 것 같네요. Welcome 메뉴들은 저의 test 페이지에 설치되어있는 app들입니다. 이러한 앱들을 사용하면 무척 편리하게 페이스북 페이지들을 꾸밀 수가 있습니다. 페이스북 페이지 이용에 있어 핵심적 이유 몇가지중 하나는 아무래도 라이크를 통한 노출증대가 있지 않을까 싶은데요, 사용자들의 해당 페이지 라이크버튼의 클릭 유무에 따라서 사용자에게 다른 페이지를 보여준다는 것은 무척 의미있는 action 이라..