에이즈에 걸릴 정도로 사생활에는 문제가 없지는 않았지만,

조던조차도 외도하고 그 상대방에게 거액의 돈을 주고 입막음을 했을 정도로 완벽한 사람은 없으니까.

게다가 스스로 에이즈에 걸렸다는 걸 밝히고 은퇴하지 않았었나.

복귀한건 실수였지만, 열 몇 경기만 뛰고 다시 그만 두었으니까.

암튼 내가 젤 좋아하는 선수.


Earvin "Magic" Johnson 

게임당 평균 출전시간 39.7분     

게임당 평균 필드골 시도 13.4 / 성공 6.8

통산 슛 성공률 50.6%       3점은 거의없음  - 2005-06 시즌에 비교하면 20위권.

게임당 평균 자유투 시도 6.7 / 성공 5.6     

통산 자유투 성공률 83.8%

게임당 평균 리바운드 7.7개 - 워낙 괴물 같은 선수가 많아서 역대 50위권 밖이지만. 2005-06 시즌에 비교하면 35위권.

게임당 평균 어시스트 12.3개 ㅡ.ㅡ;;; - 역대 1위. 2위 존 스탁턴과는 무려 2.2개 차이.

                                                     2005-06 시즌에 비교하면 당연히 1위. 05-06 시즌 1위 스티브 내쉬 10.4개

게임당 평균 스틸 1.9개 - 역대 17위. 2005-06 시즌에 비교하면 9위권.

게임당 평균 득점 19.5점 - 2005-06 시즌에 비교하면 20위권.


통산 평균 19.5점 12.3 어시스트 7.7 리바운드. 거의 통산 트리플더블에 가까운 수치.

통산 슛성공률 50.6%가 보여주듯 득점에도 재능이 있다고 생각하지만, 포인트가드 답게 어시스트에 주력했나?


efficiency formula: ((Points + Rebounds + Assists + Steals + Blocks) - ((Field Goals Att. - Field Goals Made) + (Free Throws Att. - Free Throws Made) + Turnovers)).


(19.5+7.7+12.3+1.9+0.3)-((13.4-6.8)+(6.7-5.6)+3.7) = 30.3


통산 efficiency 30.3 은 2005-06 시즌 1위인 케빈 가넷과 맞먹는다. 그만큼 팀에 효율적인 선수라는 증거.


(33.4+6.4+5.7+2.1+0.9)-((25.1-12.2)+(9.9-8.2)+3.0) = 30.9


마이클 조던의 30.9와도 별 차이 없다. 그럼에도 불구하고 조던의 영향력에 눌려서 저평가되는 선수라고 생각한다.


아무튼 나에게 있어서는 최고의 선수. 농구가 무엇인지 가장 잘 아는 선수. 내가 플레이하고자 하는 선수다.

버섯크림파스타

생크림의 고소한 맛과 버섯의 상큼한 맛이 파스타의 맛을 더해 줍니다.
용량 : 4인분 | 칼로리 : 1893Kcal | 조리시간 : 40분 | 난이도 : 중
주재료 : 파스타350g, 양송이·표고 6개씩, 느타리60g, 양파1개, 마늘2쪽, 버터약간
양념 : 생크림1/2컵, 다진파슬리1큰술, 올리브오일4큰술, 설탕1작은술, 바질·오레가노 약간씩, 소금·후춧가루 약간씩

방법
1. 양송이버섯은 밑에서 껍질을 벗기고 모양을 살려 적당한 두께로 썬다.
2. 표고는 채썰고 느타리버섯은 소금물에 데쳐 손을 찢는다.
3. 양파도 채썬다. 양파의 반은 다져서 크림소스에 섞어도 좋다.
4. 올리브오일을 두르고 마늘을 볶다가 양파와 양송이, 표고, 느타리 순으로 볶는다.
5. 볶은 버섯에 분량의 크림소스를 넣어 중간불로 저어가며 끓이다가 바질과 오레가노를 뿌려 향을 낸다.
6. 물을 끓여 소금과 식용유를 조금 넣고 파스타를 15분 정도 삶아 건져 놓는다.
7. 후라이팬에 버터를 두르고 파스타를 볶아준다.
8. 완성접시에 볶은 파스타를 담고 크림소스를 위에 뿌려 완성한다


차가운토마토파스타

새콤달콤한 맛으로 입맛을 살려 주는 파스타예요. 차갑게 먹을 수록 맛있는 파스타랍니다.
용량 : 4인분 | 칼로리 : 1518Kcal | 조리시간 : 1시간 | 난이도 : 중
주재료 : 토마토1개, 링귀니250g, 홍합50g, 양파1/2개, 오징어1마리, 조개50g, 새우살50g, 홍고추1개, 마늘1쪽, 올리브유2큰술링귀니
양념 : 소금1작은술, 후춧가루, 버터2큰술, 다진파슬리

방법
1. 양파, 홍고추, 마늘은 채썬다.
2. 홍합은 수염을 떼고 소금물에 씻는다.
3. 조개, 새우도 소금물에 씻고, 오징어는 껍질을 벗겨 안쪽에 칼집을 넣는다.
4. 끓는 물에 소금, 올리브유를 넣고 링귀니를 삶는다.
5. 후라이팬에 올리브유 두르고 달궈지면 마늘, 홍고추, 양파를 볶는다.
6. 야채를 볶다가 준비한 해산물을 한꺼번에 넣는다.
7. 볶으면서 소금과 후춧가루로 간하고 백포도주 2큰술을 뿌려 비린내를 없앤다.
8. 토마토를 다져 해산물에 넣는다.
9. 삶은 링귀니에 소금, 후춧가루, 버터를 넣고 볶아 토마토소스와 섞는다.
10. 차게 식혀 먹는다.

'요리 > Recipe' 카테고리의 다른 글

[펌] 제대로 흉내내 본 해산물토마토파스타!!  (0) 2007.11.27
토마토 스파게티  (0) 2007.11.27
간단한 토마토 파스타  (0) 2007.11.27

http://blog.naver.com/galad/140043817542

출처 블로그 > 쭈우의 흥미진진한 인생놀이
원본 http://blog.naver.com/ohyoung7/140039774459

지난 번 수업 때 배웠던 해산물토마토파스타...

너무 복잡해서 엄두가 안났지만, 잔뜩 기대하고 있는 가족(달랑 1명)을 위해

큰 마음을 먹고 시도를 해 보았습니다.


 
토마토홀(생토마토통조림)과 토마토페이스트
스테이크소스를 넣고 미리 섞어둡니다
(마늘은 여기에 넣는 게 아닌데 잘못 넣었다가 다시 걷어냈어요.
저 위에 흔적이 좀 남아있죠?)


 

 
양파 1/4쪽과 마늘 1큰술, 드라이바질 1/2티스푼을
넉넉한 올리브유에 넣고 볶아주다가


 

 
젤 처음에 만들어 둔 토마토소스를 넣어두고
잘 섞어줍니다. 그대로 한 10분쯤 뭉근히 끓여주었죠.


 

 
푸실리 파스타를 준비했습니다.
원래 별로 안좋아했었는데, 꽈배기 사이사이로 양념이 들어가
더 맛있는 거 같단 생각을 최근 했거든요.


 

 
해산물 파스타니까 해산물도 준비했습니다.
관자와 칵테일새우, 작은 오징어를 준비했습니다.
오징어 손질을 처음 해 보았는데
먹물이 터지는 바람에 죽고싶은 기분이었습니다. -_-


 

 
다시 양파 1/4개와 마늘 1큰술을 넣고 올리브유에 달달 볶다가
해산물을 넣고 같이 볶아줍니다.
화이트와인을 조금 넣어서 증발시켜주면 좋은데
전 화이트와인이 없어서 그냥 청주를 살짝 넣어주었습니다.


 

 
해산물이 적당히 익을 무렵,
미리 만들어 두었던 토마토소스를 넣어줍니다.
그렇게 조금 끓여주다가


 

 
삶아서 건져둔 푸실리파스타를 넣고
잘 섞어줍니다.
섞는 도중 간을 보고, 소금으로 간을 해 주면서
파스타에서 윤이 나도록 올리브유를 적당히 뿌려주며 섞어줍니다.
푸실리파스타는 끓는 물에서 10분 삶아주었어요.
소금 좀 넣은 물에서...


 

 
다 완성된 해산물토마토파스타입니다.
생파슬리를 넣어주면 좋은데...
없으니까 드라이파슬리를 좀 뿌려주고...흠...
 
해산물이 듬뿍 들어있어
정말 맛있었다고....생각합니다.
남편이 정말 맛있다고 엄지손가락을 올려주었어요. ㅋㅋ
 
시간이 엄청 걸렸지만
우리 부부 입맛엔 아주 맛있었으니까
그걸로 만족합니당.
 
p.s 접시가 좀 더 이뻤으면 음식이 살지 않았을까 하는 아쉬움이 생깁니다 -_-

'요리 > Recipe' 카테고리의 다른 글

버섯크림파스타 & 차가운토마토파스타  (0) 2007.11.27
토마토 스파게티  (0) 2007.11.27
간단한 토마토 파스타  (0) 2007.11.27

토마토 스파게티

요리/Recipe 2007. 11. 27. 15:37 Posted by galad

슈퍼에서 사는 소스는 좀 느끼한것 같지요

그래서 저는 개인적으로 집에서 요리를 한답니다  조금만 수고하면 맛이 굿


재료) 스파게티면 적당히, 양파1, 당근1/2, 피망1/2, 토마토잘익은것1 , 쇠고기(살코기로), 토마토케첩,

         양송이버섯, 마늘조금 , 물조금, 치즈,포도씨기름


     = 포도씨기름과 마늘은 볶을때 사용함


순서 : 1) 물을 끓여 스파게티면을 넣고 15분정도 삶아낸다( 면이 질기기때문에 잘 삶아졌는지 확인)

             따뜻한 물로 1번만 행궈내어 소쿠리에담아 물을 빠지게 한다

          2) 양파는 잘게 썰어 복아낸다(이때 걸쭉해지도록 복아내면 됨)

          3) 당금, 피망도 잘게썰어 복아낸다

          4)토마토도 잘게 썰어 건더기가 보이지않을때 까지 볶아낸다

          5)양송이버섯도  잘게 썰어 복아낸다

          6)쇠고기는 소금,후추,마늘조금 넣고 밑간을 해서 15분정도 두었다가 간이 배면 그때 달달 복아준다

             (물론 잘게썰어서한다)

          7)2.3.4.5.6.의 재료를 모두 한곳에 넣고 토마토케첩, 물을 조금넣고  석어서 살짝1번만 후루루 복는다

          8) 7번재료에 스파게티면을 넣고 석어주면  끝.


           추가) 치즈스파게티를 원하면  그릇에 스파게티를 담고 그위에 치즈를 듬뿍 얹어 전자레인지에 2분만

                      돌리면  치즈스파게티 완성




재료 ㅡ토마도 잘익은것!! (큰것일수록 좋죠^^), 케첩, 양파, 마늘, 설탕, 소금, 스파게티면
부가적 재료요~ 있으면 좋은거..;; ㅡ 햄(고기or미트볼 대용), 치즈 , 녹차잎;;(저만의 노하우)
와인조금(이건 집에 선물받은게 있길래 넣었어요;;;)

이제 저의 설명 들어갑니다~^^ 조리방법!!
1.면을 우선 삶아요~
물을 넣고 소금약간 넣고 끓입니다. 끓으면 스파게티면을 집어 넣습니다. 그리 고 면이 말랑말랑 해질때 까지 긇입니다. 그리고 건져서~ 찬 물에 헹궈서 한쪽에 놓아둡니다 ^^

2.토마토 1개를 (1인기준) 넉넉히 2개 해도 괜찮구요...가족들도 같이 묵을꺼면.. 암툰...토마토 뒤에 + <ㅡ 이런 십자 모양으로 칼을 흠집을 내어 뜨거운 물에 데칩니다.면을 삶으실때 같이 하는게.. 시간상.!! 그냥 물을 끓여 큰 그릇에 토마토를 담고 물을 붓기만 해 주셔도 됩니다.

3.그렇게 데치면 토마토 껍질이 스륵~ 벗겨집니다.^^ 그래서 토마토를 짤게 썰어서 그릇에담아놓습니다. 이때. 토마토 씨부분을 빼야한다고 하더군요..^^ 그냥 해도 전 괜찮긴한데..약간 쓴맛이나 요센 빼고 한담니다. 그냥 썰면서..씨는 맛있으니깐 드세요.;;;

4. 그리고 양파를 짤게 썹니다. 토마토2개 할때는 양파반절!! 토마토 1개할때는 양파 3분의1정도로.. 짤게 썹니다.

5. 그리고 마늘도 적정양 3~4개 정도 짤게 썹니다. 그리고 머 넣으실 다른 야채나 고기or미트볼 대신으로 사용할~ 햄!!등을 다 짤게 썰으세요~ 이번에 햄이 없어서 안넣고 했는데도 충분히 먹을만 하던데요... ㅎㅎ 그냥 집에서 기본 재료써진 것만 넣어도 되요.. 어디까지나 나머진 선택사항이에요~

6. 그리고 후레이판이나 냄비에~ 기름을 약간두르고 (식용유나 올리브유나 암거나) 면을 한번 살짝 볶아줍니다. 안해도 되는데.. 그래야.. 면끼리 붙지도 안고~ 좋습니다.그리고 면을 다시 건져 한쪽에 놓고 기름을 약간 더 넣은다음.. 양파.마늘등등 넣을 것들을 볶아줍니다. 양파가 약간 투명해질려고 하면 거의 익은거죠~

7.그리고 양파등이 다 익으면 토마도 썰어 놓은것을 넣습니다.
참~!! 녹차잎은 그냥 저의 노하운데요!~ 다른 전문적인 분들이 향신료를 넣길래..;; 저도 그냥 집에 있는걸 활용하는 차원에서 넣어요.. ;; 근데..녹차잎이 말라 있기 때문에.. 물 조금에 넣어 뒀다 물 조금고 함께 그 녹차잎을 넣습니다. 그냥 건강에 조아요;;; 물은 몇수저 정도만요.. 조금만..

8. 그리고 케첩을 적정량~ 을 넣습니다.
적정량이라함은 그냥 전 국자위에 가득 따라서 넣었습니다. 그렇게 총 2번정도..
(토마토를 1개 넣을면 한국자 2개 넣으면 두국자)그건 맛을 보아가면 하심 될꺼에요 그리고 설탕을 약간 넣습니다. 케찹이 달기 때문에 조금만 넣으셔도 됩니다.밥수져도 전 1수픈 넣은거 같아요 토마토 2개일때.. ;; 참조하시라고요

9.그리고 계속 끓여 줍니다. 쫄이는 거죠~ 약간 묽은 상태일테니 쫄이는거죠~! 그리고 혹시 집에 와인이 있음 넣어줘요~ 선물 받은게 하나 있어 그냥 한 국자 정도넣었습니다. 안 넣어도 되고요.. 하나 있으심 두고두고 쓰니깐.. 장만하셔도 되고요.

10.그리고 어느 정도 쫄았으면 맛을 보고 케찹을 더 넣으시려면 조금 더 넣으셔도 되고요. 소금으로 간을 맛추세요.. 근데..소금은 거의 넣지 않아도 됩니다.혹시 간이 안맛을 경우만요.. 전 안 넣었어요.. ;;

11. 그리고 그릇이 스파게티면을 놓고.. 소스를 붓고 맛있게 드시면 됩니다.치즈를 좋아하시면 전자렌지에 소스까지 붓고 그대로 그릇체~ 30초만 돌리면 치즈가 맛있게 녹을꺼에요..^^


그리고 맛나게 드시는거죠~
저는 이대로~ 해 먹는데.. 조미료나 따로 소스를 안 넣어요~
상당히 맛나요^^ 그럼 맛나게 드세요..


참;; 그리고 양파 볶을때~ 김치도 짤게 썰어서 같이 첨가해서 해도 약간 매콤하고맛있어요^^




토마토스파게티

(소스)
버진 올리브유에 다진 마늘 반스푼에서 한스푼 정도를 볶는다

네등분한 생토마토를 같이 볶으면서 으깨준다 (토마토 즙이 생김)

소금 후추 적당량 추가

약간 끓기 시작할때 냉동 조개를 넣고 약간 더 끓여준다
오레가노가 있으면 필히 첨가 할것

(면)
스파게티 국수를 소금 한스푼과 함께 식성대로 조리할것 (약간 들익힐것)

소스에 익은 스파게티 국수를 넣고 자작하게 볶아준다

*본인이 가장 맛있었을 때는 이태리에서 사온 오징어 먹물 페투치니 면으로 위의 방법으로 조리
하였을 때 였슴.

토마토 페이스트를 사용하는것 보다 생토마토를 이용하는것이 훨씬 맛있슴.
기호에 따라 각종 해산물 추가 가능. (오징어/ 새우 등)

간단한 토마토 파스타

요리/Recipe 2007. 11. 27. 15:37 Posted by galad
출처 블로그 > 사랑, 기억하고 있습니까?
원본 http://blog.naver.com/uthman/60024063500

집에 있는 양송이가 다 썩어가길래(?) 토마토 소스와 함께 파스타를 만들어봤다.
 
[재료 (1인 기준)]
스파게티, 푸질리, 토마토홀 2개, 토마토 페이스트 1작은술, 양송이 2개, 모짜렐라 치즈 약간
올리브유, 오레가노, 바질, 월계수 잎, 마늘, 화이트와인, 설탕
 
기본적인 토마토 소스의 맛을 선호하다보니 간단한 재료로 금방 만들게 된다.
 


꽤 맛있었다 ^^



[간단 조리법]

 

1.스파게티면은 끓는 물에 9~10분간 삶는다. (푸질리는 좀 더 오래 삶아야 한다)
2.팬에 올리브유를 두르고 마늘과 오레가노를 넣어서 기름에 향을 입히자.
3.양송이를 얇게 썰어서 같이 볶자.
3.볶은 양송이 위에 홀토마토와 토마토 페이스트를 넣고 2분정도 쫄인다.
4.바질가루와 화이트 와인을 약간 넣고 3~4분 정도 더 쫄인다.
5.간을 맞춰보면서 선호에 따라 모짜렐라 치즈를 넣어줘도 좋다.
6.마무리로 설탕을 약간 넣어주고 파슬리 가루를 뿌려서 먹으면 끝.
Filter 를 이용한 한글 인코딩 적용 - 심우곤님 at www.jlab.net

1.5.4. Tomcat에서의 한글문제

작성자: 심 우곤 (wgshim@greenbell.co.kr)
본 문서는 JLab (http://www.jlab.net) 홈페이지에서도 보실 수 있습니다.

Tomcat의 악명 높은 한글 문제입니다. HTML의 <FORM>을 통해 한글 정보를 전달하면 이 값이 깨져버리는데, 이 문제는 Tomcat이 넘어오는 데이터를 내부적으로 변환해 버리기 때문이지요. 물론, 한글을 변환하는 빈을 만들어서 처리하는 방법도 있습니다만, 매 페이지마다 빈을 불러서 처리해야 하는 것이 귀찮지요.


여기서 알려드리려 하는 방법은 Tomcat으로 하여금 <FORM>을 통해 전달하는 값을 URL 인코딩을 하지 않고 EUC_KR로 변환하여 넘기도록 합니다. 이는 한글문제에 대해 고민을 하지 않아도 된다는 것이지요.


물론, 매 페이지는 한글을 잘 표현할 수 있도록 다음과 같은 지시문을 둘 거라 생각합니다.
<%@ page language="java" contentType="text/html; encoding=euc_kr"%>
이제 본격적으로 Tomcat의 한글문제를 다루도록 합시다. 사실 여기서 다루려는 해결방안은 Tomcat을 설치하면서 딸려 들어오는 예제코드(4.0.5나 4.1.12 모두에서 찾아볼 수 있습니다)에서 내용을 찾을 수 있었습니다. -_-;; 놀라셨다구요? 저도 놀랐습니다. 정말 등잔 밑이 어둡다고 하더니만, 이렇게 가까운 곳에 해결책이 있을 줄이야!


%CATALINA_HOME%\webapps\examples\WEB-INF에 존재하는 web.xml을 열어보면, 다음과 같은 부분을 찾을 수 있습니다.
이 방법은 Filter를 사용하는 방법으로 사용자의 입력을 서블릿이 처리하기 전에 해당 정보를 Filter가 적절한 방식으로 변환할 수 있도록 합니다.


그림 20. Tomcat 예제의 web.xml

참 이런걸 보면, 2 Bytes 문자체계를 지원하는 솔루션은 일본인들을 위해서 먼저 만들어진다는 것이 안타깝습니다. 하지만 이로 인해서 우리나라도 유사한 방법으로 한글문제를 쉽게 해결할 수 있지만요.. 잠깐 푸념이었습니다.


물론 위에 보이는 <filter>의 encoding 파라미터의 값을 EUC_JP에서 EUC_KR로 변경해야겠죠? 여기서 한글변환을 위해 사용된 SetCharacterEncodingFilter 클래스는 %CATALINA_HOME%\webapps\examples\WEB-INF\classes\filters에서 찾을 수 있습니다
[그림 21].

그럼 정리하겠습니다.


[ Filter를 사용하여 Tomcat에서의 한글문제 해결방안 ]


1. 구축하고자 하는 여러분의 웹 어플리케이션의 WEB-INF\classes 폴더에 filters라는 새로운 폴더를 생성합니다.


2. 이제 WEB-INF\classes\filters에 SetCharacterEncodingFilter.class 파일을 %CATALINA_HOME%\webapps\examples\WEB-INF\classes\filters 폴더에서 복사합니다.


3. 그 후 여러분의 웹 어플리케이션의 WEB-INF\web.xml의 상단에 다음 라인을 추가합니다.
<filter>
  <filter-name>Set Character Encoding</filter-name>
  <filter-class>filters.SetCharacterEncodingFilter</filter-class>
  <init-param>
    <param-name>encoding</param-name>
    <param-value>EUC_KR</param-value>
  </init-param>
</filter>
<filter-mapping>
  <filter-name>Set Character Encoding</filter-name>
  <url-pattern>/*</url-pattern>
</filter-mapping>

※ 참고: <!DOCTYPE web-app PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN" "http://java.sun.com/dtd/web-app_2_3.dtd"> 인지를 확인합니다. 간혹 2.2버전의 파일이 있는데, 이 때는 아래의 <filter> 및 <filter-mapping>인지하지 못합니다.)

매번 SetCharacterEncodingFilter.class 파일을 WEB-INF\classes\filters에 복사하는 것이 귀찮으시다구요?


Tomcat은 여러 웹 어플리케이션들간에 클래스를 공유할 수 있는 공간을 마련해 두었습니다. Tomcat 4.0.5에서는 %CATALINA_HOME%\classes폴더가 Tomcat 4.1.12에서는 %CATALINA_HOME%\common\classes 폴더가 있는데, 이들 폴더가 바로 그 공간입니다. 자 그럼 이곳에 공용 클래스인 SetCharacterEncodingFilter.class를 공유공간에 복사해 봅시다. 절차는 다음과 같습니다:


Tomcat 4.0.5를 사용하시는 분은 %CATALINA_HOME%\classes에, Tomcat 4.1.12를 사용하시는 분은 %CATALINA_HOME%\common\classes에 filters폴더를 만들고SetCharacterEncodingFilter.class 파일을 복사합니다.
혹은, 매번 폴더 만들고 복사하기가 귀찮으시다면 jar로 압축된 파일을 여기( http://ietmserver.greenbell.co.kr/~wgshim/java/TomcatCharacterEncodingFilter.jar )서 받으시기 바랍니다. 그냥 제가 묶어 놓은 것입니다. 여러분도 예제로부터 쉽게 만들어 사용하시면 됩니다. [파일명: TomcatChracterEncodingFilter.jar]

Tomcat 4.1.12를 사용하시는 분은 %CATALINA_HOME%\lib에, Tomcat 4.1.12를 사용하시는 분은 %CATALINA_HOME%\common\lib에 받으신 jar파일을 복사합니다.


이로써 우리는 앞으로 만들게 될 웹 어플리케이션에서 SetCharacterEncodingFilter 클래스를 공유하게 되었습니다. 그 결과, 여러분들은 위에 언급한 세 단계의 절차 중 첫 번째와 두 번째 항목을 매 어플리케이션마다 수행하실 필요가 없어진 것이지요. 단지 web.xml 파일에 내용을 추가하시기만 하면 됩니다.


감격의 순간이지 않습니까? 저는 이런 방법이 있다는 사실을 다수의 국내 개발자들이 모르고 있다는 것이 안타깝습니다. 널리 이 방법을 전파시켜 주시길 바랍니다. 한글 변환 빈을 만들어서 매번 불편하게 사용해 왔다면, 정말 신선한 방법이겠죠? ^_^


작성자: 심 우곤 (wgshim@greenbell.co.kr)
본 문서는 JLab (http://www.jlab.net) 홈페이지에서도 보실 수 있습니다.

Tag
tag는 게시물의 성격을 나타내는 키워드를 입력하는 공간입니다. login 후 사용하실 수 있습니다.
  • 이 필더는 Servlet으로 넘어가는 데이터만 Tomcat 내부에서 한글 처리하는 것입니다. -- 심우곤님 메일중에...
  • kenu
  • 2002-10-29 09:43:33
  • x
  • 이 내용을 다른 게시판에 올려도 되는지요..좋은 내용입니다.한글 해결이 쉬어지겠네요..
  • hyejin
  • 2002-10-29 17:26:43
  • x
  • 심우곤님과 jlab 저작권표시만 제대로 해주세요.
    그럼 될 것입니다.
  • kenu
  • 2002-10-29 20:17:06
  • x
  • 4.X 버전부터 지원이 되었던걸로 알고 있습니다.
    3.3a 버전의 경우는 자동으로 인터셉터를 했었구여...
    참고하시기 바랍니다.
  • ksany
  • 2002-11-05 19:31:53
  • x
  • request.setCharacterEncoding(String encoding)과 같은 것이겠죠?
  • 최재웅
  • 2002-11-19 11:32:25
  • x
  • 예.. 동일한 것입니다.
  • 심우곤
  • 2002-11-27 12:10:51
  • x
  • ㅠㅠ 감사합니다 ㅠㅠ
  • 허접 jsper
  • 2003-07-25 17:45:07

'프로그래밍 > Web' 카테고리의 다른 글

02 실전에서 쓰는 소스  (0) 2007.11.28
01 로그인....  (0) 2007.11.28
context-param  (0) 2007.11.27
밑의 에러 페이지 처리에 이어서.  (0) 2007.11.27
에러 페이지 처리  (0) 2007.11.27

context-param

프로그래밍/Web 2007. 11. 27. 15:17 Posted by galad

ConnectionPool을 새로 만들어봤습니다.

1. MySql용입니다.
2. timeout, db-server reset 등으로 DB 와 연결을 잃었을 때
   좀비가 되는 문제를 해결하였습니다.
3. ConnectionPool클래스를 web.xml에 Listener로 등록하고 getConnection()메소드를
   static 으로 만들어 어디서든지 풀에 접근가능하도록 하였습니다.
4. Connection반환은 필수입니다. 저는 ConnectionPool에 접근하는 중간계층의 클래스
   를 만들어 사용하기 때문에 풀자체에서 반환여부를 체크하지 않습니다.


5. web.xml 설정예제 : context-param 을 이용해 풀에 필요한 정보를 전달합니다.
  context-param 과 listener 의 위치에 주의하십시요.
 
 
<web-app>
  <display-name></display-name>
  <description></description>

   <context-param>
      <param-name>database</param-name>
      <param-value>#dbname#</param-value>
   </context-param>
   <context-param>
      <param-name>database_user</param-name>
      <param-value>#user-name#</param-value>
   </context-param>
   <context-param>
      <param-name>database_password</param-name>
      <param-value>#password#</param-value>
   </context-param>
   <context-param>
      <param-name>database_min</param-name>
      <param-value>3</param-value>
   </context-param>
   <context-param>
        <param-name>database_max</param-name>
        <param-value>10</param-value>
    </context-param>
 

    <!--  
    <filter>..</filter>
    <filter-mapping>..</filter-mapping>
    -->
   
   
    <listener><listener-class>kr.co.korm.sql.ConnectionPool</listener-class></listener>
   
    <!--기타 태그들 -->

</web-app>


---------------------------------------------------------------------------------------------------


/*
   Copyright (C) www.korm.co.kr 박정규
   
   본 프로그램은 공개소프트입니다. 여러분은 이 프로그램을 마음껏 수정하시고
   배포하실수 있읍니다. 여러분에게 도움이 되는 프로그램이기를 바랍니다.
      
   최종수정일 2003년 6월 29일
*/

package kr.co.korm.sql;
import java.util.Vector;
import java.sql.*;
import javax.servlet.ServletContextListener;
import javax.servlet.ServletContextEvent;
import javax.servlet.ServletContext;


public class ConnectionPool  implements ServletContextListener {

     static Vector connections = new Vector();
     static String url="jdbc:mysql://localhost:3306/#database#?autoReconnect=true&useUnicode=true&characterEncoding=euc-kr";
     static String user = null;
     static String passwd = null;
     static int max = 1;
     static int min = 1;
     
     
     private ServletContext context = null;
     
    /**
     *  Context 가 시작되었을 때 호출된다.
     */
    public void contextInitialized(ServletContextEvent event) 
      {
      	context = event.getServletContext();
     	  String database = context.getInitParameter("database");
     	  url = url.replaceAll("#database#", database);
        user = context.getInitParameter("database_user");
        passwd = context.getInitParameter("database_password");
       
       try { min = Integer.parseInt(context.getInitParameter("database_min")); } catch(Exception e){}
       try { max = Integer.parseInt(context.getInitParameter("database_max")); } catch(Exception e) {}
 
       try {
             Class.forName("org.gjt.mm.mysql.Driver");   
     
            // 최소수만큼의 연결을 생성해놓는다.
            for(int i=0;i<min;i++)
              {
     	          connections.add( DriverManager.getConnection(url, user, passwd) );
     	        }
     	     }
 	     catch(Exception e)  { 	 context.log(e.getMessage());   }
 	   }  


    /**
     *  Context 가 종료될때 호출된다.
     */
    public void contextDestroyed(ServletContextEvent event) 
      {
    	  for(int i=0;i<connections.size();i++)
   	  	  {
            Connection con = (Connection)connections.elementAt(i);
            try { con.close(); } catch(Exception e){}
     	    }
       	connections.clear();
      }

    /**
     *  풀로부터 Connection 객체를 얻는 함수
     */     
    public static Connection getConnection() throws Exception
      {     
       	Connection con = null;
    	  int try_count=0;
     	  
     	   while(true)
     	      {
     	  	     try { return (Connection)connections.remove(0); } 
     	  	     catch(Exception e){}  // 모든 Connection이 사용중이면 Excetion이 발생한다.
                	  
               try { return DriverManager.getConnection(url, user, passwd); }
               catch(Exception e){}  // 더 이상 데이타베이스서버로부터 Connection을 가져올 수 없으면 Exception발생
                    
               if(try_count++>3) throw new ConnectionException("일시적으로 사용자가 너무 많아 데이타베이스에 연결할 수 없습니다.");
                
               try { Thread.sleep(50); } catch(Exception e){} //0.05초 후에 재시도한다.
            }      	
     }	


    /**
     *   풀에 Connection 객체를 반납한다. 
     */
    public static void free(Connection con)
      {
      	try {
            	if(connections.size() < max) connections.add(con);
            	else con.close();
            }
        catch(Exception e){}	
      }	
}

'프로그래밍 > Web' 카테고리의 다른 글

01 로그인....  (0) 2007.11.28
[펌] Filter 를 이용한 한글 인코딩 적용  (0) 2007.11.27
밑의 에러 페이지 처리에 이어서.  (0) 2007.11.27
에러 페이지 처리  (0) 2007.11.27
열혈강의 6장 실습하기  (0) 2007.11.27