블로그 이미지
초딩입맛제주아재
하고 싶은 것만 하며 살고 싶다

calendar

1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31
2007. 1. 12. 14:18 Programing/JSP/ASP
출처 : http://cafe.naver.com/bonohemi/35




톰캣과 웹서버(아파치, IIS 등)의 연동 이해하기
웹서버에 tomcat 을 붙일 경우 요청주소의 포트는 동일합니다. 즉 아파치의 포트를 통해서 모든 주소 요청을 받고 아파치에 설치된 연동모듈(mod_jk) 이 jkMount 에 설정된 주소 패턴에 따라 *.jsp , /servlet/* 일 경우 tomcat 으로 요청을 넘겨줍니다.
흔히 잘못 인식하는 것은 apache 는 80 으로 tomcat 은 8080 으로 주소를 달리해서 처리되는 것을 보고 연동된줄 아는데, 이건 각각 따로 노는 것입니다.
또한 아파치에서 jsp의 소스가 보인다함은 연동모듈이 놀면서 직무유기하고 있다는 뜻이거나 제대로 설정이 되있지 않는 것 같군요.
아파치와 톰캣 연동시 패턴에 함정이 있을 수 있습니다.

# Root context
JkMount  / ajp13
JkMount  /* ajp13

와 같이 연동할 경우 아파치에 들어온 주소(URI)중에 / 로 시작되는 모든 자원들이 톰캣으로 보내집니다. 톰캣은 jsp와 서블릿만 처리하는 것이 아니라 html, gif, jpg, css, js 등의 정적인 컨텐츠도 동시에 처리하게 됩니다. 아파치는 계속 모든 요청을 톰캣으로 떠 넘기는 것입니다. 이것은 아파치의 access_log 와 톰캣의 access_log 를 보면 확연히 알 수 있습니다. 연동을 아니함만 못한 경우입니다.

제대로 써 준다면

# Root context
JkMount  /*.jsp ajp13
JkMount  /servlet/* ajp13

과 같이 해주어야 합니다.
서블릿 매핑이 필요한 경우 (스트럿의 경우 .do 라는 패턴을 사용)에는 그 패턴을 추가해주면 됩니다.

JkMount /*.do ajp13

이렇게 되면 톰캣의 access_log 에는 jsp 파일들과 서블릿요청에 대한 로그만 보일 것이고, 제대로 연동이 된 것입니다.

그리고 다음 문제는 저도 여러가지로 생각중인데, 컨텍스트와 연동의 문제입니다.
컨텍스트는 마치 / 의 서브디렉토리처럼 보입니다. 아파치에서는 컨텍스트라는 것을 그냥 하나의 서브디렉토리로 인식합니다. 하지만 톰캣에서는 의미가 다릅니다. 디렉토리도 바뀔수 있고, 세션도 / 컨텍스트와는 다르게 관리됩니다.
이럴 경우 생기는 문제는 정적인 컨텐츠의 위치입니다.
톰캣에서 컨텍스트는 ROOT 와 상관없이 원하는 아무곳에 놓아둘 수 있습니다. 즉 ROOT 의 위치와 완전히 다른 곳에 위치되고, 정적인 컨텐츠도 같은 web application 디렉토리 하부에 위치할 것입니다.
아파치와 톰캣의 루트디렉토리가 일치된 상태에서 다른 컨텍스트의 정적인 자원요청시 아파치는 루트의 서브디렉토리에서 찾을 것이고, jsp 는 다른 컨텍스트의 정해진 위치에서 찾을 것입니다.
여기에서 딜레마에 빠지게 됩니다. 연동을 하지 않고 톰캣만 처리할 경우는 문제가 없지만 아파치랑 연동했을 경우는 전혀 엉뚱한 곳을 가르키기 때문입니다.
그렇다고 위처럼

# Root context
JkMount  /examples/ ajp13
JkMount  /examples/* ajp13

패턴을 사용하면 아까도 말했듯이 연동을 안한 것보다 못한 상황에 이르게 됩니다.
톰캣3에서 톰캣4로 넘어오면서 HTTP 요청을 처리하는 모듈의 성능이 많이 향상되었습니다. 잘 모르시는 분들은 Apache Tomcat 4.0 started 라는 메시지를 보고 아파치와 톰캣이 통합된 줄로 아는 경우도 있습니다만 그 말이 진짜다 싶을 정도로 톰캣의 성능이 카탈리나 엔진에서 많이 좋아졌습니다. 매뉴얼에 보면 아파치와 톰캣을 연동하는 것은 두가지 경우로 돌려본 다음에 빠른 쪽으로 결정하라고 나올 정도입니다. 모두 jsp 로 된 페이지라면 필터를 거치지 않고 바로 오는 쪽이 더 나으니까요.
개발시에는 아파치를 붙이지 않는 편이 훨씬 편합니다. 더군다나 cgi 와 ssi 같은 아파치 고유기능을 톰캣에 추가시키면서 이렇게 얘기합니다.

"톰캣을 HTTP 서버로 사용하고 SSI 지원을 요청할 때 톰캣의 SSI 지원을 추가로 사용할 수 있습니다. 전형적으로 아파치 같은 웹서버를 연동해서 사용하지 않는 개발기간 동안 쓰게 됩니다." (http://jakarta.apache-korea.org/tomcat/tomcat-4.1-doc/ssi-howto.html)

결국 개발기간동안은 아파치 붙여서 번거롭게 개발할 생각말라는 뜻입니다. 서비스시에 아파치랑 연동할 지는 각자의 상황에 따라 다르겠지요.

연동에 관한 좋은 책(professional Apache Tomcat, wrox)이 나왔습니다. 물론 600 페이지 중에 100페이지 정도의 분량이 할애되었을 정도로 중요한 것 같지만 연동을 마쳤다함은 톰캣을 조금 알았다 뿐이고, jsp 를 아는 데에는 하등 도움이 될 것이 없습니다.

'Programing > JSP/ASP' 카테고리의 다른 글

웹 프린터  (0) 2007.05.23
ASP: 동적 include  (1) 2007.05.22
ASP의 가변변수  (1) 2007.04.19
[ASP]php의 exit와 같은 기능을 하는 Response.end  (0) 2007.01.03
posted by 초딩입맛제주아재
2007. 1. 12. 10:12 게임
사용자 삽입 이미지
http://www.eyezmaze.com/eyezblog/2005/10/movie_puzzle_ver0.html

Easy는 웬만하면 3분안에 깰 수 있을텐데,
Hard는 난 포기다... ㅡㅡ;


출처 : 달룟님 블로그

'게임' 카테고리의 다른 글

데빌메이크라이3 공략 - 스타일 가이드  (0) 2006.07.16
데빌메이크라이3 공략 - 무기편  (0) 2006.07.16
posted by 초딩입맛제주아재
2007. 1. 10. 23:41 삶은달걀
우리나라는 일 중독에 빠진것일까?
좀더 오래 의자에 앉아 있어야 일 잘하는 것으로 여겨지고
회사에 충성을 다하는 것으로 비춰지는 건 결코 좋은 관습은 아니다.
창의적인 아이디어가 무엇보다 중요한 요즘 시대에
남들과 똑같은 생활에서 뭔가 낚이길 기대할 수는 없다.
뭐 운이 좋아 월척이 걸릴 수도 있겠지만...

퇴근 시간을 훌쩍 넘겨버린 있으나마나한 시계를 바라보며 오늘 야식은 뭘 먹을까 고민하는것이 이제는
하루 일과에 없어서는 안될 일인듯 익숙한 우리나라 개발자들...
헤드헌팅 사이트의 개발자 구인란에 "야근 절대 없음","야근 지겨우시죠?" 이런 문구가 버젓이 씌여질만큼
이 바닥에서 야근은 언제부턴가 당연시 되고있다.

혹독한 스파르타 패턴에 스트레스받고 복잡한 알고리즘을 파헤쳐가며
실타래처럼 얽히고 섥힌 코드들을 분석하는 그들에게 '창의력'을 위해 투자 할 수 있는 시간은 지극히 짧다.

아무리 잘 뛰던 육상선수도 1년을 걷기만 하면 남들에게 뒤쳐질 수 밖에 없다.
"난 뛸 줄 안다" 라고 말 할 순 있지만, "남들보다 빨리 뛸 수 있다"고 장담하긴 어렵게 되가고 있다.

명마를 만드는 조련사는 절대 말에게 하루 종일 뛰는 것만 시키지 않는다.
말 또한 하루 종일 뛰는 것만 시키는 조련사에게 충성하지 않는다.

지친 말은 언젠간 주인을 떠나가기 마련이다....

'삶은달걀' 카테고리의 다른 글

개발자라며??  (0) 2007.03.28
이사  (0) 2007.02.12
금연 3일째~  (3) 2007.01.03
데스노트, 주문했음...  (0) 2006.12.07
청첩장  (0) 2006.11.29
posted by 초딩입맛제주아재
2007. 1. 10. 21:52 IT제품

드디어 왔구나!!


이번에도 스티브잡스는 나의 기대를 저버리지 않았다.
전자제품이라고 부르기에는 그 자태가 너무도 고귀한 저 아이폰을 보라.
나는 아이폰을 차라리 예술작품이라 말하고 싶다.

아직 내손으로 만져보진 못했지만,
그저 보는 것만으로도 숨이 멎을것만 같다.

도대체 저 물건이
나와 동시대를 살아가는 인간들의 머릿속에서, 손끝에서 만들어졌단 말인가...

날씬하다


기본 스펙




애플다운 인터페이스

아이폰 = 아이팟

3.5인치 액정

돋보기는 필수

WI-FI 무선인터넷

UMPC 인가?

네비게이션인가?

'IT제품' 카테고리의 다른 글

화살표 모양의 무선 마우스  (1) 2007.01.06
posted by 초딩입맛제주아재
2007. 1. 9. 13:18 Programing

출처: http://openlook.org/trac/wiki/EUC

EUC (Extended Unix Coding) 인코딩은 중국과 한국에서 가장 널리 쓰이는 인코딩 형태로, 단순미와 강력함이 장점입니다. ;) (일본과 대만에서도 유닉스 유저들은 널리 쓰고 있습니다.)

EUC 인코딩 8비트 영역을 모두 사용하며, 8비트를 크게 4개로 나눕니다.

  • CL(Control-Left): 0x00-0x1f
  • GL(Graphic-Left): 0x20-0x7f
  • CR(Control-Right): 0x80-0x9f
  • GR(Graphic-Right): 0xA0-0xff

그림으로 하면

8 bit 범위
CL GL CR GR
0x00 ~ 0x1f 0x20 ~ 0x7f 0x80 ~ 0x9f 0xa0 ~ 0xff

GR은 보통 2바이트 시퀀스로 붙여서 94x94 문자셋을 할당하는 데, EUC-CN과 EUC-KR의 경우에는 그냥 단순히 GL에는 ASCII를 할당하고, GR에는 각각 GB2312와 KS X 1001을 할당하는 것으로 끝납니다. 결국, KS X 1001의 30-21에 배치되어 있는 '가'라는 글자는 EUC-KR 인코딩에서 GR에 배치되면서 MSB가 세팅되어 0xB0A1로 최종적으로 표현됩니다.

그런데, GL, GR을 고정적으로 할당한 CN, KR과는 달리 EUC-TW나 EUC-JP에서는 사용할 수 있는 문자셋이 여러 평면으로 나뉘어져 있기 때문에, 단순히 미리 할당된 것만으로는 사용될 수 없어서, 0x8e와 0x8f의 SS(Single-Shift) 코드들을 사용합니다. EUC-JP의 경우에는 다음과 같이 배치가 되어 있습니다.

문자셋 코드 설명
ASCII [0x20-0x7f] 아스키는 항상 GL에 배치됩니다.
JIS X 0201 0x8e [0xa1-0xdf] JIS X 0201중 반각 카타카나 부분은 앞에 0x8e를 쓴 다음에 씁니다.
JIS X 0208 [0xa1-0xfe] [0xa1-0xfe] JIS X 0208 문자들은 각각 MSB를 세팅해서 그냥 씁니다.
JIS X 0212 0x8f [0xa1-0xfe] [0xa1-0xfe] JIS X 02012 문자들은 0x8f를 앞에 쓴 다음에 MSB를 세팅해서 씁니다.

이렇게 되어서, 결국 EUC-JP는 1/2/3 바이트 가변폭 인코딩이 되고, 화면 출력과 코드 너비가 다른 인코딩이 됩니다. (불편하지만 별 수 없는~)

EUC-TW는 현재 할당된 평면이 17개 (유효평면 10개)나 되기때문에, 더욱 더 복잡한데,

문자셋 코드 설명
ASCII [0x20-0x7f] 아스키는 항상 GL에
CNS11643-1 [0xa1-0xfe] [0xa1-0xfe] Plane 1을 기본 GR에 배치합니다.
CNS11643-1~16 0x8e [0xa1-0xb0] [0xa1-0xfe] [0xa1-0xfe] Plane 1 <!> 부터 16까지는 0x8e를 앞에 붙이고, 그 다음에는 1번부터 순서대로 0xa1부터 16번은 0xb0까지 쓴 다음에 진짜 두 글자를 MSB 세팅해서 붙입니다.

이렇게 되어서, 결국 1/2/4 바이트 가변폭 인코딩이 됩니다. 그런데, Plane 1은 2바이트짜리와 4바이트짜리에 둘 다 할당이 되어있는데, 둘 중 어느 한가지만 옳은 것은 아니고, 표준에서 둘 다 사용할 수 있도록 되어있습니다. (둘은 서로 동등 연속--equivalent sequence--로 처리해야합니다.)

posted by 초딩입맛제주아재
2007. 1. 8. 09:35 음악

14살때 처음 서태지를 본 이후 지금껏 그를 한번도 의심하지 않았었다.
그는 청소년 시절 나의 우상이었고
만인이 인정하는 천재 아티스트였다.

오늘 웹서핑중 문근영의 KTF광고에 쓰인 음악 "앤 디자인(& design)"의
조덕배의 노래 "나의 옛날 이야기" 표절 논란 뉴스를 보다 꼬리말에 달린
어느 한 네티즌의 "서태지" 관련 글을 본 나는,
말 그대로 엄청난 충격에 머리가 아파온다.

80년대 말 전 세계적으로 폭발적인 인기를 끌며
희대의 사기그룹으로 밝혀진 Milli Vanilli(밀리바닐리)라는 그룹의 정체를 알게 됐다.
그리고 서태지의 "난 알아요"가 밀리바닐리의 "Girl You Know Its True" 라는 곡을 표절했다는
그 네트즌의 주장에 그 곡을 찾아 듣게 되었다.

확실히 비슷했다.
반주도 그랬고, 랩 스타일도, 들으면 금방 "난 알아요"를 연상케했다.
하지만, 표절인가에 대한 판단은 쉽게 할 수 없을 것 같다.
그래도 조금은 씁쓸한 이유는
그를 마치 신과 동등하게 여겨왔던 나에 대한 묘한 배신감일까...

'음악' 카테고리의 다른 글

Olivia Newton-John - Blue Eyes Crying in the Rain  (0) 2007.05.15
kiss kiss - sweetpea  (0) 2007.02.13
ABBA, 나에게 힘이 되어주는...  (0) 2006.10.29
USB 기타 "JamMate UG-1"  (3) 2006.10.02
Stranger by the day - Shades Apart  (0) 2006.07.03
posted by 초딩입맛제주아재
2007. 1. 7. 02:09 영화/애니

왜 랍비는 빠졌는가!!



큰 기대는 하지 않고 봤는데 의외로 재밌었던 영화다.
영화의 내용을 사자성어로 표현하자면 "권선징악"이 가장 잘 어울릴것같다.
웬지 루시가 뭔가 한건 할 것 같았는데 기대에 부응해주지 못했다.
내가 잘 못 찍은거겠지만 -_-;;
슬레븐자식, 어쩜 그리 능청스럽게 연기를 잘 했을꼬...
복수를 위해 킬러 수업 말고도 연기 수업을 받은건가.
강도 당한것 처럼 보이기 위해 굿캣에게 코뼈가 부러지도록 세개 맞는 장면을 보고
"역시 세상에 공짜는 없구나!!!" 란 생각이 든건 참 씁쓸한 부분이다.
이 영화를 본다면 한가지는 확실히 배우게 되는것 같다.

"도박으로 일확천금을 노리지 말고 열심히 일하자!!"


SOCOM-K인가??


원수는 도로 건너에...


뭘보냐 ㅡㅡ;

퉤!!!


우리 낚인거야??

'영화/애니' 카테고리의 다른 글

말 할 수 없는 비밀  (0) 2008.01.10
데스노트 종결  (2) 2007.06.27
라디오 스타  (0) 2006.12.24
우리들의 행복한 시간  (0) 2006.12.24
애니메이션 - 데스노트  (1) 2006.11.13
posted by 초딩입맛제주아재
2007. 1. 6. 20:39 IT제품

Compatible with Windows and Mac OS X.

Receiver USB connection.

Operating range: 2 meters.

Frame speed: up to 2300 fps.

Optical sensor resolution: 800 dpi.

Power: two AAA rechargeable or non-rechargeable batteries.

Switches to power saving mode if not moved.


요 키보드로 유명한 Art. Lebedev Studio 의 작품 Mus II.
마우스의 기능적인 면은 다소 불편하지만 그들의 디자인 감각만큼은 높이 살만하다.
웬지 저 마우스를 보면 땅을 파고 싶어 지는것 같은 점만 빼면 말이다....



'IT제품' 카테고리의 다른 글

끝을 모를 그들의 상상력 - 애플,IPhone  (2) 2007.01.10
posted by 초딩입맛제주아재
2007. 1. 5. 16:28 Programing/HTML/JavaScript/CSS

프로그램의 UI(User Interface)는 코드 못지 않게 중요하며
최근에는 오히려 코드보다 더 무거운 비중을 차지하고 있다.
UI의 성공이 곧 프로그램의 성공으로 이어지며 그 반대의 경우도 동일하다.
전문적으로 UI만 개발해 주는 업체도 있고, UI개발자도 있다.
인기있는 프로그램은 UI에서 다른 프로그램을 압도하며
사용자들은 편안하고 거부감 없는 UI를 가지고 있는 프로그램을 선호하게 되는데
특히, 접근성이 중요한 웹의 경우 UI의 비중은 더 크다.
대형 사이트들은 '아이트래킹'이라는 시스템을 사용해 사용자 시선의 흐름을 분석하고
그 결과를 토대로 메뉴 위치를 구성하기도 한다.

프로그램은 사람을 좀더 편하게 하기 위한 것이다.
프로그램을 쓰면서 사람이 더 피곤해지거나 스트레스를 받는다면
그 프로그램은 실패작이다.
프로그래머는 어떤 프로그램을 만들때 사용자 입장에서 많은 생각을 해야 한다.

"이 버튼이 여기에 있는것이 누르기 편할까?"
"메뉴를 오른쪽에 두는것이 보기에 편할까?"
"날짜를 수기로 입력하게 하는것이 좋을까 달력콤포넌트에서 선택을 하게 하는것이 좋을까?"
"이 부분은 직접 해보니까 불편하잖아! 당장 고쳐야겠다 -_-"

서론이 쓸데 없이 길었다.
자 이제 본론이다.

여러 사이트들 중에 다음과 같은 추가 정보를 입력 받는 곳들이 있다.

앞에 있는 체크박스에 정확히 마우스를 갔다 대고 클릭해야 영광의 상처같은 "v"가 표시된다.
나이드신 분들이나 장애우,어린이들의 경우 어려운 일이 될 수 있다.
위에서 괜히 길게 서론을 열변했던것이 아니다.
바로 이런 UI를 프로그래머는 지양해야 하는 것이다.

그렇다고 저 페이지를 없애버리면 안되지 않겠는가?
뭔가 근사한 해결책은 없는것인가...

있다 -_-

오늘의 주인공 LABEL을 쓰자.

<FORM action="..." method="post">
<LABEL for="fname">First Name</LABEL>
<INPUT type="text" name="firstname" id="fname"><br />
<LABEL for="lname">Last Name</LABEL>
<INPUT type="text" name="lastname" id="lname"><br />

<LABEL><INPUT type="radio" name="sex" value="M" />Male</LABEL>
<LABEL><INPUT type="radio" name="sex" value="F" />Female</LABEL><br />

<LABEL><INPUT type="checkbox" name="book" value="book" />Book</LABEL>
<LABEL><INPUT type="checkbox" name="game" value="game" />Game</LABEL>
<LABEL><INPUT type="checkbox" name="sport" value="sport" />Sport</LABEL>

</FORM>

위 코드를 브라우져에서 열어보자.
<LABEL>이 무슨 역할을 하는지 보는것만으로는 알 수 없다.
하지만 눈으로 보이는것이 다가 아니라는 유명한 말이 있지 않던가??
각 콤포넌트들의 옆에 있는 텍스트를 클릭해보자.
어떤가?
지금쯤 당신의 입가에 살며시 번지는 미소를 나는 알 수 있다.
바로 그것이다.
말로 설명하지 않겠다.
해봐라.
해본자와 안해본자의 차이는 하늘과 땅차이보다 클것이니.....


-----------------------------------------------------------------------------------------
2007-01-10 추가
위의 밑줄친 코드는 IE에서 제대로 작동하지 않습니다.
다음과 같이 수정하면 IE와 FF모두 정상 작동합니다.

<input id="sex1" type="radio" value="M" name="sex"><label for="sex1">Male</label>
<input id="sex2" type="radio" value="F" name="sex"><label for="sex2">Female</label>

<input id="chk1" type="checkbox" value="book" name="book"><label for="chk1">Book</label>
<input id="chk2" type="checkbox" value="game" name="game"><label for="chk2">Game</label>
<input id="chk3" type="checkbox" value="sport" name="sport"><label for="chk3">Sport</label>


posted by 초딩입맛제주아재
2007. 1. 5. 15:12 Programing/HTML/JavaScript/CSS

FIELDSETLEGEND는 우리나라의 사이트에서는 흔히 사용하지 않는 태그이다.
하지만 이 포스트를 읽고 나면 아마도 당신은 이 두 태그를 사랑하지 않을 수 없을 것이라 장담한다.

다음 캡쳐이미지를 보자.

Firefox/2.0.0.1 의 화면

언뜻 보면 레이어를 사용한 레이아웃 같다.
하지만 이어지는 코드를 보면 동공이 놀랄것이다.

<FORM action="..." method="post">
<P>
<FIELDSET>
  <LEGEND>Personal Information</LEGEND>
  Last Name: <INPUT name="personal_lastname" type="text" tabindex="1">
  First Name: <INPUT name="personal_firstname" type="text" tabindex="2">
  Address: <INPUT name="personal_address" type="text" tabindex="3">
  ...more personal information...
</FIELDSET>
<FIELDSET>
  <LEGEND>Medical History</LEGEND>
  <INPUT name="history_illness"
        type="checkbox"
        value="Smallpox" tabindex="20"> Smallpox
  <INPUT name="history_illness"
        type="checkbox"
        value="Mumps" tabindex="21"> Mumps
  <INPUT name="history_illness"
        type="checkbox"
        value="Dizziness" tabindex="22"> Dizziness
  <INPUT name="history_illness"
        type="checkbox"
        value="Sneezing" tabindex="23"> Sneezing
  ...more medical history...
</FIELDSET>
<FIELDSET>
  <LEGEND>Current Medication</LEGEND>
  Are you currently taking any medication?
  <INPUT name="medication_now"
        type="radio"
        value="Yes" tabindex="35">Yes
  <INPUT name="medication_now"
        type="radio"
        value="No" tabindex="35">No

  If you are currently taking medication, please indicate
  it in the space below:
  <TEXTAREA name="current_medication"
           rows="20" cols="50"
           tabindex="40">
  </TEXTAREA>
</FIELDSET>
</FORM>


- 이 코드는 w3c.org에서 발췌한 것임
- 원문 URL : http://www.w3.org/TR/html4/interact/forms.html#idx-label-2


예상한것과는 전혀 다르다.
레이어도 없고 테이블도 없다.

오로지 순수한 HTML 태그만을 써서 저런 레이아웃을 만들었다.
저 태그들은 IE전용 태그도 아니며 w3c에 나와있는 표준 태그이다.
어떤가, 아름답지 아니한가???
posted by 초딩입맛제주아재