9월, 2018의 게시물 표시

[파이썬] 패키지 재사용을 위한 패키징과 배포

너무나 사심이 가득하고 개인적인 대항해시대 온라인 시세 공유 프로젝트를 진행하면서 파이썬에 대해서도 많이 공부하게 되는 것 같습니다. 단순 언어도 공부가 되었지만, 실제 deploy 하는 측면에서도 고민을 하고 해결 방법을 찾아보곤 합니다. 대항해시대 시세 공유 도우미 프로그램는 크게 2개의 프로젝트로 구성되어 있습니다. 그리고 이 두개의 프로젝트는 물리적으로 분리된 프로젝트로 만들려고 합니다.   - Machine Learning 을 수행하는 부분   - GUI 클라이언트 부분   이 두개의 프로젝트는 공통으로 사용하는 utils 패키지가 있는데, 이 코드를 두 프로젝트에서 소스로 가지고 있으면 관리의 어려움이 있기에 utils 패키지를 패키징해서 pip install 을 이용해 사용하는 방법을 알아보았습니다. 구글에서 검색한 내용을 참고로 저는 아래와 같이 프로젝트 디렉토리를 구성하였습니다 --------------------------------------------- uwo_ps_utils/     LICENSE     MANIFEST.in     README.md     setup.py     .gitignore     docs/     uwo_ps_utils/         __init__.py         market_rates_cropper.py ---------------------------------------------         (docs 디렉토리에는 어떤 포맷으로 작성해야 하는 지 몰라서, 제가 마음대로 작성한 텍스트 파일이 하나 들어있습니다) MANIFEST.in 이나 setup.py 작성 방법에 대해서는 제일 아래에 있는 사이트를 참고하세요. .gitignore 나 LICENSE 부분은 github 에서 기본으로 제공하는 파일을 이용했습니다. 이 프로젝트를 빌드하기 위해서는 setuptools와 wheel이 필요하기 때문에, pip install setuptools wheel 명령으로

[TensorFlow] 대항해시대 온라인 시세 공유 도우미 (1)

이미지
국내에서 서비스하는 대항해시대 온라인의 최악의 시스템은 랜덤 그레이드 옵션이 아닐까 생각합니다. 그런데 어쩌다 보니 글로벌판에서 경험치,스킬숙련도,명성 최대 4배 이벤트를 하는 것을 보고, 글로벌판으로 갈아탔지요. 그리고 foxytrixy 를 이용해 오픈 채팅방에서 시세 공유하는 것을 보고 스크린샷에서 바로 정보를 가져올 수 있으면 좋겠다는 생각에 시작했습니다. 때마침 머신러닝 교육을 갔다와서 어디 적용할 만한 것이 없을까 고민하고 있었고요. 처음에는 게임의 해상도마다 이미지 크기가 조금씩 다를테니 이걸 같은 크기로 리사이즈 하고 이런 데이터들을 모아서 학습을 시키면 모든 해상도에서 정보를 인식할 수 있을꺼라 생각했습니다. 그런데 이 옛날 게임은 해상도가 달라도 "Market Rates" 보는 창의 크기는 동일한 사이즈였습니다. 머신러닝을 적용하는 것이 큰 의미가 없어지긴 했지만, 그래도 반투명한 부분 때문에 충분히 도움이 되지 않을까 생각하면서 진행해 봤습니다. 여기서는 Python + Tensorflow 를 이용해서 제가 데이터를 모으고, 신경망을 구성한 것을 보여드리고자 합니다. 일단 대항해시대 온라인의 Market Rates 화면입니다. 창의 왼쪽에는 교역품 시세, 오른쪽에는 인근 도시의 시세입니다. 일단 왼쪽 교역품 항목에 집중해 봅시다. 화면에서 교역품 정보를 알기 위해서는 그림을 보거나 이름을 보거나 둘 중 하나가 될 텐데요, 저는 이미지를 택했습니다. 웬지 이름 보다는 더 식별을 잘 할 것 같아서 말이죠. 스크린샷에서 교역품 이미지를 확인해 보니, 이 이미지는 배경화면의 영향을 받지 않습니다. 그래도 머신러닝 시작한 김에 계속 진행합니다. 대항해시대 온라인의 교역품 종류는 https://ssjoy.org/ 사이트 기준으로 대략 600 가지가 넘는 것으로 보입니다. 처음에는 이 모든 교역품의 이미지를 스크린샷으로 부터 가져와서 데이터를 만들기는 어려워 사람들이 시세를 많이 확인하는 품목 몇 종류만
이미지
정의란 무엇인가 마이클 샌델 저/ 김선욱 감수/ 김명철 역 한국에 ‘정의’ 열풍을 불러일으킨 마이클 샌델은 구제 금융, 대리 출산, 동성 결혼, 과거사 공개 사과 등 현대 사회에서 우리가 흔히 부딪히는 문제를 통해 ‘무엇이 정의로운가’에 대한 해답을 탐구했다. 이 책은 탁월한 정치 철학자들이 남긴 시대를 초월한 철학적인 질문을 알기 쉽게 소개한다. 이를 통해 옳고 그름, 정의와 부당함, 평등과 불평등, 개인의 권리와 공동선을 둘러싼 주장들이 경쟁하는 공적 담론과 토론의 장에서 정의에 관한 자신만의 견해를 정립하고 논리 기반을 굳건하게 다지는 토대를 제공한다. 이 책은 현대 사회의 문제를... (책을 사고 나서 너무 늦게 읽었나 보다. 내 책은 저 표지가 아닌데...) 너무 어려운 주제라는 생각에 손을 대지 않고 있다가, 몇 일 여유가 생겨서 완독하였다. 제러미 벤담, 존 스튜어드 밀, 이마누엘 칸트, 존 롤스, 아리스토텔레스 등, 정의에 대한 철학자들의 생각을 실제 사건과 연관지어 설명하고 있어 생각보다 이해하기 쉽고 재미있었다. 마이클 샌델 교수의 "정의로운 사회는 단순히 공리를  극대화 하거나 선택의 자유를 확보하는 것만으로는 만들 수 없다. 공정한 사회를 달성하기 위해서 우리는 좋은 삶의 의미를 함께 고민하고, 의례 생기게 마련인 이견을 받아들이는 문화를 가꾸어야 한다" 라는 말에 깊이 공감한다. 정의(Justice)를 정의(Declaration)할 수 있는 단 하나의 원칙이 있을 수 있을까? 그런 것이 있을 리가 없다. 그래서 무엇이 공정한 것인지 판단하기는 참 어려운 것 같다. P.S 뜬금없지만 친구가 이야기 하던 건담의 대사 "네가 정의냐"가 생각나서 찾아 봤는데, 이걸 누가 말한 것인지도 잘 모르겠다. 비슷한 대사로는 건담 시드에 나오는 것이 있는 듯한데... 친구에게 들었던 시점에는 건담 시드 방영을 안 했던거 같은데...?