everydayminder
구글 코랩(colab) 실행시 그래프에서 한글이 깨진다면? 구글 코랩에서 프로그램을 작성하고 실행했는데, 한글이 깨지는 경우가 있다. 특히 분석 결과를 그래프로 노출하고자 할때 정상적으로 출력되지 않고 ㅁㅁㅁ 의 형태로 출력되는 경우를 한글이 깨진다고 표현한 것인데, 이 문제를 해결하는 방법을 적어놓고자 한다. 한글 깨지는 문제 사례 위의 이미지와 같이 한글이 정상적으로 출력되기를 기대하는 부분에 ㅁㅁ 등과 같이 출력되는 것을 볼 수 있다. 또한 실행시에 한글 폰트에 문제가 있음을 나타내는 단서 로그들이 보인다. 문제 해결 방법 코랩의 제일 위쪽 셀을 만들고 (만들어서 옮기거나 위에 만들고), 아래의 코드를 복사한다. !sudo apt-get install -y fonts-nanum !sudo fc-ca..
파이썬 스타일 가이드 PEP8에 대해 PEP는 Python Enhancement Proposal의 약자로, 그 중 8번째에 해당하는 것을 PEP8이라고 한다. 파이썬의 창시자인 Guido Van Rossum에 의해 제안된 PEP8은 파이썬 스타일 가이드를 제안하고 있다. PEP8 스타일의 파이썬 코드를 작성하다 보면, 가독성이 좋은 파이썬 코드를 작성하게 될 것이므로 파이썬 개발자라면 당연히 참고해야할 가이드라 할 수 있다. 본 글에서는, PEP8 가이드 중의 일부 항목을 살펴보고 소개하고자 한다. 스타일 가이드의 필요성 스타일 가이드는 쉽게 말하면, 일종의 규약 가이드이다. 여러 개발자들이 저마다의 경력과 백그라운드 및 경험이 다를텐데, 이 사람들이 모여서 프로젝트를 하다보면 자기만의 익숙한 스타일로 ..
파이썬 라이브러리 추출하기/ 설치하기 파이썬 코드에 선언된 import 문이 있다 하더라도, 해당 라이브러리들이 자동으로 설치되지는 않는다. 즉, 로컬 개발환경에서는 개발하면서 이것저것 설치를 했다하더라도, 실행되는 환경에서 이 라이브러리는 명시적으로 설치해 주지 않으면 정상적으로 실행되지 않는다는 것을 뜻한다. 내가 어떤 패키지들을 사용했는지 어떻게 확인할 수 있을까? 또, 확보한 패키지 목록을 바탕으로 어떻게 쉽게 런타임 환경에 패키지 의존성을 주입할 수 있을까? 설치된 패키지 목록 확인하기 pip 명령어를 활용하여 현재 환경에 이미 설치된 패키지 목록을 쉽게 추출할 수 있다. $ pip freeze aiohttp==3.7.4.post0 async-timeout==3.0.1 attrs==21.2.0 ..
파이썬에서 문자열 포맷을 지정하는 여러가지 방법 파이쎤에서 String formatter를 사용하는 여러가지 방법에 대해 정리한다. 본 글에서는 가장 원시적으로 직접 문자열을 붙이는 시도로부터, % operator를 사용하기, format() 함수 사용하기, f-string 사용하기에 대해 간략하게 다룬다. 직접 concatenation 만약 파이썬에서 아래와 같은 내용을 출력해야 한다면, 어떻게 해야 할까? Name: John, Student Id: 1234, Major: Math 아주 원시적인 방법으로는, 문자열 붙이기(string concatenation)를 생각해 볼 수 있다. name = 'John' studentId = 1234 major = 'Math' s = 'Name: ' + name +..
네이버 검색광고 API를 사용하려면? 네이버 검색광고 API를 활용하면 특정 정보의 검색량, 인기도 등을 활용하는 애플리케이션을 만들 수 있다. 물론, 이를 바탕으로 데이터를 분석하는데 활용할 수도 있다. 검색 데이터를 바탕으로, 나만의 애플리케이션을 만들고 싶다면 네이버 검색광고 API도 써보자. 사전 준비 네이버 검색광고 API를 사용하려면, 키를 발급 받아야 한다. 다음의 절차를 따라, 키를 발급받아 놓자. https://searchad.naver.com/ 를 방문하여, 로그인한다. 보통은 본인의 네이버 아이디로 로그인하면 된다. 위와 같은 화면이 뜨면, 오른쪽의 광고시스템 버튼을 클릭한다. 상단 메뉴 탭에서 도구 > API 사용 관리를 선택한다. 내 계정, 액세스라이선스, 비밀키를 잘 적어놓는다...
PyCharm에서 pip 업데이트 오류가 발생한다면? PyCharm에서 특정 패키지를 설치하려고 할 때, 설치가 정상적으로 되지 않는다면 pip 자체가 우선적으로 업데이트 되어야 한다. 그런데, pip 업데이트부터 하려고 해도, pip가 업데이트 되지 않는다면 어떻게 해야 할까? PyCharm내에서 pip 업데이트 하기 윈도우즈 버전과 맥북 버전의 PyCharm에 따라 해당 설정하는 방법이 다를 수 있다. 맥북의 경우, Preferences > Python Interpreter 항목을 찾아들어가면 아래와 같은 창이 뜬다. 오른쪽의 패키지 목록 창을 클릭해 보자. 특정 패키지를 클릭하면, 상단의 화살표 부분이 활성화되고, 그 버튼을 누르는 것만으로도 해당 패키지가 업데이트 된다. (정상적인 상황이라면) 커..
파이썬으로 MySQL 사용하기 Python으로 MySQL에 접속하고, 데이터를 다루려면 여러 라이브러리가 있다. 마침 StackOverFlow에도 이와 관련한 Q&A가 있어서 살펴보고 선택하고자 한다. https://stackoverflow.com/questions/43102442/whats-the-difference-between-mysqldb-mysqlclient-and-mysql-connector-python What's the difference between MySQLdb, mysqlclient and MySQL connector/Python? So I've been trying to do some database update with python and while setting up the w..
주피터 랩/주피터 노트북 - password or token 입력창 뜨면? 아나콘다를 네비게이터를 실행하여 주피터랩/주피터노트북을 띄우려고 했더니, 다음과 같이 이미 실행 중인 인스턴스가 있다고 뜬다. 그리고, 브라우저를 통해 URL에 접속을 시도했더니 다음과 같은 창이 뜬다. Password 또는 Token을 입력하라고 한다. 문제 해결 친절하게도 해결책까지 스크린샷에 포함되어 있으니 그대로 따라해 보자. 즉, 1의 칸의 내용을 채워야 하는데 그 값은 2의 명령어로 확인 가능하다는 뜻이다. 터미널을 열고, 안내된 명령어를 입력해서 확인해 본다. $ jupyter notebook list http://localhost:8891/?token=2297dd42140a810437e50fe2b789909b1db0..
구글 코랩(Google Colaboratory) 시작하기 구글 코랩(Google Colaboratory)은 구글에서 제공하는 Jupyter Notebook이다. 대신, 인프라는 구글 클라우드를 기반으로 하기 때문에 개개인의 PC 보다 오히려 좋은 성능 및 접근성을 제공하고 있다. (보안 등의 이유로 접속이 차단된 곳에서는 사용 못할 수도 있다.) 그러나, 이와 같은 제약이 없는 사람들이라면, 하드웨어의 투자 (=돈) 및 번거로운 설정 과정을 하나하나 하지 않아도 되기에 사람들이 딥러닝을 학습하는데 많이 쓰고 있다. 로컬 PC에 주피터 노트북/ 주피터 랩을 설치하는 것에 비해 설정 과정이 간단하기 때문에 포스트 제목도 또는 가 아니라 가 적합한 것 같다. 준비물 구글계정 혹시 학교 연계 계정 등 저장 용량..
파이썬 개발환경 구축하기 - 아나콘다 주피터랩/주피터노트북 설치방법 파이썬 개발 환경을 구축하고자 아나콘다(Anaconda)를 설치하는 방법에 대해 기록한다. 사실 제목에는 아나콘다를 먼저 썼지만, 보다 맞는 제목은 아나콘다로 주피터 노트북/주피터 랩 설치하기가 맞을 것 같다. 덤으로, 커맨드 라인으로 주피터 노트북/ 주피터 랩을 설치하는 방법까지 함께 다룬다. 그리고, 좀 더 스코프를 줄이자면 주피터 랩 설치하기라고 할 수 있을 것이다. 아나콘다 설치 https://www.anaconda.com/products/individual 64 Bit Graphical User Installer를 선택하여 설치한다. 특별히 다르게 설정할 내용은 없고 클릭만 누르면 기본적인 설치는 완료된다. 설치를 완료하면, A..
파이썬에서 pytest로 단위테스트 사용하기 unittest를 많이 쓰고 있는 것 같으나, 너무 많은 bolierplate를 작성해 줘야 한다는 느낌이 들어 대안을 찾아본다. py.test를 실험해 보자. 설치는 다음과 같다. 설치 pip install pytest 테스트 앞서 unittest용으로 작성한 테스트를 변경한다. 원래 버전에 가깝게 되었다. # test_by_pytest.py from lib import func def test_add_1_case1(): assert func.add_1(1) == 2 def test_add_1_case2(): assert func.add_1(1) == 1 이제 pytest로 해당 결과를 보면, 다음과 같이 더 가독성이 좋은 리포트가 나온다. pytest -v..
python unit test - unittest 적용방법 이제 프로젝트의 메인 모듈과 테스트 파일을 분리해서, 기존과 같이 동작하는지 확인해 보자. 구조는 아래의 구성을 따른다고 가정한다. project ㄴ lib ㄴ func.py ㄴ tests ㄴ test_func.py 앞서 작성한 test_func.py의 내용의 구현부와 테스트부를 별도 파일로 나눠놓자. # lib/func.py def add_1(x): return x + 1 # tests/test_func.py def test_add_1_1plus1(): assert add_1(1) == 2 def test_add_1_1plus2(): assert add_1(2) == 1 이렇게 파일을 분리하고, nosetests를 돌리면, add_1 funct..
파이썬 프로젝트를 위한 Jenkins 설정 (Docker 사용) 앞서 Docker의 Kitematic으로 Jenkins 이미지를 받아서 띄워봤는데, Python 프로젝트를 위해 몇몇 설정을 변경하기 위해 직접 Docker 이미지를 만들어보자. Dockerfile 작성 Dockerfile을 만들고 아래와 같이 내용을 넣자. # Dockerfile FROM jenkins:latest USER root RUN apt-get update # pip 설치 RUN apt-get install -y python-pip ENV JAVA_ARGS -Xms512m -Xmx1024m RUN apt-get update && \ apt-get install -y make build-essential libssl-dev zlib..
앞서 virtualenv 기반 환경 설정 방법 virtualenvwrapper를 사용하여 환경 전환 편의성을 높이는 방법 에 대해 정리해 뒀다. python2.x와 python3.x가 로컬에 이미 설치되어 있을 때는 위 방법만으로도 충분할 수도 있다. 그런데, 더 다양한 버전의 python을 설치하고 테스트해 봐야한다면 이 방법만으로도 괜찮을까? pyenv를 써서, 다양한 버전의 python을 쉽게 설정할 수 있다는 것도 알아봤는데, 이와 virtualenv를 조합하면 어떨까? 본 포스트에서는, 다양한 버전의 python을 pyenv와 virutalenv를 조합 사용하는 방안에 대해 기록하고자 한다. pyenv-virtualenv 설치 brew install pyenv-virtualenv 위와 같이 입력..
pyenv로 여러 버전의 파이썬을 사용하자 python3가 출시된지 오래되었으나, 아직 python2는 많이 사용되고 있다. 결국, python2와 python3의 버전 변경은 아직도 자주 겪는 일이 될 수 밖에 없을 것이다. 앞서, virtualenvwrapper를 통해 python2와 python3 switch를 하는 방법을 포스팅했으나, 다른 방법으로 여러 버전의 python을 컨트롤 하는 방법에 대해 기록으로 남긴다. pyenv라는 툴을 사용해 보자. pyenv 설치 brew update brew install pyenv 설치 후, echo $PATH 를 해보면, 기존과 변화가 보일 것이다. /Users/사용자계정/.pyenv/shims: 가 자동으로 추가되어있을 것이다. pyenv가 동작하면서,..