완벽함이란 더 이상 무엇인가를 더할 것이 없을때 이루어 지는 것이 아니라, 더 이상 무엇인가를 뺄 것이 없을 때 이루어진다. - 앙뜨완느 마리 로제 드 생떽쥐페리
by 미친병아리 이글루스 피플 2006 이글루스 TOP 100 2007 이글루스 TOP 100
포토로그
메뉴릿
주저리 주저리
라이프 로그
파이썬을 써보니, 편하더군..
실용주의 프로그래머를 읽으면서 간편하게 사용가능한 스크립트를 하나 배워야 겠다는 생각을 하고 있었는데.. 고민은 perl을 배워보느냐, python을 다시 시작하느냐 였다.. 사실 python은 다시 시작한다고 하기엔 좀 억지가 있긴 하지만.. 뭐, 아는게 있어야지 다시지..

펄 쪽으로 생각이 기울다, 결국엔 기왕 시작한거 제대로 해보자는 생각에 python 책을 다시 보기 시작했고, 그냥 책만 보면 재미가 없으니 일에 적용시켜보기로 했다.. 웹로그 분석을 할 일이 생겼는데, 특정 요청만 골라내서 이 요청에 대한 분석을 해야했다.. 일반적인 로그분석 프로그램에서 이걸 어떻게 하는지 몰라 고민끝에 파이썬으로 스크립트를 짜보기로 했다.. 당근 익숙치 않으니 맘 먹고 하루 밤을 새주기로 했다.. 까짓거 하루밤 정도 투자해주면 이정도 스크립트는 가능하겠지..
import re

resultFile = open('result_setupxml.txt','w')

i = 1
for i in range(1,28) :

    if i<10 :
        myfile = open("ex05090" + str(i) + ".log","r")
    else :
        myfile = open("ex0509" + str(i) + ".log","r")
        
    lines = myfile.readlines()
    myfile.close()

    matchstring = re.compile("/setup.xml",re.IGNORECASE)

    for line in lines :
        times = matchstring.search(line,1)
        if times :
            resultFile.writelines(line)

resultFile.close()



myfile = open('result_setupxml.txt','r')
lines = myfile.readlines()
myfile.close()

matchstringTime = re.compile("[0-9]{1,2}:[0-9]{1,2}:[0-9]{1,2}",re.IGNORECASE)
matchstringDate = re.compile("[0-9]{1,4}-[0-9]{1,2}-[0-9]{1,2}",re.IGNORECASE)
matchstringIP   = re.compile("[0-9]{1,3}.[0-9]{1,3}.[0-9]{1,3}.[0-9]{1,3}",re.IGNORECASE)

myfile     = open('result_setupxml.csv','w')

for line in lines :
    times = matchstringTime.search(line,0)
    dates = matchstringDate.search(line,0)
    ips = matchstringIP.search(line,40)
        
    myfile.writelines(dates.group(0)+","+times.group(0)[0:2]+","+ips.group(0)+" ")

myfile.close()
결과물이 완벽하지는 못하지만, 그런대로 파이썬을 배워가며 처음 만들어본 스크립트로는 이정도면 만족하기로 했다.. 정규표현식을 가지고 특정 파일의 요청을 뽑아내고, 이를 IP별, 날짜별, 시간대별로 분석하기 위한 정규표현식을 더 만들어 뽑아냈다..

이걸 C++로 작성했어도 그리 어렵지 않았을 것이라는 생각이 들기도 했지만, 생산성 측면에서는 확연한 차이가 있었다.. 컴파일 / 빌드 시간이 없기 때문에 무수한 소스수정 / 실행 / 테스트의 과정이 매우 신속했으며, 위의 프로그램 실행속도 역시 무지하게 빨랐다.. 수백메가 이상의 로그 파일들을 여러개 가지고 실행을 했음에도 실행속도가 꽤 빠르다는 느낌이 들어 만족스럽다..

앞으로는 이런 상황의 프로그램 작성에는 파이썬을 적극 활용해보기로 했다.. 밤새고 다음날 근무하느라 피곤하긴 했지만, 매우 만족스런 경험이었다.. 배운거 바로 써먹는 이런 재미에 프로그래밍도 하는 것이 아닐까..

꼬리말 : 2006.02.11
구글에서는 파이썬을 어디에 쓰나요 (원문보기)
주로 C++을 사용한다고 하는데 SWIG라는 툴을 사용하는 것으로 보아 다른 프로그래밍 언어들도 아주 활발히 사용하고 있는 것 같다.. 워낙에 뛰어난 프로그래머들이 많아서 자바를 사용한다는 부분이 참 재밌다..

by 미친병아리 | 2005/10/29 23:59 | ▣ 컴터야그 ▣ | 트랙백(1) | 덧글(15)
트랙백 주소 : http://madchick.egloos.com/tb/1166994
☞ 내 이글루에 이 글과 관련된 글 쓰기 (트랙백 보내기) [도움말]
Tracked from from __futur.. at 2005/11/01 10:06

제목 : 웰빙언어 Python
파이썬을 써보니, 편하더군.. 미병님의 포스팅에 발동이 걸려 또 Python관련글을 써본다. 사실 K-means 클러스터링 알고리즘 숙제를 Python을 이용해서 했다. 도서관에서 알고리즘 분석하고 10메가의 데이터......more

Commented by 이상훈 at 2005/10/31 16:13
'일에 적용시켜보기로 했다.'가 부럽습니다. 결단력!!
Commented by Nemo at 2005/10/31 16:32
오오옷~ 멋지십니다. 저는 tcl 시작했어요~
Commented by 입큰하마 at 2005/10/31 16:39
파이썬 좋지요 :)
f = file('a.txt') # open('a.txt' ,'r')과 동일함
lines = f.readlines()
for line in lines:


for line in file('a.txt'):

으로 간단히 쓸수도 있어요~
Commented by 마이커피 at 2005/10/31 17:26
python, 배워 보면 재밌을 것 같은데......
Commented by 오리대마왕 at 2005/10/31 21:35
저는 python 과 ruby 사이에서 저울질 하고 있어요. 사놓은 python 책만 두권인데 얼른 시작해야겠네요.
Commented by 미친병아리 at 2005/11/01 01:02
이상훈님 : 일이던 취미던 활용해보는게 중요한 것 같습니다..

Nemo님 : tcl도 멋지긴 매한가지인듯 합니다..

입큰하마님 : 핫.. 그렇군요.. 좋은 팁 감사..

마이커피님 : 배워보아요~

오리대마왕님 : ruby.. 주위에서 정말 많이들 권하시더군요.. 다 그럴만한 이유가 있을법 한데, 그럼에도 아직 구경도 안해봤으니.. 쩝..
Commented by wowhoon™ at 2005/11/01 03:25
파이선 예전부터 친구가 좋다고해서 써보고 싶은 언어인데...
역시 미병님 업무에 바로 도입하시는 쎈스~~~ 부럽습니다. ^^
Commented by 광대물고기 at 2005/11/01 08:24
대단하십니다..
언제나 무언가를 준비하시는 모습이 좋습니다...
Commented by 곰곰이 at 2005/11/01 10:18
드디어 파이썬의 매력을 보셨군요.
이제 파이썬을 매력을 쉽게 떨쳐버리기 힘드실겁니다.
제가 장담하죠. ^^
Commented by 미친병아리 at 2005/11/01 21:43
wowhoon™님 : 한번 사용해보세요.. 업무에 도입하던, 취미로 해보던 큰 차이 없잖습니까..

광대물고기님 : 허허허.. 대단한 일은 아닌 것 같은데요.. 실용주의 프로그래머란 책을 읽으며, 그 저자들이 들이는 노력에 비하면 새발의 피라는 생각이 들기 때문에..

곰곰이님 : 네~ 저도 동감입니다.. 꽤 매력이 있더군요..
Commented by 악어 at 2005/11/02 09:24
오호~
Commented by 미친병아리 at 2005/11/03 22:57
악어님 : ^^
Commented by alphageek at 2005/11/20 21:42
Python은 배워두면 요긴하죠. .NET을 쓰시면 이 비디오 데모 부분(http://msdn.microsoft.com/msdntv/episode.aspx?xml=episodes/en/20051110PythonJH/manifest.xml) 한번 보세요. 전 오늘 봤는데, jython + swing으로도 비슷하겐 할 수 있지만 역시 만든 사람이 직접 데모하는 걸 보니 꼭 써보고 싶어지더군요.

언어 자체는 Ruby가 더 좋다고는 하던데 아무래도 일본에서 만든 것이라... 웬지 찜찜... 이라기 보다는 문서가 좀 부족한 듯 (일어는 모르기 땜에) 싶더군요.
Commented by alphageek at 2005/11/20 21:44
위에서 링크가 짤리네요... 그냥 MSDN에서 IronPython 검색하면 나옵니다.
Commented by 미친병아리 at 2005/11/21 00:40
alphageek님 : 좋은 정보 감사합니다.. 알려주신 예제.. 함 가서 꼭 봐야겠습니다.. 루비가 좋다는 분들이 많아서 함 보고 싶습니다.. 헌데, 프로그래밍 언어에 대해서는 얼리어댑터 기질이 별로 발동이 안되는지라.. 아마도 관련 서적들 많이 나오고 천천히 달려들 것 같습니다.. 아니면 기질이 발동되어 헤스켈과 루비를 같이 보게 될지도 모르죠.. 근데, 휴직하고 한가해지면 모를까.. 이러기는 힘들 듯 하고.. ㅎㅎㅎ

:         :

:

비공개 덧글

Creative Commons License

< 이전페이지 다음페이지 >


이글루 파인더
카테고리
태그
최근 등록된 덧글
최근 등록된 트랙백
마이클잭슨 사망 소식들..
by Bluesky
후아유(2002) : 2000년대 ..
by 생활의 발견
知的人의 생각
by peter_c's me2DAY
톰캣!!
by 나두미키님의 이글루
정규 표현식 완전 해부와..
by 김재호의 디지털보단 아..
HTML 소스 제대로 보자,..
by [부동산]개발.정비구역
내 손안의 PC - 자바가 ..
by 上善若水
Stringbuilder OutOfMe..
by Pinch of Smack for D..
웹 오피스 정리
by Web N Bizr
네이버 블로그 검색 - ..
by InformationRedesign
에반게리온: 서 - 사운드..
by LG전자 XCANVAS홈..
블로그에서 수익은 기대..
by IT, 모바일, 엔터테..
"다음으로 지원한 이메일..
by 민노씨.네
알라딘 TTB2 둘러보다
by NKOKON's Web-Note
문답 # ActiveX 문답
by 아이리스가 만개한 언덕..
미친병아리의 생각
by madchick's me2DAY
나의 에반게리온, 그리..
by 공포영화를 좋아하는 블로그
소비지향의 대학축제
by 세상을 보는 또 다른 시선
러브양이님에 의해 도서..
by 도서가격비교 와비
덕평 자연 휴게소
by 지민아빠의 해처리
이글루 링크
EBC (Egloos Broad..
erehwon.LAB
About willy
Living Loving and L..
修身齊家萬事成
【 이름쟁이™의 눈으로 】
개 풀 뜯어먹는 소리
觀鷄者의 망상 공간
Oz in Wonderland
김명신의 즐거운 하루
Clip for 눈love
함께.. 늘 그렇게..
荷花(hehua)
소스코드위를 걷다.....
가로등 프로젝트
zoops 이야기
까모의 룰루랄라~
▒ 제닉스의 사고뭉치 ▒
河伊兒의 고물상
가로수들은 여전히 제자..
餘分D: physics and fun
hansang's world is no..
길고양이 이야기
어쨌건간에 흘러가는 者
선인장 일지
~★~ 우하하!!~ 프로..
without coffee
Lady Nariel's Golde..
검색엔진 루씬 Lucene..
fire, walk with me
디지털을 말한다 by oojoo
♠후리지아 향기처럼♠
일상 생활 속의 파편들
뽐뿌 inside
책읽는 엄마의 보석창고
Mono log
blogger jely
반복되는 일상속의 비정..
골룸에세이
질풍 17주의 머브러브 라..
maniacs
AURA's Showcase
ozzyz review 허지웅..
디제의 애니와 영화 이야기
ANTIEGOIST : GyuHo..
미달이의 육아일기
All about IT Trends
Suicide Solution
얼음집
외계인 교차점
모기불통신
Trip
찬별은 초식동물
숲 속 작은 섬
snowcat blog
전도서에 바치는 장미
한글이 꿈틀
이우진의 UCC 제작실 ..
INVENT
위로..위로..위로..
woody's film review
Show me the money
전자음악 알아보기
sunny's store
이규영 연예영화 블로그
◀ M.HOUSE - Masade..
공순이 감성로그
쉽니다.
roadster
무디의 무책임한 세상
이제 다시... 바라보다.
random life
Beyond Web
ricordati di me
Jania's Blog
Gaious 功房 네오베..
애자일 이야기
- Last Paromix -
T9T9 Research Center
양군 블로그
소프트웨어 이야기
chef's garden
Requirement Enginee..
티오
고재관의 블로그
mocca
yundream의 프로그래..
통TON
lalou
생각이 없는 블로그
이전 블로그
rss

skin by 이글루스