Computer 그리고 Developer 76

[dW] Ajax와 자바 개발을 간단하게 시리즈~

dW에서 3주동안 시리즈로 올라오는 글 중 웹개발에 도움되는 글이 있군요. Ajax와 자바 개발을 간단하게, Part 1 JSP 태그 파일로 자바스크립트 코드 동적으로 생성하기 내용인데 HTML과 URL 인코딩 함수 - 유틸리티 함수가 유용하군요~ Ajax와 자바 개발을 간단하게, Part 2 JSTL과 JSP 태그 파일을 사용하여 커스터마이징이 가능한 웹 컴포넌트를 만들기 Ajax와 자바 개발을 간단하게, Part 3 자바스크립트와 JSP 태그 파일을 사용하여 사용자 친화적이고 웹 폼에 안전한 검증 기능을 구현하기 사용자가 웹 브라우저에 입력한 값을 자바스크립트로 검사하는 valid 같은 특정 기능에 얽매이지 않고 더 일반적인 함수를 만들 수 있는 코드가 있군요. 저같이 수련이 많이 필요한 사람에겐~ ..

윈도우용 launcy

저는 회사에서는 OS를 Mac을 쓰고 있는데 집에서는 Windows를 씁니다. MAC OS X 에서 가장 자주 쓰는 어플리케이션 중 하나가 퀵실버(Quicksilver)인데 윈도우용 Quicksilver가 없을까? 하여 찾아보니, 역시 있군요.. 오픈소스로 개발되고 있고 이름은 Launchy . 평상시에는 안보이다가 alt + space 키가 기본 단축키를 누르면 나타나는데 스킨도 이렇게 몇가지 있습니다. 전 맨 밑의 스킨으로~ 선택. 여기 옵션에서는 파일 타입과 디렉토리 위치를 지정해 놓으면 여기에 해당하는 곳에서 찾겠죠? (default로 되어 있는 이곳에서 찾아주고 있는거군요..사용자가 또 추가하고 싶으면 해도 되구요.) 응용프로그램을 실행하려면, 이렇게 잘 찾아줍니다.~ 브라우저를 열지 않고 ur..

[dW] Groovy 유창하게 쓰기

IBM dW에 스크린캐스트로 올라온 글중에 26분 42초만 투자하면 그루비(Groovy)가 잘 생겼는지, 못생겼는지 대충 실루엣을 볼 수 있고, 간단한 특성, 클로져등을 볼 수 있습니다. 그루비 처음 공부할 때 이렇게 친절하게 설명한 동영상을 더 먼저 봤으면 더 이해가 쏙쏙 되었을텐데.. 이렇게 동영상으로 읊어주시니(?) 더욱 좋은 것 같아요 근데 이 영상을 보고 제목처럼 유창하게 쓸 수 있을지는 모르겠다는 의문이 들긴하지만 그루비가 궁금하신 분은 잠깐 시간내어 보시는 거에 강추합니다. Groovy 유창하게 쓰기

[dW] 유닉스 팁: 열 가지 더 좋은 유닉스 습관

유닉스 팁: 열 가지 더 좋은 유닉스 습관 유닉스를 많이 사용해 본 적이 없어서 더구나 콘솔로 사용할 일도 많이 없었지만최근엔 콘솔 사용하는것에 재미(?)를 느껴서 찾아보니 예전 대학교 1학년때 열심히 외우던명령어가 어렴풋이 배웠던 기억이 나는 명령어도 있군요.그냥 기록해놓으면 좋을 것 같아서.. 남겨 놓습니다..^^ 익혀야 하는 열 가지 더 좋은 습관 파일 이름 완성 기능을 활용하자.(bash 쉘에선 TAB: 쉘마다 키가 다르다)히스토리 확장 기능을 활용하자.(!$ 명령은 명령어에 사용했던 마지막 인수를 반환한다. )직전에 사용한 인수를 재사용하자.(!:1 연산자는 명령에서 사용한 인수를 반환한다. )pushd와 popd로 디렉터리를 탐색하자.대용량 파일을 탐색하자.편집기 없이 임시 파일을 생성하자.(..

[dW] Ajax 성능 도구

Ajax 성능 도구Ajax 성능에 향상을 주는 여러가지 도구와 부가 기능이 많이 있는데 저는 그 중 쓰는게 RAMBack과 YSlow밖에 없군요...하나씩 써봐야 겠군요... 이렇게 정리해 주니 좋은 것 같습니다. ㅎㅎ 참고로 Load Time Analyzer이 firefox 3 버젼을 아직 지원안하는군요 오픈 소스 도구Apache Bench: 서버 부하를 흉내 낸다.Tsung: 다중 프로토콜 부하를 시험한다.Bonnie++: 디스크 I/O 문제 추적Wireshark: 네트워크 트래픽 분석Comet 서버 응용 프로그램 도구: 더 긴(long-lived) 연결, 더 높은 병행성, 더 낮은 지연, 더 낮은 서버 부하를 위해 사용된다. 파이어폭스 부가 기능LiveHTTPHeaders(일 반적인 HTTP 트래픽..

[dW] 아파치 메이븐 2 시작하기

제가 몸담고 있는 팀에서는 소프트웨어 프로젝트를 빌드하고 관리하는 작업에 "아파치 메이븐(apache maven)"을 쓰고 있습니다. maven을 처음 쓸 때 dependency 관리에서 그만... 반하고 말았습니다. :) 이클립스에서 프로젝트에 필요한 library를 직접 걸어주고 또는 소스가 보고싶을때 매번 attach source를 해서 자주보는 소스는 다운을 직접 받아서 연결을 시켜줘야 하는데 maven을 쓰면 이 작업이 모두 xml파일(pom.xml)에 몇줄만 추가해주면 되니 너무 행복했지요. maven의 중앙 repository에서 알아서 jar파일을 다운로드하고 관련된 source도 받을 수 있게 할 수 있지요.. 이건 뭐.. 빙산의 일부분이겠지요~ 그래도 이것만 되도 행복할 것 같은데, 그..

[dW] REST 서비스 작성하기

REST 서비스 작성하기 이 글은 REST(Representation State Transfer)와 Atom Publishing Protocol(APP)에 관한 개념이 잘 나와있습니다. 그리고 REST/APP 기반의 서비스 구현 방법도 예로 나와있지요~ 본문 내용중에, REST 원칙은 URI(Uniform Resource Identifiers)를 사용하여 주어진 자원 표현의 위치를 알아내고 접근한다. 표현 상태(representational state)라 알려진 자원 표현은 만들어질 수도, 찾아올 수도, 수정될 수도, 삭제될 수도 있다. 예를 들어 REST를 적용하여 문서를 발행해 독자들이 이 문서를 읽을 수 있게 할 수 있다. 언제든 문서를 발행할 때는 웹 URL을 보여줘야 한다. 그래야 독자들이 그 ..

[dW] Diagnosing Java code: Java generics without the pain, Part 1

JavaOne 2008 Wrap-up 세미나 발표자료에 올라온 "More Effective Java" 주제로 양수열님이 2nd Edition으로 출간된 Effective Java의 저자직강으로 JavaOne에서 열렸던 내용을 소개하는 부분으로 Java 5.0에 추가된 Generics, Enum types, Lazy initialization 관련 부분이 나와서 찾아보던 중 Generics에 관한 글로 2003년 글로 dW에 있군요. Part 1, Introduction to generic types and support features (February 2003) Part 2, Extension limitations and implementation strategies (March 2003)Part 3,..

[dW] Practically Groovy: Reduce code noise with Groovy

요즘 Groovy에 대해 조금 공부하고 있는데 dW에 찾아보니 Groovy에 특성이 나타나 있는 글을 발견했는데 자바에서의 noise와 복잡성을 Groovy를 사용해서 제거하는 방법이 주로 나타나있습니다. 자바에서 JavaBean을 썼을때와 Groovy에서 Bean을 생성했을때의 코드차이. Groovy에서도 Junit을 이용해 테스트 코드를 작성하는 법, polymorphism, Spring framework를 사용하는 방법들이 소개되어 있습니다. Groovy에 대해 직접적인 언급보다는 기존 자바코드와 비교해서 또는 자바와 함께 쓸때의 장점등이 나타나있군요. 이래서 Groovy를 쓰면 편하겠다~ 라는 글.. ^^ Practically Groovy: Reduce code noise with Groovy

[dW] Ajax에서 XML 처리하기

Ajax에서 XML처리하는 일이 많은데 저는 DOM트리를 탐색해서 필요한 정보를 추출하여 HTML로 변환을 하여 DIV 태그에 넣는 방법을 주로 사용하는데 이렇게 하다보면 필요한 정보의 태그를 찾아가는 과정이 복잡합니다. Element안에 Element안에 Element가 있을경우..그외에 더 복잡한 경우도 많겠지요. XSLT를 사용해 XML을 HTML로 변환하는 방법(서버쪽에서 XML을 HTML로 변환할지, 클라이언트쪽에서 변환할지..) 그리고 JSON과 동적 스크립트 태그를 이용해 XML처리하는 방법이 있군요. XML processing in Ajax, Part 1: Four approaches XML processing in Ajax, Part 2: Two Ajax and XSLT approache..

[dW] Learn 10 good XML usage habits

"XML을 사용할때 좋은 10가지 습관(관습)"이라는 글을 우연히 보았는데 당연한 것도 있고,알지만 안쓰게 되는 점들도 있군요. Learn 10 good XML usage habits Define your XML and encoding Use a DTD or XSD Remember to validate Validation isn't always the answer XML structure versus attributes Use XPath to find information You don't always need a parser to extract information When to use SAX over DOM parsing When to DOM over SAX parsing Use a good XML ..

[dW] XStream으로 자바 객체를 XML로 직렬화하기

자바객체를 직렬화하려면 흔히 어떻게 하는 방법이 있을까요? 오픈 소스 라이브러리를 써주는 센스!를 발휘하려면 어떤 라이브러리가 있는지 알아야겠지요. 전 dW에 번역글이 올라와서 알게 된 XStream이 있는데 정말 몇줄로 자바객체를 XML로 직렬화 시켜주는 군요. [dW] XStream으로 자바 객체를 XML로 직렬화하기 이곳을 참조하면, 이클립스 프로젝트에서 클래스를 생성해서 단 몇줄로 자바객체를 XML로 직렬화하는 방법이 나와있습니다. 친절하게 이클립스의 스크린샷까지.. XStream 사이트에 가보면 제일 첫 화면에 보이는 "XStream" is a simple library to serialize objects to XML and back again. 정말 심플한 라이브러리일까? 한번 소스를 봐보면..

[dW] HTML 5와 XHTML 2에 관련된 글(dW문서와 그외)

8년동안 꽁꽁 얼어있던 HTML이 브라우저 시장에서 Apple, Opera, Mozilla 재단이 결성한 WhatWG와 W3C 두 대열에 움직임이 계속 일어나고 있지요. 그에 관련된 글들을 간단하게 모아봤습니다. HTML 5에 추가된 새로운 요소 (한글) 구조 요소: aside, figure, section 인라인 요소: time, meter, progress 내장 요소: video, audio 대화형 요소: details, datagrid, command XHTML 2 사용하기 (한글) XForms 지원 추가 XML Events 포함 더욱 풍부한 재사용 가능한 구조 장치 독립성, 접근성, 문법 메타데이터 추가 용이성 HTML의 미래, Part 1: WHATWG WhatWG의 FAQ의 내용중 HTML 5..

[dW] Ajax 오버홀(overhaul), Part 1: Ajax와 jQuery로 기존 사이트 개선하기 (한글)

Ajax overhaul, Part 1: Retrofit existing sites with Ajax and jQuery - Ajax 오버홀(overhaul), Part 1: Ajax와 jQuery로 기존 사이트 개선하기 (한글) 모달 대화상자를 통해 사용자 경험을 향상시키고 네비게이션을 단순화하기 http://www.ibm.com/developerworks/kr/library/wa-aj-overhaul1/index.html?ca=drs-kr 몇일전 dW에 올라온 Ajax와 jQuery를 이용해서 웹 1.0의 사이트를 웹 2.0의 사이트로 변신(!)하는 번역글이 떴습니다. javascript library로 dojo밖에 해보지 않아(그것도 아주 얕게..) jQuery는 잘 모르지만, GreyBox, Th..

[dW] Acegi로 자바 애플리케이션 보안화 하기, Part 1: 아키텍처 개요와 보안 필터 (한글)

이 dW문서는 작년에 작성되었던데 얼마전 Spring과 관련하여 Acegi에 대해 살짝~ 공부해 봐서 마침 dW에 글이 있나 찾아보니 역시나 있군요~ 우리나라 말로하면 "아저씨"(지극히 저의 개인적인 생각)란 이름과 비슷한 아씨지(어떤분은 머 다른말로 표현하셨던데 어쩜 그게 더 비슷한거 같기도 하고) 아무튼! What is Acegi Security? Acegi Security is a powerful, flexible security solution for enterprise software, with a particular emphasis on applications that use Spring. Using Acegi Security provides your applications with compr..

hello! blogger 대한민국 블로거 컨퍼런스 참가신청

다가오는 3월 16일 일요일에 블로거 컨퍼런스에 다녀오고 싶어서 참가신청을 해놓은 상태인데, 어찌 당첨이 되려나 모르겠습니다. 컨퍼런스는 IT위주의 내용에 주로 가봐서 이번엔 다양한 주제의 블로거들의 이야기를 들을 수 있으면 좋겠습니다. 이미 1차 추첨결과가 2월 29일에 있었고 2차 추첨결과는 3월 7일에 한다고 합니다. 두둥~ 좌석수에 제한이 있는 관계로 2400명의 블로거만 추첨을 통해 선발한다고 합니다. 재미있을 것 같은데, 어찌 잘 되려나 모르겠습니다. 제 블로그에 오시는 분들도 함께 참여해요~ ^_^

[dW] 클래스 로딩 문제 분석하기

클래스 로딩 문제 분석하기에 좋은 글이 있어서 올립니다 원문이 나온지는 좀 되었지만, 한번 읽어보기에 좋은 것 같습니다. 아래 내용은 저혼자 공부하면서 내용을 잠깐 정리해 본 것입니다. Part 4로 이루어져 있기에 정리한 내용보다 더 방대한 내용이 담겨져 있습니다. ^^ 클래스 로딩 문제 분석하기, Part 1: 클래스 로딩과 디버깅 툴 소개 (한글) 클래스 로딩 문제 분석하기, Part 2: 기본적인 클래스 로딩 예외(Exception) (한글) 클래스 로딩 문제 분석하기, Part 3: 특이한 클래스 로딩 문제 해결 (한글) 클래스 로딩 문제 분석하기, Part 4: 교착 상태와 제약 조건 (한글) 원문 시리즈 http://www.ibm.com/developerworks/views/java/libr..

[dW] IBM developerWorks 리뷰 블로거 2.0 선발과 Mylyn 2.0 통합된 태스크 관리 & 자동화된 콘텍스트 관리

지난 2월 초에 발표된 IBM developerWorks 리뷰 블로거 2.0에 선발이 되어 완전 영광스럽습니다. IBM developerWorks에는 아시다시피 많은 아티클, 튜토리얼등의 문서가 많이 있는데, 리뷰 블로거는 이 문서들을 자신의 블로그에 소개하고 안내하는 역할을 합니다. 저는 이 문서들을 소개하기 위해 문서들을 많이 읽게 되어 저에게도 많은 도움이 되리라 생각합니다. 저의 블로그를 찾는 분이 많으시진 않지만, 혹시나 스쳐지나 가는 분들 중에게도 도움을 드릴 수 있지 않을까~ 작은 기대를 해 봅니다. ^_^ 의지는 불타지만(?) 아는게 별로 없는 초보개발자인 제가 소개하는 내용은 최신기술(아님 조금 지났지만 저에겐 최신기술?)인 것도 있고, 아주 기본기를 정확하게 다지는 글들을 담을려고 합니..

J2EE의 소프트웨어 디자인 원칙

J2EE의 소프트웨어 디자인 원칙 인터페이스를 사용하라 다형성 : 다수의 클래스가 한 개의 인터페이스를 동시에 구현한 경우, 동일 인터페이스라면 어떤 클래스도 호출 가능 관심 영역의 분리 및 응집성 소프트웨어의 특정 기능만 특화시켜 컴포넌트화하면, 개발하기도 쉽고, 유지보수 하기도 편하며 재사용성도 높일 수 있다. 관심 영역을 분리하게 되면 자연스레 응집도가 높아진다. 응집도란 하나의 클래스가 하나의 단위 작업, 목적에 얼마나 충실한가 하는 정도를 나타낸다. 복잡성을 숨겨라 느슨한 결합도(Loose coupling) 두 클래스가 서로에 대해 알아야 할 것이 적으면 적을수록, 서로 간에 결합도는 느슨해 진다. 이를 구현하기 위한 가장 일반적인 방법은 클래스 A가 클래스 B에 있는 메소드를 사용해야 하는 경..

티스토리에서 Syntaxhighlighter를 이용하기

소스코드를 거의 블로그에 많이 넣는 편이 아니라 그다지 많이 필요없었지만, 앞으로 소스코드 하이라이팅을 할 수 있다면 편할 것 같아서 찾다가 태터툴즈는 플러그인을 찾아보니 있던데, 티스토리는 없는것 같더군요. 그러다 겨우 syntaxhighlighter를 tistory에서 사용 하는 방법. 을 찾았습니다! 자세한 설명은 여기 링크를 이용하시면 될것 같습니다.~ 너무 잘 정리해 놓으셔서,, 다양한 언어를 지원해서 좋더군요. 제가 주로 쓰는 Java 문법 하이라이팅을 테스트 해보았습니다. Javascript로 이루어진 소스코드를 받아서 티스토리의 HTML/CSS에 업로드하고 링크만 시키면 되어 너무 편합니다. ^_^ Java public class test { /** * @param args */ publi..

다음(Daum) 검색창에서 "@버리"를 쳐보세요

다음(Daum)에서 검색쇼를 베타오픈했다고 하여, 저도 한번 덥썩 신청해보았습니다. 검색쇼란? 개인이 만든 페이지를 Daum 검색결과 상단에 보여주는 서비스입니다. 동호회홍보나 결혼, 생일초대, 사랑고백등등 개인적으로 전하고 싶은 메세지나 이미지 동영상등을 넣어서 어디서든 Daum검색으로 페이지를 볼수 있는 서비스입니다. Daum검색창에 "@버리" 이렇게 치면 제가 작성한 작은 페이지를 볼수 있는 서비스이지요 @골뱅이를 붙인후에 + "키워드"를 입력하면 됩니다. 키워드의 기간설정이 가능하고 개인당 총 5개의 검색쇼키워드를 가질수 있습니다. 내가 설정한 검색을 보여줌으로써 daum에 검색에 대한 관심을 높일 수 있을듯 하군요.. 신청한지 3분만에 승인완료되었다고 문자가 왔습니다. @_@

일상을 적는 서비스 "oladay"

올라웍스에서 만든 "올라데이"이 베타로 오픈을 하였군요. (1000명 선착순 테스터로 가입이 됩니다.) 이 서비스는, 블로그같기도 하고, 한줄블로그 같기도 하고, 이미지와 동영상 그리고 적절한 일상등의 글을 쓸수있게 이용할 수 있는 서비스입니다. 블로그에 너무 주제가 왔다갔다, 난무하는지라 여기에 일상까지 적기가 참 맘에 안들었는데 이제부터 사진과 일상을 올릴 수있는 일석이조의 서비스로 버리의 올라데이를 이용할 생각입니다. 처음 가입부터 무척이나 간단하고, ajax를 이용해서 만들어서 그런지, UI도 참 쉽고, 심플합니다. 사소한 것에서도 신경을 많이 쓴듯 보입니다. 댓글을 쉽게 주고받을수있을 것 같아서 재미있을 것 같습니다. 물론, 제 올라데이에 사람이 많이 없더라도 혼자 일기장으로,(허걱,불쌍..) ..

한국 스프링 사용자 모임(KSUG) 제 4 회 세미나 사전접수가 시작되었네요.

Spring에 관심은 많은데 아직은 잘 모르겠다는, 사전접수 Gogo! 2회때 갔을때는 긴가민가 하며 들었었는데, 이번에 Spring을 조금 적용하고 나서 Spring MVC, IoC에 대해 조금 알려나 싶었는데 이번 세미나에서는 AOP이네요... AOP는 정말 잘 모르겠는데, 신청 접수글 보자마자 세미나 신청하고, Spring에 한발짝 다가가야겠습니다~

무서운 Web.. ? 검색엔진...

친구와 통화중에 문득 친구가 구글에서 제가 자주쓰는 아이디를 유추해서 구글검색창에 쳐보니, 검색결과창의 링크를 클릭하니 제가 언제 올린지 기억도 안나는, KLDP에 Q&A로 물어보았던 내용이 나온다고 하여 들어가보니, 리스트가 쫙! 나오네요 (3년전에 어떻게 저렇게 쉬운 질문을 했을까,, 생각되어 낯뜨겁기도 하지만,,^^ 지금도 머 실력은 달라지지 않았지만,,) 그 순간, 그런 사실을 알고 있었음에도 불구하고 소름이 끼치더군요 - 게시판에서 아이디를 조회해보면 나오는 당연한 결과이지만, 이 결과의 리스트를 검색엔진에서 찾아낸다는게 제 글의 요지입니다. 전에 포스팅 잠깐 했듯이 제 도메인만 쳐도 검색창에 블로그의 내용이 쭈욱 나오는건 머 당연한거긴 하지만, 게시판에 아이디도 검색엔진에서 찾아내니 그야말로 ..

Safari 3.0 for Windows를 맛본 후

윈도우용 사파리를 이번에 처음 써 보게 되었는데 아직 beta라 그런지.. 지원안되는게 "한글"이 출력은 되는데, 입력이 안됩니다. 그나마 개선이 되어서 한글이 출력되는게 다행이지만, 중간중간에 깨져서 글자가 네모로 나오기도 합니다. 점차 개선이 되겠지요.? 이전 포스팅에 썼듯이 debug 모드가 default가 안보이는 거라 script error가 나도 웹브라우저에게 명령을 내렸는데 실행이 안되어서(무반응..) 저처럼 처음 사파리를 처음 쓰는 사람은 당황함을 감출 수 없었습니다. 윈도우에서는 해당 폴더의 문서에 가서 수정을 해줘야 debug 모드를 볼 수가 있구요. show javascript console을 하면 error를 볼 수가 있습니다. 그리고, safari FAQ를 보시면 window.co..

Refactoring

마틴 파울러의 Refactoring에서 나온 좋은 문구 1. 새로운 기능을 추가해야 하는데 프로그램의 코드가 새로운 기능을 추가하기 쉽도록 구조화 되어 있지 않은 경우에는 먼저 리팩토링을 해서 프로그램에 기능을 추가하기 쉽게 하고, 그 다음에 기능을 추가한다. 2. 리팩토링을 시작하기 전에 견고한 테스트 셋을 가지고 있는지 확인하라. 이 테스트는 자제 검사여야 한다. 3. 리팩토링은 작은 단계로 나누어 프로그램을 변경한다. 실수를 하게 되더라도 쉽게 버그를 찾을 수 있다. 4. 컴퓨터가 이해할 수 있는 코드는 어느 바보나 다 짤 수 있다. 좋은 프로그래머는 사람이 이해할 수 있는 코드를 짠다. 5. 리팩토링(Refactoring) 명사 - 소프트웨어를 보다 쉽게 이해할 수 있고, 적은 비용으로 수정할 수..

트래픽초과의 압박으로 티스토리로 이전하였습니다.

그동안 트래픽초과 압박으로 오전10시쯤부터 블로그에 접속못하는 상황이 오랫동안 지속이 되어 결국 뾰족한 수가 떠오르지 않아서 티스토리로 이전하였습니다 더이상 트래픽의 압박에 시달리지 않아도 되고, 갈아타기도 하지 않아도 되고 스킨을 추가하고 싶으면 추가할수 있으며 태터툴즈의 기능 그대로 쓸수 있기에 이전하였습니다. 피드버너로 rss가 등록되어 있으므로 기존 rss는 상관없을 것 같고 주소도 티스토리에서 독립도메인을 지원해 주기에 DNS 정보를 변경하였으므로 기존의 http://flyburi.com 으로 그대로 접속하실수 있습니다. 독립도메인을 쓰고싶으신 분들은 (태터툴즈 -> 티스토리 이동시..) http://manual.tistory.com/599 이곳을 참고하시기 바랍니다. 태터툴즈에서 티스토리로 이..