Search results for '전체보기'

  1. 2012.08.11 -- [리뷰] Head First Python
  2. 2012.02.01 -- 2012년 자바 개발자 컨퍼런스가 다가옵니다! 1
  3. 2011.10.09 -- [영화] 푸른 소금 - 송강호의 이름에 대롱대롱 매달린 영화
  4. 2011.09.14 -- [책] 제발 그대로 살아도 괜찮아
  5. 2011.09.04 -- [영화] 최종병기 활. 전형적인 천하무적 영웅의 탄생 2
  6. 2011.09.04 -- [영화] 혹성탈출 - 진화의 시작. 이는 곧 인류 멸망의 시작!
  7. 2011.09.04 -- [영화] 트랜스포머3. 시원시원한 눈요기 1
  8. 2011.07.12 -- [파이썬] 파이썬3로 CGI 이용하기 4
  9. 2011.07.03 -- 인터넷 중독 및 게임 중독 자가 진단하기
  10. 2011.06.26 -- [영화] 인어베러월드- 복수와 용서 사이
  11. 2011.06.19 -- [영화] 쿵푸 팬더 2 - 쿵푸 마스터의 슬픈 과거 2
  12. 2011.06.13 -- [영화] 엑스맨 : 퍼스트 클래스 - 엑스맨 팬들을 위한 최고의 선물 3
  13. 2011.06.01 -- [영화] 아메리칸 크라임 - 충격적이고 불쾌한 실화 1
  14. 2011.05.30 -- 지식채널e - '요즘'을 묻는 당신에게 (시청자 UCC공모전 대상 수상작) 2
  15. 2011.05.28 -- [Python] Thread, Socket을 이용한 간단한 채팅 프로그램 구현 4
  16. 2011.05.27 -- [Python] 이클립스에서 파이썬 개발 환경 구축하기 1
  17. 2011.05.25 -- [Python] 랜덤 모듈과 파일 입출력을 이용한 로또링!
  18. 2011.05.22 -- [우분투 11.04] rpm 파일을 deb 파일로 변환하여 설치하기 1
  19. 2011.05.20 -- [Python] 파이썬으로 Google API 연동 셋팅하기 7
  20. 2011.05.20 -- [Python] 우분투에서 Django 설치하기

[리뷰] Head First Python

2012. 8. 11. 18:23




파이썬 관련 국내 서적이 몇 안되던 차에.. 마침내 파이썬이 헤드퍼스트 시리즈로 나온다는 소식을 듣고 바로 구매했다. 솔직히 헤드퍼스트 시리즈는 입문자용이라 파이썬을 어느 정도 다뤄본 사람에게는 파이썬 실력 향상에 크게 도움이 안 될 수도 있겠지만 기존에 갖고 있던 파이썬 책에서는 볼 수 없었던 PyPI 및 안드로이드에서 파이썬 개발 등에 대한 다양한 정보들이 있어서 충분히 볼만한 가치가 있어 보였다.


처음 시작은 늘 그렇듯 헤드퍼스트 시리즈 특유의 수다 서문으로 시작, 1챕터부터는 파이썬 설치를 통해 입문자를 위한 세세한 배려로 시작한다. 기존의 프로그래밍언어 서적의 목차에서 볼 수 있는 변수, 제어문, 클래스 등등의 틀에 박힌 순서가 아니라, 직접 간단한 코드를 보여주고 이에 대한 설명 및 간단한 퀴즈 등을 통해 파이썬을 이해할 수 있도록 유도하는 과정이 책을 질리지 않고 읽을 수 있도록 도와준다.





책의 뒷부분에서는 모바일 앱, 웹 개발 및 구글API 등의 예제를 통하여 파이썬의 활용 영역을 넓혀 소개 및 실습함으로서, 파이썬을 간다한 스크립트용이 아니라 더 큰 범위에서 활용할 수 있도록 하고있다. 


단지 이 책만으로 파이썬이라는 프로그래밍언어를 깊이 이해하는데는 큰 무리가 있다. 하지만 간단히 파이썬에 대해 맛을 보고, 조금씩 그 매력에 빠져들도록 하기에는 충분한, 입문자용의 성공적인 헤드퍼스트 시리즈로 손꼽고 싶다.



박상근 여가생활/책

2012년 자바 개발자 컨퍼런스가 다가옵니다!

2012. 2. 1. 22:03

자세한 링크는 

http://jco.zdnet.co.kr/12th/default.asp

를 참조하세요~




박상근 카테고리 없음

[영화] 푸른 소금 - 송강호의 이름에 대롱대롱 매달린 영화

2011. 10. 9. 04:52


장르 : 드라마 | 한국 | 120 분
개봉 : 2011-08-31
감독 : 이현승
출연 : 송강호 (윤두헌 역), 신세경 (조세빈 역), 천정명 (애꾸 역) 등
관람일 : 2011. 09. 03

오랜만에 송강호 주연의 작품이 나왔다. 송강호의 작품 치고 재미 없는 영화가 없었던 것 같다. 살인의 추억, 괴물, 우아한 세계, 좋은놈 나쁜놈 이상한놈, 의형제 ... 나열하기도 입아플 정도. 푸른 소금이 개봉한지 며칠이 지났지만, 네이버 평점이나 네티즌 관람평 따위는 볼 필요도 없었다. 송강호니까.

여느때와 같이 조조영화로 들어가서 수많은 빈 좌석 중에 중간쯔음 앉아 편하게 자리 잡고 앉았다. 기나긴 광고 및 영화 예고가 끝나고 드디어 영화가 시작한다. ...어? 송강호가 나오는 것은 알았어도 신세경이 나오는 줄은 몰랐는데... 송강호 상대역은 바로 신세경이었다. 뭔가 잘못되어 간다는 느낌이 들었다. 시트콤 하이킥이 유명한 것은 알지만 TV를 잘 안 보는터라, 신세경이라는 배우에 별 관심도 없지만 송강호 상대역으로는 조금 에러가 아닐까.


영화 시작 얼마 지나지 않아서, 송강호와 신세경의 부조화 냄새가 나긋나긋 풍겼다. 송강호의 연기 연륜을 신세경이 영 따라오질 못하는 듯. 한 때 조폭이었던 송강호와, 한 때 국가대표 양궁선수였던 신세경. 그리고 송강호를 죽일 수 밖에 없는 신세경. 하지만 너무 정든 두 사람. 

설마 저러다가 못죽이고 그냥 죽이는 척 하면서 넘어가려는 것은 아니겠지? 그리고 송강호가 그렇게도 노래를 부르던 자신만의 식당을 차리는 것은 아니겠지? 이건 뭐 영화 반도 지나기 전에 나혼자 결말에 대해 상상하기 시작했다.

내 상상력이 적중한 것인지, 감독의 상상력이 진부한 것인지... 영화의 마무리는 아주 깔끔하게 내가 -나뿐만 아니라 모든 관객들일지도- 명중시켜버렸다. 송강호의 연기가 영화 전체를 겨우 잡아주는 듯한 느낌. 송강호의 이름으로 겨우 관객 몇몇 끌기는 할 것 같은데 타 흥행작들을 끌어내리기에는 턱없이 부족한 느낌이다. 영화 시작부터 이 영화를 바라보는 내 시각이 삐뚤어져서일까. 윤여정씨의 연기도 어색해 보일 정도.

다음부터는 배우 이름 석자만 보고 덜컥 영화를 보는 일은 없어야겠다.
 

박상근 여가생활/영화

[책] 제발 그대로 살아도 괜찮아

2011. 9. 14. 04:29

도서 : 제발 그대로 살아도 괜찮아
저자 : 표철민
출간 : 2011년 3월 14일
읽은 날 : 2011년 9월 11일 ~ 9월 12일

위드블로그에서 내가 리뷰해볼만한 것이 없을까 찾던 중 도서 카테고리에서 제발 그대로 살아도 괜찮아 라는 책을 발견했다. 또 그렇고 그런 자기개발 서적인가... 라는 생각을 하던 찰나, 표지에 스물일곱 12년차 CEO라는 문구가 내 눈에 들어왔다. 나와 같은 나이인데 CEO라고?! 그것도 12년차?!

대학 생활 말년으로서 나는 이제 막 사회로 나갈 준비를 마쳤는데 나와 같은 나이의 누군가는 12년차 CEO에 이런 서적까지 발간했다는 것이 놀라와서 당장에 리뷰 신청을 했다. 이것도 들어본 이름인데... 점점 이 책과 저자에 대한 것들이 궁금해지기 시작한다.

며칠 지나지 않아 리뷰어로 당첨되었다는 문자, 그리고 또 며칠 뒤에는 이 책이 배송되었다.

프롤로그 | 꿈꾸는 청춘들을 위한 실무지침서

1장. 스물일곱, 12년차 CEO 표철민입니다
1. 웰컴 투 위자드웍스
2. 위젯으로 대한민국 1등하다
3. 루비콘게임즈 이야기

2장. 열여섯 살 소년, 사업을 시작하다
1. 인터넷, 새로운 세상이 열리다
2. 다드림의 험난한 여정 
3. 대학과 인턴, 그리고 위자드웍스의 시작 

3장. 네가 꿈꾸던 20대를 그대로 살아봐
1. 너의 꿈은 원래 뭐였지?
2. 제발, 그대로 살아도 절대 안 망해
3. 내가 원하는 대로 사는 방법

4장. 나만의 강한 촉을 키우는 방법
훈련 1. 관찰과 통찰의 힘
훈련 2. 다양한 분야에 대한 폭넓은 관심
훈련 3. 객관성을 지키는 비판적 사고
훈련 4. 배울 기회를 얻는 무식
훈련 5. 미래를 그리는 상상
훈련 6. 새로운 분야의 전문가 되기

5장. 나만의 분야 전문가가 되다
1. 왜 전문가가 되어야 하지?
2. 전문가가 되는 비밀

6장. 다른 삶이 더 행복할 수 있다
1. 남과 다른 길을 걷는 이유
2. 가자, 나는 이제부터 네 편이다

에필로그 | 어떤 순간에도, 여기서, 현재진행형

처음 책을 펼친 후, 1장과 2장까지는 미친듯이 읽어내려갔다. 그 이유인 즉, 표철민 CEO가 처음 중학생 때 홈페이지를 만들어보기 시작할 무렵, 나도 똑같이 나모 웹 에디터와 플래쉬를 이용한 홈페이지 열풍을 타고 한창 미쳐있을 시기였기 때문이다.  1장과 2장은 저자가 학창 시절 컴퓨터에 미치기 시작하면서부터 중학생 사업가로 변신하기까지의 과정이 흥미진진하게 담겨있다. 

2000년대 초반, 막 인터넷 케이블망이 보급되기 시작할 무렵이다. 또래들은 대부분 초등학생때부터 컴퓨터를 가지고 있었던 것에 비해 나는 가정 형편상 중학교 3학년이 되어서야 컴퓨터를 가질 수 있었다. 저자가 초등 4학년때 컴퓨터를 접한 것에 비하면 매우 늦은 편이다. 힘들게 모은 돈으로 부모님께서 사주신 컴퓨터라 게임을 하기보다는 뭔가 보람찬 일에 컴퓨터를 쓰고 싶었다. 그래서 홈페이지를 만들면서 나는 컴퓨터로 뭔가 공부를 하고 있다는 뿌듯함에 젖을 수 있었던 시기다. 저자와의 차이가 있다면 저자가 도메인으로 사업을 시작하던 때, 나는 디아블로2 게임 홈페이지 길드를 만들어서 길드장으로 활동했다는 어마어마한 차이가...

저자가 도메인을 이용한 사업 이후, 위젯을 아이템으로 한 사업을 꾸려갈 무렵, 나는 학생으로서 조용히 학교나 열심히 잘 다니며 나름 컴퓨터 동아리 활동을 하며 학교 홈페이지를 관리하는 수준에서 머물고 있었다. 그리고 저자가 대학교에 들어와 위자드윅스를 운영할 무렵, 나는 컴퓨터과학을 전공하는 평범한 학생에서, 막 1학년을 마치고 군대를 가는 아주 전형적인 대학생의 모습이었다.

책의 전반부에서, 나 또한 컴퓨터에 미쳐있었던 학창시절에 있었기에 저자의 학창시절과 비교해가며 즐겁게 읽어내려갈 수 있었지만 책의 후반부는 저자의 이야기보다는 자기개발서에 가까운 내용들이 주를 이룬다. 이유도 모른체 소위 말하는 스펙에 목매는 대학생들에 대한 저자의 외침. 네가 꿈꾸는 20대를 그대로 살아봐!

나는 어릴 적부터 컴퓨터를 전공하겠다고 마음먹었고, 지금 컴퓨터과학을 전공하고 있기에 내가 현재 하는 일에 대한 재미를 느끼고 있지만 아쉽게도 주위를 둘러보면 그렇지 않은 사람이 무수히 많은 것 같다. 당장 내 옆을 보더라도 컴퓨터에 흥미가 없는 컴퓨터 전공자들이 많다. 그 스펙(학점)이라는 것을 올리기 위해 어려운 프로젝트 과목은 다 빼버리고, 비교적 학점을 따는데 수고가 덜 들만한 과목을 수강하는 컴퓨터 전공자들... 결국 실속 없는 전공자들의 배출. 물론 모두가 그런 것은 아니지만 다수의 학생들 (타 전공자들도 물론)이 많은 것으로 알고 있다. 이 모든 것이 자기가 하고 싶은 것이 뭔지도 모른 채 적당히 점수를 맞춰서 대학에 진학한 데서 비롯된 것이 아닐까 하는 점에서 저자와 생각을 같이 하고 있다.

책의 후반부에서는 저자가 이 책이 단순한 자기개발서로 치부되는 것은 아닐까 하고 걱정하는 부분이 나온다. 결국 어느 서점에서든 이 책이 자기개발서로 분류되기는 했지만, 적어도 나에게는 저자와 동시대에 컴퓨터에 미쳐있던 중학생 때를 떠올리면서 나의 초심을 다시금 되새길 수 있는 좋은 기회였다. 이 쪽 IT계열에 관심이 없는 다른 이들에게는 그저 식상한 젊은 성공인의 자기개발서에 그칠지 모르겠지만, 적어도 나에게는 이런 색다른 도전, 그리고 이에 따른 즐거운 인생이 있을 수 있다는 것을 깨닫게해준 멋진 이야기였다.

개인적으로는 저자의 학창 시절 이야기, 그리고 위젯과 관련하여 조금 더 기술적인 이야기가 많이 언급되었으면 했다, 이렇게 되면 대중성을 크게 잃어버릴 것이 뻔하겠지만... 그만큼 후반부의 조금은 뻔하다고 할 수 있는 자기개발서적인 이야기에는 아쉬움이 남는다. 

이 책을 덮으며, 비록 내가 걸어온 길이 저자의 길에 비해서는 너무나 평범하고 정석적일 수도 있다. 그리고 저자가 말한 '다른 길'이라는 것으로 가기에는 너무나 깊이 와버렸다. 다른 길로 가지는 못하더라도 이 길에서 당당하게 나아갈 수 있다면 결국 행복은 내 몫으로 돌아오지 않을까? 

저자가 12년차 CEO라고 홰서 막연히 부러워할 필요는 없다. 저자는 나와 조금 다른 길을 가고  나름의 행복을 찾아가고 있을 뿐이니까. 나도 할 수 있다. 10여년 뒤, CTO로서 IT업계를 이끌어나갈 내 모습을 그리며 리뷰를 마친다.









박상근 여가생활/책

[영화] 최종병기 활. 전형적인 천하무적 영웅의 탄생

2011. 9. 4. 23:37


장르 : 액션, 시대극 | 한국 | 122 분
개봉 : 2011-08-10 
감독 : 김한민
출연 : 박해일 (남이 역), 류승룡 (쥬신타 역), 김무열 (서군 역), 문채원 (자인 역) 등
관람일 : 2011. 08. 24

최종병기 활이라는 영화가 300만명을 넘어서 500만명 돌파를 기대하고 있다는 소식에 도대체 어떤 영화길래 이렇게 흥행하나 라는 궁금증이 들었다. 영화 제목만 봐서는 딱 예전의 신기전 정도의 영화 그 이상 그 이하도 아닐 것 같은데 싶어서 찾아보니 박해일 주연에 극락도 살인사건의 감독인 김한민 감독의 작품이다. 지인들의 평가도 그리 나쁘지 않아서 (그리 좋지도 않았지만) 혼자 가까운 CGV를 찾았다.


최종병기 활. 영화 제목에서 알 수 있듯 활을 가지고 홍길동 마냥 동에번쩍 서에 번쩍 하는 내용이다. 이 영화에서는 홍길동 대신 박해일이 최종병기인 활을 가지고 동에 번쩍 서에 번쩍 한다.

아버지의 죽음을 두 눈으로 똑똑히 보았고, 아버지 친구의 손에 길러진 박해일(남이)과 문채원(자인). 그리고 자인을 사랑하는 아버지 친구의 아들 김무열(서군). 서군과 자인은 결국 결혼식을 올리게 되는데, 이 때 청나라의 공격이 일어나 싸그리 죽거나 잡혀가게 된다. 자신의 여동생을 구하기 위한 남이의 활약. 바로 이 활약에서 최종병기 활이 이용된다.


이제부터 남이의 폭풍 활솜씨가 발휘된다. 수 많은 전장에서의 경험이 있는 청나라 장수들도 매일 집 뒷산에서 과녘놓고 열심히 연습한 남이에게 꼼짝없이 당하고 만다. 청나라 군사들은 하나둘 씩 쓰러져가는데 남이는 상처 좀 입을 뿐 천하무적 납셨다.

계속해서 청나라군사들과 싸우던 중, 청나라 군사들에게 남이가 포함되자 이제 막장 하나 등장해주신다. 영화 "차우"에서의 손발이 오그라들게 만들던 그 그래픽이 여기서 또 한 번 등장하면서 영화에 몰입할랑 말랑 하던 기분이 싹 가신다. 천하무적도 모자라서 결국 죽을 수 밖에 없는 운명에 처하자 드라마에서나 보던 막장이 영화에서도 등장해서 초 천하무적으로 만들어버린다.

남이와 자인이 어떻게 만주어를 배웠는지는 모르겠지만 청나라 군사들과 대화를 하는 장면이 나온다. 뭐 나름대로 좀 더 현실성을 적용하여 청나라 군사들과 조선인들을 구분짓기 위함이었을 지 모르겠지만 굳이 어색하게 배우들에게 만주어를 쓰도록 해야만 했을까 하는 생각이 든다. 차라리 관객들이 좀 더 몰입할 수 있도록 한국말로 쓰면 될것을, 차라리 한국말도 조선시대에 쓰던 말로 바꿔 쓰는게 더 현실성이 있을 듯. 어짜피 자막으로 다 해석해줄텐데말이다.


지인들의 말대로 크게 나쁘지는 않은 영화였다. 하지만 그리 볼만한 영화는 아니었다. 적당한 스토리와 적당한 연기, 적당한 액션... 하지만 내겐 적당하게 이쁜 문채원 덕에 영화보는 재미가 있었던, 최종병기 활의 최종병기는 바로 그녀가 아니었을까.

박상근 여가생활/영화

[영화] 혹성탈출 - 진화의 시작. 이는 곧 인류 멸망의 시작!

2011. 9. 4. 21:10


장름 : 액션, 모험, SF | 미국 | 106분
개봉 2011.08.17
감독 : 루퍼트 와이어트
출연 : 제임스 프랭코(윌 로드만), 프리다 핀토(캐롤라인), 앤디 서키스(시저), 브라이언 콕스 톰 펠튼 등
관람일 : 2011. 08. 18

혹성 탈출 시리즈는 80년대의 영화 시리즈로만 알고 있었는데 이번에 혹성탈출 - 진화의 시작이라는 영화가 새로나왔다. 오래 전에 나온 영화를 최신 기술로 리메이크한 영화인줄만 알고 있었는데, 리메이크작이 아니라 혹성 탈출의 또 다른 이야기라고 할 수 있었다.


의학 실험을 위해 희생되는 수 많은 동물들, 이 중에서 인간과 가장 가깝다는 침팬지가 그 희생양으로서 영화에 등장한다. 그리고 이 약의 기적적인 효과가 침팬지의 지능을 엄청나게 올려주게 되고, 주인공은 이 약을 승인받기 위해 프레젠테이션을 하던 도중, 약의 부작용때문에 폭력성이 강해진 침팬지의 난동으로 결국 이 약을 상품화하기 위한 프로젝트는 폐기된다. 게다가 이 프로젝트에서 실험되었던 침팬지들 모두를 안락사시키라는 명령이 떨어지고 만다. 

난동을 피운 침팬지가 사실은 새끼를 낳아서 방에 숨겨두었다는 사실을 알게 된 주인공은, 그 새끼 침팬지는 안락사시키지 못하도록 몰래 집으로 데려오게 된다. 어머니의 영향을 받은 탓인지 엄청난 지능을 지닌 이 새끼 침팬지와의 새로운 생활은 시작되고, 주인공은 새로이 약을 개발하면서 치매에 걸린 자신의 아버지에게 직접 약을 투여하여 기저적적인 회복 효과를 보는 듯 하는데...



자신이 몰래 데려와 기르던 새끼 침팬지, 시저. 시저를 동물병원에 데려갔다가 동물병원 의사와 사랑에 빠지게 되는 등 시저가 주인공의 삶에서 차지하는 비중은 점점 커져가게 된다. 하지만 침팬지를 영원히 데리고 살 수는 없지 않느냐는 여자친구의 말에 따라 시저를 숲속에 데려가서 마음껏 숲속을 누빌 수 있도록 한다.

그러던 어느날, 치매가 회복되는 듯 하던 주인공의 아버지. 치매가 다시 발병하여 남의 차를 들이받는 등 크게 사고를 치고 만다. 이에 격북하던 이웃에게 폭력을 휘두르고 만 시저는 법의 명령에 따라 수감되고 만다. 여기서 시저는 그의 엄청난 지적 능력을 발휘하기 시작한다.


시저는 같이 수감된 침팬지들을 뛰어난 지적 능력을 이용하여 침팬지 무리를 리드한다. 그리고 자신들에게 적대적이었던 인간들에 대한 반항, 자신들의 목숨을 가볍게 여기고 도구로 삼았던 인간들에 대한 복수가 시작된다.

수십년 전에 개봉되었던 혹성탈출 시리즈의 첫번째 영화를 보면 우주선을 타고 다른 행성으로 간 사람들이, 그 행성에 지능적 침팬지에 의해 정복당하여 노예생활을 하고 있는 인간들을 보게 된다. 여차저차하여 다시 우주선을 타고 한국으로 돌아왔을 때, 이미 지구는 그 행성과 마찬가지로 침팬지에 의해 정복당하였다는 이야기. 이 우주선이 처음 지구를 떠나 행성으로 갈 때, 지구에서는 바로 지금 이 진화의 시작이 이루어져고 있었던 것이다.

아주 오래전에 개봉된 그 이야기의 외전격으로서 탄생한 영화이기에 어쩌면 진부한 스토리일지도 모르지만 마치 실사같은 그래픽, 액션 등을 화끈하고 세련되게 보여줌으로서 자연스럽게 관객이 몰입할 수 있도록 아주 잘 만든 영화인 것 같다. 이 영화에서 이제 진화가 시작되었으므로, 이 영화블 보고나면 어떻게든 혹성 탈출 시리즈를 찾아봐야만 할 것 같은 느낌이 든다.

 

박상근 여가생활/영화

[영화] 트랜스포머3. 시원시원한 눈요기

2011. 9. 4. 17:50


장르 : 액션, 어드벤처 | 미국 | 152 분
개봉 : 2011-06-29  
감독 : 마이클 베이
출연 : 샤이아 라보프 (샘 윗위키 역), 로지 헌팅턴-휘틀리 (칼리 스펜서 역) 등
관람일 : 2011. 07. 15

간만에 겨우 여유가 생겨서 영화 한번 보려고 CGV 홈페이지에서 상영시간표를 보니, 상영관들이 트랜스포머로 도배되어있다. 당연히 예상했던 일이지만, 저렴하게 조조영화로 영화를 보기에는 선택의 폭이 너무 좁다. 어쩔 수 없이 그리 내키지는 않았지만 트랜스포머3를 보게되었다.


영화 개봉 전부터 말이 많았던 여주인공의 교체. 사실 메간 폭스같은 스타일은 내 스타일과 전혀 거리가 멀었는데, 이번 여주인공은 이 영화에 별점을 하나 더 던져주고 싶을 정도로 마음에 든다. 내 이상형은 남들과 반대로 가는 것인가... 메간 폭스가 섹시한 여배우라면 이번 여주인공인 로지 헌팅턴 휘틀리는 여기서 지적인 느낌까지 가미된 듯한 느낌.

액션을 무지 좋아하지만 트랜스포머같은 로봇류의 액션보다는 현실적인 앤셕을 좋아하기에, 사실 트랜스포머1, 2 를 그리 재미있게 보지는 않았었다. 스토리같은 것들을 기대하지도 않았고, 나름 로봇 액션류에서는 최강자라 불리는 트랜스포머 시리즈를 통해 눈요기를 하면서 이 순간만이라도 스트레스를 잊자라는 의도였다. 결국 이러한 의도는 적중! 영화 후반부로 갈수록 계속해서 전투씬이 이어진다. 쉴.새.없.이. 


역시 영화는 악당의 퇴치와 함께 평화가 찾아오는 해피엔딩으로 끝이 난다. 물론 그 과정에서 배신과 속임수들이 등장하면서 이야기가 복잡하게 풀어지기도 하였지만. 이제 지구를 위협하던 악당들이 사라졌으니 트랜스포머4가 나오지는 않겠지? 트랜스포머3, 즐거운 눈요깃거리였지만 이번 작품에서도 호불호가 크게 갈렸던 만큼 트랜스포머4는 큰 인기를 끌기 어렵지 않을까라는 생각이 든다.
 

박상근 여가생활/영화

[파이썬] 파이썬3로 CGI 이용하기

2011. 7. 12. 04:36
파이썬에서 지원하는 CGI(Common Gatewaay Interface) 라이브러리를 가지고 놀아보기로 했다. 요즘에 참 웹을 많이 가지고 노는 듯. 요즘 같이 어울리는 녀석이 웹인재인지라...

일단은 CGI를 테스트하기 위해 웹서버가 필요하다. 그것도 모른채 파이썬 공식 사이트의 CGI 라이브러리 설명이랑 웹서핑을 통해 얻은 기본 소스들만 계속해서 보다가 시간만 왕창날렸다. 웹에서 돌아가는건데 당연히 웹에서 테스트해야지.ㅠㅠ 우분투를 쓰고 있고, 아주 오래전에 아파치 웹서버를 설치해 놓았었기 때문에 따로 뭐 더 설치할 것은 없고, 파이썬을 CGI처럼 쓰기 위한 설정작업이 조금 필요했다.

아파치1을 설치했으면 httpd.conf 파일을 설정해야되는 것 같던데, 나는 아파치2를 설치해서 다른 파일을 손봐야했다. /etc/apache2/sites-enabled 폴더에 가면 000-default 파일이 있다. 이 파일은 관리자 권한으로 접근해야 수정할 수 있다.

sudo vi /etc/apache2/sites-enabled/000-default
터미널을 실행한 뒤 위의 명령어를 입력하면 해당 파일을 vi 편집기로 편집할 수 있다. (나는 vi 대신 gedit 을 이용했다.

...

<Directory /var/www>
          Options Indexes FollowSymLinks MultiViews
          AllowOverride None
          Order allow,deny
          allow from all
          Options +ExecCGI
         AddHandler cgi-script .cgi .py
</Directory>
... 



나는 따로 웹서버의 루트 폴더를 사용자 계정으로 바꾸지 않았기 대문에, 웹서버의 루트폴더는 기본 폴더인 /var/www 로 되어있었다. 000-default 파일을 보면 위와 같은 부분이 있다. 당연히 빨간색 두 줄은 내가 직접 추가한 파일이다. 저 빨간색 두 줄을 추가하도록하자.
Options +ExecCGI 는 웹서버에서 CGI를 실행가능하도록 하는 설정이고
AddHandler cgi-script 는 어떤 확장자의 파일을 실행할 것인지 설정한다. 뒤에 실행할 파일의 확장자를 추가해주면 된다. 여기서는 .cgi와 .py를 추가했으므로 cgi파일과 python파일을 실행할 수 있다.
이제 웹서버쪽의 설정은 끝. 파이썬 코드를 작성해보자.

index.html

<!doctype>
<html>
<head>
</head>
<body>

<form name="form" method="get" action="http://localhost/cgi_test.py">
<p>
email : <input type="text" name="email">
name : <input type="text" name="name">
<input type="submit" value="CLICK">
</p>
</form>

</body>
</html>

cgi_test.py

#!/usr/bin/env python
#-*- coding: euc-kr -*-

import cgi
import cgitb    #스크립트 오류 등의 에러발생시 브라우저에 에러 내용을 보여준다.
cgitb.enable()

print("Content-type: text/html\n")    #\n 을 안하면 Internal Server Error 발생!

print('<html>')
print('<head>')
print('<title>Hello Word - First CGI Program</title>')
print('</head>')
print('<body>')

form = cgi.FieldStorage()

if "email" not in form:
    print("Error!")
else:
    print("Your email address is " + form["email"].value)


print('</body>')
print('</html>')



위 두 파일을 웹서버 루트폴더에 넣고 http://localhost/ 에 접속하면 아래와 같이 index.html파일이 열린다.


 텍스트박스에 임의의 내용을 입력하고 버튼을 클릭하면 cgi_test.py가 호출된다. 여기서 cgi라이브러리에 주목하자. cgi.FieldStorage() 가 실행되면서 index.html파일이 넘겨준 form의 내용을 form이라는 이름의 변수에 저장하고 있다. 그리고 넘겨받은 이름 중에 email 이란 것이 없으면 Error, 있으면 그 내용을 출력한다. 



성공적으로 form의 이메일을 잘 받아서 출력해주는 것을 알 수 있다. 이 외의 여러 cgi 관련 라이브러리들은 http://docs.python.org/py3k/library/cgi.html 에서 확인할 수 있다.

중간에 수도 없이 Internal Server Error 메시지를 보기도 하였고, cgitb 라이브러리를 이용하여 브라우저에 뜨는 에러메시지를 보니 파이썬2.7.1이 인터프리터로 나오는 등 무수한 문제점과 의문에 부딪혔었다. 쓸데없이 웹서버 설정을 이리저리 바꾸기도 하고 서버를 재시작하는 등 삽질을 하다가 파이썬3에서는 안된다는 어느 외쿡인의 글을 보면서 좌절하기도 했었는데 막상 성공하고나니 뿌듯하면서도 한편으로는 허무함. 오늘도 이렇게 나의 삽질 내공은 쌓여간다. 

박상근 프로그래밍/Python

인터넷 중독 및 게임 중독 자가 진단하기

2011. 7. 3. 04:09
계절학기로 인터넷 윤리라는 교양과목을 듣고 있다. 딱히 어려운 부분도 없고, 평소에 관심도 있던 주제라 재미있게 강의를 들을 수 있었다. 인터넷 중독에 대한 강의를 들은 후 관련자료를 찾던 중 인터넷 중독 및 게임 중독에 대한 자가진단을 할 수 있는 사이트를 찾았다.

http://www.iapc.or.kr/ 한국정보화 진흥원

위 사이트에서 상위 메뉴를 보면 자가 진단 메뉴가 있다. 자가 진단 뿐 아니라 중독 상담까지 가능하다. 컴퓨터과학을 전공하고 있어서 평소에 워낙 인터넷을 접하는 시간이 많다보니 나도 설마 인터넷 중독은 아닌가 싶어서 검사를 해보았다. 중학생 시절에 검사를 했다면 아마 게임 중독이 나왔을 수도 있겠지만 지금은 게임을 즐겨하는 편이기에 게임 중독 진단을 할 필요는 없었다.

 
간단히 20여개의 문항에 답하고 나니 바로 자가 진단 결과를 확인 할 수 있었다. 다행히 건전한 사용자로 판단되었고 스스로 인터넷 사용에 대한 조절능력이 있다는 결과가 나왔다. 중독이라는 결과가 나오면 내가 이쪽 분야를 전공하고 있어서 어쩔 수 없다는 변명을 내놓으려 했건만 참 다행이다.

 

박상근 일상다반사

[영화] 인어베러월드- 복수와 용서 사이

2011. 6. 26. 02:07


장르 : 드라마 | 덴마크, 스웨덴 | 113 분 | 
개봉 : 2011-06-23
감독 : 수잔비에르
출연 : 마르쿠스 리가르드(엘리아스 역), 윌리엄 욘크 닐슨(크리스찬 역) 등

간만에 주말을 맞이하여 새로 개봉한 볼만한 영화가 있나 CGV앱에서 찾아보니 인 어 베러 월드 라는 영화가 엊그제 개봉한 것을 알았다. 다른 포털 사이트에서 검색해보니 네티즌 평점이 9점대다. 요즘은 네티즌들이 평점을 후하게 주는건지 알바생들이 열심히 일하는건지... 아니면 정말 영화가 좋은건지...

그런데 이 영화가 2011 아카데미와 골든글로브의 최우수 외국어 영화상을 동시에 석권했단다. 작년에 <복수(Haevnen)>라는 원제로 덴마크에서 개봉했던 영화이다. 이 정도면 충분히 볼만하겠다 싶어서 조조시간이 끝나기 전에 영화관으로 달려갔다.

In a better world. (더 나은 세상에서) 더 나은 세상에서 대체 뭘 어쩌자는 걸까. 어떤 세상이 더 나은 세상인걸까. 
 

엘리어스가 런던에서 전학을 오자마자 친구들에게 괴롭힘을 당하는 크리스찬을 만난다. 크리스찬은 늘 그러려니 하고 당하고만 있지만 엘리어스는 크리스찬을 괴롭히고 자신도 괴롭히려하는 녀석을 가만두지 못하고 흠씬 두들겨패준다. 여기서 이 영화에서의 복수에 대한 딜레마가 시작된다.

복수를 할 것인가 용서를 할 것인가... 이에 대한 갈등은 생활에서 수도 없이 일어난다. 오지에서 의료봉사를 하는 크리스찬의 아버지에게 닥친 딜레마. 임산부의 배를 갈라 태아 성별을 맞추는 내기를 하는 폭군을 치료할 것인가 말것인가...그리고 자신에게 폭력을 쓴 남자에게 복수를 할 것인가 말 것인가. 이 밖에 크리스찬의 어머니의 갈등. 바람 핀 남편을 용서할 것인가 말 것인가. 엘리아스는 자신의 어머니를 살리지 못한 아버지를 용서할 것인가 말 것인가. 이렇게 수도 없는 복수에 대한 딜레마가 펼쳐진다. 그리고 마침네 터져버린 복수의 처참한 결과.


하지만 이 복수의 처참한 결과 이 후에, 용서로 인해 찾아오는 평화가 있었다. 이게 바로 더 나은 세상인 것일까? 저 두 가족의 입장에서는 용서로 인해 마치 평화가 온 것 처럼보이지만 좀 더 3자의 입장에서 보자면 폭력을 습관처럼 휘두르던 남자는 누군가의 복수 또는 충고 없이는 평생 그렇게 남을 괴롭히며 살아갈텐데. 대책없는 용서가 답은 아닌 것 같다. 이에 용서 이후의 평화는 어느 정도의 그림자를 안고 있는 것 같다. 마치 크리스찬의 아버지가 뺨을 맞고서 자식들 앞에선 아무렇지도 않은 척 했지만 혼자 강에 뛰어들어 분을 삭히던 모습처럼...

 

박상근 여가생활/영화

[영화] 쿵푸 팬더 2 - 쿵푸 마스터의 슬픈 과거

2011. 6. 19. 04:24
장르 : 애니매이션, 액션, 코미디 | 미국 | 91분
개봉 : 2011. 05. 26
감독 : 여인영


드디어 쿵푸 팬더가 다시 돌아왔다. 영어 공부를 한답시고 쿵푸 팬더를 10번도 넘게 봐왔기에 이 영화에 대한 애착이 강했는데 쿵푸 팬더2가 나올 줄이야... 한동안 바쁘다는 핑계로 용의 전사로 거듭난 포를 못보고 있다가, 계속해서 새로 개봉하는 영화들에 밀려 곧 영화관에서 막을 내릴까 싶어서 얼른 또 CGV로 달려갔다. 

어느덧 용의 전사로서 놀랍도록 발전한 쿵푸 실력을 발휘하고 있는 포. 하지만 세 살 버릇 여든까지 간다고 했던가? 아직까진 내면의 평화보다는 내장의 평화를 추구하고, 실수만발에 뚱뚱한 몸뚱이는 그대로다. 하지만 이제 악당들과 싸울 때 만큼은 다른 누구 못지 않게 앞장서서 싸우며 용의 전사로서의 면모를 보여주는데...

1편에서는 왜 팬더인 포의 아버지가 거위인지 언급이 되지 않았지만 이번 편에서는 포의 과거이야기가 큰 비중을 차지하였다. 당연한 이야기지만 거위는 포의 친아버지가 아니었고 그 뒤에 가려진 슬픈 과거가 있따. 그리고 포로 하여금 그 과거를 조금씩 기억나게 하는 사건이 발생하였으니, 이름하여 공멘시의 공작새! 

이번 스토리는 뭐 권선징악의 선에서 크게 벗어나지 않는다. 팬더와 공작새의 대결, 선과 악의 대결. 역시나 주인공 답게 포는 쉽게 쓰러지지 않았다. 쓰러질 듯 쓰러질 듯 하더니만 스승이 1편 때부터 계속 입버릇 처럼 말하던 Inner Peace(내면의 평화)를 위기의 순간에 깨닫고서 말도 안되는 능력으로 악을 쳐부숴버린다. 이처럼 단순한 스토리임에도 불구하고 화려한 액션과 놀라운 그래픽에 계속해서 감탄하며 볼 수 밖에 없었다. 계속해서 초 섬세한 그래픽을 보며 저걸 어떻게 다 구현했을까 라는 생각을 하는건 역시나 직업병인가...

마지막에 죽은 줄로만 알았던 포의 아버지가 어딘가에서 다른 팬더들과 함께 생활하다가 자신의 아들이 살아있음을 문득 느끼게 되는 장면에서 쿵푸 팬더 3를 암시하는 것은 아닐까 라는 생각이 든다. 3편에는 이제 부모님과 만나게 되는 이야기로 전개될 것인지, 아니면 계속해서 포가 국수를 만들며 지금의 아버지와 즐거운 나날을 살아갈지는 두고 봐야 할 일이다.

이번 쿵푸 팬더2의 감독이 한국계 감독이라고 한다. 한국말을 할 줄은 아는지 모르겠지만 한국계로서 이런 할리우드 영화를 감독했다는 것이 최초라고 하는데, 같은 한국인으로서 조금은 뿌듯함을 느낀다. 자신이 몸담고 있는 분야의 최고의 위치에서 최고의 영화를 만들어낸 여인영 감독에게 힘찬 박수를 보내고 싶다.

박상근 여가생활/영화

[영화] 엑스맨 : 퍼스트 클래스 - 엑스맨 팬들을 위한 최고의 선물

2011. 6. 13. 04:14
장르 : 액션, 모험, 드라마, SF, 스릴러 | 미국 | 132 분 
개봉 : 2011.06.02
감독 : 매튜 본
주연 : 제임스 맥어보이(찰스/프러페서X), 마이클 패스벤더(에릭/매그네토) 등

SF, 액션류를 좋아하는 나로서는 엑스맨 시리즈는 결코 놓칠 수 없는 영화이다. 이 영화에 대한 평가도 포털사이트에서의 네티즌 평점이 9점대를 오가고, 지인들도 이 영화에 대해 극찬을 아끼지 않았기에 엄청 기대하고 있었다. 면접 준비때문에 한동안 영화를 보지 못하다가 면접 다음날 아침 조조시간에 혼자 근처 CGV로 달려갔다.

어릴적 누구나 나도 초능력이 있었으면 하는 생각을 해봤을 것이다. 엑스맨에는 내가 상상했던 모든 초능력자...가 아닌 돌연변이 유전자들을 지닌 사람들이 등장한다. 내가 최고로 꼽았던 남의 마음을 읽어내는 능력을 물론이고, 음파를 이용한 비행, 변신, 염력 등... 

엑스맨1에서부터 등장하던 나이든 프로페서X와 매그니토. 그 둘의 과거가 잠시 언급된 적은 있었지만 그 둘이 예전에 어떤 사이였으며 둘 사이에 무슨 일이 있었는지에 대해서 구체적으로는 알 수가 없었는데 이번 영화를 통해 아주 제대로 알 수가 있었다. 이 영화는 기존의 영화 시리즈물이 시간순으로 전개되는 것과는 달리, 엑스맨 최초의 스토리를 들려주고 있다. 엑스맨의 주요 등장인물들이 처음에 어떻게 만나게 되었으며, 프로페서X와 매그니토는 어떻게 서로를 그리 잘 알고 있는지 등. 그리고 왜 프로페서X가 평범한 인간들에 적대감을 갖고 싸우게 되었는지에 대한, 그동안 엑스맨에서 보여주지 못했던 이야기들을 접할 수 있다.

사실 기존의 엑스맨 시리즈를 보지 않고도 엑스맨 : 퍼스트 클래스를 보는데는 아무런 지장이 없다. 왜냐면 어짜피 기존 스토리에서의 극초반부이기 때문에 이해를 못할 사항이 전혀 없으니까. 하지만 이미 엑스맨을 본 적이 있는 사람이라면 이전의 엑스맨 시리즈가 새록새록 기억나면서 뭔가 조금 얽혀있던 조각들이 하나씩 맞춰져나가는 듯한 느낌을 받을 수 있다.

혹시 나는 특별한 능력을 지녔는데 아직 그 능력이 발휘되지 못하고 있는 것은 아닐까? 조만간 지구방위대 후레쉬맨의 빨간옷 입은 사람이 찾아와서 빨리 팀에 합류하라고 하지는 않을까? 라고 잘 때 마다 상상하던 초등학생 때와는 달리 이미 내일 모레 30을 바라보는 나이에서 현실에 너무나도 찌들어버렸지만 엑스맨을 보는 동안 만큼은 그때의 동심을 이렇게 영화로나마 보상받는 듯해서 이 영화에 더욱 더 빠져들 수 밖에 없었다.

난 이런 돌연변이적 능력이 없지만, 갑작스레 생긴 그러한 능력보다는 꾸준히 긴 시간동안 나의 노하우를 축적한 나만의 능력이 진정한 (초)능력이 아닐까. 영화를 보고 집으로 돌아오는 길에 문득 이런 생각이 들었다. 지금 나는 무슨 능력을 갖고 있는지...

어쩌면, 어릴적의 나보다 오히려 못한 지금의 나다.

자체 별점 : ★★★
 

박상근 여가생활/영화

[영화] 아메리칸 크라임 - 충격적이고 불쾌한 실화

2011. 6. 1. 01:44




기본 정보 : 범죄, 드라마 | 미국 | 97 분
감독 : 토미 오헤이버
출연 : 캐서린 키너, 엘렌 페이지

인터넷에서 보고나면 불쾌감이 드는 영화 목록에 아메리칸 크라임이라는 영화가 있는 것을 보았다. 괜히 잔인하거나 더러운 장면의 하드코어물의 영화를 제외하고 순수 작품의 내용 면에서 굉장히 불쾌하고 찝찝함을 주면서도 실화를 바탕으로 한 영화라기에 어떤 영화인가 싶어 찾아보게 되었다.

"쏘우"처럼 딱히 영화에 잔인한 장면이 구체적으로 나오지는 않는다. 하지만 어느 정신질환이 있는 것으로 보이는 한 여자가 다른 이웃의 두 자매를 돈을 받고 기르게 되면서 첫 째 딸아이(실비아)를 학대하면서 벌이는 몹쓸 짓들은 구체적 묘사 없이도 보는 이의 눈쌀을 찌뿌리게 하기에 충분하다.

2주 후에 아이를 맡긴 부모로부터 돈이 바로 보내지지 않자 심한 괴롭힘을 가하며, 그 뒤로도 억지로 죄명을 뒤집어 씌워 조금씩 괴롭히는 강도가 세지더니 결국은 담뱃불로 지지고, 불에 달군 바늘로 몸에 "나는 창녀다" 등의 글귀를 새기는 등 비정상적인 학대를 가한다. 뿐만 아니라 그녀의 어린 자녀들도 그녀를 따라서 전혀 죄의식없이 담뱃불로 지지거나 때리고 물고문을 하는 등, 학대에 동참하게 되는 모습을 보면서 무서운 군중심리에 치가 떨리도록 만든다. 

이렇게 실비아가 심한 학대를 당하는 과정과 동시에, 이 사건 이후의 법정에서 가해자 및 그 자녀들의 증언을 중간중간 보여준다. 어린 자녀들이 엄마를 따라서 실비아를 학대하는 장면 뒤에는 그 자녀들이 법정에서 변호사의 질문에 답하는 모습을 볼 수 있다. 아이들은 서로 자신은 잘못한 것이 없다는 듯이 다른 남매 및 친구들의 잘못을 증언하며 자신은 딱히 저지른 죄가 없다고 말한다. 그리고 가해자 또한 진술을 계속해서 번복하며 정신 이상의 모습을 보여주다 결국 무기징역을 선고받는다.

영화에서는 실비아는 학대를 못이기고 목숨을 잃고 만다. 물론 실제로도 실비아는 목숨을 잃었다. 실화를 바탕으로 하였다고 들었는데 극중 실제 인물의 이름들까지도 실제 인물들고 동일한 이름을 사용하였으며, 실제는 영화보다 더 심한 학대를 당했다는 사실을 알 수 있었다.

제 3자의 입장에서 영화를 바라보면서 가해자는 물론이고 동조자, 그리고 이웃집에 살면서 실비아의 비명소리를 몇번씩이나 들었음에도 불구하고 아무런 조치도 취하지 않았던 방관자들... 이 사건에 모두 일말의 책임을 묻지 않을 수 없었다.

오늘 뉴스를 보면서 여중생이 버스에서 취객에서 성추행을 당하고 이에 반항하는 소동이 있었는데도 버스의 그 누구도 그 일에 신경쓰지 않았다는 소식을 접하면서 우리 모두가 자신의 일에만 너무 치중한 나머지 남의 일은 너무 방관이라는 태도로 지내오지 않았나라는 생각이 든다. 물론 괜히 이런 일에 휩싸여 도움을 주려다가 오히려 피해를 받는 경우 ( 성폭력을 당할 위기의 여성을 구해줬는데 그 여성은 사라지고 오히려 성폭력미수범으로부터 폭행으로 고소를 받는 경우 )등의 어처구니없는 법도 하루빨리 개정되어야 할 것이다.



 

박상근 여가생활/영화

지식채널e - '요즘'을 묻는 당신에게 (시청자 UCC공모전 대상 수상작)

2011. 5. 30. 00:44



동영상 보기는 아래 주소 클릭!
http://home.ebs.co.kr/jisike/main.jsp

어쩌다 이번 지식채널e 시청자 UCC 공모전에서 대상을 받은 이 UCC를 보게 되었다. 자신이 좋아하는 것을 쫓아가는 이상과 먹고 살 궁리를 해야하는 현실 사이에서의 갈등. 돈이 무언가를 평가하는데 큰 기준이 되어버린 사회. 우리는 어릴 적부터 학교에서 돈은 무언가를 하기 위한 수단일 뿐이라고 배워왔지만, 나이가 들수록 사회는 돈은 그 수단을 넘어선 목적으로서 존재하고 있다는 사실을 뼛 속 깊이 새겨준다.

저들이 말하는 그 사람들. 나이가 몇인데 철 좀 들어라, 현실을 생각해라라고 그들의 내면을 바라보지 못하고 현실의 잣대만을 들이대는 그 사람들. 나는 감히 그 사람들에 속하지 않는다고 말하기가 어렵다. 돈 주고도 사지 못하는 저들의 열정, 자신들이 진정 하고 싶은 것을 위해 수많은 것들을 포기해가면서 도전하는 저 열정에 비해, 계속해서 현실과 타협하려 해가는 내 자신이 조금은 부끄러워진다. 나도 나름대로 뭔가 하고 싶은 것을 많은 것들을 희생하며 쫓아가고 있다고 생각하고 있지만... 결국은 이것이 내 생계와 관련된 '전공'이기에 나는 이런 면에서는 참 운이 좋은 것 같다.

캐나다에서 어학연수를 하던 시절, 그리고 짧게나마 미주지역을 여행하면서 길거리에서 자신의 끼를 마음껏 뽐내는 거리의 예술가들을 수많이 볼 수 있었다. 주로 음악가들이 많았지만 마술사 및 행위예술가들도 자주 보았다. 그리 큰 돈을 버는 것 같아보이지는 않았지만 그 모든 이들의 공통점은 즐거워보인다는 것. 물질적으로 풍족하지는 않더라도 적어도 정신적으로는 풍부해 보이는 그들의 모습이 굉장히 부러웠던 기억이 난다. 

오는 8월에 있을 세계 거리 예술 축제에 사비를 들여서 참가한다는 그들의 열정에 박수를 보내고 싶다.
 

박상근 일상다반사

[Python] Thread, Socket을 이용한 간단한 채팅 프로그램 구현

2011. 5. 28. 02:11
한 언어를 배울 때, 책상 앞에 앉아 책만 보기보다는 뭔가 작은 프로그램을 직접 만들어보는 것이 진리. 간단한 파이썬을 이용하여 간단한 채팅 프로그램을 구현해보기로 했다. TCP/IP 소켓 통신 관련하여 검색해보니 간단한 예제들이 수도 없이 나왔다. 물론 대부분이 2.x 버전에서 구현된 것들이다. http://www.python.org/에서  3.2 버전의 socket을 검색하니 간단하게 참고할만한 예제가 있었다. 하지만 서버에서 응답 한번 해주고 바로 소켓을 닫아버리는 소스이기에 이것을 좀 수정해서 계속해서 여러 메시지를 주거니 받거니 할 수 있도록 만들고 싶었다.

#client program
import socket
import threading

HOST = "127.0.0.1"
PORT = 8089      
s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
s.connect((HOST, PORT))


def sendingMsg():
	while True:
		data = input()
		data = bytes(data, "utf-8")
		s.send(data)
	s.close()
	
def gettingMsg():
	while True:
		data = s.recv(1024)
		data = str(data).split("b'", 1)[1].rsplit("'",1)[0]
		print(data)
	s.close()

threading._start_new_thread(sendingMsg,())
threading._start_new_thread(gettingMsg,())

while True:
	pass

#server program
import socket
import threading

HOST = ''                
PORT = 8089        
s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
s.bind((HOST, PORT))
s.listen(1)
conn, addr = s.accept()
print('Connected by', addr)

def sendingMsg():
	while True:
		data = input()
		data = data.encode("utf-8")
		conn.send(data)
	conn.close()

def gettingMsg():
	while True:
		data = conn.recv(1024)
		if not data: 
			break
		else:
			data = str(data).split("b'", 1)[1].rsplit("'",1)[0]
			print(data)
	conn.close()
	
threading._start_new_thread(sendingMsg,())
threading._start_new_thread(gettingMsg,())

while True:
	pass

파이썬3에서는 그냥 메시지를 전달하면 str는 지원하지 않는다는 에러메시지가 나온다. 그래서 이를 bytes형으로 변환하기 위해 encode함수를 이용하였다. 그러니 메시지 앞에 byte라는 의미의 b가 달라붙어버렸다. (hello -> b'hello') 이를 해결하기 위해 일단은 문자열 변환으로 b와 ' ' 를 지워서 출력하기는 했는데 str함수로 형변환 했을 때 깔끔하게 b를 지워줬으면 좋겠다. 분명히 문자열 변환같은 수동적인 방법말고 뭔가 다른 방법이 있을 것 같긴 한데...

마지막에 While True: pass 도 엄청난 삽질 끝에 삽입하였다. Thread를 이용해서 함수를 시작시키도록 코드를 구현한 뒤 파일을 실행했는데 아무런 반응이 없었다. 이 이유를 몰라서 한참 삽질하다보니 쓰레드로 특정 함수를 시작하자마자 코드의 마지막을 읽음으로서 파일 실행이 끝나버리는 ... 그렇다, 파이썬은 스크립트언어다. 인터프리터 방식의.... 그래서 프로그램이 끝나지 않고 계속 쓰레드가 돌아갈 수 있도록 의미없이 무한반복하는 코드를 집어넣었다. 아휴, 파이썬의 길은 멀고도 험하구나~

박상근 프로그래밍/Python

[Python] 이클립스에서 파이썬 개발 환경 구축하기

2011. 5. 27. 22:06
Vim으로 Python을 코딩하다보니 바로바로 내가 틀리게 코딩한 부분에 대해 인식하기가 힘들고, 각 객체에 내장된 라이브러리들을 바로 알기도 힘들다. IDLE(통합 개발 환경)을 설치해보기도 했지만 Vim보다 파이썬에 조금 더 최적화되었다는 정도의 느낌밖에 들지 않는다. 그래서 뭔가 제대로 된 것을 찾다가 이클립스에서 파이썬 플러그인을 설치할 수 있다는 정보를 입수하였다.
 

이클립스를 실행하고 메뉴의 Help -> Install New Software 를 선택한다.

우측 상단의 Add 버튼을 클릭한다.

 Name에 PyDev, Location에 http://pydev.org/update 를 입력하고 OK.

 PyDev와 PyDev Mylyn Intergration을 설치할 수 있다. NEXT 버튼을 클릭하자
(만약 다음으로 넘어가서 설치에 실패한다면 PyDev만 체크하고 NEXT를 클릭하자) 

 

설치할 파일들의 목록들이 나온다. 라이센스 내용을 확인 후 I Accept... 에 체크하고 Finish!

 

이클립스 실행 후, File -> New -> Pydev Project를 선택하여 프로젝트를 시작할 수 있다.

파이썬 프로젝트 생성 화면에서 파이썬의 타입 및 버전, 인터프리터 등을 선택할 수 있다.

 

박상근 일상다반사

[Python] 랜덤 모듈과 파일 입출력을 이용한 로또링!

2011. 5. 25. 22:06
파이썬을 대충 공부하기는 해봤는데 트위터나 구글 등의 오픈API를 이용하지 않고 내장 모듈로만 뭔가 만들어볼까 하다가 로또 당첨금 15억원때문에 파탄난 가정에 대한 뉴스를 보고서, 도대체 로또 1등은 얼마나 힘든 일인지 파이썬을 이용해 알아보기로 했다.
    
프로그램을 처음에 한번 실행해봤더니 8308532번만에 겨우 1등이 당첨될 수 있었다. 실제로 1등에 당첨이 될 확률은 800만분의 1정도라는데 신기하게도 한번에 비슷한 확률로 1등이 나왔다. 여러번 테스트를 해보니 5등은 200번에 한번정도는 당첨이 되는 것 같은데 그 이상은 상당히 힘든 것 같다. 1등은 프로그램 실행 후에 밥을 먹고 화장실도 다녀와도 당첨이 안되어 있을 정도...
import random

lotto = random.sample(range(1,45),7)
bonus = lotto[6]
lotto.pop()

howManyTried = 0

while 1:    
    f=open("lotto.txt", "a")

    howManyGotNum = 0
    howManyTried += 1

    myLotto = random.sample(range(1,45),6)
    lotto.sort()
    myLotto.sort()

    for i in myLotto:
        for j in lotto:
            if i==j:
                howManyGotNum+=1
                break
    
    if howManyGotNum==6:
        print("1등!\n")
        f.write("1등")
        break
    elif howManyGotNum==5:
        for b in myLotto:
            if b==bonus:
                f.write("2등!\n")
        howManyGotNum==5 
        f.write("3등!\n")
    elif howManyGotNum==4:
        f.write("4등!\n")
    elif howManyGotNum==3:
        f.write("5등!\n") 
    else:
        f.write("꽝!\n")
f.close()

1등에 당첨되면 어쩌지? 하는 걱정에 지금껏 한번도 로또를 해본 적이 없었는데, 앞으로 그런 걱정은 전혀 할 필요가 없을 것 같다.

박상근 프로그래밍/Python

[우분투 11.04] rpm 파일을 deb 파일로 변환하여 설치하기

2011. 5. 22. 16:09
필요한 파일이 있어 다운받았는데 확장자가 rpm이다. 우분투에서는 설치파일로 deb 파일을 쓰는데 rpm이라니... deb 버전을 찾아봐도 rpm만 지원하고 있어서 rpm 파일을 deb 파일로 변환하는 방법을 찾아야 했다. 구글링을 통하여 rpm파일을 deb 파일로 변환해주는 alien이라는 프로그램이 있다는 사실을 알았다.

 우분투 소프트웨어센터에서 alien을 검색하여 설치한다.

 터미널에서 자신이 deb 파일로 변환하려는 rpm 파일이 있는 경로로 이동한다. 
sudo alien -c RPM파일명 을 입력하고 몇초 기다리면 ~.deb generated!!!
 
ls 명령어로 deb 파일이 잘 생성되어있음을 확인할 수 있다. 

박상근 리눅스

[Python] 파이썬으로 Google API 연동 셋팅하기

2011. 5. 20. 08:32
구글에서는 Youtube, GoogleDoc, Blogger 등의 수많은 서비스의 API를 파이썬에서 이용할 수 있도록 지원해준다. 파이썬의 문법을 간단히 익혔으므로 본격적으로 이를 활용하여 간단한 앱들을 만들어보기로 했다. 

http://code.google.com/apis/gdata/articles/python_client_lib.html
다행히도 위 사이트에서  파이썬을 이용한 구글API 사용법을 친절하게 안내해주고 있다.

>>>from xml.etree import ElementTree
먼저 XML 라이브러리 설치 여부를 확인한다. 파이썬 인터프리터에서 위와 같이 입력하였을 때 아무 에러메시지 없이 잘 임폴트 되었다면 이미 설치되어 있는 것이므로 그냥 다음 단계로 넘어가면 된다. 만약 임폴트가 실패하면 http://effbot.org/downloads/#elementtree 에서 다운받아야 한다. 윈도우 사용자라면 exe파일을, 리눅스 사용자라면 zip파일을 받으면 된다. (리눅스 사용자는 압축을 푼 후 sudo ./setup.py install 를 터미널에 입력하여 설치하도록 하자)

http://code.google.com/p/gdata-python-client/downloads/list
위 URL에서 Google Data Library를 다운 받을 차례다. 가장 상위의 최신 버전을 다운받자. (윈도우 사용자는 zip파일을, 리눅스 사용자는 tar.gz파일을 받는다). 

나는 우분투 사용자이므로 tar.gz 파일을 받아 사용자 계정에 압축을 풀고
설치한 경로에서 sudo ./setup.py install 를 터미널에 입력하여 라이브러리를 설치하였다.

뭔가가 마구 설치되고 난 후,
정상 설치 테스트를 하기 위해 
sudo ./tests/run_data_tests.py 를 입력한다.

   위와 같이 OK가 계속 출력되면 정상적으로 라이브러리가 설치되었음을 확인할 수 있다.

이제 파이썬으로 구글API를 이용하기 위한 준비가 끝났다. 터미널에서 라이브러리 설치 경로로 이동해서 샘플 코드를 실행해 볼 수 있다. ./samples/docs/docs_example.py를 입력해보자.  


박상근 프로그래밍/Python

[Python] 우분투에서 Django 설치하기

2011. 5. 20. 03:21
Django(장고)는 강력한 언어인 파이썬으로 작성된, MVC 기반의 오픈소스 웹 프레임워크이다. 웹 애플리케이션을 쉽고 빠르게 개발할 수 있도록 도와주며, 최소한의 시간과 노력으로 웹 애플리케이션을 개발할 수 있도록 한다.

Django 설치 이전에 Python 2.4 이상의 2.x 버전이 설치되어 있어야한다. 단, 3.x 버전은 아직 지원하지 않는다.



http://www.djangoproject.com/download/  에서 Django를 다운받을 수 있다. 이를 다운 받은 뒤 사용자 계정에 압축을 풀었다. 터미널에서 sudo python setup.py install를 입력하여 설치를 시작한다. 터미널에서 수많은 설치과정이 진행되는 것을 볼 수 있다.
 




/usr/local/bindjango-admin.py 파일이 생성되어 있는 것을 확인할 수 있다. 현 위치에서 이 파일을 실행시킬 수도 있지만 나는 이 파일을 사용자 계정 위치로 옮겨서 실행하기로 했다. 터미널에서 python /usr/local/bin/django-admin.py startproject mysite 를 입력한다. 여기서 mysite는 자동으로 생성될 django 관련 폴더명을 뜻한다.


mysite라는 폴더가 생성되고 폴더 내에 4개의 파일이 만들어졌다.
 

python mysite/manage.py runserver 를 입력하여 서버를 실행해보자.
 

http://127.0.0.1:8000/ 으로 접속하면 위와 같은 화면을 볼 수 있다.

자, 이제 Django 설치가 간단하게 끝났다. 첫단계를 쉽게 끝냈으니 본격적으로 Django를 공부해보도록 하자! 
 

 

박상근 프로그래밍/Python