2009년을 맞이해서 okjsp의 도약 발판으로 삼고 싶습니다. TheServerSide.com, infoq.com, slashdot.org 의 컨셉과 유사하게 가려고 합니다.
테크 트렌드는 웹/툴/모바일 분야의 새로운 기술, 추천할만한 사이트/블로그, 개발자가 참여할만한 세미나/컨퍼런스, 기타 편집자의 재량에 따라 게시됩니다. 편집자는 현재 저입니다. ^^;

얼마나 활성화될 지는 저도 알지 못하지만 블로그 못지 않은 정성을 들여보고 싶습니다.

okjsp 상단을 바꾸었습니다. 이렇게 말이죠.

이것 바꾸는 데 2시간 걸렸다면 여러분들은 믿으시겠습니까? 그런데, CSS작업하면서 벌어진 틈새 때문에 한참 헤맸다면 여러분들은 과연 믿으시겠습니까? 이 벌어진 틈새가 DOCTYPE 선언 때문이었다면 과연 믿으시겠습니까?

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
위에서 아래처럼 바뀌었습니다.

&lt;!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"&gt;
차이가 크더군요.
이 글을 포스팅하려는데 3.0.4 업데이트가 나왔군요. ^^

firebug의 업데이트와 함께 새로운 UI의 옵션이 맨 처음에 나옵니다.
콘솔(Console), 스크립트(Script), Net 기능을 체크해야 자바스크립트와 네트워크 관련 기능을 사용할 수 있습니다.

이 중에서 콘솔은 자바스크립트 에러가 표시되는 화면입니다. 다음과 같이 표시됩니다.

여기서 에러메시지를 클릭하면 해당 소스의 자바스크립트로 이동하게 됩니다.

콘솔에는 다른 기능도 있습니다. 바로 현재 페이지의 자바스크립트를 편집해서 실행할 수 있는 영역이 있다는 것입니다. 콘솔 탭의 하단에 >>> 프롬프트 라인입니다. 여기에 자바스크립트를 넣어서 실행할 수 있습니다. 예전부터 있었는데, 안 썼습니다. 몰랐으니까요. ^^;

이렇게 실행 결과도 확인할 수 있습니다.

편집 영역을 확장할 수도 있습니다. 라인 우측의 회색 동그라미를 클릭하면 다음과 같이 넓어집니다.

Ajax 작업을 할 때 작은 프로그램도 여기에 넣어서 실행이 가능합니다. ^^;

 
해킹에 조심하셔야겠어요. 툴은 중성이죠. 사용하는 사람에 따라 선이 될 수도 악이 될 수도 있으니까요. 중요한 로직 체크는 자바스크립트로 하는 것을 피해야죠. 서버 쪽의 프로그램에서 체크하는 것은 웹개발의 기본이겠죠.

춤추러 갑니다. ^^ 스윙댄스요. ㅎㅎ


많이 느려졌습니다.

사이트가 느려졌을 때 톰캣 매니저(/manager/html)에서 확인한 세션수입니다. 선방하고 있다고 말하기 힘든 응답시간입니다. 이번 스프링컨퍼런스에서 알게된 mysql 느린 쿼리 로그를 활성화 시켜야 할 것 같습니다.

•MySQL has a Slow Query Log
 --log-slow-queries and --log-queries-not-using-indexes
관련: http://dev.mysql.com/doc/refman/5.0/en/slow-query-log.html

^^; 살살 방문해주세요.
dw 기사를 보다가 JSDT(JavaScript Development Toolkit)를 알게 되었습니다. JavaScript 자동완성에 실시간 문법체크를 해줍니다. 어~ 좋은데, 그런데 어떻게 설치하지 찾아봤습니다만 WTP3.0 (Ganymede JEE 버전과 동일합니다.)에 기본적으로 포함되어 있더군요.

다음 이미지를 보시면 알 수 있듯이 다른 js 파일에서 선언된 변수도 가져다 쓸 수 있습니다.

위키를 보니 JSDT는 ATF(Ajax Toolkit Framework) 프로젝트의 서브 프로젝트로 진행중이네요.

JSDT에 대해 잘 요약된 DW기사도 일독을 권합니다.

okjsp 사이트의 보안을 강화하기 위해서 작업을 시작했습니다. http://www.okjsp.pe.kr 외 에 https://www.okjsp.pe.kr 접속을 위한 것이죠. 현재 아직 인증서오류가 발생하고 있습니다. 아직 돈을 내지 않았기 때문이죠. ^^; 인증서 에이전시에 등록할 때 10만원 내외의 비용이 필요합니다.

인증서를 신청하기 전에 서버 작업이 필요합니다. 그에 대한 설명입니다.

jdk에는 인증서를 위한 도구가 포함되어 있습니다. keytool 이라는 프로그램입니다. bin 디렉토리 아래 javac와 같이 있죠.

[root@169s /root]$ rm -rf .keystore
[root@169s /root]$ $JAVA_HOME/bin/keytool -genkey -alias tomcat -keyalg RSA
keystore 암호를 입력하십시오: changeit
새 암호를 다시 입력하십시오: changeit
이름과 성을 입력하십시오.
  [Unknown]:  www.okjsp.pe.kr
조직 단위 이름을 입력하십시오.
  [Unknown]:  okjsp
조직 이름을 입력하십시오.
  [Unknown]:  okjsp
구/군/시 이름을 입력하십시오?
  [Unknown]:  Seoul
시/도 이름을 입력하십시오.
  [Unknown]:  Seoul
이 조직의 두 자리 국가 코드를 입력하십시오.
  [Unknown]:  KR
CN=www.okjsp.pe.kr, OU=okjsp, O=okjsp, L=Seoul, ST=Seoul, C=KR이(가) 맞습니까?
  [아니오]:  y

<tomcat>에 대한 키 암호를 입력하십시오.
        (keystore 암호와 같은 경우 Enter를 누르십시오):
[root@169s /root]$


위와 같은 절차를 거치면 root계정의 홈 디렉토리에 .keystore 파일이 생깁니다.

이 파일에서 인증서를 요청하기 위한 Certificate Signing Request (CSR) 파일을 생성합니다.

[root@169s /root]$ $JAVA_HOME/bin/keytool -certreq -keyalg RSA -alias tomcat -file certreq.csr
keystore 암호를 입력하십시오:
[root@169s /root]$ ls cer*
certreq.csr
[root@169s /root]$ cat certreq.csr
-----BEGIN NEW CERTIFICATE REQUEST-----
MIIBpzCCARACAQAwZzELMAk.........1IxDjAMBgNVBAgTBVNlb3VsMQ4wDAYDVQQHEwVTZW91
...
-----END NEW CERTIFICATE REQUEST-----


개인정보라 함은 이름, 주민번호, 휴대폰, 이메일 등을 조합해서 해당 사람에 대한 식별이 가능한 정보라고 합니다. SSL을 설치하는 이유는 로그인할 때 비밀번호가 암호화되어서 중간에서 packet sniffer 도구 등으로 탐지되지 않도록 하기 위함입니다.

개인사이트다, 뭐다 말이 많지만 주민번호 받지않는 회원가입이 있고 로그인이 있기 때문에 보안설정은 하는 게 좋을 듯 합니다. 그냥 익명의 사이트로 간다면 글에 대한 신뢰성이 바닥으로 떨어지기 때문입니다.

정보보호진흥원kisa에서 소개해준 업체들 좀 돌아다녀 봐야겠습니다. 싼 거 찾으러 말이죠. ^^;

관련정보: http://tomcat.apache.org/tomcat-5.5-doc/ssl-howto.html

CORBA라고 있었습니다. 아직도 어디선가 쓰이고 있는 기술입니다. 이 기종 간의 데이터 교환방식인데, 쉽지 않은 기술이었습니다. 그런데 XML등장 후 Web Services라는 게 나타나서 기업간 데이터 전송에 많이 쓰이던 CORBA 기술을 대체하기 시작했습니다.

하지만 이 Web Services의 단점은 봉투만들기라는 단계 때문인지 접근하기가 쉽지 않았습니다. 대신 같은 XML 포맷의 데이터지만 좀 더 접근성이 용이하도록 만들어진 것이 REST(REpresentational State Transfer) 기술입니다. 

이에 대한 좋은 기사가 나와서 소개합니다.

단위 테스트까지 포함을 시킨 것을 보면 제법 탄탄하게 안내를 하고 있습니다.

썬(Sun Microsystems)에서 밀고 있는 오픈소스 JEE서버가 글래스피쉬(glassfish)입니다. 특징적인 것은 제품을 오픈소스로 키워가고 있습니다. 지난 자바원 2008에서 글래스피쉬에 대해 얘기하기를 79KB짜리 엔진을 갖고 있다고 합니다. 최경량이죠. ejb3.0이 구현된 것으로 알고 있습니다.

여러 배포판이 있는데, 인수한지 얼마 안되는 mysql과 함께 있는 배포버전은 다운받았습니다. 관리자 기능이 포함된 Sun Application Server 로 배포되고 있습니다.

처음 설치 버전입니다. Sun Java System Application Server 9.1 버전이고 MySQL 커뮤니티 서버가 같이 설치된다는 안내문입니다.

라이센스에 대한 얘기입니다. agree를 선택해야겠죠.


기본 설치 경로는 C:\Sun\AppServer 입니다. 솔직히 저는 C:\Program Files\... 이런거 싫습니다. ^^;


jdk가 설치된 경로를 지정해줍니다. Java 5.0 이상을 사용하시길 바랍니다. 1.4 말구요.


관리자 설정입니다. 비밀번호 설정하도록 되어 있습니다.

여긴 패스합니다. ^^;

테스트용이라 서버의 시스템 사이즈는 SMALL로 정했습니다.

설치 준비가 끝났다고 합니다. 글래스피쉬 엔진은 작은데, 관리자 애플리케이션이 장난이 아닌듯 합니다. 300M 가까운 용량을 필요로 하는군요.


Sun Developer Networks 계정이 있다면 연결해 줄 수 있습니다. 몇 가지 특혜들이 나열되어 있는데, 크게 와닿지는 않습니다. (영어라... ^^;)
Skip Regsitration으로 넘어가실 수도 있습니다.


등록 완료라는 메시지입니다.

서버를 시작한다는 메시지입니다.

서버가 정상적으로 구동되었습니다. 휴~ 다행이죠. ^^;


C:\Sun\AppServer\docs\about.html 페이지창이 뜨면서 안내 문서들이 나옵니다.

이렇게 설치기를 마칩니다.
이클립스 3.4 JEE버전에서는 톰캣을 자동으로 다운받는 기능이 추가되어있군요.
사용자 삽입 이미지

Download and Install 메뉴가 보입니다.
선택하고 다운로드가 마치면 사용할 수 있군요.

Controller 와 Service의 차이점
레이어를 나누는 것은, 아, 티어(tier)라고도 합니다. ^^; 나누는 기준은 뭘까요. 그냥 나누는 사람도 많습니다. 레거시 코드들이 증인석에 출두할 수도 있으니까요.

2006년 스프링으로 프로젝트를 하면서 그 때는 이 고민을 하지 못했습니다. 납기일 내에 동작하는 프로그램을 만들어 내야 하니까요. 플젝이 끝나고 그것을 기반으로 확장하는 프로젝트가 많이 열렸습니다.
^^; 슬프게도 사람이 많이 바뀌었습니다. 히스토리를 알고 얘기해 줄 사람도 n모사 s모사로 가버린 다음이죠.

다행히 코드 리뷰라는 것을 새로운 플젝의 외주 사람들과 매일 규칙적으로 한시간 정도 안되게 하는데, 나온 질문입니다.

얘기가 긴 데요. It's a long story.

핵심은 request, response 같은 WAS 디펜던트 한 것을 서비스에서 처리하게 하면 안됩니다. 서비스는 WAS없이도 돌아간다라고 생각하고 짜야된다가 현재의 결론입니다.
^^;

+ Recent posts