지금 개발 중인 프로젝트에서는 웹 서버와 API 서버가 분리되어 있다. 웹 서버에서는 페이지마다 필요한 데이터들을 API 서버에 요청을 보내 받아와 사용자가 접근하고자 하는 뷰를 렌더링한다. 이에 따라 API 서버에서는 OAuth 기능이 필연적으로 필요하다. 웹 서버와 API 서버 둘 다 flask로 구현되어 있기 때문에 API 서버에서는 flask와 연동이 잘 되는 OAuth 2.0을 지원하는 라이브러리를 찾았고, Flask-OAuthlib를 사용하고 있다. Flask-OAuthlib를 이용하여 OAuth 2.0을 지원하도록 하는 작업은 다음 링크를 참고하자. 차후 가능하면 추가로 블로깅을 할 생각은 있으나 그게 언제가 될지는.... 웹 서버와 API 서버의 연동을 설명하면 다음과 같다. 가장 우선 로..
파이썬에서는 `raise` statement를 이용하여 예외를 던질 수 있다. 예를 들면 `raise KeyError` 와 같은 식이다. 이렇게 raise한 exception은 인스턴스가 만들어지면서 던져지게 된다. flask에서는 `errorhandler` 데코레이터를 이용하여 에러 핸들러를 등록할 수 있도록 하고, route 함수에서 예외가 raise 되었을 때 등록된 에러 핸들러들 중에 적합한 핸들러가 있는지 찾아 해당 핸들러 루틴을 실행하도록 되어 있다. (Flask 클래스의 handle_http_exception 메소드 참고) flask 문서에서 소개되는 방법은 숫자로만 등록하는 예제를 보여준다. 흔한 에러 코드 400, 401, 404와 같은 것들이 각각 한 가지의 메세지만 전달하는 경우에는 ..
`The Python ssl extension was not compiled. Missing the OpenSSL lib` Ubuntu 13.04에서 pyenv를 이용하여 python을 설치하려고 할 때, 위와 같은 에러 로그가 나타나면서 설치가 안 되는 문제가 있었다. 이는 pyenv의 문제가 아니라 openssl 개발용 패키지를 찾을 수 없어 발생하는 문제다. 해결 방법 : `libssl-dev`을 설치해주면 된다. `sudo apt-get install libssl-dev`를 실행하면 된다.
node나 react 등을 시작하는데에 앞서 node-gyp 패키지를 설치하게 되는데, 이 때 에러가 발생하는 경우가 있다.pyenv에서 python으로 시작하는 명령어를 다 점유하고 있는 문제일 가능성이 있다. 이 때문에 python2를 찾지 못하게 된다. 이 경우, 해당 프로젝트 디렉토리로 이동 후 pyenv를 통해 python 2 버전대를 설치한 뒤, 해당 버전으로 로컬 버전 세팅을 해주면 된다. ```pyenv install 2.7.11 pyenv local 2.7.11``` 예를 들면 위와 같은 식. local에서 세팅했으므로 외부에 영향을 끼칠까봐 걱정하지 않아도 된다.
- Total
- Today
- Yesterday