초간단 내서버에 ssl 적용하기

서버 운영에 있어 보안은 필수이고, 최소한 ssl인증서를 적용하는 건 기본이다. 비용이 드는게 부담될 순 있지만, LetsEncrypt를 이용하면 무료로 ssl인증서를 적용할 수 있다. 우선 Let’s Encrypt는 무료 SSL인증서를 제공해주는 프로젝트로서 Internet Security Research Group(ISRG)라는 비영리 기관에 의해 운영되고 있다. 이미 해당 letsencrypt를 활용하는 guide는 많이 등록되어 있으며,  아래 링크를 통해 쉽게 적용할 수 있다. Lets Encrypt

Share

python에서 __name__, __file__, __doc__

Python 코드를 보다보면 이건 뭐지 궁금한 변수들이 많다. 각각의 의미는 다음과 같다.   __name__ : 모듈명(모듈을 직접 실행하는지, 모듈로 이용하는지 구별하는 데 이용) __file__ : 모듈이 있는 절대 경로(모듈이 있는 디렉토리를 얻을 때 사용) __doc__ : 모듈에 대한 설명(모듈의 이용 방버버에 대한 설명을 얻을 때)

Share

python 모듈 생성시 유의할 사항

모듈을 만들경우 외부에서 불러올 수 있는 특정 함수나 변수를 미리 정의해야 한다. 정의하는 방법은 소스내에 __all__을 통해 정의할 수 있다. [sample] #module.py __all__ = [‘add_number’, some_var1] –version__=1.0 some_var1=1.1 some_var2=2.2 def add_number(n): total=0 for i in range(0, n+1): total+=i return total #use_module.py from module import * print(add_number(10)) print(some_var1) print(some_var2) # 이부분의 경우 print(module.some_var2) 로 변경 하면

Share

python에서 *과 **의 의미

python 소스를 보다보면 의미모를 것들이 참 많다. 그 중에 하나였던 *, **의 정체를 알아보자. 거두절미 하고 간단한 예제와 주석으로 대체한다.   # 함수에 입력되는 변수 개수를 알 수 없을 때 사용한다. *args 형태로 매개변수를 설정한다. # 즉 ‘*’의 의미는 튜플형태로 매개변수를 받겠다고 지정한다는 의미를 갖는다. def add(*args): total=0 for i in args: total+=i return total

Share

python에서 문자열 표현

python에서 문자열을 표현하는 포맷팅(formatting) 방법이다. 크게 printf, format 2가지 방식이 있다. 1.printf 방식 데이터에 따라 변경될 자리를 % 기호로 표시한다. 포맷 스트링 형식은 다음과 같다. %[플래그][크기][정확도]타입 # printf 방식 예시 >>> f=1.23 >>> print(“f is %f” %f) f is 1.230000 #만약에 int형태로 선언하고 float를 넣으면 int형태로 출력한다. >>> print(“f is %d” %f) f is 1

Share

uWSGI와 Nginx로 flask app 배포하기

flask 배포에 대해 고민이 많았었다. 관련 책을 봐도 잘 안되고 해서 직접 구글링 하면서 해보니, 리눅스 버전에 따라 환경설정도 다르고해서 먼저 구조적인 원리와 각각의 설정 방법에 대한 이해가 필요했다. 여기저기 삽질 끝에 아래링크와 같은 좋은 자료를 찾아서 함께 공유하고, 한글버전으로도 제공하고자 한다. [참고자료] https://www.digitalocean.com/community/tutorials/how-to-serve-flask-applications-with-uwsgi-and-nginx-on-ubuntu-14-04 https://www.digitalocean.com/community/tutorials/how-to-serve-flask-applications-with-uwsgi-and-nginx-on-ubuntu-16-04   먼저 고려해야 할 사항은 서버 os 선택 : ubuntu만

Share

자료형에 따른 유용한 python API

1. 숫자 – abs(x) :절대값 반환 – hex(x) : 16진수 값 문자열로 반환 – bin(x) : 2진수 값 문자열로 반환 – oct(x) : 8진수 값 문자열로 반환 – round(number[, ndigits] : 숫자를 반올림한다 []자릿수 – pow(x,y[,z]) : 거듭제곱 x**y%z 2. 문자 – ord(‘문자’) : 해당 문자에 유니코드의 숫자를 표시한다. – chr(‘숫자’) : 해당 숫자의 문자를

Share

Python App 어느 클라우드에 서비스할까?

python으로 서비스 개발을 하고 있다. 막상 서비스를 런칭하면 어느 클라우드 서비스에 런칭하는게 좋을까? 고민을 하다가 찾아보았다. 마침 좋은 글이 있어 나름 의역을 하면서 내용을 정리했다. 나름의 생각으로 다시 정리했지만, 원문을 꼭 참고하길 바란다. 왜냐면 python 관련하여 좋은 자료들이 매우 많다. 원본 출처 :  APP DYNAMICS(https://blog.appdynamics.com/product/battle-of-the-paas-python-apps-in-the-cloud/)   자 먼저 당신이 열심히 개발한 python으로 만든 서비스를 web으로

Share

AWS에 Flask를 활용한 python 서버구축하기(가장 쉬운방법)

1. AWS 시작하기 Amazon EC2 :  https://aws.amazon.com/ko/ec2/?hp=tile&so-exp=below 본 예제에서의 설치버전 : Ubuntu Server 16.04 LTS (HVM), SSD Volume Type – ami-f293459c – 첫 가입시 무료로 이용할 수 있는 인스턴스 입니다. port 설정안내 – python에서 별도의 포트를 설정하지 않으면 기본으로 5000번 포트를 사용한다. – AWS에서 보안영역에서 5000번 포트를 개방하도록 설정이 필요하다. – 위치 : Console > NETWORK &

Share