해야 할 일
-
이력서 항목 추가해서 정리할 것 (word) - 이전 프로젝트 공부하기
- Travis쪽 블로그 정리 및 runserver 에서 사용했던 subprocess 부분 정리하기
- Mac 셋팅정리하기
-
PR 요청 처리 오류 -> travis 모듈로 export 해도 secrets import 되는 문제가 있음
0827
오늘 한 일
- Travis CI 로 커밋 단위로 테스트 및 자동 배포 완료
- 이전 PR요청인 경우와 아닌 경우에 secrets 값들로 인한 오류들이 있었다. 그래서 PR요청이 아닌 경우
production
모듈로 실행하고 PR 요청인 경우엔travis
모듈로 실행하는 부분을 추가했었다. 그러나travis
모듈 자체에서 secrets 을 포함하는base.py
를 import 하는 바람에 결과적으로 pr요청이 들어와도 테스트를 통과못하는 에러가 있었다. 결과적으로base.py
에 있는 공통된 부분을travis.py
모듈에 추가하고 완전히 독립된 모듈로 만들었다. 그 과정에서 중복된 코드가 들어가는게 제일 마음에 안든다. 이부분을 수정하려면 어떻게 해야할지 다음 스터디 시간에 조언을 좀 구해봐야 할꺼같다.
- 이전 PR요청인 경우와 아닌 경우에 secrets 값들로 인한 오류들이 있었다. 그래서 PR요청이 아닌 경우
- 이력서 형식 리포맷
0828
오늘 한 일
- 이력서 제출 회사 정리하기
- 코딩테스트 문제 1개 도전 -> 시간 초과 한개로 미스
- 알고리즘 공부에 답이 있는 지가 항상 의문이다. 어렵고 또 어렵구 ㅜㅜ
0829
오늘 한 일
- 내 블로그 구글 검색할때 노출 되는 설정
- 참고 블로그 - 초보몽키
0830
오늘 할 일
- 알고리즘 공부
- 아침에 발생한 서버 오류 정리하기
toy-project
Traceback (most recent call last):
File "/usr/local/lib/python3.6/urllib/request.py", line 1318, in do_open
encode_chunked=req.has_header('Transfer-encoding'))
File "/usr/local/lib/python3.6/http/client.py", line 1239, in request
self._send_request(method, url, body, headers, encode_chunked)
File "/usr/local/lib/python3.6/http/client.py", line 1285, in _send_request
self.endheaders(body, encode_chunked=encode_chunked)
File "/usr/local/lib/python3.6/http/client.py", line 1234, in endheaders
self._send_output(message_body, encode_chunked=encode_chunked)
File "/usr/local/lib/python3.6/http/client.py", line 1026, in _send_output
self.send(msg)
File "/usr/local/lib/python3.6/http/client.py", line 964, in send
self.connect()
File "/usr/local/lib/python3.6/site-packages/raven/utils/http.py", line 38, in connect
sock, ca_certs=ca_certs, cert_reqs=ssl.CERT_REQUIRED)
File "/usr/local/lib/python3.6/ssl.py", line 1149, in wrap_socket
ciphers=ciphers)
File "/usr/local/lib/python3.6/ssl.py", line 814, in __init__
self.do_handshake()
File "/usr/local/lib/python3.6/ssl.py", line 1068, in do_handshake
self._sslobj.do_handshake()
File "/usr/local/lib/python3.6/ssl.py", line 689, in do_handshake
self._sslobj.do_handshake()
socket.timeout: _ssl.c:761: The handshake operation timed out
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "/usr/local/lib/python3.6/site-packages/raven/transport/threaded.py", line 165, in send_sync
super(ThreadedHTTPTransport, self).send(url, data, headers)
File "/usr/local/lib/python3.6/site-packages/raven/transport/http.py", line 43, in send
ca_certs=self.ca_certs,
File "/usr/local/lib/python3.6/site-packages/raven/utils/http.py", line 66, in urlopen
return opener.open(url, data, timeout)
File "/usr/local/lib/python3.6/urllib/request.py", line 526, in open
response = self._open(req, data)
File "/usr/local/lib/python3.6/urllib/request.py", line 544, in _open
'_open', req)
File "/usr/local/lib/python3.6/urllib/request.py", line 504, in _call_chain
result = func(*args)
File "/usr/local/lib/python3.6/site-packages/raven/utils/http.py", line 46, in https_open
return self.do_open(ValidHTTPSConnection, req)
File "/usr/local/lib/python3.6/urllib/request.py", line 1320, in do_open
raise URLError(err)
urllib.error.URLError: <urlopen error _ssl.c:761: The handshake operation timed out>
ERROR 2018-08-30 10:57:03,587 base 25 139794531260160 ["AttributeError: 'NoneType' object has no attribute 'find_all'", ' File "django/core/handlers/exception.py", line 35, in inner', ' File "django/core/handlers/base.py", line 128, in _get_response', ' File "django/core/handlers/base.py", line 126, in _get_response', ' File "django/views/decorators/csrf.py", line 54, in wrapped_view', ' File "books/views/api.py", line 52, in message', ' File "books/utils/crawling.py", line 215, in search_book', ' File "books/utils/crawling.py", line 186, in search_book_title', ' File "books/utils/crawling.py", line 151, in get_book_lists', ' File "books/utils/crawling.py", line 72, in get_book_location']
- 지난번에 발생했던 오류가 또 발생했다. 그때는 어떤 키워드에서 발생했는지 몰라서 제대로 버그 수정을 못했는데 지난번
사용자 이름 - 검색키워드
이런식으로 로그를 남긴게 정말 큰 도움이 되었다. - 오류 키워드 : 화폐전쟁
- 오류 원인 : 일부 책이 경우 제목과 책 정보는 있지만 현재 학교에서 소장하고 있지 않아서 서가위치, 대출 정보가 없을 때 위와 같은 오류가 났다.
- 오류 책 정보 : 화폐전쟁. 3: 금융 하이 프런티어(2015 한정보급판)
- 해결법 :
dev/production
환경에서 로컬서버로 상세 오류를 보면서 어떤 책이 정보가 없는지 발견했다. 그리고get_book_location()
함수에서 try-excetp문을 활용하여 위의 오류가 발생하면 return 값에 빈 리스트를 할당했다. 그리고 이걸 사용해서 문자열을 취합하는get_book_lists()
함수에서locations
변수가 빈값인 경우 이 도서에 대한 정보가 없습니다. 라는 문자열을 넣어놓고 출력하게 했다. - 의문점 : 이러한 오류로그가 sentry로 제대로 오지 않는지가 의문이다. 그리고 django log단에서도 이걸 저장해놔야하는데 왜 안생기는지에 대해 알아볼것
- 생각들 : 아마 이 책 외에도 여러 책들에 이런 예외 오류들이 발생햇던 것 같다. 로그를 남겨놔서 정확하게 파악해서 버그를 해결했다는 점에 만족하고 또 어떤 예외들이 있을지 참 궁금하다 ㅋㅋㅋ
0831
오늘 할 일