Elastic Beanstalk란?AWS 서비스 중 하나인데, Deploy를 도와주는 서비스이다. 이번에 Flask로 진행중이던 웹 프로젝트를 Deploy 할 일이 있어서 beanstalk를 써봤다. 확실히 몇 가지만 빼면 편리하게 쓸 수 있었다. 다른 deploy tool을 써본적이 없어서 비교는 잘 못 하겠다.내가 엄청난 시간을 날린 이유는 바로 bower 때문이다. .ebextensions 내에 .config에 실행할 command 들을 넣을 수가 있는데, 여기에 'bower install'을 넣고 싶었다. 근데 이게 정말 잘 안 되서, 결국 ec2에 바로 ssh로 들어가 직접 설치했다. 다만 ec2의 특성상 instance가 지워질 경우 리셋되기 때문에 좋지 않은 해결 방법으로 보인다. beans..
보통 getchar() 함수를 이용해서 문자를 입력받는다. 문제는 이게 엔터를 누르기 전에는 입력이 바로 되질 않는다는 것이다. 보통은 문제가 안 되는데 현재 콘솔 게임을 만들고 있다보니까 이게 문제가 되었다. 찾아보니 단순히 C 레벨에서의 문제가 아니라 터미널과의 깊은 연관성을 가진 문제라나.... 어쨌든 문제 해결은 해야하니까 찾아보니까 어떤 용자가 함수를 공유해뒀다. 링크 #include #include #include int mygetch() { struct termios oldt, newt; int ch; tcgetattr( STDIN_FILENO, &oldt ); newt = oldt; newt.c_lflag &= ~( ICANON | ECHO ); tcsetattr( STDIN_FILENO,..
웹 개발을 하다보면 비밀번호를 안전하게 저장해야한다. 일반적으로 해싱을 통해 이것을 해결하는데 단순 해싱의 문제점이 있다. 바로 동일한 문자열을 해싱했을 때 동일한 결과값이 나온다는 점이다. 만약 DB가 유출되었을 때 password의 해시값을 통해 원본 값을 얻어내긴 힘들겠지만, 비밀번호가 같다는 것을 알 수 있게 되므로 큰 문제다. Python에서는 암호화를 위해 pycrypto라는 라이브러리를 많이 사용한다고 한다. 실제로 github에서도 많이 starred 되어 있다. 하지만 나는 bcrypt를 추천하고 싶다. 특히 Flask-Bcrypt. 일단 사용법이 정말 간단하고 쉽다. 알아둬야 할 함수는 두 개 뿐일정도다. 하지만 가장 큰 이유는 Flask-Bcrypt를 통해 암호화 된 결과값이 저장하기..
루비 언어도 모르고, RoR은 당연히 모르고, 그 외 사용하는 프레임워크들을 전부다 모르는 상태에서 이걸 하려고 하니 정말 삽질을 많이 했다.사실 코드 자체는 정말 심플한데 구조를 잘 모르다보니 뭐가 어떻게 돌아가는지 몰라서 더 삽질을 심하게 했던 것 같다. 일단 환경은 다음과 같다.RoR로 API 서버가 돌아간다. URL 라우팅 같은건 RoR을 쓰는게 아니라 Grape라는 semi-framework를 사용한다. 파일을 저장할 때 로컬에 저장하는게 아니라 AWS S3에 저장하려고 한다. 0. 라이브러리 추가# Image Uploadgem 'paperclip', '~> 4.2'# AWSgem 'aws-sdk' Gemfile에 위 내용을 추가하고 'bundle install'을 해준다.paperclip 버전..
맥에서 GL 프로그래밍을 할 때 보통은 XCode을 쓴다. 근데 나는 XCode가 정말 너무 싫어서 대안을 계속 찾아댔다. XCode가 아무리 싫어도 텍스트 에디터만으로 코딩하는건 생산성이 너무 별로라 -_-;; Eclipse CDT 같은 대안도 있지만 썩 맘에 들진 않았다. Eclipse CDT는 사실 그렇게 나쁘지 않은 편인데 뭔가 이상하게 정이 안 가서...그러다 이번에 제트브레인에서 새로 출시한 CLion을 보고 맘에 들어서 한 번 삽질을 해 봤다. 일단 기본적으로 XCode에서는 OpenGL 같은걸 쓸 때 Framework를 추가하는 것으로 쉽게 쓸 수 있다. 그냥 build setting에서 framework 추가만 해주면 되니깐... 근데 CLion에서는 이 framework를 직접 추가해줘..
내가 처음 만든 GCM 써드파티 서버는 PHP로 만든 서버였다. (사실 서버라고 하기엔 민망한 것이 웹서버에다가 PHP 파일 하나 올려서 이용하던 서서버였다.) 당시 gcm 검색을 하면 대부분이 써드파티 서버를 PHP로 만들어 놓은 예제들이였기 때문이다. 그 후 Python으로 다시 만들려는 시도를 하긴 했었으나 잘 안되서 오늘에서야 진짜 Python으로 포팅을 하게 되었다. gcm third party server python 뭐 이런식으로 검색을 하면 생각 밖으로 자료들이 잘 안 나온다. 내가 서버 쪽으로는 지식이 미비해서 그런 것일 수도 있지만.... 어쨌든 GCM 써드파티 서버에서 해줘야 할 것은 꽤 심플하기 때문에 원리를 잘 파악하기만 하면 어떤 언어로 만들든 상관 없다. 중요한 것은 HTTP ..
허무하기 짝이 없는 글이긴 하지만... Cocos2d-x 빌드를 할 때 r9버전(최신버전)에서는 잘 빌드가 되지 않는 현상이 있어서 이전 버전을 어떻게 받아야 하나 열심히 검색을 했다. 허무하게도 다운로드 링크 주소를 변경하면 된다. http://dl.google.com/android/ndk/android-ndk-r9b-darwin-x86_64.tar.bz2위 링크가 OS X용 r9b 버전을 받기 위한 주소인데 http://dl.google.com/android/ndk/android-ndk-r8e-darwin-x86_64.tar.bz2이렇게 링크를 변경하여 브라우저에서 링크를 띄우면 OS X용 r8e 버전을 받을 수 있다. 너무 쉬워서 그런가 안내글이 별로 없길래 글 쓴다.
- Total
- Today
- Yesterday