본문 바로가기

notes

해외결제모듈 붙이기 ( eximbay,python ) @마크다운 해외결제를 붙여야 할 일이 생겨서 찾아보던중 eximbay라는 결제모듈을 찾았다. eximbay를 선택한 이유는 해외결제 대상이 동남아쪽(태국)인데 동남아쪽은 카드발급율이 엄청나게 낮다고 한다. (10%이하) 그럼 인터넷 결제를 어떻게 하냐? MOLPAY라는 동남아쪽 PG에서 주문을 하고 입금을 ATM기기로 MOLPAY측에 입금을 한다고 한다. 마치 무통장 입금같은 느낌으로 아무튼 위와같은 과정들을 진행하려면 상당히 까다로운 과정들을 거쳐야하는데 이 과정을 eximbay를 통해서 진행하면 좀 낫다. eximbay에서는 당연?하게도 샘플코드를 자바와php만을 지원을 하고 있으며 나는 python이기 때문에 포팅을 하여 사용을 해야한다. 그러나 eximbay측 기술문서가 상당히 잘되어있어 몇번의 .. 더보기
python pycrypto 사용하기 @마크다운 # 파이썬에서 pycrypto라는 암호화 모듈을 사용할 수 있는데실제 파이썬3 이상의 환경에서 사용시 동작을 하지 않는경우가 발생한다.이유는 pycrypto라는 모듈이 파이썬2를 기준으로 만들어 졌기 때문이다.물론 위의 문제를 해결할수 있도록 `easy install`을 사용하거나 기타등등의 방법이 있지만너무 불편하다.# 예를들어 AWS같은 클라우드 서비스를 사용할때 `requirement`를 `easy install` 때문에 별도로 작성해야한다던가 하는 귀찮음이 있다.그래서 본 글에서는`pycrypto`를 사용하지 않고 `pycryptodome`을 사용했다.# 기존의 pycrypto를 파이썬3에 맞게 이식한 모듈인거 같다. ```pip install pycryptodome```[pycrypt.. 더보기
git commit 100MB이상 파일 지우기 @마크다운 github를 사용하던중에 commit이 약 140개가량이고 push를 하지 않았던 프로젝트가 있었다.push를 하지 않았던건 귀찮음과 여러가지 사정이 겹쳐서 무기로 사용하기 위함이었는데..어찌 됐든, push를 시도하던 도중 push가 실패하는 이슈가 발생했다.# 원인은 github에 100MB이상 파일을 올릴수 없다는것이었다.# > github는 50MB이상 파일은 경고를 띄우고 100MB이상의 파일은 push가 실패한다.> commit할때 좀 알려주면 안되나;;# 본인처럼 push를 하지않고 commit만 주구장창하는경우에 이게 문제가 되는데commit이 많은경우 100MB이상의 파일이 어디서 부터 포함되었는지 파악하기가 매우 까다롭기 때문이다.현재 HEAD에 100MB파일을 포함하지 않.. 더보기
rest API에 페이스북 로그인 (소셜 로그인)하기 @마크다운 페이스북 로그인을 만들기 위해 이것저것 삽질을 열심히 했다.기록하자 내가 원했던 페이스북(소셜 로그인)은 프론트,IOS,Android(이하 앞단 )등에서 페이스북 access_token을 받아서 그 토큰을 rest로 서버에 보내는 것이다.서버에서는 받은 토큰으로 facebook API에 요청을 보내 유저의 정보를 받는것이 목적이다. 먼저 앞단에서 access_token을 받는것을 구현을 해야하는데 html,css수준만 간단히 할 줄 알던 나에게 시작부터 문제가 생겼다. [developers.facebook](https://developers.facebook.com/docs/javascript)에서 빠른시작을 위해 script를 지원해주고 있으나 자신이 없었다. 그래서 예전 강사님이 만들어주셨던.. 더보기
docker안에서 인코딩타입, 시간 설정 바꾸기 @마크다운 예약 시스템을 만들던 도중 로컬에서 되던 포스트맨이 서버에서 동작하지 않는 경우가 발생했다. ascii 어쩌고 하면서 에러가 떴는데 인코딩관련 에러 라고 한다. 그래서 이게 왜 안되나... 로컬에서 다 확인하고 올린건데... 문제는 사용하고 있는 docker였다. docker에서 인코딩 설정을 UTF-8로 바꾸니 그제서야 동작하기 시작.. 그리고 이 문제를 해결하고 나니 이번엔 UTC가 맞지 않는 문제가 발생 예약에서 시간단위로 예약을 받기 때문에 이번엔 문제가 뭘까 생각했는데 django안에서는 settings에서 시간설정을 맞춰서 아무런 문제가 없는데 서버에만 올라가면 시간이 뻑이나는것을 발견 이번에도 docker가 문제구나! docker에서 시간설정을 한국으로 맞추고 실행했더니 시간도 잘.. 더보기
django generic view 사용시 method마다 다른 serializer사용하고 싶을 때 @마크다운 정말 간단한건데 1시간 동안 삽질했다.억울해서 적어둠 제네릭 뷰를 까보면 함수에 `get_serializer_class` 가 있다. 설명을 읽어보면 요청에 따라 다른 시리얼라이저를 사용할 때 쓸 수 있다고 적혀있다. 이 함수를 쓰지 않는다면 기본값으로 serializer_class로 지정된 값을 사용한다고 되어있다. 제네릭뷰를 쓰고 있으니 함수를 오버라이드해서 사용하면 된다 ```def get_serializer_class(self): if self.request.method == "처리할 요청" return 사용할 시리얼라이저 return 다른 요청들이 사용할 시리얼 라이저 ``` 정말 간단하다. 더보기
자주 쓰일것 같은 정규표현식 (휴대폰 번호 정규식 , 일반전화 정규식 등등) @마크다운 휴대폰번호 정규식이나 이메일 체크 정규식 같은것들 모음 정규식사용은 프레임워크별로 크게 다르지 않으니 적절하게 바꿔쓰면 됩니다. python ,django 기준 # 공백체크 ```(r'\s/g')``` # 숫자체크 ``` (r'^[0-9]+$')``` # 아이디, 비밀번호 정규식 ```(r'^[a-z0-9_]{4,20}$')``` # 휴대폰번호 정규식 ```(r'^\d{3}-\d{3,4}-\d{4}$')``` # 휴대폰번호 체크 정규식 ```(r'^01([0|1|6|7|8|9]?)-?([0-9]{3,4})-?([0-9]{4})$')``` # 일반전화 정규식 ```(r'^\d{2,3}-\d{3,4}-\d{4}$')``` # 이메일 체크 정규식 ```(r'^[0-9a-zA-Z]([-_\.]?[0-.. 더보기
SQL 기초정리 @마크다운 # SQL문 [튜토리얼 사이트](https://www.w3schools.com/) ## INSERT INTO 테이블에 새로운 레코드를 삽입할때 사용 두 가지 방법으로 INSERT INTO문을 작성 할 수 있다. 1. 열 이름과 삽일 할 값 모두 지정 ```INSERT INTO table_name (column1, column2, column3...);VALUES (value1, value2, value3);``` 2. 특정열에만 데이터 삽입 INSERT INTO Customers (CustomerName, City, Country) VALUES ('bla,blabla'); ## NULL ```SELECT column_namesFROM table_nameWHERE column_name IS NU.. 더보기
vim 단축키 @마크다운 # vim 사용법 ## 단축키 **삽입** | 키 | 기능 ||----|---------------------------------|| i | 커서 위치 Insert || I | 줄 맨 앞에서 Insert || a | 커서 다음에 Insert || A | 줄 맨 뒤에서 Insert || o | 커서 아래로 한 줄 띄우고 Insert || O | 커서 위로 한 줄 띄우고 Insert | **이동** | 키 | 기능 ||----|------------------------------------------|| w | 단어 첫 글자 기준으로 다음으로 이동 || W | 공백 기준으로 다음(단어의 시작)으로 이동 || b | 단어 첫 글자 기준으로 이전으로 이동 || B | 공백 기준으로 이전으로 이동 .. 더보기
git 기초 2 @마크다운 # 7.3 #Stashing and Cleaning ## stashing ### stash 만들기Stash 명령 사용시 working directory에서 수정한 파일들만 저장한다. Modified, Tracked, Staging Area파일들을 보관해두는 장소 아직 작업중인 사항을 스택에 저장하는것 ![git stash](/Users/hongdonghyun/projects/til/images/7.3 stash_1.png) ```git stashmodified 상태의 파일이 git stash 명령 사용후 상태가 깨끗해졌다. ```![git stash list](/Users/hongdonghyun/projects/til/images/7.3stash_2.png)**!**```git stash li.. 더보기