Timeline

DHTML기반의 Ajax 효과를 나타내는 Time-line을 소개합니다. 참 괜찮은 아이디어로 웹으로 일정이나 과거 연대기사를 저장하는데 도움을 줄 것으로 보입니다.

  • XML에 데이터를 저장하여 헤더에  Timeline's Javascript API(http://simile.mit.edu/timeline/api/timeline-api.js)를 링크하면 기본 환경은 구성됩니다. 
  • DIV Element를 생성하고
  • Timeline.create()를 호출하기 위해서 onload and onresize이벤트를 body에 추가해 줍니다.
  • onLoad() 함수내에 eventSource를 생성하고
  • Timeline.createHotZoneBandInfo, Timeline.createBandInfo를 추가하여 자기가 원하는 내용을 추가해 줍니다.

이렇게 함으로써 Timeline이 완성이 됩니다.
그리고 JSON도 지원을 합니다.

참조 사이트 :

'오픈소스SW' 카테고리의 다른 글

CentOS 5.2 Final + BIND 9.3.4  (0) 2009.08.02
UML 지원 CASE Tool  (0) 2009.04.29
웹 방화벽을 구축하기 위한 mod_security 설치기  (0) 2008.12.26
웹 기반의 무료 Visio 툴  (0) 2008.12.26
Web-Based WYSIWYG editor 비교  (0) 2008.12.26

 

mod_security 설치기

1. 가정
 - Apache 설치 디렉토리 /usr/local/httpd라고 가정함.

2. pcre 설치(설치 안되었을 경우에 한함)
# wget ftp://ftp.csx.cam.ac.uk/pub/software/programming/pcre/pcre-7.2.tar.gz
# tar zxf pcre-7.2.tar.gz
# cd pcre-7.2
# ./configure && make && make install

3. libxml2 설치
# rpm -e --nodeps libxml2 libxml2-devel
# wget ftp://xmlsoft.org/libxml2/libxml2-sources-2.6.26.tar.gz
# tar zxf libxml2-sources-2.6.26.tar.gz
# cd libxml2-2.6.26
# ./configure && make && make install
# vi /etc/ld.so.conf
  - /usr/local/lib --> 마지막줄에 추가
# ldconfig -v

4. mod_security 설치
# wget http://www.modsecurity.org/download/modsecurity-apache_2.1.1.tar.gz
# tar zxf modsecurity-apache_2.1.1.tar.gz
# cd modsecurity-apache_2.1.1
# cd apache2
# vi Makefile
  - top_dir = /usr/local/httpd로 수정
# make && make install
# ls -al /usr/local/httpd/modules/mod_security2.so

5.  vi httpd.conf
 - LoadModule security2_module modules/mod_security2.so
 - Include conf/modsecurity.conf
 - vi modsecurity.conf 파일 안에 한국인터넷침해사고대응센터에서 제공하는 modsecurity 규칙 샘플(http://www.krcert.or.kr/firewall2/index3.jsp) 적용

이렇게 하여 mod_security를 apache에 포팅하면 SQL Injection, File Injection, XSS 공격, 소패머 프로그램 봇, Directory traversal 공격, 검색엔진(Google)에 의한 공격 등의 문제들을 한번에 해결해주고 또 Apache 성능에는 영향이 거의 없다고 하니 기본으로 설치해야 합니다. 요즘 보안에 대한 이슈들이 많죠 ^^

아래 그림은 mod_security의 동작을 그림으로 도식화한 것입니다.

modsecurity

 

'오픈소스SW' 카테고리의 다른 글

UML 지원 CASE Tool  (0) 2009.04.29
Timeline 소개  (0) 2008.12.26
웹 기반의 무료 Visio 툴  (0) 2008.12.26
Web-Based WYSIWYG editor 비교  (0) 2008.12.26
Subversion 설치하기  (0) 2008.12.26

 

Web 2.0 비지니스가 이슈로 떠오르면서 많은 기업들의 웹 어플리케이션에서의 아키텍쳐 모델에 변화가 일어나고 있습니다. 즉, Lightweight Architecture(이하 LA)라는 놈인데.. 많은 기업에서 이를 기반으로 하여 서비스에 적용하고 있습니다. 물론 아직까지 우리나라에서는 서비스를 하고 있는데가 있는지는 모르겠지만 거의 제 귀에서는 아직 들리지 않는 것 같습니다만. 하지만 중소 규모의 Web 2.0기업에서는 기업의 비지니스를 런칭하기 위해서는 Starting Cost를 줄여야만 하는 이유도 아키텍쳐의 변화에 타당성을 높여줍니다. 이러한 점에서 LA는 Web 2.0 기업의 비즈니스에서 중요한 부분을 차지하고 있다고 할 수 있습니다.

그래서 기존의 고가 장비로 이루어진 소수의 서버에서 다양한 업무를 수행하는 3-Tier 개념에서 저가의 리눅스 장비를 통해 비교적 가벼운 비즈니스를 지원하는 2-Tier 개념을 도입하고 장비의 Cluster화 하여 충분한 부하를 견딜 수 있도록 설계를 합니다. 이를 좀 더 자세히 살펴보기 위해 Hardware적인 측면과 Software적인 측면으로 나누어 생각할 수 있습니다.

1. Hardware 측면

3-tier

                                   그림1. 3-Tier Architecture

Architecure

                                    그림2. 2-Tier Architecture

이렇듯 기존의 3-Tier에서는 고비용이어서 Scale-up 전략을 추구하게 되는데 이는 정확한 용량 계획을 해야만 과잉 지출 등을 예방할 수 있기때문에 그에 필요한 업무 로드도 무시 못하죠. 여러분 중 용량 계획을 해 본사람들은 알 것입니다.
그리고 2-Tier방식에서는 Scale-out 전략을 구사하게 되죠. 로드 발란싱을 통해 WorkLoad를 저가 장비의 분산하는 전략을 말합니다.

2. Software 측면

Architecture

                      그림3. Lightweight Software Architecture

소프트웨어 측면에서의 전략은 기존 3-Tier 기반에서 Application은 J2EE + EJB와 같은 복잡한 Framework를 사용하여 무겁고 유지보수 비용이 높았는데 아마존이나 플리커에서 높은 개발 생산성 과 낮은 소유비용을 가지는 PHP, ruby on rails, 혹은 Struts, Spring + iBatis, Hibernate 등의 보다 가벼운 J2EE Framework으로 이전 하고 있다. 또한 개별 Service에 가장 적합한 형태의 Framework를 구축할 수 있어 개발 생산성과 유지 보수 비용면에서도 많은 효율을 보일 수 있습니다.

즉, 적재 적소에 모듈화된 비즈니스 로직을 안정적으로 제공하고, Time-to-Market을 달성하는 것이야 말로 대다수의 웹 비즈니스 기업들이 LA를 선택하는 이유이다.

 

무료 Visio 툴 소개

웹 기반에 무료로 쓸수 있는 Visio 사이트를 소개합니다. 프로젝트 진행시 산출물 작성에 아주 유용하게 쓰일듯 합니다. 제가 애용을 하는 사이트 중에 하나입니다. 무료니깐요 ^^ 그리고 무엇보다 중요한 건 개인정보가 필요없고 단지 이메일과 패스워드만 있다면 가입이 가능하다는 간편성이 좋아보인다.

visio

특징들을 살펴본다면..

  • Copy & Paste 가능
  • Flow Chart, UML, Network, User Interface, FloorPlan, Basic Shape Diagram 지원
  • 각 Diagram 구성요소의 선/채워넣기 색, 굵기, 사이즈, Text 삽입등등 Visio에 해당하는 다양한 기능 포함
  • 저장 단위별 히스토리가 가능하고 공유기능이 있어서 프로젝트에 적합함
  • Share>Collaboration : 작업 공유 가능
  • Share>Publish : 웹페이지나 블로그 등으로 공유 가능
  • 단점이라면 svg,png등으로 이미지 생성 기능이 있는데 여기서 한글이 깨짐(해결책으로는 한글을 적용하고 난 다음에 화면 캡쳐하면 해결 가능 ^^)

또한 웹으로 Publishing이 가능하다. 제가 간단히 작성한 다이어그램이 여기에 있다. 그리고 아래 그림처럼 Gliffy의 Publish기능을 보여준다

visio

이제는 MS의 제품들이 하나둘씩 웹으로 공개화되고 있다. Word가 Google Docs로, Vision가 웹기반의 Visio까지 웹시장에 진출했다. 갈수록 MS의 입지는 좁아질 수 밖에 없는 형국이 되어간다. 바야흐로  Open Office의 사용은 늘어날 것이고 플랫폼화되고 또하나의 광고 수단으로 발전할 것 같다.

'오픈소스SW' 카테고리의 다른 글

Timeline 소개  (0) 2008.12.26
웹 방화벽을 구축하기 위한 mod_security 설치기  (0) 2008.12.26
Web-Based WYSIWYG editor 비교  (0) 2008.12.26
Subversion 설치하기  (0) 2008.12.26
James Server 활용  (0) 2008.12.26

 

  1. FCKeditor
     * IE의 Editor Object 를 이용하여 제작
     * jsp, php, asp에 대응하는 이미지 업로드 및, 브라우징 기능
     * 미리 정의된 3가지 형태의 툴바 형태제공
     * 간편하게 기존 소스에 추가 가능
     * 테이블 편집 기능 지원
     * 타 사이트 내용 copy & paste시 이미지 경로 변경 필요
     * 다양한 언어 지원(한글포함)
  2. Filemanager Plugin for htmlArea
     * 이미지 업로드 지원
     * 풀스크린 편집 지원
     * 영문메뉴만 지원
     * 타 사이트 내용 copy & paste시 이미지 경로 변경 필요 없음 
     * PHP Image Editor 지원
  3. SPAW web-based WYSIWYG editor control
     * 예쁜 디자인
     * 이미지 라이브러리 기능
     * 이미지 업로드 지원 안함 
     * 타 사이트 내용 copy & paste시 이미지 경로 변경 필요 없음
  4. Hypertextarea 
     * 기본적인 기능만 제공
     * 이미지 업로드 지원 안함
     * 심플한 디자인
     * 타 사이트 내용 copy & paste시 이미지 경로 변경 필요 없음
  5. RichText-editor 
     * 한글 지원 안됨
     * 이미지 업로드 지원 안함
     * 타 사이트 내용 copy & paste시 이미지 경로 변경 필요 없음
  6. aynHTML
     * 이미지업로드 지원
     * 이미지 저장소 지원
     * 깔끔한 디자인
     * 타 사이트 내용 copy & paste시 이미지 경로 변경 필요 없음

제 블로그 사이트에서는 FCKeditor를 사용하는데 무료 툴 치고는 정말 잘 만든 프로그램이라고 생각합니다. 허접한 기능으로 ActiveX 설치한 에디터보다는 낫다고 생각합니다.

-------
웹에디터 비교 정보 잘 보았습니다.

저희 회사에서 이노디터(www.innoditor.com)라는 에디터를 만들었는데, 스크립트

방식의 에디터로는 최초로 셀병합/분할도 되는 획기적인 에디터 입니다.

한번 방문하여 주시면 감사하겠습니다.

--------------------------
유명한 무료 웹 에디터인 FCKeditorTinyMCE를 간단하게 비교해 보았습니다.

Html 결과 품질
    FCKeditor : 이전 버전은 에디터로 생성된 코드가 무척 지저분했으나 2.6RC 버전부터는 준수해짐.
    TinyMCE : 생성된 XHTML과 CSS 코드 validation 통과

커넥터를 통한 서버 측 언어 지원
    FCKeditor : ASP.net, ASP, ColdFusion, PHP, Java, Active-FoxPro, Lasso, Perl, Python 과 잘 연동 됨.
    TinyMCE : PHP,.Net, JSP, ColdFusion 지원

업로드
    FCKeditor : 별다른 플러그인 없이 업로드 기능 작동.
    TinyMCE : 업로드 기능을 이용하려면 별도 플러그인 구매 필요.

이미지 관리
    FCKeditor : 서버에 이미지를 올리고 올려둔 이미지를 게시물에 삽입하는 기능 제공. CKFinder 플러그인을
                    이용하지 않으면 서버에 올린 이미지를 삭제할 수 없음.
    TinyMCE : 이미지관리를 위해서는 별도 플러그인 구매 필요.

구동 시간
    FCKeditor : TinyMCE에 비해 느림.
    TinyMCE : FCKeditor 보다 빠름.

브라우저 지원
    FCKeditor : Internet Explorer 5.5+, FireFox 1.5+, Safari 3.0+, Opera 9.0+, Netscape 7.1+, Camino 1.0+
    TinyMCE : Internet Explorer 5.5+, FireFox 1.5+, Safari 3.0+, Opera 9.0+, SeaMonkey 1.0.5, Camino 1.0+

설치
    FCKeditor : 설치 디렉토리 정보만 잘 적용한다면 특별히 어렵지 않음.
    TinyMCE : 매우 쉬움.

커스터마이즈
    FCKeditor : 테마와 툴바보다는 플러그인을 수정하는 쪽이 어려움,
    TinyMCE : 테마와 플러그인 모두 수정 가능.

두 에디터 모두 훌륭한 기능으로 어느 쪽이 낫다고 쉽게 판단하기 어렵다. 자신의 입맛에(혹은 프로젝트 성격에) 맞는
에디터를 선정한다면 후회는 없을 듯하다.

두 에디터의 기능을 써 보면서 비교하고 싶다면
FCKeditor는 http://www.fckeditor.net/demo 에서
TinyMCE는 http://tinymce.moxiecode.com/examples/full.php 에서 체험해 볼 수 있다.
<출처 : 서비의 다락방 ( http://www.yunsobi.com )>
-출처를 밝혀주신 당신은 아름다운 사람입니다.-


'오픈소스SW' 카테고리의 다른 글

웹 방화벽을 구축하기 위한 mod_security 설치기  (0) 2008.12.26
웹 기반의 무료 Visio 툴  (0) 2008.12.26
Subversion 설치하기  (0) 2008.12.26
James Server 활용  (0) 2008.12.26
Ajax기반의 Webmail 소개  (0) 2008.12.26

 

  • 필요한 파일들
    - Subversion소스 파일.
    - Subversion 의존성 파일.
    - Berkeley DB(4.3.29 설치).
    - OpenSSL.
    - Apache(httpd-2.0.59 버전으로 설치함)
  • 디렉토리 정보
    - 다운 로드 디렉토리 : /home/k2/data/.
    - 설치 디렉토리 : /home/k2/server.
  • 운영 환경 .
    - Linux(OS:AS300)
    - 설치시 계정은 ROOT가 아닌 일반 이용자 계정으로 설치하는 것을 원칙으로 함.
  • OpenSSL 파일 설치하기
    - cd /home/k2/data/
    - tar -xvzf openssl-0.9.8e.tar.gz
    - cd openssl-0.9.8e
    - ./configure -prefix=/home/k2/server/openssl-0.9.8e;make;make install
    - 특이사항 : configure 실행시 특정 디렉토리에 설치를 원하면 -prefix를 준다. 위에서 /home/k2/server/openssl-0.9.8e로 준다.
  • Berkeley DB 설치(ROOT 계정으로 설치)
    - cd /home/k2/data/
    - tar -xvzf db-4.3.29.tar.gz
    - cd db-4.3.29
    - ../dist/configure;make;make install
    - echo "/usr/local/BerkeleyDB.4.3/lib" >> /etc/ld.so.conf
    - ldconfig
  • Apache 설치
    - Apache가 있을 경우 재설치함
    - cd /home/k2/data/httpd-2.0.59
    - vi configure.sh
    ./configure --prefix=/home/k2/server/httpd-2.0.59 \
    --enable-nonportable-atomics=yes \
    --enable-headers \
    --enable-vhost-alias \
    --with-mpm=prefork \
    --enable-rewrite \
    --enable-expires \
    --enable-so \
    --enable-suexec \
    --with-suexec-caller=bin \
    --enable-ssl \
    --with-ssl=/home/k2/server/openssl-0.9.8e \
    --enable-cache \
    --enable-ext-filter \
    --with-z=/usr/include \
    --enable-dav \
    --with-dbm=db4 \
    --with-berkeley-db=/usr/local/BerkeleyDB.4.3
    - ./configure.sh;make;make install
  • Subversion 설치
    - cd /home/k2/data
    - tar -xvzf subversion-1.4.3.tar.gz
    - tar -xvzf subversion-deps-1.4.3.tar.gz
    - cd subversion-1.4.3
    - vi configure.sh
    ./configure \
    --prefix=/home/k2/server/subversion-1.4.3 \
    --with-zlib \
    --with-apxs=/home/k2/server/httpd-2.0.59/bin/apxs \
    --with-apr=/home/k2/server/httpd-2.0.59/bin/apr-config \
    --with-apr-util=/home/k2/server/httpd-2.0.59/bin/apu-config \
    --with-berkeley-db=/usr/local/BerkeleyDB.4.3
    - 주의 사항 --with-apr, --with-apr-util을 지정해 주어야 Berkeley DB나 혹은 APT-UTIL라이브러리 구버젼 오류가 나지 않음.
    - ./configure.sh;make;make install
  • 소스 저장소 만들기(ROOT 계정)
    - mkdir /home/svn
    - cd /home/cvs
    - svnadmin create --fs-type bdb sample
    - chmod -R k2.KPCT sample(Apache에서 접근 가능하도록 Apache의 계정,그룹을 접근 가능하게 해줌)
  • Apache 설정
    - cd /home/k2/server/httpd-2.0.59/conf
    - vi httpd.conf
    - subversion 설치되면서 아래 설정이 추가됨
    LoadModule dav_svn_module     modules/mod_dav_svn.so
    LoadModule authz_svn_module   modules/mod_authz_svn.so
    - 아래 내용 conf파일 맨끝에 저장
    <Location /svn/sample>
        DAV svn
        SVNPath /home/svn/sample
        AuthType Basic
        AuthName "Mimul's Repository"
        AuthUserFile /home/k2/server/httpd-2.0.59/conf/passwd
        Require valid-user
    </Location>
    - ../bin/htpasswd -c passwd mimuluser 엔터
    - New Password : 입력
    - Re-type new password : 입력
    - http://www.mimul.com/svn/sample 엔터 후 아이디와 패스워드 인증을 통해 접근하면 아래와 같은 메세지 나옴
    Revision 0:/
  • 에디터 지정(svn 커맨드 사용을 위해서)
    SVN_EDITOR=/usr/bin/vim
    export SVN_EDITOR
  • 기본 디렉토리 만들기
    - svn mkdir http://www.mimul.com/svn/sample/trunk 엔터 후 다음과 같은 화면 나타남.
    --This line, and those below, will be ignored--
    A    http://www.mimul.com/svn/sample/trunk
    - :q! 빠져 나옴
    - c를 누른다음 사용자 계정 인증하게 되면 Committed revision 1. 이라는 메세지와 함께 디렉토리가 만들어 짐.
    - branches, tags 디렉토리도 같은 방법으로 생성함.
    - svn list http://www.mimul.com/svn/sample 엔터
    branches/
    tags/
    trunk/

'오픈소스SW' 카테고리의 다른 글

웹 기반의 무료 Visio 툴  (0) 2008.12.26
Web-Based WYSIWYG editor 비교  (0) 2008.12.26
James Server 활용  (0) 2008.12.26
Ajax기반의 Webmail 소개  (0) 2008.12.26
JSCalendar를 활용한 일자 조회  (0) 2008.12.26

 

이른바 빅 사이트들의 웹 테크놀로지가 어떻게 구성되어 있는지에 대한 정보를 공유하겠습니다. 웹 서비스 설계에 있어서 가장 중요한 부분이 High Scalability일 것입니다. 수많은 트래픽을 어떻게 극복할 것인가?
이런 부분을 고민하다보면 웹의 H/W, S/W 아키텍처를 어떻게 구성할 것인가 부분이 나오게 되는데 해외의 빅 사이트들의 구성도를 보면서 이렇게 구성해도 High Scalability에 문제가 없구나하면서 레퍼런스 사이트만으로도 가능성을 타진할 수 있습니다.

물론 개발 기능들의 높은 성숙도가 더 중요하겠지만요. 이런 다양한 사이트들의 사례를 통해 High Scalability의 문제를 보완해 나가고 타당성의 검증 근거로 삼게 되죠.
참고로 빅 사이트들은 Flickr, YouTube, PlentyOfFish, Digg, TypePad, LiveJournal, Friendster, MySpace, Wikipedia의 9개 사이트입니다.


위의 그램을 요약해보면..
  • OS: Linux 7 - Windows 2
  • Web server: Apache 7 - IIS 2 - Lighttpd 2
  • Scripting: PHP 4 - Perl 4 - ASP.NET 2 - Python 1 - Java 1
  • Database: MySQL 7 - SQL Server 1 (possibly 2)
윈도우 서버보다는 리눅스 서버가 많고 웹 서버는 아직까지 Apache가 많네요. 데이터 베이스틑 MySQL이 많은 사용률을 갖고 있네요. 물론 네트워크 인프라 등의 정보도 중요하겠죠. ^^
  • 참고 사이트 : http://royal.pingdom.com/?p=173

'개발도 하냐?' 카테고리의 다른 글

웹 프레임워크 비교  (0) 2008.12.26
Lightweight Architecture  (0) 2008.12.26
톰켓을 사용하는데 필요한 20가지 Tips  (0) 2008.12.26
웹 퍼블리셔란?  (0) 2008.12.20
DTD에 따른 브라우저 박스크기변화  (0) 2008.12.20

 

1. root권한으로 sendmail이 SMTP 포트를 점유해서 바인딩 에러 조치
 - #vi /etc/sysconfig/sendmail  -> DAEMON=no로 수정
 -#/etc/rc.d/init.d/sendmail restart 처리하면 25 port Listen하지 않음

2. james-2.3.1 다운
 - #wget http://apache.tt.co.kr/james/server/binaries/james-binary-2.3.1.tar.gz

3. #cd /home/k2/server/james-2.3.1
 - #chmod 755 run.sh phoenix.sh
 - #./run.sh(root) or ./phoenix.sh start &
   Using PHOENIX_HOME:   /home/k2/server/james-2.3.1
   Using PHOENIX_TMPDIR: /home/k2/server/james-2.3.1/temp
   Using JAVA_HOME:      /home/k2/jdk1.5.0_01
   Running Phoenix:

   Phoenix 4.2

   James Mail Server 2.3.1
   Remote Manager Service started plain:4555
   POP3 Service started plain:110
   SMTP Service started plain:25
   NNTP Service started plain:119
   FetchMail Disabled

4. 설정 추가
 - #/home/k2/server/james-2.3.1/apps/james/SAR-INF/config.xml
  : <servername>mimul.com</servername>
  : <server>211.1.111.11</server>

5. 유저 생성
  #/home/k2/server/james-2.3.1/bin> telnet localhost 4555
  Trying 211.245.104.40...
  Connected to kth (211.245.104.40).
  Escape character is '^]'.
  JAMES Remote Administration Tool 2.3.1
  Please enter your login and password
  Login id:
  root
  Password:
  root
  Welcome root. HELP for a list of commands
  adduser pepsi password
  User pepsi added
  quit
  Bye
  Connection closed by foreign host.

6. 메일 발송
  #/home/k2/server/james-2.3.1/bin> telnet mimul.com 25
  Trying 211.245.104.40...
  Connected to sss (211.245.104.40).
  Escape character is '^]'.
  220 sss SMTP Server (JAMES SMTP Server 2.3.1) ready Wed, 12 Sep 2007 23:54:53 +0900 (KST)
  ehlo mimul.com
  250-sss Hello mimul.com (sss [211.245.104.40])
  mail from: <pepsi@mimul.com>
  250 2.1.0 Sender <pepsi@mimul.com> OK
  rcpt to: <pepsi@mimul.com>
  250 2.1.5 Recipient <pepsi@mimul.com> OK
  data
  354 Ok Send data ending with <CRLF>.<CRLF>
  subject: test to pepsi@mimul.com
  test
  .
  250 2.6.0 Message received
  quit
  221 2.0.0 sss Service closing transmission channel

7. 메일 확인
 - #/home/k2/server/james-2.3.1/apps/james/var/mail/inboxes/pepsi> more 4D61696C313138393630393138383933372D30.Repository.FileStreamStore
Return-Path: <pepsi@mimul.com>
Message-ID: <29215192.01189609188977.JavaMail.root@sss>
MIME-Version: 1.0
Content-Type: text/plain; charset=us-ascii
Content-Transfer-Encoding: 7bit
Delivered-To: pepsi@mimul.com
Received: from sss ([211.245.104.40])
          by kth (JAMES SMTP Server 2.3.1) with SMTP ID 92
          for <pepsi@mimul.com>;
          Wed, 12 Sep 2007 23:59:47 +0900 (KST)
Date: Wed, 12 Sep 2007 23:59:47 +0900 (KST)
From: pepsi@mimul.com
subject: test to pepsi@mimul.com
test

'오픈소스SW' 카테고리의 다른 글

Web-Based WYSIWYG editor 비교  (0) 2008.12.26
Subversion 설치하기  (0) 2008.12.26
Ajax기반의 Webmail 소개  (0) 2008.12.26
JSCalendar를 활용한 일자 조회  (0) 2008.12.26
Open Source 기반의 차트 프로그램  (0) 2008.12.26

1. jdk 1.5이상이면 아래 설정을 JAVA_OPTS안에 추가한다면 YourKit을 가지고 힙덤프를 분석할 수 있다.
 -XX:+HeapDumpOnOutOfMemoryError -XX:HeapDumpPath=/logs/heapdump

2. Jasper 2 JSP Engine 지원을 위해 $CATALINA_BASE/conf/web.xml 설정 변경하라.
 - development : false, genStringAsCharArray : true, modificationTestInterval : true, trimSpaces : true
 - 자세한 건 여기를 참조하라.

3. 가용성 확보를 위해 Tomcat의 clustering/session replication을 사용하라.
 - 사용방법은 여기를 참조하라.

4. error pages를 작성하여 적용하라.(web.xml)
 - <error-page>
      <error-code>404</error-code>
      <location>/error/404.html</location>
   </error-page>

5. 어플리케이션에서 System.out과 System.err를 제거하고 Log4j를 사용하라.

6. application마다 같은 라이브러리는 WEB-INF/lib에서 CATALINA_HOME/shared/lib로 옮겨서 공유하라.
 - 메모리를 절약할 수 있다.

7. memory parameters를 잘 활용하라.

8. 불필요한 어플리케이션을 제거하라.

9. Manager서버의 보안을 강화하라.
 - CATALINA_HOME/conf/tomcat-users.xml
  <role rolename="manager">
   <user username="darren" password="ReallyComplexPassword" roles="manager"></user>
  </role>
 - CATALINA_HOME/conf/server.xml에 IP 블럭킹 기능도 유용하다.
  <Valve className="org.apache.catalina.valves.RemoteAddrValve" allow="192.168.1.*"></Valve>

10. server.xml을 최적화 하라.
 - 서버 환경에 맞는 CATALINA_HOME/conf/server-original.xml, CATALINA_HOME/conf/server-minimal.xml 선택하여 server.xml로 변경하라.

11. 톰켓 업그레이드는 설치디렉토리를 분리하여 적용하라.

12. Tomcat 서버는 root로 띄우지 마라.
 - 자세한 내용은 여기를 참조하라.

13. Precompile JSPs (at build time)
 - 자세한 내용은 여기를 참조하라.

14. 디렉토리 보이는 걸 막아라.
  - CATALINA_HOME/conf/web.xml
  <servlet>
   <servlet-name>default</servlet-name>
   <servlet-class>org.apache.catalina.servlets.DefaultServlet</servlet-class>
   <init-param>
   <param-name>debug</param-name>
   <param-value>0</param-value>
   </init-param>
   <init-param>
   <param-name>listings</param-name>
   <param-value>false</param-value>  <!-- make sure this is false -->
   </init-param>
   <load-on-startup>1</load-on-startup>
  </servlet>

15. 듀얼 코어 CPU를 사용할 경우 쓰레드풀을 250개 이상 설정하라.

16. Tomcat MBeans이나 다양한 모니터링 도구를 활용하여 서버를 모니터링하라.
 - 자세한 내용은 여기를 참조하라.

17. jdk1.5, 1.6이 성능이 좋다.

18. -server JVM option을 사용하라.

19. GZIP compression을 사용하라.
 - <Connector>compression="on"
   compressableMimeType="text/html,text/xml,text/plain,application/xml"
   </Connector>
 - 자세한 건 여기를 참조하라.

20. Security Manager를 잘 사용하라.
 - 자세한건 여기를 참조하라.


 

Claros의 inTouch 소개

Ajax기반의 웹 메일 오픈 소스를 하나 소개하겠습니다. James와 구성하여 자체 웹 메일 서비스 기능 구현을 해도 손색이 없을 것 같네요. 그리고 다양한 채팅이나 주소록을 지원하기 때문에 개인 커뮤니티 서비스로도 가능할 듯 합니다.

inTouch

1. 주요 기능들

  • Ajax Webmail
     - Ajax기반의 웹 메일을 임. po3나 imap 지원되는 메일 서버로 접근하여 메일을 가져옴
  • Bayesian Spam Protection
     - 스팸 필터링 기능 제공
  • MIME Compatible
     - 마임 타입 지원
  • RSS Reader
     - 탑 사이트에서 RSS지원(하나의 사이트만)
  • Multi-language
     - 다양한 언어 지원
  • Instant Messenger
     - 구글 메신저와 통신 가능
  • Multi-protocol Supports
     - Pop3, IMAP 지원
  • Contacts
     - 주소록 지원
  • Post-it Notes
     - 포스트잇 지원

2. 설치 방법

  • Install the Java 2 SDK, version 1.5 or 이상의 버젼을 설치한다.
  • Install Tomcat 5.x, 6.x 설치를 한다.
  • Install MySQL후 intouch-mysql.sql을 intouch 데이터 베이스 생성후에 실행한다.
  • intouch2.war파일을 CATALINA_HOME/webapps 에 카피해서 디플로이한다.
  • CATALINA_HOME/webapps/intouch2/WEB-INF/config/config.xml 파일을 수정한다.
     - /tmp 디렉토리 지정, 메일 서버 셋팅, mysql 데이터 베이스 설정
  • Tomcat 리스타트

'오픈소스SW' 카테고리의 다른 글

Subversion 설치하기  (0) 2008.12.26
James Server 활용  (0) 2008.12.26
JSCalendar를 활용한 일자 조회  (0) 2008.12.26
Open Source 기반의 차트 프로그램  (0) 2008.12.26
Ajax Scripts  (0) 2008.12.26

+ Recent posts