파이썬으로 코딩 기초를 배우고 플라스크로 웹서비스 개발을 배우는 과정을 다루고 있습니다.
- 입문용 자료입니다.
ABCD : http://www.abcds.kr/
Facebook Group : https://www.facebook.com/groups/562787713823026/
한성일 : https://www.facebook.com/jamie.han.16
iheart79@gmail.com
9xD Django Study
파이썬 웹프로그래밍 - Django로 배우는 쉽고 빠른 웹개발 Charter 2
발표자 - 김한성
ppt 내용 : 실습 예제 및 내용 요약
개발툴 : pycharm
개발환경 : python 3.5 이용(일부 예제의 경우 동작안함 - 주석 참고)
소스코드 : 2 page github 링크이용
넥슨코리아 사내 발표자료로 왓 스튜디오에서 파이썬으로 《야생의 땅: 듀랑고》 서버를 비롯한 여러가지 도구를 만든 경험을 공유합니다.
- 게임서버와 각종 툴, 테스트/빌드/배포 시스템을 만들 때 사용한 재료
- 파이썬 코드 품질 개선, 디버깅, 프로파일링, 최적화
- 파이썬 오픈소스 생태계와 왓 스튜디오가 하는 오픈소스 활동
파이썬으로 코딩 기초를 배우고 플라스크로 웹서비스 개발을 배우는 과정을 다루고 있습니다.
- 입문용 자료입니다.
ABCD : http://www.abcds.kr/
Facebook Group : https://www.facebook.com/groups/562787713823026/
한성일 : https://www.facebook.com/jamie.han.16
iheart79@gmail.com
9xD Django Study
파이썬 웹프로그래밍 - Django로 배우는 쉽고 빠른 웹개발 Charter 2
발표자 - 김한성
ppt 내용 : 실습 예제 및 내용 요약
개발툴 : pycharm
개발환경 : python 3.5 이용(일부 예제의 경우 동작안함 - 주석 참고)
소스코드 : 2 page github 링크이용
넥슨코리아 사내 발표자료로 왓 스튜디오에서 파이썬으로 《야생의 땅: 듀랑고》 서버를 비롯한 여러가지 도구를 만든 경험을 공유합니다.
- 게임서버와 각종 툴, 테스트/빌드/배포 시스템을 만들 때 사용한 재료
- 파이썬 코드 품질 개선, 디버깅, 프로파일링, 최적화
- 파이썬 오픈소스 생태계와 왓 스튜디오가 하는 오픈소스 활동
[2013.07.16] PythonKorea강남스터디 발표 - flask testingDaeHyun Sung
2013년 7월 16일자
PythonKorea강남스터디 2주차 발표 Flask Testing 자료입니다.
발표주제는 Flask의 테스트에 대한 소개입니다.
TDD의 간단한 소개와 unittest모듈 소개 및 Flask에서 unittest사용하는 방법과 unittest의 기능을 확장한 Flask-Testing모듈에 대해 소개를 합니다.
GDB와 strace로 Hang 걸린 Python Process 원격 디버깅Youngmin Koo
Python 프로그램을 디버깅하실 때 어떤 툴을 사용하시나요? 아무래도 가장 많이 사용하고 계신 툴은 PyCharm이 아닐까 싶습니다. PyCharm은 JetBrains에서 만든 GUI 환경에서 사용할 수 있는 Python IDE입니다.
PyCharm은:
로컬 컴퓨터에서 디버깅 모드로 (PyDev로) Python 프로세스를 실행할 수 있습니다.
로컬 컴퓨터에서 실행 중인 Python 프로세스에 Attach해 디버깅할 수 있습니다.
원격 서버에서 디버깅 모드로 (PyDev로) Python 프로세스를 실행할 수 있습니다.
하지만 원격에서 동작하고 있는 프로세스에 디버거를 Attach하는 기능은 제공하지 않고 있습니다. 또한 Python 디버깅 모듈인 pdb를 사용하여도 동작하고 있는 프로세스에 Attach하는 것은 지원하고 있지 않습니다.
로컬 환경에서는 문제 없이 돌아갔던 Python 프로그램이 원격 서버에서는 아무런 로그 없이 멈춰 버리는 경우 어디서부터 손을 대야 할지 정말 막막합니다. 이 때 GDB와 strace를 이용하면 어디에서 문제가 발생했는지 진단할 수 있습니다. 이 세션에서는 GDB와 strace를 이용해 디버깅하여 원격 리눅스 서버에서 Python Process가 Hang 되어 버리는 문제를 진단하고 해결했던 경험을 공유하려고 합니다.
[2013.07.16] PythonKorea강남스터디 발표 - flask testingDaeHyun Sung
2013년 7월 16일자
PythonKorea강남스터디 2주차 발표 Flask Testing 자료입니다.
발표주제는 Flask의 테스트에 대한 소개입니다.
TDD의 간단한 소개와 unittest모듈 소개 및 Flask에서 unittest사용하는 방법과 unittest의 기능을 확장한 Flask-Testing모듈에 대해 소개를 합니다.
GDB와 strace로 Hang 걸린 Python Process 원격 디버깅Youngmin Koo
Python 프로그램을 디버깅하실 때 어떤 툴을 사용하시나요? 아무래도 가장 많이 사용하고 계신 툴은 PyCharm이 아닐까 싶습니다. PyCharm은 JetBrains에서 만든 GUI 환경에서 사용할 수 있는 Python IDE입니다.
PyCharm은:
로컬 컴퓨터에서 디버깅 모드로 (PyDev로) Python 프로세스를 실행할 수 있습니다.
로컬 컴퓨터에서 실행 중인 Python 프로세스에 Attach해 디버깅할 수 있습니다.
원격 서버에서 디버깅 모드로 (PyDev로) Python 프로세스를 실행할 수 있습니다.
하지만 원격에서 동작하고 있는 프로세스에 디버거를 Attach하는 기능은 제공하지 않고 있습니다. 또한 Python 디버깅 모듈인 pdb를 사용하여도 동작하고 있는 프로세스에 Attach하는 것은 지원하고 있지 않습니다.
로컬 환경에서는 문제 없이 돌아갔던 Python 프로그램이 원격 서버에서는 아무런 로그 없이 멈춰 버리는 경우 어디서부터 손을 대야 할지 정말 막막합니다. 이 때 GDB와 strace를 이용하면 어디에서 문제가 발생했는지 진단할 수 있습니다. 이 세션에서는 GDB와 strace를 이용해 디버깅하여 원격 리눅스 서버에서 Python Process가 Hang 되어 버리는 문제를 진단하고 해결했던 경험을 공유하려고 합니다.
최근 입문용 혹은 개발 및 데이터 분석 용도로 파이썬을 사용하는 개발자들이 많이 늘고 있습니다. 본 세션에서는 파이썬을 활용하여 AWS에서 해 볼 수 있는 다양한 서비스와 기능을 소개하고자 합니다. 그 중에서도 Django 및 Flask 같은 웹 프레임워크를 AWS Elastic Beanstalk으로 손쉽게 배포하고 운영하는 방법, AWS Lambda를 통해 Python 기반 서버리스 애플리케이션을 제작하는 방법 그리고, Boto3와 AWS Python SDK를 통해 AWS의 다양한 서비스 API를 다루는 방법을 살펴 봅니다. Python으로 구성된 AWS 기반 인기 오픈 소스 프로젝트를 소개하여 직접 참여하는 방법을 안내합니다. 특히, 가상 서버 호스팅인 AWS re:Invent에서 새로 소개된 Amazon Lightsail 등도 함께 소개합니다.
Python 개발자를 위한 최상의 무료 개발 도구 Visual Studio와 Visual Studio Code명신 김
마이크로소프트의 Visual Studio는 자타가 공헌하는 세계 최고의 개발도구입니다. Python 개발자는 이제 Python Tools for Visual Studio(PTVS)를 설치하여 Visual Studio를 최고의 Python 개발도구로 확장 할 수 있습니다. PTVS는 CPython, IronPython을 가리지 않고, 편집, 브라우징, 인털레센스 기능을 제공하고, Python/C++이 혼재되어 있는 환경이나 Linux, Mac OS 환경에서도 디버깅을 할 수 있습니다.
본 세션에서는 PTVS의 설치로부터 고급 디버깅 시나리오까지를 살펴보고, Windows/Linux/Mac OS를 모두 지원하는 Cross Platform 편집도구인 Visual Studio Code에 대해서도 간략하 살펴봅니다.
요즘 뜨고있는 Go언어에 대해서 공부를 시작하면서 처음에 설정하는데 많은 삽질을 했었기에 다른 분들에게 도움이 되고자 만들었습니다.
앞으로도 공부하는김에 PPT로 만들어서 기존 프로그래밍 언어와 무엇이 다른지에 대해서 생각해보고 제가 공부하면서 느낀 궁금증과 그 해답에 대해 정리해 올리도록 하겠습니다.
KOSS Lab. Conference 2016에서 튜토리얼 섹션으로 진행하였습니다.
link: https://kosscon.kr/program/tutorial#11
제로부터 시작하는 텐서플로우
Zero Staring Life in Artificial Intelligence
텐서플로우는 구글에서 공개한 오픈 소스 프로젝트입니다.
기계학습에 관심이 있지만 IT를 잘 모르시는 분들을 위해서
가상환경부터 시작해서 텐서플로우를 설치하고,
예제코드를 따라하면서,
기계학습을 공부하는 사람들에게 마중물(!) 역활을 작게나마 도움이 되었으면 좋겠습니다.
이 발표는 [야생의 땅: 듀랑고]의 지형 배포 시스템과 생태계 시뮬레이션 자동화 시스템에 대한 이야기를 다룹니다. 듀랑고의 각 섬은 크기와 지형, 기후 조건이 다양하고 섬의 개수가 많아서 수동으로 관리하는 것은 사실상 불가능합니다. 몇번의 사내 테스트와 베타 테스트를 거치면서 이러한 문제를 해결해주는 자동화된 도구의 필요성이 절실해졌고, 작년에 NDC에서 발표했던 생태계 시뮬레이터와 Docker, 그리고 아마존 웹서비스(AWS)를 이용하여 수많은 섬들을 자동으로 생성하고 관리하는 자동화 시스템을 구축하게 되었습니다. 그 과정에서 했던 고민들, 기존의 애플리케이션을 "Dockerizing" 했던 경험, AWS의 각 서비스들을 적절히 활용했던 이야기, AWS의 각 지역별 요금이 상이하다는 점을 이용해서 비용을 절감한 사례, 그리고 자동화 시스템의 문제점과 앞으로의 방향에 대해서 이야기 할 계획입니다.
머신러닝 및 데이터 과학 연구자를 위한 python 기반 컨테이너 분산처리 플랫폼 설계 및 개발Jeongkyu Shin
머신러닝 및 데이터 과학 분야의 컴퓨팅 수요는 해가 갈수록 급증하고 있습니다. 이와 더불어 분산처리 기술, 데이터 파이프라이닝 및 개발 환경 스택 관리 등의 관련된 다양한 이슈들 또한 엄청나게 늘어나고 있습니다. 머신러닝 모델의 기하급수적인 모델 복잡도 증가 추세와 마찬가지로, 모델 학습을 위한 환경 관리 또한 갈수록 복잡도가 높아지는 추세입니다.
이 세션에서는 이러한 문제를 해결하기 위해 python 언어 기반의 분산처리 스케쥴링/오케스트레이션 미들웨어 플랫폼을 개발한 4년간의 과정에서 겪은 다양한 문제들에 대해 다룹니다. 2015년 컨테이너 기반의 고밀도 분산처리 플랫폼 설계 및 프로토타이핑 과정을 PyCon KR에서 발표한 이후, 실제 구현 및 오픈소스화, 안정화를 거치며 겪은 다양한 기술적/비기술적 문제들에 대한 경험을 공유합니다.
기술적으로는 최근 몇 년 간의 클러스터 플랫폼 관련 기술의 진보와 함께 탄생한 다양한 도구들과, 이러한 도구들을 python 기반으로 엮어내기 위해 사용하고 개발한 다양한 오픈소스들을 다룹니다. Python 기반의 컨테이너 스케쥴링 및 오케스트레이션 과정의 구현과, 다양한 프로그래밍 언어로 만든 SDK를 graphQL을 이용하여 연동하는 과정에서의 몇몇 유의점을 설명합니다. 아울러 python 기반의 SDK를 다양한 언어로 포팅했던 경험을 간단하게 안내합니다.
플랫폼을 개발하는 중 등장한 TensorFlow, PyTorch 등의 다양한 머신러닝 프레임워크들을 도입하며 겪은 문제와 해결 과정에 대해서도 나눕니다. 연구 분야에는 Python 2.7 기반의 프레임워크들이 여전히 많습니다. 이러한 프레임워크 및 라이브러리의 지원을 위하여 Python 2 기반의 프레임워크와 Python 3.7로 구현한 컨테이너 인터페이스를 단일 컨테이너 환경에 중복 빌드 및 상호 간섭 없이 공존시키기 위해 개발한 아이디어를 소개합니다.
마지막으로 Python 기반의 프레임워크를 개발, 배포 및 상용화 하는 과정에서 겪은 다양한 어려움을 소개합니다. 솔루션을 배포 및 보급할 때 겪는 다양한 런타임, 하드웨어 환경 및 개인 정보 보호를 위한 폐쇄망 대상의 디플로이 등에 대응하기 위하여 Python 응용프로그램을 단독 실행용으로 패키징하는 과정에서 겪은 팁들을 설명합니다. 또한 GUI 빌드 및 Python, Go 및 C++을 함께 사용한 드라이버 가상화 레이어 개발 등의 내용도 살짝 다룹니다.
이 슬라이드는 PyCon KR 2019의 발표 슬라이드입니다. ( https://www.pycon.kr/program/talk-detail?id=138 )
Source Tree로 버전 관리하는 법
- Git이 필요한 이유
- Stage(=Index에 기록)하기
- Commit하기
- Remote 추가하기
- Origin Remote로 GitHub 사용
- Push하기
- Clone하기
- Reset (Soft, Hard, Mixed)
- Revert
- Checkout, Detached HEAD
- 이전 Commit 수정하기
- Pull / Fetch&Merge하기
- Branch 만들기
- Fast Forward Merge하기
- 3-Way Merge하기
- 3-Way Merge에서 발생할 수 있는 Conflict 해결하기
- Visual Studio로 Conflict 해결하는 법
- Stash로 다양한 문제 해결해보기
- 오래된 저장소에서 Pull하기
- 다른 브랜치로 Commit 옮기기
- .gitignore 파일 설정하기
2. 연사 소개
▪ 현재
• KAIST 전산학과 첨단망 연구실 박사과정 (http://an.kaist.ac.kr)
• 태터네트워크재단(TNF) Needlworks 멤버 (http://needlworks.org)
• Popong 프로젝트 참여 (http://popong.com & http://pokr.kr)
▪ 과거
• Microsoft Research Cambridge@UK 연구인턴 (2012년 겨울)
• KT NexR 인턴 (2009년 여름) 및 파트타임 개발 (2010년 초까지)
▪ 논문
• The Power of Batching in the Click Modular Router
[APSys 2012 Workshop]
3. 오늘 할 이야기
▪ 뭔가 심각한 거 많이 하는 것 같지만,
오늘은 정말 기초적인 이야기하려고 왔습니다. :)
▪ 실제 개발 작업은 주로 Linux 서버를 이용하지만,
데스크톱PC는 Windows를 선호해요.
(GUI 안정적, 날개셋 한글입력기, 게임…)
▪ Microsoft에서 일할 때는 당연히 Windows가 기본 환경
• 뒤에 있을 Visual Studio PyTools 세션 잘 들어보세요~
• Windows에서도 자잘한 노가다 작업을 Python으로 해결하면 편합니다.
• ipython notebook 같은 것도 로컬 PC에서 바로 돌리면 편하겠죠?
4. 목 차
▪ Python 기본 설치
• PATH 설정하기
• Windows용 패키지 찾기
• 여러 버전(2.x & 3.x) 동시에 사용하기
▪ 개발환경 관리 노하우
• 설정 파일 버전관리
• 자동 초기 설정 스크립트 소개
• PuTTY + tmux + vim 조합을 위한 solarized 테마 설정법
5. Python 기본 설치:
PATH 설정하기
▪ 공식 배포되는 installer로 설치한 다음 첫번째로 할 일!
(사실 installer에 기능이 있으나 기본으로 꺼져있음)
6. Python 기본 설치:
PATH 설정하기
▪ python.exe가 있는 곳 + Scripts, ToolsScripts 폴더 지정
• 예시 Python 설치 경로는 C:DevelopmentPython34
– 이렇게 버전 번호를 적으면 서로 다른 버전을 동시 설치할 때 구분하기 좋다.
• PATH 추가 경로
– C:DevelopmentPython34
– C:DevelopmentPython34Scripts
– C:DevelopmentPython34ToolsScripts
• Installer가 신경써주지 않는 Scripts와 ToolsScripts까지 추가해야 2to3라든지
ipython이라든지 하는 기본/패키지 제공 스크립트를 명령프롬프트에서 원활하게
사용할 수 있다.
8. Python 기본 설치:
Windows용 패키지 찾기
▪ 구글이 알려주는 해결 방법
• 사용 중인 CPython이 컴파일된 Visual Studio / Windows SDK 버전과 동일한
환경을 구축하거나 혹은 몇몇 설정 파일과 스크립트를 손으로 고치거나…
• Visual Studio에서 제공하는 전용 command prompt 사용
(vcvarsall.bat 파일 적용된 상태로 실행됨. 근데 이것도 가끔 틀린 버전을 가리킬
때가 있다…)
• 근데 해당 라이브러리가 의존하는 다른 C/C++ 라이브러리가 있다면?
Welcome to the hell gate.
▪ http://www.lfd.uci.edu/~gohlke/pythonlibs/
• 찬양할지어다….
• 자신의 Python 버전에 맞는 것 찾아서 설치하면 끝. 프로그램 추가/제거 제어판에
서 쉽게 삭제 가능하다. (여전히 dependency는 수동으로 해당 패키지 찾아서 설
치해야 함. 그래도 컴파일 안 해도 되는 게 큰 장점!)
9. Python 기본 설치:
여러 버전 동시에 사용하기
▪ Python 3.3 이상 권장
• 이유 : Python 스크립트의 shebang line (“# /usr/bin/env python3”) 읽어서 시스
템에 설치된 가장 적합한 버전의 Python 인터프리터를 찾아 실행하는 Windows용
wrapper가 포함되어 있다! (C:Windowspy.exe, C:Windowspyw.exe)
▪ PATH 설정
• 우선시하고자 하는 버전이 앞쪽에 오도록 PythonXY, PythonXY/Tools/Scripts 폴더
를 모두 추가해준다. (그냥 python이라고만 실행하면 앞쪽 실행)
• Python 2.x 버전이 앞쪽에 오도록 PythonXY/Scripts 폴더를 모두 추가해준다.
(Python 3.x는 보통 스크립트 실행파일명에 버전 번호가 붙지만 2.x는 그렇지 않음)
▪ 실행파일 심볼릭 링크 만들기
• 명령프롬프트를 관리자권한으로 실행하여 PATH 뒤쪽에 나오는 버전의 Python 디렉토
리에서 다음 실행:
mklink pythonXY.exe python.exe
mklink pythonwXY.exe pythonw.exe
• Scripts 내의 스크립트들은 Python 3.x 이후에서는 대개 버전 번호 붙어서 생성됨.
(예: pip3 install xxx)
10. Python 기본 설치:
여러 버전 동시에 사용하기
▪ 예제
• Python 3.4를 우선으로, 호환성을 위해 Python 2.7도 사용하고 싶다.
• 설정 방법
– PATH 환경변수 : “C:WindowsSystem32;C:Windows;
C:DevPython34;C:DevPython27;
C:DevPython34ToolsScripts;C:DevPython27ToolsScripts;
C:DevPython27Scripts;C:DevPython34Scripts;…”
– C:DevPython27> mklink python2.exe python.exe
– %APPDATA%py.ini 설정 : [defaults]rnpython=3
• 결과
– python => Python 3.4 실행
– python2 => Python 2.7 실행
– ipython => Python 2.7의 ipython 실행
– ipython3 => Python 3.4의 ipython 실행
– .py (#!python) 직접 실행 => Python 3.4 실행
– .py (#!python2) 직접 실행 => Python 2.7 실행
– .py (#!python3) 직접 실행 => Python 3.4 실행
11. Python 기본 설치:
여러 버전 동시에 사용하기
▪ 예제
• Python 2.7을 우선으로, 시험삼아 Python 3.4도 사용하고 싶다.
• 설정 방법
– PATH 환경변수 : “C:WindowsSystem32;C:Windows;
C:DevPython27;C:DevPython34;
C:DevPython27ToolsScripts;C:DevPython34ToolsScripts;
C:DevPython27Scripts;C:DevPython34Scripts;…”
– C:DevPython34> mklink python3.exe python.exe
– %APPDATA%py.ini 설정 : [defaults]rnpython=2
• 결과
– python => Python 2.7 실행
– python3 => Python 3.4 실행
– ipython => Python 2.7의 ipython 실행
– ipython3 => Python 3.4의 ipython 실행
– .py (#!python) 직접 실행 => Python 2.7 실행
– .py (#!python2) 직접 실행 => Python 2.7 실행
– .py (#!python3) 직접 실행 => Python 3.4 실행
12. Python 기본 설치:
여러 버전 동시에 사용하기
▪ Tips
• 본인이 작성하는 .py 파일에는 shebang line을 적어두는 습관을 들이자.
(https://docs.python.org/3/using/windows.html#shebang-lines 참조)
• pip, ipython 등의 스크립트 사용할 때 항상 버전 확인하는 습관을 들이자.
(한쪽에만 설치되어 있거나 할 경우 헷갈릴 수 있음)
▪ 주의 사항
• 파일 이름이 똑같으면 PATH에서 앞쪽에 나오는 폴더 소속이 무조건 우선.
• 버전이 달라도 마찬가지이므로, 굳이 버전을 구분해야 하는 스크립트가 있다면 심
볼릭 링크를 활용하자.
13. 개발환경 관리 노하우:
설정 파일 버전 관리
▪ 여러분은 개발환경 관리(?) 어떻게 하십니까?
▪ 새로운 서버가 생겼을 때, PC 포맷했을 때, …
• 요즘은 클라우드 시대라 VM 따위 생성했다 지웠다는 아무 일도 아닌 세상
• .vimrc 적어주는 것도 슬슬 귀찮다…
▪ 그러던 중 한 동아리 선배의 GitHub 저장소를 보게 되었다.
• https://github.com/netj/dotfiles
14. 개발환경 관리 노하우:
자동 초기 설정 스크립트 소개
▪ 조금 더 자동화할 수는 없을까?
• hg pull https://bitbucket.org/daybreaker/snippets
• cd snippets/home_config
• ./deploy.py -f lab --force
• (Linux 경우에만) ./gen-italics-terminfo.sh
▪ “-f” 옵션은 “flavor” 결정. (예: home, lab, needlworks, popong, …)
▪ 각 flavor들은 configuration.json 파일에 저장
• dotfiles : template 파일과 실제 설정 파일간의 mapping 관리, template 변수
정의, 어떤 OS에 적용되는 파일인지 정의 (변수 예: gitconfig의 username과
email, vimrc의 colorscheme 이름)
• flavors : 각 flavor 별로 template variable 설정 및 포함·제외 파일 추가 설정
• 외부 공개가 곤란한 설정이 있는 경우 local branch로 관리
▪ deploy.py는 bottle template 엔진을 이용해 설정 파일 생성·적용
15. 개발환경 관리 노하우:
solarized 테마 설정법
▪ Solarized Colorscheme
• http://ethanschoonover.com/solarized
• 세밀하게 조율된 16색상 + yellow/blue
grayscale 8개 base 색상
• dark style / light style 모두 가능
• GitHub Atom 편집기에도 기본 제공
• 이 슬라이드가 light style!
▪ 설정 시 주의사항
• xterm-256color로는 표현 불가능.
• 터미널 클라이언트(PuTTY, Terminal, iTerm,
XShell 등)의 16색 프로필 자체를 solarized
색으로 맞춰주고 서버측 프로그램들
(dircolors, vim 등)이 이에 맞춰 색상 코드를
출력하도록 해야 한다.
16. 개발환경 관리 노하우:
solarized 테마 설정법
▪ Daybreaker’s snippets/home-config
• Client side
– putty 설정
– solarized_putty.reg 적용
– xterm-256color를 TERM 환경변수로 설정
– 새로운 서버에 접속할 때 solarized 프로필 선택하고 서버 주소 입력해서 프로필
fork & save 해두면 해당 서버 영구 적용.
• Server side
– configuration.json의 flavor에서 vim_colorscheme,
term_colorscheme 변수를 모두 solarized로 맞춤.
– ./gen-italics-terminfo.sh 실행해서 xterm-256colors-italics 터미널 타입
활성화
=> iPuTTY 0.63 이상 버전 사용하면 이탤릭 글꼴 적용(vim의 주석 부분 등)