분류 전체보기 썸네일형 리스트형 한강수온 크롤링 (selenium,phantomjs,beautifulsoup) @마크다운# python selenium,beautifulsoup4를 사용을 기준으로 한 포스팅입니다. 한강수온을 체크하기 위해선 공공API가 있는지 부터 체크를 해야한다.API가 있다면 작업을 사실 할게 없기 때문# 유감스럽게도 한강수온은 API를 제공해주지 않는것 같았다( 있다면 알려주세요)그래서 [실시간수질정보시스템](http://www.koreawqi.go.kr/index_web.jsp)을 실시간으로 크롤링하기로 했다.# [실시간수질정보시스템](http://www.koreawqi.go.kr/index_web.jsp)에 들어가보면 수계별 실시간 수질자료를 볼 수 있는데여기서 구리측정소가 한강물온도가 되겠다.# 간단하다.이 사이트를 분석하고 저 수온만 빼내면 된다.개발자 도구가 아닌 마우스 우클릭 -.. 더보기 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파일을 포함하지 않.. 더보기 문자열에서 홀수인 숫자를 제곱하여 더하라 @마크다운 로켓펀치를 돌아다니다 재밌는 예제를 보았다. ``` ab2v9bc13j5jf4jv21```이러한 문자열이 있을 때 홀수인 숫자만 제곱하여 더한 값을 출력하라는 것이었다. 처음 봤을땐 정규식으로 숫자만 뽑고 %2하면 되겠구나 했다. > &1 가 %2보다 월등히 빠르지가 않다. 이상하다... 파이썬이라 그런가? 아무튼 %2로 홀짝을 구분해보려다 정규식으로 홀수만 추출을 한다면 더 간단하지 않을까 해서 정규식을 열심히 찾았다. ``` def find_odd_number(text): result = sum([int(i) ** 2 for i in re.findall('[0-9]*[13579]', text)]) return result``` 앞자리가 숫자인경우를 찾고 *를 사용하여 반복시켰다. 뭔가 쉬우.. 더보기 스레드를 사용한 이메일 비동기 전송(django email) @마크다운 이메일을 발송하기 위해 기본적으로 세팅해야할 것들이 있다.본 글에서는 gmail을 기준으로 설명함 SMTP설정을 위해 사용하려는 gmail계정에 다음과 같은 설정을 먼저 해주자# 1.[IMAP설정](https://support.google.com/mail/answer/7126229?hl=ko&rd=3&visit_id=1-636281811566888160-3239280507#ts=1665018)# 2.[보안 수준이 낮은 앱 허용](https://support.google.com/accounts/answer/6010255)# 3.[캡챠 잠금해제](https://accounts.google.com/displayunlockcaptcha) 그 후 django settings.py에서 다음과 같이 설정을.. 더보기 elastic beanstalk (API 서버token 인증이 안될때) @마크다운 django로 API를 만들고 API서버를 만들었는데 permission이 먹히지 않는 경우가 발생했다.# 로컬에서 다 확인하고 올렸는데 왜 안되나 한참을 고민했는데 도저히 확인할 방법이 없어 온갖 삽질을 다했다.서버에서 나는 에러는 확실한데 확인할 방법이 마땅치 않아서 한참 절망에 빠져있을때얼떨결에 나와 비슷한 경우의 글들을 보았다.# [실마리1](https://stackoverflow.com/questions/14877249/django-rest-framework-authenticate-header)[실마리2](https://stackoverflow.com/questions/9780966/where-do-i-put-wsgipassauthorization-on) # 서버에서 Authoriza.. 더보기 elastic beanstalk (geo django 사용시 에러) @마크다운geodjango를 사용하던 도중 온갖에러가 나타 났는데 그중 하나가 gdal이 설치안되는 문제 였다.# [https://unix.stackexchange.com/questions/372700/gdal-install-gdal-on-ami/392911](해결방법)# eb ssh로 서버에 접근하여```sudo yum-config-manager --enable epelsudo yum install gdal```# 다른 해결책 [https://bl.ocks.org/mojodna/2f596ca2fca48f08438e](해결방법2)# 위 방법은 진행하던중```make -j4```구문에서 무한루프에 빠지는 이상한 점이 발견 되어서 검증까지는 못했다. 더보기 임시저장저장 brew install mysqlbrew link --overwrite --dry-run mysqlbrew link mysql pip install MySQL-python import pymysql pymysql.install_as_MySQLdb() DATABASES = { 'default': { 'ENGINE': 'django.contrib.gis.db.backends.mysql', 'NAME': 'localdb', 'USER': 'mysql_local', 'PASSWORD': 'ghdehdgus', "HOST": '', 'PORT': '', }, } create database localdb;create user mysql_local identified by 'ghdehdgus';grant all o.. 더보기 다른사람의 코드를 다른서버로 옮기기(elastic beanstalk,requirements.txt is invalid) @마크다운 GCP에서 동작하고 있는 서버의 코드를 AWS로 옮겨달라는 부탁을 받았다. 한번도 해보지 않았지만 코드자체는 동작하는 코드이고 이것을 AWS에 올릴 수 있게 약간의 수정만 거친다면 금방 할 수 있을거라 생각했다. 그리고 기왕 옮겨보는거 docker를 쓰지않고 elastic beanstalk만 사용하고 올려보기로 했다. 하지만 기존의 코드는 너무나도 답답하게 생겼다.# 개발환경의 분기가 되어있지 않았고 코드의 모양새가 순수함수는 커녕 def안에서 모든걸 해결하고 있었다. def안에 if문이 열개가랑 있는 함수도 있었다. 답답함을 뒤로하고 일단 서버를 옮긴다는 목표하에 간단하게 수정 작업을 거쳤다. 로컬환경과 서비스환경의 db를 나누고 requirements파일들을 다듬기 시작했다. S3와 RDS.. 더보기 rest API에 페이스북 로그인 (소셜 로그인)하기 @마크다운 페이스북 로그인을 만들기 위해 이것저것 삽질을 열심히 했다.기록하자 내가 원했던 페이스북(소셜 로그인)은 프론트,IOS,Android(이하 앞단 )등에서 페이스북 access_token을 받아서 그 토큰을 rest로 서버에 보내는 것이다.서버에서는 받은 토큰으로 facebook API에 요청을 보내 유저의 정보를 받는것이 목적이다. 먼저 앞단에서 access_token을 받는것을 구현을 해야하는데 html,css수준만 간단히 할 줄 알던 나에게 시작부터 문제가 생겼다. [developers.facebook](https://developers.facebook.com/docs/javascript)에서 빠른시작을 위해 script를 지원해주고 있으나 자신이 없었다. 그래서 예전 강사님이 만들어주셨던.. 더보기 이전 1 2 3 4 5 다음