<< 4월 2007 | | 6월 2007 >>

Lightweight Architecture

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를 선택하는 이유이다.

 

Eclipse와 Subversion과의 연동

  • 이클립스의 Help>software updates 선택.
    - Search for new features to install 버튼 선택 후 Next 클릭.
  • Subclipse update site 선택
    - 없을 경우 New Remote Site 추가(Name : subclipse, URL : http://subclipse.tigris.org/update).
    - finish 클릭.
  • Install 화면에서 Next, Next 후 Finish버튼 클릭
    - 자동으로 Eclipse에서 http://subclipse.tigris.org/update 사이트에 접속하여 패키지 다운로드 수행함.
  • Install All 클릭
    - 패키지 전부 다운 받으면 Install All 클릭을 통해 설치함.
  • 재시작 버튼 클릭
    - 설치가 완료되면 재시작 버튼을 클릭하여 이클립스 재시작함.
  • svn 추가 확인
    - window->preferences에 Team부분을 보면 다음처럼 SVN관련이 추가된 것을 볼 수 있음.
  • 메뉴에 window -> show view -> other -> SVN 하위의 SVN repositories를 선택.
    - 선택하면 SVN repositories 화면에 생성됨.
    - SVN repositories 화면에서 마우스 오른쪽을 클릭해서 new>repository location으로 새 저장소를 생성한다.
    - http://www.mimul.com/svn/sample URL 등록하고 mimuluser/패스워드를 기입하고 Finish를 클릭함.
    - VN repositories에 해당 svn이 나타남.
  • 신규/기존 프로젝트에서 SVN 연결 시도
    - Project에서 마우스 오른쪽 클릭>Team>Shared Project 클릭
    - 셋팅이 되어 있는 SVN repository를 선택하면 된다. (만약 접근 오류가 나오면 workspace 디렉토리 속성의 읽기 전용인지 확인하여 해제를 해줌)
    - Select All을 클릭하여 해당 프로젝트의 모든 파일을 선택하여 Commit을 수행함.

Subversion 설치하기

  • 필요한 파일들
    - 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/

쿠키에 대한 정보

1. 제한

  • 전체갯수 : 300개(RFC 2109).
  • 특정 도메인에서 사용 가능 개수 : 20개
  • 사이즈 : 4096 byte

2. 추가 정보

  • 쿠키와 세션을 같이 사용하는 경우 두 사이즈가 4096 이 넘을 경우에 문제 발생함.
  • 압축 기술도 전송 시 사이즈를 줄이는 기법이므로 쿠키 사이즈와는 상관어 없음.
  • 근거 사이트(RFC 2109) : http://www.ietf.org/rfc/rfc2109.txt.
태그 :

맥킨지의 웹 2.0 투자 전망 보고서

2007년 2월 맥킨지의 How businesses are using Web 2.0라는 제목의 조사에서 어떤 웹 2.0 기술이 유망하는지 조사 결과를 내놓았네요. 즉, Web 2.0 기술의 투자에 대해서 기업의 CEO, CTO를 대상으로 설문을 하여 Web 2.0기술의 투자 예상치를 도표로 나타내었습니다.

Wen 2.0
내용을 보면 집단 지성 부분에는 48%, Peer to Peer network분야는 47%, social network는 37%으로 나온 것을 봐서 앞으로는 Peer Production 분야의 연구와 투자가 많을 것으로 진단을 했습니다.
그리고 RSS, Podcast, Wikis, Blogs 등이 뒤를 이었습니다. 일단 Peer Production을 활성화 된다는 것은 소셜 미디어 툴인 블로그나 위키의 활성화가 기본 베이스가 되어야 할 것입니다. 이 인프라를 통해서 많은 부분으로 확장이 가능하기 때문입니다.
이런 걸 보면 근 2-3년 사이에 과거의 중앙 집중식, 탑다운 방식의 웹에서 이젠 개인들이 스스로 콘텐츠를 생산할 수 있는 플랫폼을 구성하고 공유할 수 있도록 플랫폼이 활성화 될 것입니다.
제가 생각하기에도 Social Network를 통한 집단 지성의 구현이나, 인적 네트워크 구성을 통한 다양한 인적 관계를 비지니스화 하는 부분이 많은 연구가 되고 비즈니스가 출시 될 것으로 보입니다.
물론 이런 부분을 비즈니스로 도출하기 위해서는 시맨틱 기술이 비즈니스와 접목을 해야 하지 않을까 생각되네요.

 

Top 100 Feeds Subscribers

FeedBurner에서 가장 많이 구독하는 사이트 순입니다. 앞서 블로그에 포스팅한 것과 비교를 해보니 1위가 바뀌었네요. 요즘은 지식을 블로그에서 얻는 사람들이 많습니다. 아래의 블로그를 찾아서 자신에 맞는 지식을 구독하세요. 시간이 지나면 많은 지식을 자신의 것으로 만들수 있게 됩니다.

Site Subject Subscriber count
Engadget Technology
Boing Boing Technology & Humor
TechCrunch Technology
Simply Recipes Cooking
Xataka Technology
Interesting Thing of the Day Info
Mashable Technology
43 Folders Technology
TechCrunch.fr Technology
Dumb Little Man Misc
37 Signals Technology
Freakonomics Technology
John Battelle’s Search Blog Technology
Daily Kos Info
Read/Write Web Technology
Coding Horror Technology
Crunch Gear Technology
Duct Tape Marketing Business
Church of the Customer Technology
Micro Persuassion Technology
Life Hack Technology
Genbeta Technology
Coolest Gadgets :) Technology
pf blog Finance
Small Business Trends Technology
BlackRimGlasses Technology
ProBlogger Blogging
Search Engine Watch Technology
Get Rich Slowly Finance
Matt Cutts Webmaster & SEO
FeedBurner Blogging?
Loic Le Meur’s blog Technology
Double Tongued Info
WebDeux.info Technology
CopyBlogger Blogging
Britannica Blog Technology
feld Business
Computer Zen Technology
Digital Tech News Technology
flickrbabes Eye candy
Writers Write Info
Emily Chang Technology
Mobile Crunch Technology
The Apple Blog Technology
VidaExtra Technology
Fan Blogs Misc
Search Engine Roundtable Webmasters & SEO
Search Engine Journal SEO
Manolo?셲 Shoe Blog Misc
Search Engine Land Webmasters & SEO
bitelia Technology
The Budget Fashionista Technology
SEOmoz SEO
Quick Online Tips Webmasters
Digital Inspiration Technology
Techno Chica Technology
plasticbag.org Technology
Applesfera Technology
Gizmologia Technology
Shoe Money Technology
Pronet Advertising Technology
Ruby Inside Technology
The Simple Dollar Finance
David Seah Technology
Online Marketing Blog Technology
Everything USB Technology
snook.ca Technology
Apple Weblog Technology
Shopping Blog Shopping
Directo al paladar Technology
le Hournal du Geek Technology
Marketing Pilgrim Technology
fosfor gadgets Technology
Zen Habits Technology
Talk Crunch Technology
2803 Technology
John Chow Making Money
weblog tools collection Blogging
Hacked Gadgets Gadgets & Technology
Traders Trade Business
Trump University Business
Entrepreneur’s Journey Technology
Challies Technology
GHacks Technology
Ask Shane Ask Shane
Free iTunes Downloads Technology
Paul Stamatiou Technology
Neatorama Humor
MWG Blog Technology
Go2Web2 Technology
Xataka Movil Technology
Ask the VC Business
LiewCF Technology
hiper def Technology
ConverStations Blogging
Random Good Stuff Humor
Daily Blog Tips Blogging
Science Base Technology
Slash Gear Technology
Macapper Technology
Personal Financial Advice Finance
Net Stumbler Technology
Pick the Brain Intelligent stuff
Bloggers Blog Blogging
Say No To Crack Humor
SEO Pedia SEO
Connected Internet Blogging
Net Business Blog Technology
Matt Brett Technology
One Tip a Day Software
TechBuzz Technology

  • 참고 사이트 : http://selfmademinds.com/200704/which-blogs-have-the-most-feed-subscribers/

2007-05-24 일상

영화

내일의 기억광고회사에서 완벽한 일정 관리와 탁월한 수행 능력을 인정받으며 열심히 사는 사에키(와타나베 켄)와 그 옆에서 여러가지 유혹들을 물리치고 언제나 함께할 것을 약속하는 지고 지순한 에미코(히구치 카나코)가 주로 이끌어 가는 이 영화는 진한 감동으로 관객들에게 눈물샘을 자극하는 오랫만에 볼 수 있는 휴먼 영화인 듯 합니다.
엄격하면서도 자상함이 묻어있는 사에키의 연기를 보노라면 정말 일상 생활에서 우리가 마치 겪고 있는 일화처럼 착각을 오게 합니다. 더군다나 이 영화를 보기 전에 MBC에서 휴먼 다큐 사랑 중에 "안녕 아빠-암에 걸린 아버지와 그 가족들의 삶을 보면서 가족의 소중함을 느끼게 하는 다큐" 라는 다큐먼터리를 보았던 터라 오늘 하루는 많은 눈물을 고이게 한 하루였습니다. 아버지라는 위치, 남편이라는 위치를 다시 한번 깊게 생각해 보는 기회였습니다.

추억이 소중한 만큼 자신의 소중한 기억이 잊혀져가는 것에 대한 아픔이 주인공의 마음이 슬픔으로 다가오네요. 그리고 아내의 이런 아픔을 자신의 일로 받아들이고 항상 밝은 모습을 보여주어 보기 참 좋았습니다. 그리고 마지막에 아내와의 추억을 생각하면서 밤이 그려진 도자기 컵을 소중이 간직하는 장면, 아내와 처음 만났던 장소에 갔던 일 등 과거에 대한 소중한 추억은 간직했지만 정작 사랑하는 아내와의 대면하는 자리에서는 알아보지 못하는 사에키의 장면이 오버랩되면서 많은 슬픔을 느끼게 하네요.

5월은 가정의 달이라 가족들이 보면 좋은 영화와 다큐먼터리들이 많이 나오는 것 같네요.
참고로 자신의 마음을 정화하기엔 이 영화가 아주 좋을 것 같습니다. 그리고 가족과 연인이 보기에도 더 없이 좋아 보이네요. 후회없는 결정이 될 것입니다. 강추..

앞으론 "와타나베 켄"의 팬이 될것 같습니다. 자연스럼 연기가 너무나 아름다워 보입니다.

구글 웹 마스터 사용기

구글 검색엔진 최적화 시키기

제가 웹 마스터를 사용하는 계기는 검색 엔진에서 저희 사이트의 링크를 인덱싱을 쉽게 하도록 도와주기 위해서입니다.
이렇게 함으로써 검색엔진에 최적화된 사이트가 되어 쉽게 검색엔진에 노출 될수 있어 사이트의 활성화에도 많은 도움이 되겠죠?
이런 방법이 하나의 SEO로 가는 길이 아니겠습니까?
아래는 구글 검색엔진에 최적화 하기 위한 구글 사이트 맵을 추가하는 방법을 설명해 보겠습니다.

1. 먼저 사이트 맵을 추가할 수 있는 웹 마스터 도구 사이트로 진입

dashboard
2. 자신의 블로그 사이트를 등록
sitemap
등록된 URL을 기입하여 확인 버튼을 클릭합니다.

3. 웹마스터 도구에서 Sitemaps를 클릭
sitemap

4. 사이트 맵 유형 과 Sitemap URL을 등록
Sitemap
Sitemap URL에는 자신의 RSS 페이지를 등록하면 됩니다.

5. 사이트 확인
sitemap

사이트 확인은 등록한 URL이 자신의 것인지 확인하기 위해서 확인을 받아야 합니다. 위의 그림에서 처럼 진단탭에서 사이트 확인 링크를 클릭한 다음, 메타태그 추가와 파일 업로드 두가지 방법 중에 하나를 선택하시어 하면 됩니다.
전 파일 업로드를 통해서 확인을 받았습니다.

BitTorrent 기술 이해

오늘은 제가 BitTorrent 기술을 설명해 보겠습니다.
아래는 BitTorrent 의 흐름을 그림으로 그려봤습니다.

BitTorrent

BitTorrent는 3개의 Entity 즉, File Server에 호스팅된 torrent파일과 Tracker, Peer들로 구성되어 있습니다.
자세한 설명은 아래 용어 정의에서 확인하실 수 있습니다. 자, 그럼 BitTorrent 방식은 어떻게 파일을 다운로드되는지 설명하겠습니다.
특정 이용자가 올린 파일은 BitTorrent 프로토콜의 운영에 동의한 파일이라는 가정하에 아래 시나리오를 정리했습니다.

  • 클라이언트인 Leech가 원하는 파일을 얻기 위해서 Tracker에 Peer-List의 정보를 요청하여 정보를 받습니다.
  • Leech는 클라이언트 정보를 파악하여 네트워크나 서버 정보가 좋은 클라이언트에게 Hash정보를 가지고 특정 파일 조각(pieces)을 요청한다.
  • Seed는 특정 파일 조각(pieces)을 Leech에게 제공한다.
  • Leech는 파일의 조각의 해시값을 비교하여 파일을 조합한다. 이때 Leech는 다운로드 받을 전체 파일의 사이즈를 미리 할당해 놓은 상태입니다.
  • Seed가 자신의 서버 부하 상태가 나빠질 경우 uncoke를 통해서 Tracker와 최신의 상태 정보를 공유하게 됩니다.

BitTorrent의 제한점

  • 파일 다운 받을 수 있는 Peer정보들을 가지고 있고 수시로 Peer정보를 최상의 상태로 만들어야 하기에 Tracker의 성능이 좋아야 한다. Tracker가 다운되면 BitTorrent 시스템은 불가능하게 된다.
  • 파일 조각의 사이징에 따라 다운로드 성능에 영향을 많이 받는다.
  • 작은 파일들의 전송시에 네트웍 오버헤드가 높아진다.
  • Peer들에게 Attack의 대상이 되기도 한다.

보완 되어야 할 점

고객들의 자원을 활용하므로 인해 네트워크에 대한 비용 전가에 대한 혜택을 제공해야 합니다. 그리고 Peer들의 공격의 대상이 될 수도있고 바이러스의 전파 경로로 활용, 보안 등으로 이용될 수 있어 이런 문제점 해결이 보완되어야 합니다.


아동문학가 권정생 선생님 별세

권정생소박이라는 단어가 가장 잘 어울리는 작가가 있습니다. 이름하여 권자 정자 생자를 쓰시는 권정생님입니다.
작고 보잘 것 없는 사물(미물 - 저의 도메인이기도 하죠)과 힘겨운 인간의 삶을 보듬는 따뜻하고 진솔한 글로 어린이는 물론 성인 독자들로부터 폭넓게 사랑받았던 작가님이십니다.
그의 저서는『강아지똥』『사과나무밭 달님』『몽실언니』『바닷가 아이들』『점득이네』등이 있습니다. 이중에서도 몽실언니는 1984년에 발간되어 60만부 이상 팔린 아동 문학의 베스트셀러입니다.

선생님은 평생 가난하게 살았습니다. <몽실언니>가 티브이 드라마로 방영되면서 받은 돈도 어린이 문학협의회에 보태라고 고스란히 떠넘기기도 했는데 회원들이 이를 받아야 하나 말아야 하나 망설였다고 합니다.
자신의 책이 <느낌표>에 방영되면 베스트 셀러가 될텐데도 아이들이 책방에서 스스로 책을 고르는 행복을 빼앗는다고 티브이 방영을 나무라기도 했답니다.
돈보다 생명과 인간을 먼저 생각했습니다. 정말 이런 분이 세상에 많이 알려져야 할터인데..

올해가 가가 전에 선생님이 사셨던 안동시 일직면 조탑동에 한번 들러볼 생각입니다. 참고로 선생님을 자세히 아시고 싶은분들은 여기를 클릭해 주세요.

선생님 편안한 곳에서 마음 편히 쉬세요.

  • 이 동영상의 자작권은 EBS에 있습니다.

5.18입니다.

518오늘이 바로 5.18이네요.
이젠 사람들의 기억 저편에서 잠자고 있는 사건이 되어 버린건가요? 매스컴에서 떠들때만 우리들의 뇌리에 잠시 스켜가는 기억인가요?
오늘은 1980년 5월 18일 군부독재에 의해서 많은 희생자들의 넋이 헛되지 않도록 잠시나마 묵념을 한번 올립시다. 전 화장실에서 묵념을..
물론 이러한 하나의 행위만으로 그날의 상처가 아물진 않지만 넋이라도 기리기 위한 우리들의 최소한의 양심이 아닐까 생각해 봅니다. 오늘만이라도....

세상은 왜 이렇게 뒤틀려 있을까요?
그 당시의 강자와 약자의 삶이 지금에 와서 보면 어떻게 바뀌어 있을까요? 총의 머리에서 춤추던 사람들이 떵떵 거리면서 사는 세상이 보기에 좋습니까?
이런 글을 쓸때마나 저의 손과 가슴과, 머리는 더러워 지게 되는 군요.
하지만 우리의 약자인 희생자 유가족들을 위해서만이라도 오늘 하루는 건강하고 마음 편하게 사시라고 기도하고 싶네요.
많은 보탬은 되지 못한 저이지만 우리의 기억 저편에 있는 것을 하나, 둘 꺼집어 내어 그분들의 한이라도 없애줄 수만 있다면, 누그러뜨릴 수만 있다면  블로그를 통해서라도 그 분들의 마음을 대변해 주고 싶어요.

태그 :

마케팅 22가지 법칙

MarketingJack Trout는 "A Genie's Wisdom:A Fable of How a Ceo Learned to Be a Marketing Genius" 책에서 마케팅에 관한 22가지의 보편 타당한 법칙을 도출했네요.
하나 하나 내용을 보노라면 기가 막힌 내용들입니다. 표현이 좀 그랬나요? ^^ 이 책은 마케팅에 문외한도 재밌게 이해를 하면서 읽을 수 있는 책입니다. 일단 별 다섯개 강추입니다.
저는 이제서야 읽어 보았네요. 그 외에 다른책들도 괜찮은 게 있져.

1. The Law of Leadership (선도자의 법칙)
   더 좋은 것 보다는 맨 처음이 낫다.

2. The Law of the Category (영역의 법칙)
   어느 영역에 최초로 들어간 사람이 될 수 없다면 최초로 뛰어들 새로운 영역을 개척하라

3. The Law of the Mind (기억의 법칙)
   시장보다는 고객의 기억속에 가장 먼저 들어가는 것이 더 중요하다.

4. The Law of Perception (인식의 법칙)
   마케팅은 제품이 아니라 인식의 싸움이다.

5. The Law of Focus (집중의 법칙)
   마케팅에 있어서 가장 강력한 개념은 잠재 고객의 기억 속에 한 단어를 심는 것이다.

6. The Law of Exclusivity (독점의 법칙)
   두 회사가 같은 단어를 잠재 고객의 기억 속에 심을 수는 없다.

7. The Law of the Ladder (사다리의 법칙)
   기억 사다리의 어느 가로대를 차지하느냐에 따라 채용해야 할 전략이 달라진다.

8. The Law of Duality (이원성의 법칙)
   장기적으로 볼 때 모든 시장은 두 마리의 말만이 달리는 경주가 된다.

9. The Law of the opposite (정반대의 법칙)
   2인자를 겨냥하고 있다면 당신의 전략은 선도자에 의해 결정된다.

10. The Law of Division (분할의 법칙)
    시간이 지나면 하나의 영역이 분할되어 둘 또는 그 이상의 영역이 된다.

11. The Law of Perspective (원근의 법칙)
    마케팅 효과는 상당히 긴 기간에 걸쳐 나타난다.

12. The Law of Line Extension (계열 확장의 법칙)
    기업은 성공한 브랜드의 이미지를 확대하려는 유혹에 쉽사리 빠진다.

13. The Law of Sacrifice (희생의 법칙)
    얻기 위해서는 포기해야 한다.

14. The Law of Attributes (속성의 법칙)
    어느 속성이든 효과적인 속성이 있게 마련이다.

15. The Law of Candor (솔직성의 법칙)
    스스로가 부정적이라는 것을 드러낼 때 잠재 고객은 당신을 긍정적으로 여길 것이다.

16. The Law of Singularity (단독의 법칙)
    각각의 여건에서 오직 하나의 행동만이 실질적인 성과를 올린다.

17. The Law of Unpreditability (예측불능의 법칙)
    경쟁자의 계획들을 작성해 보지 않으면 미래를 예측할 수 없다.

18. The Law of Success (성공의 법칙)
    성공은 종종 오만으로 이끌어가고 오만은 실패로 이끌어 간다.

19. The Law of Failure (실패의 법칙)
    실패는 예상되고 받아들여져야 한다.

20. The Law of Hype (과장의 법칙)
    기업의 상황이 언론에 나타난 것과 정 반대인 경우가 종종 있다.

21. The Law of Acceleration (가속의 법칙)
    성공할 수 있는 계획은 일시적 유행이 아니라 장기적인 추세를 바탕으로 해서 세워진다.

22. The Law of Resources (재원의 법칙)
    적절한 자원(Money, Human Resource, Physical Resource)의 뒷받침이 없다면 아이디어가 살아 이륙할 수 없다.


태그 :

시맨틱 웹의 기술 이해

오늘은 시맨틱 웹 기술에 대한 생각을 좀 적어보겠습니다.
현재의 검색 기술의 근간인 패턴 분석을 통한 검색에는 많은 한계점이 있어, 지식과 의미를 가지고 컴퓨터가 이해를 할 수 있는 방식으로 구현하는 시맨틱 웹 기술을 활용하는 사례가 많습니다.
사용자의 의도를 간파하고 원하는 정보를 찾아주기 위한 기술이죠.
예를 들자면 "맛있는 배"를 검색하면 항구의 배가 나와서도 안되고 사람의 배가 나와도 안될 것이며..
"맛있는"으로 보아서 먹는 배가 나와야 하겠죠. 이런 검색이 가능하도록 하는게 바로 RDF/OWL Editor를 가지고 전문가들에 의해서 온톨로지를 구축하게 됩니다.

이런 시맨틱 웹 기술이 정확성을 높일려면 온톨로지 셋을 구축해야 한다. 하지만 온톨로지 셋을 구축하기에는 아직까지는 시간이 많이 필요합니다.
왜냐하면 대부분 수동으로 전문가에 의해서 작업이 이루어지기 때문입니다. 그리고 전문가의 개인적인 성향에 의해서 검색의 내용이 바껴질 수 있는 오류도 내포한다고 말할 수 있다.
이런 문제를 극복하기 위해서는 위키피디아처럼 다양한 일반 사용자들에 의한 온톨로지 셋 구축에 참여하게 하는 방안도 좋은 방안이라고 생각된다.

이런게 Peer Production이라고나 할까?
시맨틱 웹 기술은 만능은 아니다. 아무리 추론 엔진이 좋다고 해서 인간의 사고를 따라가기는 힘들다. 하지만 인간의 의도하는 부분의 패턴을 잘 조합하여 상하, 수평적 의미 관계의 통계를 분석하고 객관적인 근거 데이터들을 조합하여 최대한의 비슷한 의미를 추론할 수 있어야 겠다.

OpenID 이해

1. 오픈 아이디의 프레임워크
OpenId Framework
2. 오픈 아이디 인증 프로세스
OpenID Flow
  1. End User는 OpenID를 사용하여 Consumer 사이트에 로그인을 요청한다.
  2. Consumer 사이트는 Claimed Identity를 요청하기 위해서 ID Provider에게 리다이렉트하여 패스워드 입력 화면을 제공한다.
  3. End User는 Credentials을 입력하면 ID Provider는 Identity를 Verify한다.
  4. Identity Provider는 OpenID URL의 Identity가 확인 되면 인증된 URL로 Consumer 사이트로 Redirect된다.
  5. 로그인이 완료되면 End User는 Consumer 웹사이트에서 로그인 완료 메세지와 함께 원하는 행위를 하게 된다.

3. 오픈 아이디 용어 정의
  • Consumer Wbsites(Relying Party) : OpenID기반의 인증이 필요한 블로그, 위키, 평판 사이트들을 지칭함.
  • Identity Provider : 사용자의 Identity 정보가 저장되어 있는 서버.(OpenID Server, OpenID Provider, OP, IDP라고도 함)
  • End User : IDP에 저장된 Identity를 사용하여 OpenID 시스템을 사용하여 인증을 하고자 하는 사용자.
  • User Agent : End User가 사용하고 있는 웹 브라우저.
  • Identifier : End User의 Digital Identity를 식별할 수 있는 URL.


키맵 사이트 소개

Social Network 응용 사이트 소개

키워드 간의 관계를 보여주는 키워드 맵를 한번 둘러봤습니다.
그래서 Open Source, Social Network, KMS 등을 춰봤는데 관련된 키워드들이 주루룩 나오네요. ^^
어떤 방식으로 구현한 것일까? 궁금하군요. 아래는 Open Source 키워드를 입력해서 나온 결과 화면입니다.

Key Map

오른쪽 가지는 입력한 키워드가 포함된 키워드들인것 같구요. 왼쪽 가지는 다르지만 관련된 키워드들인것 같네요.
밑에는 키워드 리스트가 나오구요. 해당 키워드의 맵을 링크시켜놨군요.

태그 :

Top Ten Software Engineering Ideas

Top ten SE ideas Software Best Practices conference에서 The Yourdon Report 자료에서 소프트웨어 엔지니어링에서 가장 중요한 아이디어들에 대해서 mind-maps을 통해 표현해 놨네요.

다양한 책들도 실려있어 엔지니어링에 대한 전반적인 그림을 그리고 뭐부터 이해를 해야하는지, 어떤걸 파악해야하는지에 대한 내용들을 유추할 수 있을듯 보입니다. 아이디어의 정리를 잘 활용하는 샘플로 보아도 좋구요.

자세한 내용은 다음 사이트에 가시면 보실 수 있구요. PDF파일은 여기서 받을수 있네요. ^^

태그 :

Pebble 2.1-rc1 업그레이드

Pebble 설치형 블로그 업그레이드 작업 진행

제 블로그는 Pebble이라는 설치형 Leghtweight 블로그 툴을 사용하여 운용중이었는데 때마침 Pebble 2.1-rc1 업그레이드 되었다는 메일이 와서 어제 업그레이드를 단행했습니다. 외형으로는 크게 달라진게 없지만 언제나 그렇듯이 사소한 버그들을 보완하고 Ajax 기능, Archive기능 등이 추가되었다고 합니다. 자세한 내용은 아래와 같네요.

  • Fixed problem with local characters and HTML entities in comments.
  • Added ability to get newsfeeds for private blogs via HTTP Basic authentication.
  • Tweaks to bundled themes.
  • Added support to upload multiple files at once (in the file browser).
  • Fixed problem with ampersand character being escaped in website URLs when adding comments.
  • PEBL-8 : Image option in Blog properties does not work
  • Added Hungarian translation, provided by Zoltan Levardy.
  • Fixed broken link in plugins help page.
  • First version of Ajax comment system.
  • Added some Scriptaculous effects.
  • Added support for sup and sub tags in allowed HTML for comments.
  • Fixed problem in blog entry/comment/TrackBack body truncation code to prevent truncation occurring in the middle of a HTML entity.
  • Added an "about" property to blogs and a sidebar component that displays this content.
  • Added generic feed reader sidebar component.
  • Added ability to clone blog entries.
  • Added ability to make a blog private, without needing to modify the Acegi configuration.
  • Fixed "Number of blog entries in sidebar cannot be set to 0" bug.
  • Added username/password labels to the login sidebar component.
  • Fixed problem with archives in sidebar to prevent dates way back in the past being displayed.

업그레이드를 하면서 고생한 건 template파일의 절대 경로가 바뀌어 기존의 블로그가 인식하지 않아서 themes를 기존의 사용자가 정의한 user-default를 사용했는데 이것이 먹히지 않아서  default로 바꾸어서 수작업으로 필요한 기능들을 추가해 주고 나니 정상적으로 블로그가 보였습니다. 어제 3-4시사이에 오신 분들은 아마 블로그가 에러화면으로 보였을 겁니다. 이점 사과 드립니다. 404 등 에러가 나오면 자동 작업 화면으로 돌아가게  해 놓았는데 그게 안먹혔습니다. IE버그인것 같기도 하고 해서 찾아 보니 사이즈가 512가 넘어야 한다는 이야기가 있었네요. 이걸 알게된 건 블로그 업그레이드를 완료한 다음이었습니다. ^^ 미리 확인을 하고 작업을 하였어야 하는데 개인 블로그라는 안일한 생각이 앞서서 그만 실수를 했네요,

암튼 무사히 업그레이드를 해서 다행입니다. 다시 한번 어제 저의 블로그를 방문하신 고객중 에러 페이지를 보신분들께 진심으로 사과 드립니다. 앞으로 좋은 글, 유익한 글로 보답고져 하니 너그러이 이해를 구합니다. ^^

태그 :

Fortune 500 Business Blogging Wiki

500대기업의 블로깅 사례를 통한 기업의 블로깅 추세

아래 도표는 SocialText의 조사 결과를 참조하여 기업내의 블로그 시스템의 도입에 대한 추세를 생각해 보았다.
Blogging F500 Company Sample Blog
Advanced Micro Devices (not in '06 F500) AMD Notebook Tester
Amazon.com Amazon Web Services Blog
Cisco Systems Cisco High Tech Policy Blog
CSC Team CSC
Cox Communications Digital Straight Talk
Dell Direct2Dell
Eastman Kodak Company A Thousand Words
eBay eBay Developers Program Blog
Electronic Data Systems EDS' Next Big Thing Blog
Ford Motor Company Bold Moves
General Electric Company GE Global Research blog
General Mills Real Baking with Rose Levy Beranbaum
General Motors Corporation FastLane Blog
Google Google Blog
Hewlett-Packard Company HP Blogs
Honeywell International HoneywellBlogs
ING Group (not in F500) My Cup of Cha
Intel Corporation Intel Geek Blogger
International Business Machines Guide to IBM Blogs
Marriott International, Inc. Marriott on the move
McDonald's Corporation Open For Discussion
Microsoft Corporation MSDN's Microsoft Blogs
Motorola Snowboarding Team blogs [lame]
Nokia N-Gage Mobile Gaming Blog
Nike Nike Basketball Blog
Oracle Corporation OraBlogs
Southwest Airlines Nuts about Southwest
Sprint Things That Make You Go Wireless
Starwood Hotels & Resorts The Lobby
Sun Microsystems Inc Jonathan Schwartz
Texas Instruments Video 360 Blog
Time Warner Jason Calacanis' Blog
The Boeing Company Randy's Journal
The McGraw-Hill Companies Blogspotting
Tribune Company The Swamp
Viacom International MTV News Correspondents
Wal-Mart Stores Wal-Mart Facts
Wells Fargo & Company Guided by History
Whole Foods Market The CEO's Blog - John Mackey (inactive since June)
Xerox Corporation Palo Alto Research Center
Verizon Communications PoliBlog
Yahoo! Yahoo! Search Blog

요즘 기업들에서 블로그와 위키를 도입하는 데가 많다. 지식 경영을 중요시하는 기업에서  지식을 공유하고 협업할 수 있는 시스템으로 블로그와 위키를 많이 적용하고 있다. Tacit Activity의 드러내어 보이지 않는 지식 활동을 밖으로 표출할 수 있는 수단으로 사용한다. Tacit Activity자체는 엄밀히 말하면 정형화된 업무가 아닌 관련된 사람들과의 관계를 구축하고 이들간의 의사소통을 통하여 얻어진 지식이나 경험을 바탕으로 업무를 추진해 나가고 의사결정을 해 나가는 것이기 때문에 기존 제조 중심에서 나온 프로세스 표준화나 개선활동 방법은 오히려 역효과를 낼 수 있다는 것이다.

이런 문제점을 해결 할 수 있는 방안이 무엇이 있겠는가? 바로 정보기술이 이러한 갭을 줄여줄 수 훌륭한 도구로써 역할을 할 수 있을 것으로 생각한다.아직까지도 기업의 정보시스템은BPMS(Business Process Management System)로 대표되는 Transcation에 기초하고 있지만, 앞으로는 Tacit Activity을 자연스럽게 지원할 수 있는 정보시스템의 역할이 더욱 커져야 할 것이다. 그래서 기존의 정보 시스템은 이런 활동을 못해준 반면에 최근의 엔터프라이즈 WikiBlog와 같은 기술들이 기업정보 시스템으로 접목되면서 Tacit Activity을 지원할 수 있는 도구로써 기대가 된다

위의 예에서보듯이 블로그와 위키는 이제 기업의 하나의 지식 관리 시스템으로 자리를 잡아가고 있다고 생각합니다. 이런 툴을 적절하게 활용할 수 있는 지혜가 이젠 모아져여할 시기인 것 같네요.

iBATIS 인 액션 한국어판 출간 소식

iBATISiBATIS 인 액션 한국어판이 5월 22일에 출간된답니다. 축하드립니다. 전 언제 책한번 번역해 볼까요? 아직은 내공이 많이 부족하여 내공을 쌓고 있는 중이랍니다. ^^
쉽고 강력한 SQL 매핑 프레임워크 아이바티스.
번역 하신분은 개발자 블로거로도 유명하신이동국 , 손권남 두 분이십니다.
Spring + iBATIS의 환상의 조합이라는 것은 Java언어를 아는 사람이면 누구나 아실 겁니다. JDBC개발에 생산성 향상에 많은 도움을 주며 무엇보다도 학습해서 활용하는데 있어서 진입장벽이 높지 않아서 좋은 장점이 있습니다.
이런게 바로 오픈 소스가 지향해야할 방향이 아닌가 생각하게 됩니다.
참고로 이 도서의 원서는 iBATIS in Action입니다. 저자는 Clinton Begin , Brandon Goodin , Larry Meadors이죠. 좋은 책이니만틈 지름신이 강녕하지 않을까 생각하게 되네요.
저도 이번 트랙백 이벤트에 당첨되지 않으면 하나 사볼려구 합니다. ^^

태그 :

Browser Versions/Search Engine/OS 통계 및 트랜드

1. Browser 통계

browser

 

2. Browser 트랜드

browser

브라우저의 트랜드는 IE의 하향세속에 FireFox의 점유율이 야금 야금 올라가고 있는 현상이 지속적으로 나타나고 있네요. 우리나라는 다들 아시겠지만 워낙 IE의 점유율이 유독 높은 나라인데 세계적인 추세는 IE에 대한 의존도가 갈수록 줄어드는 현상을 볼 수 있내요.

3. Search Engine 통계

search

 

4. Search Engine 트랜드

search

검색엔진의 경우는 구글의 독주가 지속되고 있네요. 얼마전 구굴이 한국에서도 검색 점유율이 30%가 넘었다는 기사를 접했는데, 아직까지 우리나라에서는 네이버가 굳건한 자리를 차지하고 있네요. 브라우져와 마찬가지로 한국에서만의 예외적인 부분이 있네요.

5. OS 통계

os

 

6. OS 트랜드

os
OS의 트랜드는 아직까지도 윈도우 계열이 압도적인 위치를 차지하고 있네요. 맥이 언제 춤을 출 날이 올까요? 그리고 이젠 웹이 플랫폼으로 바뀌는 성향이 강해 OS로서의 플랫폼은 큰 의미가 상실되어 있는 것 같습니다.

참고 사이트 : Market Share
Technorati Profile

Oracle에서 MTS와 Dedicated 방식의 운용 방법

성능상으로 보면 MTS가 더 낫다는 것은 다들 아시죠. Dedicate방식은 커넥션 연결 요청시 오라크 서버가 하나씩 떠서 응대를 하기 때문에 그런 현상이 발생합니다.
하지만 트래픽이 많아서 200 에러(물론 JDBC 드라이버와 오라클 버젼을 맞추었을지라도-JDBC 버그)를 발생할 경우 어쩔수 없이 Dedicated Server 방식으로 운용을 하게 됩니다. ^^

1. Oracle MTS(MultiThreaded Server) 방식 구동

  • init.ora 수정
    ###########################################
    # MTS
    ###########################################
    dispatchers="(PROTOCOL=TCP)(SERVICE=service_name)(dispatchers=10)"
    max_dispatchers=20
    shared_servers = 10
    max_shared_servers = 20
  • 확인방법
    select * from v$shared_server;
    select * from v$circuit;

위와 같이설정을 하면 dispatchers가 shared server(ora_s로 시작하는 데몬들)와 매핑이 되어 있어서 클라이언트로 부터 커넥션을 분배하면서 서비스는 이루어집니다. 보통 shared server가 MAX개수만큼 ACTIVE를 유지하고 있다면 그 서버 프로세스 문제가 있는 것으로 판단을 하여야 합니다.
그런 상태일 경우는 아마 클라이언트에서 커넥션을 연결할 경우 갑자기 연결이 안될 경우도 있을 것입니다. 실제 커넥션 된 건수가 적더라도요.
아마 오라클 버그일 가능성이 많습니다.

2. Dedicated Server 방식 구동

  • init.ora 수정 - MTS 설정 부분 주석 처리
    ###########################################
    # MTS
    ###########################################
    #dispatchers="(PROTOCOL=TCP)(SERVICE=service_name)(dispatchers=10)"
    #max_dispatchers=20
    #shared_servers = 10
    #max_shared_servers = 20
  • tnsnames.ora 수정
    (SERVER = DEDICATED) 추가.
  • init.ora
    ps -ef |grep ora로 확인하면 oracle<SID> (LOCAL=NO) 형태로 서버가 떠 있음.

주의 사항으로 Dedicated Server 방식으로 운영을 할시에는 서버 하나당 4M정도의 메모리가 필요하므로 커넥션 갯수에 따라 메모리 용량 계산을 해주어야 트래픽이 많을 경우 오라클 서버에 장애 포인트가 없어집니다.

dp.SyntaxHighlighter 소개

개발자라면 소스코드를 웹이나 블로그에 게시할 기회가 많이 있습니다. 이럴때 dp.SyntaxHighlighter()를 사용하여 소스코드의 언어별로 하일라이트 기 능을 통해 다른 사용자들에게 가독성을 높여줍니다.

1. 사용 방법

  • Scripts디렉토리에서 shCore.js 과 함께 원하는 언어 스크립트 파일 을 추가해주면 됩니다. 그리고 주의할 점은 shCore.js 파일은 항상 위에 있어야만 정상 동작합니다.
  • Styles디렉토리에서 css파일을 링크시킨다. 소스 코드는 아래의 코드 내에 넣어주면 됩니다.
  • 추가할 소스 코드 textarea안에 넣습니다. name="code"는 고정
    <textarea class="java" rows="10" cols="80" name="code">추가할 소스 코드</textarea>

2. 예제

웹 성능 향상 개발 방법

1. Make fewer HTTP requests
 - 사용자 응답시간의 80%는 프론트앤드단에서 발생한다. 많은 시간을 페이지의 컴포넌트(이미지, css, script, flash등)를 다운받는데 쓰인다는 얘기다. 위의 컴포넌트는 각각의 http request를 유발시켜서 페이지를 느리게 한다.
 - Image Maps - 이미지 맵은 하나의 이미지로 여러장의 이미지 효과를 나타낸다. 또한 같은 사이즈를 가지고 많은량의 http request를 줄여준다.
 - Css Request - 이미지맵처럼 필요한 이미지를 한장에 담고 css 스타일 적용으로 필요한 부분만 보이게 한다.
 - Inline Images - data:URL scheme를 이용하여 페이지에 이미지 데이터를 삽입시킨다. 따라서 html 페이지의 사이즈는 엄청 커지는데 반해 요청은 줄게 된다.
 - Comblined Files - 스타일시트, 스크립트 파일을 모두 통합하여 하나의 파일에 포함시켜 http request를 줄인다.

2. Use a CDN(Content Delivery Network)
 - CDN 서비스라고 하면 사용자의 위치에 따라서 가장 가까운 서버에 접속해서 데이터를 가져오는 서비스를 말한다. 데이터를 가장 빠르게 받을수 있는 서버에서 데이터를 받는다면 당연히 페이지가 빨리 뜰것이다.  야후의 경우 약 20%정도의 성능향상이 있었다고 한다.

3. Add an Expires header
 - 웹페이지가 점점더 richer해지면서 각종 script, css, images등이 증가 하게 되며 이는 많은 http request를 유발시킨다. 하지만 expire header를 추가 한다면 이것들을 캐싱시킬수 있다.
 - Expire header를 사용하면 그 날짜가 지나기 전에는 각 컴퍼넌트를 재 호출하지 않는다. 만약 아파치서버를 사용중이라면 ExpireDefault값을 이용하여 지정을 해줄수 있다.
- [Apache에서 사용 방법]

<IfModule mod_expires.c>
    ExpiresActive On
ExpiresDefault "access plus 1 month"
</IfModule>
or
<IfModule mod_expires.c>
    #ExpiresByType image/gif A2592000
    #ExpiresByType text/css A2592000
    #ExpiresByType application/x-javascript A2592000
    #ExpiresByType image/jpeg A2592000
# 제외할 디렉토리
#<Directory "/usr/local/apache/htdocs/temp">
#ExpiresActive Off
#</Directory>
#</IfModule>
4. Gzip Components
 - 원초적인 해결방법으로 대역폭이나 캐싱가지고 해결이 안된다면 압축을 하는 방법도 있다. 즉 http request(1.1)의 헤더에 accept-encoding헤더를 붙여서 보내면 서버는 압축을 하며, 지정된 엔코딩 방식으로 압축후 response할때 그 엔코딩 방식으로 같이 붙여서 보내며, 이를 브라우저가 해석하는 방식이다. (가장 많이 쓰이는것이 gzip방식)
 - gzip의 경우 약 70%의 압축률을 보여주며, 현재 90%의 인터넷 브라우저가 gzip을 지원한다. 다만 압축방식의 경우 image와 같은 이미 압축이 되어있는 파일을 대상으로 할경우에는 오히려 사이즈가 더 커지는 문제가 있으므로, script같은 text로 이루어져있는 컴포넌트 같은경우 매우 효율적일 수 있다.
 - [apache - mod_deflate ]
AddOutputFilterByType DEFLATE text/html text/plain text/xml
<Location />
# 필터를 추가한다
SetOutputFilter DEFLATE
# Netscape 4.x에 문제가 있다...
BrowserMatch ^Mozilla/4 gzip-only-text/html
# Netscape 4.06-4.08에 더 문제가 있다
BrowserMatch ^Mozilla/4\.0[678] no-gzip
# MSIE은 Netscape라고 자신을 알리지만, 문제가 없다
# BrowserMatch \bMSIE !no-gzip !gzip-only-text/html
# 주의: 아파치 2.0.48까지 mod_setenvif의 버그때문에
# 위의 정규표현식은 동작하지 않는다. 원하는 효과를
# 얻기위해 다음과 같이 수정하여 사용한다:
BrowserMatch \bMSI[E] !no-gzip !gzip-only-text/html
# 이미지를 압축하지 않는다
SetEnvIfNoCase Request_URI \
\.(?:gif|jpe?g|png)$ no-gzip dont-vary
# 프록시가 잘못된 내용을 전달하지않도록 한다
Header append Vary User-Agent env=!dont-vary
</Location>
5. Put CSS at the top
 - 야후의 조사에 따르면 스타일시트를 웹페이지의 head 태그 안에 넣는것 만으로도 좋은 성능을 낸다고 한다.

6. Move scripts to the bottom
 - <head> 대신 <body> 아래쪽에 스크립트를 넣는다.

7.  Avoid CSS expressions
 - CSS expression을 피하라 : width: expression(~~~) 식의 표현을 자제하면 된다.

8. Make JS and CSS external
 - 자바스크립트와 CSS를 외부로 빼내라

9. Reduce DNS lookups
 - DNS lookup시간을 줄여라

10. Minify JS
 - 스크립트의 사이즈를 최소화하라
 - js, css 파일을 압축 : 다른 리소스들(이미지와 같은)은 http connection이 모두 사용되어 다운로드를 하지만 유독 js만은 하나의 커넥션으로만 진행됨
  : 압축 해주는 사이트 : http://alex.dojotoolkit.org/shrinksafe/
  : java -jar custom_rhino.jar -c all.js > all_comp.js 2>&1
  : 캐싱되는 문제점을 보완하기 위해서 <script src="script1.js?v=001"></script> 식으로 js src 지정자를 변형시킵니다.
 
11. Avoid redirects
 - 리다이렉트 페이지를 피하라

12. Remove duplicate scripts

 - 중복 스크립트를 제거 하라.

13. Configure ETags
  - ETag는 HTTP/1.1 에 명시되어있는 response header로서, cache validation으로 사용될 수 있는 값을 나타낸다. caching을 수행하는 측에서는 If-Modified-Since로 validation - caching되어있는 object가 새로 갱신하지 않아도 되는 유효한 object 인지 확인하는 작업 - 을 수행할 때, 저장되어있던 ETag값을 같이 이용하여 좀 더 확실한 validation을 할 수 있다.
 문제는, 아파치의 경우 ETag값을 파일의 i-node, size, last-modifed time (mtime) 을 이용하여 계산한다는 것이다.
 만약 아파치 웹서버들이 Round-Robin 방식으로 클러스터를 구성하면 웹서버들마다 같은 파일이라도 다른 i-node 값을 갖게될 가능성이 매우 크므로, caching을 수행하는 측의 cache hit-ratio가 매우 떨어지게 된다.
 이 문제를 해결하기 위해서는 아파치가 ETag를 계산하는 방식을 바꿈으로써 각 웹서버들마다 같은 파일에 대하여 같은 ETag 값을 보내주도록 한다. 아파치의 FileETag directive를 사용하여 다음과 같이 한다.
<Directory /www/test>FileETag MTime Size </Directory>
 FileETag directive는 아파치가 ETag를 계산할 때 파일의 어떤 속성값들을 사용할지를 지정한다. 위와 같이 last-modified time과 size 속성값만을 사용하여 ETag를 계산하도록 하면, 같은 파일에 대하여 여러 웹서버들마다 동일한 ETag값이 계산되도록 할 수 있다.
 단, FileETag directive는 아파치 1.3.23 이후부터 지원되는 directive 이다. 이전버젼들에 대해서 사용하고 싶을 경우는 아파치 소스를 수정하여 사용할 수 밖에 없을 것이다. (아파치 모듈로 해결가능한지는 확인해보지 않았다.)

 그리고 위의 13가지의 항목의 우선순위를정해 가중치를 둬 우선순위가 높은 항목부터 우선 적용해서  효율적인 웹 서비스를 할 수 있도록 합시다.

Weight 11 3. Add an Expires Header
4. GZip Components
13. Configure ETags
Weight 10 2. Use a Content Delivery Network
5. Put CSS at the Top
10. Minify JavaScript
11. Avoid Redirects
Weight 5 9. Reduce DNS Lookups
6. Move Scripts to the Bottom
12. Remove Duplicate Scripts
Weight 4 1. Make Fewer Requests (CSS)
1. Make Fewer Requests (JS)
Weight 3 1. Make Fewer Requests (CSS background images)
Weight 2 7. Avoid CSS Expressions

[관련 포스트]
태그 :

Social Network와 Knowledge Management[1]

사회적 연결망과 지식 경영과의 관계 분석

Socialnetwork

위의 그물망을 기업내의 인적 연결망이라고 생각해 보세요. 저 연결망에서 우리는 무엇을 얻을 수 있을까요? 소셜 네트워크를 기업의 지식 경영과 결합하여 경영의 시너지를 증가시키는 많은 연구가 진행되고 있다는 것을 여러분도 아실것입니다. 그래서 오늘은 기업에서 소셜 네트워크를 분석하는데 어떻게 활용이 되어야 하는지 한번 써볼려고 합니다.

기업내의 Social Network를 분석하는 목적에는 다양한 이유가 있을 것입니다. 제가 생각하기에 가장 중요한 것 중에 하나가 바로 지식 경영에 도입하는 것이 아닐까 생각해봅니다.
예를 들어서 기업내에서 생산 공정에 투입 되는 사람들, 영업을 하는 사람들, 개발을 하는 사람들, 전략을 짜는 사람들 간의 전체적인 인적 관계를 분석한 다음, 각 분야의 사람들의 연결 고리가 끊어질 것 같은 곳을 경영자들은 빨리 간파하여 필요한 연결고리를 만들어주는 역할을 해야 합니다.
그래야만 경영의 효과를 발휘할 수 있을 것입니다.
하지만 현실 세계에서의 경영은 이런 가려운 부분에 대해서는 많은 관심을 가지지 않고 있죠.
보이지 않는 지식의 그물망을 파악해서 조직의 역량을 극대화시킬 수 있는 방법을 찾는게 관리자, 경영자들이 할 일중에 하나입니다.
물론 Social Network의 분석은 개인이 할 수도 있습니다. 내가 관계한 사람들의 분포를 파악한다면 부족한 인맥 관계의 재정립을 시켜주고 나에게 많은 도움을 주는 사람들을 파악하여 인맥 관리에 효율성을 가질 수 있다. 여러모로 도움이 되고 있는데..현실은...^^

협력이 필요한 곳에 다리를 놔 줄수 있는 그런 안목을 가진 사람이 됩시다. 오늘도 여러 잡생각을 조합하여 몇자 글적여봅니다.

Links for 2007-05-05

 

나루 케잌이 찾아갑니다.

나루(naaroo)는....

하나, 2007년 5월 15일에 선보이는 나루는 RSS를 기반으로 하는 블로그 전문 검색 서비스입니다.
둘, 나루는 시시각각 변하는 사람들의 관심도(attention)를 검색 결과에 반영합니다.
셋, 나루는 블로그에 담긴 사람들의 다양한 생각과 의견을 찾아주고 이어주는 생각 검색 서비스입니다.

이걸 트랙백 소문내기라고나 할까요..요즘 서비스 오픈을 알리기 위한 수단으로 입소문의 한 형태로 트랙백 소문이 활황입니다. ^^ 나루에서 케잌을 보낸다구 하네요.  나루 건승하길 빕니다.

 

태그 :

2007-05-05 일상

TV 시청에 대한 단상

오늘은 우리집의 TV 시청 변천사를 생각해 보았습니다.

결혼전까지는 집에 있는 시간 중에 TV를 보는 시간의 비율이 40%정도였습니다. 유선 방송을 신청한 결과일까요? 무의식적으로 거실에 나와서 리모콘을 가지고 이채널, 저채널을 여행 다니곤 했죠. 지금에 와서 생각해 보니 집에 있는 시간도 얼마 없는데 문제가 심각했었죠.

House
결혼 후 아내가 LCD TV를 사왔습니다. TV가 없어지진 않았지만 유선을 시청하던 결혼 전과는 상황이 좀 변했습니다. TV시청 비율이 10% 정도로 줄었습니다. 아내는 TV를 거의 보지않는 생활 습관을 가지고 있더군요.

House
처음 일정 기간동안은 유선을 신청하자고 졸랐었는데, 저도 TV 시청 환경을 바꾸게 되었습니다.  가정에 좀 더 충실해지고, 자기 계발에 도움이 될거 같아서 묵시적으로 따르게 된 겁니다.
그러면서 조금씩 변화가 생기기 시작했습니다.
TV시청이 줄어들면서 집안일, 독서, 음악, 영화를 즐기는 시간이 늘어나게 되었네요. 아내와의 대화도 늘어나고, 집안 대소사도 챙기게 되고.
문제는 인터넷을 많이 한다는 것....나중에 인터넷과 개인의 시간 활용에 대한 분석을 한번 해 봐야겠네요.
TV는 저 나름대로 빠지면 빠질수록 개인적으로나 가족적으로나 시간 낭비를 초래한다고 생각하고 있습니다. 조간만 TV를 없앨 날이 머지 않은 것 같네요. 곰곰히 생각해보면 TV를 잃는 대신 더 많은 것들을 얻지 않나 생각되네요. ^^
여러분도 TV보는 시간을 줄여보심이..아님 이참에 없애 보심이...곰곰히 생각해 볼 좋은 기회가 아닐까요. 참 TV를 산 금액보다는 없애서 얻는 금전적 이득이 더 클테니깐....

태그 :

People Network Analysis

SNA를 위한 사람 네트웍 분석

Social Network Analysis 공부를 위해서 제가 두달간 메일을 주고 받은 분들을 대상으로 People Network를 분석해봤습니다. 도구는 NetMiner란 SNA 분석툴을 이용했고 필요한 기초 데이터는 아래와 같습니다.

  • DataSet adjacency
     - 최근 2달간 메일을 주고 받은 사람을 기준으로 하여 메일 송수신 횟수를 값으로 부여함 : 1
     - 실제 전화나 만남의 관계를 횟수를 친분의 값으로 반영함 : 2
  • Attributes
     - 나이(20~25 : 1. 26~30 : 2, 31~35 : 3, 36이상 : 4)
     - 관계(친족 : 1, 초/중/고동창 : 2, 학부 : 3, 대학원 : 4,  기타 : 5)
     - 만남의 빈도((최근 2달간) 만난횟수 0 : 1, 1~3 : 2, 4회이상 : 3)

이제부터 SNA의 시작해보았습니다.

  1. DataSet을 먼저 엑셀에 작성합니다.
    SNA
  2. Attributes를 엑셀로 작성합니다.
    SNA
  3. 이젠 분석을 위해서 기초 데이터를 임포트를 합니다.
     - 임포트시에 주의할 점은 한글을 보이기 위해서 csv파일을 울드라 에디터등을 활용하여 UTF-8방식으로 저장을 해 줍니다. import할때 UTF-8 지정을 해주면 한글이 정상적으로 보입니다. 그리고 헤더 선택을 잊지 마시구요.
    UTF-8

아래는 분석한 맵입니다.

SNA

개인적인 연결망을 분석했으니 내가 필요한 인맥이 무엇인지, 관리를 잘 해야하는 인맥이 무엇인지 계획짜는 일이 남았겠군요..^^

OSCache 2.4 Released

OpenSymphony 와 OSCache team에서 OSCache version 2.4를2007년 5월 1일 발표를 하였네요.
CacheFilter기능을 강화했고 Spring Framework와 JMX Monitoring 기능을 통합하여 개선했다구 발표했네요. 기존에 쓰시고 계신분들은 업글하시죠.

다음은 개선된 내용들입니다.

  • Setting CacheFilter parameters runtime
  • Lazy initialization in CacheFilter in order to ease spring integration
  • Allow disabling cacheing for special http methods (e.g. POST/DELETE/PUT) in CacheFilter
  • acheFilter allow reentrance over different filter configurations
  • Hibernate 3.2 integration support
  • JMX Monitoring/Administration via Spring
  • Improve oscache.properties loading
  • Performance improvment for large disk persistence usage

[다운로드]

 

Spring XML설정파일을 위한 12가지 가장 좋은 선택

1. autowire를 사용하지 말라.
내 의견에서, autowire는 시장광고용(marketing) 기능이다. 이것은 실제 프로젝트에서 결코 사용되지 말아야 한다. 이것은 몇몇 타이핑의 수고와 설정조각을 줄이지만, 명백함과 설정의 유지보수성을 희생한다.

trollswagen, naimdjon, Johannes Brodwall, 토지님께서 autowire는 오히려 xml이 커지면 커질수록 xml의 구조를 쉽게 파악하게 해주는 정말 좋은 기능중에 하나라는 의견을 주셨습니다. autowire에 관련된 사항은 프로젝트 도입시 장,단점을 다시 살펴 사용하길 권합니다.

2. 명명 규칙을 사용하라.
이것은 자바코드와 같은 의도이다. 예를 들면 bean id를 위해, 당신은 자바 클래스 필드 명명규칙을 따를수 있다. OrderServiceDAO의 인스턴스를 위한 bean id는 orderServiceDAO가 될것이다.

 3. 단축형태(shortcut forms)를 사용하라.
단축형태는 자식요소에서 속성으로 프라퍼티값과 참조를 이동시켜 다소 덜 장황하게 만든다. 이 단축형태는 1.2버전 이후 지원된다.

단축형태는 다음과 같은 기능이다.
1.2이전버전에서는 다음과 같이 셋팅한다.

<bean id="myDataSource" class="org.apache.commons.dbcp.BasicDataSource" destroy-method="close"> <property name="driverClassName"><value>com.mysql.jdbc.Driver</value></property> <property name="url"><value>jdbc:mysql://localhost:3306/mydb</value></property> <property name="username"><value>root</value></property> </bean>

1.2이후 단축형태를 사용하면 다음과 같이 셋팅이 가능하다.

<bean id="myDataSource" class="org.apache.commons.dbcp.BasicDataSource" destroy-method="close"> <property name="driverClassName" value="com.mysql.jdbc.Driver" /> <property name="url" value="jdbc:mysql://localhost:3306/mydb" /> <property name="username" value="someone" /> </bean>

 4. 인자를 맞추기 위한 인덱스보다 타입을 선호하라.
인덱스를 사용하는 것은 때때로 다소 덜 장황하게 만든다. 하지만 이것은 에러를 좀더 생성하고 읽기 어렵다.

다음의 소스는 인덱스를 사용하는 예제이다.

<bean id="billingService" class="com.lizjason.spring.BillingService"> <constructor-arg index="0" value="lizjason"/> <constructor-arg index="1" value="100"/> </bean>

하지만 다음처럼 타입을 사용하는 것이 추천한다.

<bean id="billingService" class="com.lizjason.spring.BillingService"> <constructor-arg type="java.lang.String" value="lizjason"/> <constructor-arg type="int" value="100"/> </bean>

 5. 가능하다면 bean정의를 재사용하라.
당신은 중복을 제거하기 위한 기법처럼 상속을 사용할수 있다. 당신이 할 필요가 있는 모든것은 상위 bean에 abstract=true를 명시하고 자식 bean에 parent참조를 두는 것이다. 당신이 클래스나 factory메소드를 명시하지 않는다면, bean은 함축적으로 abstract상태가 된다.

예를 들면 다음과 같이 셋팅한다.

<bean id="txProxyTemplate" abstract="true" class="org.springframework.transaction.interceptor.TransactionProxyFactoryBean"> <property name="transactionManager"> <ref bean="transactionManager" /> </property> <property name="transactionAttributes"> <props> <prop key="save*">PROPAGATION_REQUIRED</prop> <prop key="remove*">PROPAGATION_REQUIRED</prop> <prop key="*">PROPAGATION_REQUIRED,readOnly</prop> </props> </property> </bean> <bean id="userManager" parent="txProxyTemplate"> <property name="target"> <bean class="org.appfuse.service.impl.UserManagerImpl"> <property name="userDAO" ref="userDAO" /> </bean> </property> </bean>

 6. import 보다는 ApplicationContext를 통해 bean정의를 조립(assembling)하는 것을 선호하라.
Ant스크립트내 import처럼, 그것들은 모듈화된 bean정의를 조립하는데 유용하다. 어쨌든, 이것은 ApplicationContext를 통해 그것들을 조립하기 위해 좀더 유연하다. 당신은 ApplicationContext의 생성자를 위해 bean정의의 배열을 전달할수 있다.

다음은 import를 조합하여 xml을 설정하는 소스이다.

<beans> <import resource="billingServices.xml"/> <import resource="shippingServices.xml"/> <bean id="orderService" class="com.lizjason.spring.OrderService"/> <beans>

import를 사용하여 xml을 조합하는 방식보다는 아래와 같이 ApplicationContext를 사용하는 것이 좀더 유연한 개발을 도와준다.

String[] serviceResources = {"orderServices.xml", "billingServices.xml", "shippingServices.xml"}; ApplicationContext orderServiceContext = new ClassPathXmlApplicationContext(serviceResources);

 7. 가능하다면, bean 확인자로 id를 사용하라.
id를 사용하는 것은 가독성을 증가시키지 않는다. 하지만 이것은 bean참조를 확인하기 위해 XML파서에 영향을 끼칠수 있다. 만약 id가 XML IDREF제한을 위해 사용될수 없다면, 당신은 이름(name)을 사용할수 있다.

 8. 개발시에는 의존성체크(dependency-check)를 사용하라.
당신은 bean정의의 dependency-check속성을 디폴트인 none이 아닌 다른값으로 셋팅할수 있다. 그래서 컨테이너는 당신을 위해 의존성체크를 할수 있다.

<bean id="orderService" class="com.lizjason.spring.OrderService" dependency-check="objects"> <property name="companyName" value="lizjason"/> <constructor-arg ref="orderDAO"/> </bean>

 9. 각각의 XML파일을 위해 헤더(header) 주석을 추가하라.
XML파일내 내부 주석대신에 서술적인 id와 name을 사용하는것이 선호된다. 어쨌든, 각각의 파일이 정의된 bena을 요약하는 헤더를 가진다면 이해하기가 쉽다.

<beans> <description> 이 파일은 거래(billing) 서비스 관련 bean을 정의하고 서비스 bean템플릿을 제공하는 baseService.xml파일을 의존한다. </description> ... </beans>

 10. 변경을 위해 팀멤버간 의사소통을 하라.
당신이 자바소스코드를 리팩토리할때, 당신은 설정파일을 그 상황에 따라 변경하고 팀멤버에게 알릴 필요가 있다.

 11. 생성자 삽입(constructor injection)보다 setter 삽입(setter injection)을 선호하라.
생성자 삽입은 bean들이 비정상적인 상태에서 생성될수 없다는 것을 확인할수 없다. 하지만 setter 삽입은 좀더 유연하고 관리가 가능하다. 특히 클래스가 다중 프라퍼티를 가진다면 더욱 그러하다.

다음은 생성자 삽입을 사용하는 예이다.

<bean id="orderService" class="com.lizjason.spring.OrderService"> <constructor-arg ref="orderDAO"/> </bean>

다음은 setter삽입을 사용하는 예이다.

<bean id="billingService" class="com.lizjason.spring.BillingService"> <property name="billingDAO" ref="billingDAO"> </bean>

 12. 의존성 삽입을 남용하지 말라.
마지막에, Spring ApplicationContext는 당신을 위해 자바객체를 생성할수 있다. 하지만 모든 자바객체가 의존성삽입을 통해서 생성될수는 없다. 기억하라. 강력한 IDE인 Eclipse와 IntelliJ를 사용하여, 자바코드는 좀더 읽고, XML파일보다 유지및 관리가 쉽다. 즉 의존성삽입을 설정하는 XML파일보다는 자바코드가 개발자의 입장에서는 가독성이 좋다.

태그 :

Restaurant 2.0 만들어 보아요

1. Restaurant 2.0 시스템의 구성 요소

  • 요리사 리스트 : 요리자의 정보와 평판, 음식 후기등을 기록할 수 있도록 환경 구성.
  • 요리 리스트 : 요리의 재료 정보, 맛, 가격, 먹기 위한 최적의 상태 등의 정보를 기록하여 사용자들이 선택할 수 있도록 환경 구성.
  • 반찬 리스트 : 반찬 정보, 가격, 요리와의 배합 등의 판단 정보를 보여주고 사용자로부터 판단과 피드백을 받을 수 있도록 환경 구성.
  • 음료 리스트 : 가격, 요리와의 결합도, 인기도 등을 보여주고 사용자가에 선택할 수 있도록 함.
  • 오늘의 추천 요리 제공 : 위의 요리사, 요리, 반찬, 음료 등등의 정보를 보고 판단하기 싫다면 쉽게 오늘의 추천요리를 선택하면 되게끔 함.
  • 요리 예약/구매/대기 시스템 : 위의 요리사와 요리, 반찬, 음료를 선택하여 요리를 예약/구매/대기하는 시스템을 구축함.
  • 식당 위치 정보 시스템 : 자기가 위치한 가까운 곳의 식당을 자동 선택할 수 있게 지도에 표시하게 함.
  • 요리 동영상 서비스 : 선택된 10가지 요리의 동영상을 제공.
  • 오늘의 메뉴 RSS 피드 제공 : 선택된 10가지의 요리를 RSS로 실시간 제공.
  • 요리 경매 시스템 : 요리사들의 오늘의 요리 경매를 통한 가격 형성토록 함- MonkeyRules.com에서는 지금 하고 있네요.

2. Restaurant 2.0 요리 주문 시나리오

이런 음식을 사먹기 위해서 필요한 요소들을 사용자로 하여금 그날의 주요 10가지 요리와 요리사, 음료, 수저, 반찬 등을 선정하도록 하게 한다.
하루 전날 당일의 요리가 결정되면 사장은 요리 경매 시스템으로 경매되지 않은 요리는 요리사를 콜해서 구하고 재료만 전문으로 구매해주는 회사를 통해서 요리를 하는데 필요한 주문을 한다.
사용자는 자기위치와 가까운 식당으로 예약을 하고 구매를 한다. 이렇게 함으로써 점심 먹는데 소비하는 시간을 줄이고 자기만의 요리를 선택해서 좋고..

3. 집단 지성을 활용할 수 있는 시스템

  • 요리사/요리/식당의 평판 시스템
  • 요리/음료 가격 책정 시스템
  • 날씨에, 기념일이 맞는 추천 요리 시스템
  • 새로운 요치 신청 시스템

주인도 선택할수 있게 할까요? ㅋㅋ 대충 이런 형태의 프렌차이즈는 어떨까여? 재미난 시스템이죠. 아직은 생각만으로 쓴 내용이라 다분이 실현 가능성에 대해서는 어떨지 모르겠네요. 전체 프로세스를 볼수 있는 그림도 없고 하여 텍스트로 1차로 올립니다.
그럼 이제 여러분의 몫을 기다립니다. 이 글을 보시는 분들의 의견을 댓글로 남겨주시면 문제점을 보완해 가도록 해보겠습니다. 많이 많이 댓글 참여를 부탁드리겠습니다. 제가 화두를 던지고 여러분들과 같이 현실성있는 프렌차이즈로 한번 만들어보시지 않으렵니까?
댓글이 올라오는데로 문제점이나 지적사할 등을 반영하여 보완하여 개선된 내용을 재게시하겠습니다. 여러분들도 참여 부탁드립니다. 웹 2.0 사상으로..^^

Web-Based WYSIWYG editor 비교

  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 설치한 에디터보다는 낫다고 생각합니다.

links for 2007-05-01

지식경영 관련 인터넷 참고 사이트들입니다.

태그 :