everydayminder
파이썬에서 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..
텔넷 없이 원격 접근 가능여부 확인하기 간혹 보안상의 이유로, telnet client가 설치되어 있지 않은 혹은 설치가 허락되지 않는 경우들이 있다. 또는 설치를 해서 확인을 할 수는 있으나 네트워크 연결이 되는지 한 번만 확인하면 되는데 굳이 설치까지 해야 되나 싶을 때도 있다. 이럴 때는 어떤 대안이 있을까? 여러 대안들이 있을 수 있으나, 간편하게 아래 두 가지 정도면 확인이 가능하지 않을까 싶다. 물론, 적어도 이 명령어들도 실행이 가능한 환경이어야 한다는 가정이 깔려있긴 하다. nc(netcat) 활용 netcat을 활용하여, TCP/UDP 패킷 데이터를 간단히 확인해 볼 수 있다. nc -zv ip port nc -zv domain_name port curl 활용 curl -v telnet:..
앞서 virtualenv 기반 환경 설정 방법 virtualenvwrapper를 사용하여 환경 전환 편의성을 높이는 방법 에 대해 정리해 뒀다. python2.x와 python3.x가 로컬에 이미 설치되어 있을 때는 위 방법만으로도 충분할 수도 있다. 그런데, 더 다양한 버전의 python을 설치하고 테스트해 봐야한다면 이 방법만으로도 괜찮을까? pyenv를 써서, 다양한 버전의 python을 쉽게 설정할 수 있다는 것도 알아봤는데, 이와 virtualenv를 조합하면 어떨까? 본 포스트에서는, 다양한 버전의 python을 pyenv와 virutalenv를 조합 사용하는 방안에 대해 기록하고자 한다. pyenv-virtualenv 설치 brew install pyenv-virtualenv 위와 같이 입력..
There are many blog posts about setting up vim as an IDE. This is for myself because I will be googling the posts again in the future whenever I change or reset my PC or account. 1. VIM brew install vim --with-override-system-vi My OSX is Sierra, 10.12, and it didn't go well without the option '--with-override-system-vi'. After installation, I was able to execute vim7 by hitting vi and vim8 by h..
pyenv로 여러 버전의 파이썬을 사용하자 python3가 출시된지 오래되었으나, 아직 python2는 많이 사용되고 있다. 결국, python2와 python3의 버전 변경은 아직도 자주 겪는 일이 될 수 밖에 없을 것이다. 앞서, virtualenvwrapper를 통해 python2와 python3 switch를 하는 방법을 포스팅했으나, 다른 방법으로 여러 버전의 python을 컨트롤 하는 방법에 대해 기록으로 남긴다. pyenv라는 툴을 사용해 보자. pyenv 설치 brew update brew install pyenv 설치 후, echo $PATH 를 해보면, 기존과 변화가 보일 것이다. /Users/사용자계정/.pyenv/shims: 가 자동으로 추가되어있을 것이다. pyenv가 동작하면서,..
보통 python 2.7.x가 설치가 되어 있고, python3은 별도 설치해야 하는데, 여전히 ver 2.x에 대한 의존도가 있어서, 별도 개발환경을 3.x로 맞추고 싶다. brew install python3로 osx에 python3을 설치하자.설치를 완료하면, $ python Python 2.7.10 (default, Jul 30 2016, 18:31:42) [GCC 4.2.1 Compatible Apple LLVM 8.0.0 (clang-800.0.34)] on darwin Type "help", "copyright", "credits" or "license" for more information./usr/local/bin/python3에 symbolic link가 있는 것을 확인하고, $ pyt..
python 개발 환경 설정 중, virtualenv를 쓰다 매번 activate를 하기 위해 설정위치/bin/activate로 활성화하고, deactivate로 비활성화 하는 것이 번거로웠는데, 이를 좀더 쉽게 도와주는 virtualenvwrapper를 알게 되었다. 설치 sudo pip install virtualenv virtualenvwrapper 로 하면 될텐데, 내 경우는 패키지 설치도중 permission 에러가 발생하여, sudo pip install --ignore-installed virtualenv virtualenvwrapper로 설치완료했다. 환경 설정 mkdir ~/virtualenvs.bash_profile 또는 .zshrc 등과 같은 본인 SHELL 설정 파일에 export ..
Local Tunneling을 통해 외부에서 접속하기 SSH tunneling을 통한 port forwarding을 하고자, putty나 secure crt로 설정하고 썼다. 혹은 집의 내부 서버에 DNSEver 같은 DDNS 서비스랑 연결하고, 내부에서 포트 포워딩을 하거나. 그러다가, 손쉽게 local tunneling을 구축할 수 있는 서비스를 찾아보게 되었고, 간단하게 비교해 보았다. ngrok : https://ngrok.com/ NAME: ngrok - tunnel local ports to public URLs and inspect traffic DESCRIPTION: ngrok exposes local networked services behinds NATs and firewalls to ..
Docker - Kitematic으로부터 Jenkins 이미지를 클릭하여 Jenkins를 쉽게 설치할 수 있다. 일단, 설치 후 실행 시키면, 다음과 같은 창이 뜬다. 이후, General, Hostname/Ports, Volumes, Network, Advanced 등의 탭으로부터 정보를 확인하거나, 원하는 값으로 설정을 변경하여 사용할 수 있다. Hostname/Ports 탭은 아래와 같이 나오는데, 로컬서버의 32769 포트로 접속하면, Jenkins에 접속가능하다는 뜻이다. 이 주소로 접속해 보면, 다음과 같은 초기화면이 뜬다. 화면에 뜬 바와 같이, unlock 정보를 확인해보자. /var/jenkins_home/secrets/initialAdminPassword 내용을 확인해보자. 앞서 확인한..
Windows용 Docker를 설치하기 위해, https://www.docker.com/community-edition 를 방문하여, Docker Community Edition for Windows를 찾아 다운로드 설치한다. 재부팅 및 업데이트를 마치고 나서, 태스크 바를 보면, 고래 아이콘을 발견할 수 있을 것이다. 아이콘에 커서 올리고, 마우스 우클릭 하면 Kitematic이라는 버튼을 누르면, 최초 실행시 Kitematic을 다운로드 하라고 안내 창이 뜬다. 다운로드 받아서, 압축을 해제한 후 Docker가 설치된 곳으로 복사해준다. 다시 Docker > Kitematic을 실행시키면 이미지를 쉽게 다운로드하고 설치할 수 있다. 이제 원하는 이미지를 쉽게 실행시킬 수 있다.
제어판 검색 창으로부터, "개발자 기능 사용"을 입력한다. 개발자용 > 개발자 기능 사용 중, "개발자 모드"를 선택한다. 다시 검색 창에서, Linux용 Windows 하위 시스템을 선택한다. cmd를 관리자 권한으로 실행 후, lxrun /install 를 입력한다. 5. 일정 시간 경과 후, 만들 계정 (username, password)을 설정하면 완료된다.
터미널에서 다음과 같이 실행한다. defaults write com.apple.screencapture location 변경경로 killall SystemUIServer
윈도우즈 기반 VirtualBox 환경에서는, 게스트의 네트워크를 브릿지 네트워크로 설정하거나 NAT로 설정하고, 포트포워딩 설정을 VirtualBox에서 해줘서 ssh 접속하는 방식으로 사용했다. OSX에서도 물론 방식 1로 하면 이상없이 사용할 수 있다. 브릿지 방식이 아닌, 호스트 네트워크로 설정해 보자. 어댑터2를 새로 추가하고 호스트 전용 어댑터를 선택하면, “잘못된 설정 감지됨” 에러가 뜬다. 이를 해결하기 위해, VirtualBox > 환경설정 > 네트워크 > 호스트 전용 네트워크 탭 선택 후, 우측의 추가 버튼을 클릭한다. 우측의 추가 버튼을 클릭한다. 그러면, vboxnet0이 추가되고, 다시 이전의 vm 인스턴스 설정 화면에서 네트워크 설정을 변경하면, 이제 호스트 전용 네트워크 (어댑..