본문 바로가기
반응형

개발 이야기46

Hyperledger Study (1) - Intro. 비트코인, 이더리움이 한창 유행하고 있을 때 리눅스 파운데이션에서 Hyperledger 오픈소스 프로젝트를 시작했다. 인텔, IBM등 전 세계 IT 업계의 큰 손들도 이 프로젝트에 전념하고 있는데, Hyperledger 프로젝트의 목표는 블록체인 기술을 각종 분야(농업, 건강, 의료, 무역 등)에 널리 활용하는 것이다. 오픈소스 프로젝트이니만큼 아래 그림처럼 프레임워크도 가지각색인데, 가장 널리 이용되는 프레임워크는 Fabric(패브릭) 으로, Hyperledger의 기본적인 기능들을 포함하기 때문에 가장 제너럴하게 활용할 수 있는 장점이 있다. Hyperledger 는 일반적으로 알고 있는 암호화폐가 기반이 되는 퍼블릭 블록체인과는 엄연히 다른데, 가장 큰 특징으로는 암호화폐를 사용하지 않는다. (억지.. 2020. 12. 10.
uWSGI listen queue of socket ... full !!! (100/100) Ubuntu 16.04 에서 만든 uwsgi 서비스가 돌연 *** uWSGI listen queue of socket ":5050" (fd: 6) full !!! (101/100) *** 와 같은 메시지를 뿜으며 모든 요청이 블락되는 경우가 있다. (101/100) 로 미루어보아, 현재 큐 101 가 최대 큐 100 사이즈를 초과하면서 생긴 문제다. 최대 큐 사이즈는 uwsgi 실행시 --listen {큐사이즈} 로 설정하여 늘려줄 수 있다. 그러나 net.core.somaxconn 값보다 큐 사이즈를 크게 할 수 없으므로, 우선 이 값의 맥스 커넥션부터 키운다. sudo sysctl net.core.somaxconn=1024 그 다음 uwsgi 실행을 할 때, /usr/local/bin/uwsgi --.. 2020. 12. 10.
Django SQL performance checking & Slack notification django 에서 한 view 내에서 사용되는 쿼리의 성능 체크를 라이브에서 하고 싶을 때 간단하게 signal callback 을 이용하여 쿼리타임을 계산하고, 일정 threshold 값 이상인 경우 슬랙 노티를 보내는 기능을 구현한다. import requests from django.db import connection @receiver(request_finished) def monitor_db_connection(sender, **kwargs): def send_slack_message(query, timer): slack_message = { 'channel': '#{channel_name}', "text": '*Elapsed Time*\n{} sec\n*Query*\n```{}```'.form.. 2020. 12. 9.
NoReverseMatch at / 'djdt' is not a registered namespace -- Django debug toolbar urls 에 아래 코드를 삽입한다. if settings.DEBUG: import debug_toolbar urlpatterns.append(url(r'^__debug__/', include(debug_toolbar.urls))) 2020. 12. 9.
Error installing sass: Failed to build gem native extension (mac os High Sierra) 현재 macos 가 high sierra 인 경우, gem install이 종종 되지 않는 경우가 있다. 해당 링크에서 내용을 확인할 수 있다. gem install sass 명령어 실행시 아래와 같은 에러가 나오는 경우, Building native extensions. This could take a while... ERROR: Error installing sass: ERROR: Failed to build gem native extension. current directory: /Library/Ruby/Gems/2.3.0/gems/ffi-1.13.1/ext/ffi_c /System/Library/Frameworks/Ruby.framework/Versions/2.3/usr/bin/ruby -r ./.. 2020. 12. 9.
Dictionary List 를 key에 따라 sort 하기 dic_list = [ {'name': 'kim', 'age': 30}, {'name': 'kim', 'age': 23}, {'name': 'lee', 'age': 11}, {'name': 'park', 'age': 25}, ] sorted_list = sorted(dic_list, key=lambda data: (data['name'], data['age'])) name 으로 먼저 정렬 하고, 그 다음 기준인 age에 따라 정렬 나이가 많은 순으로 하고 싶으면 -data['age'] 로 사용 2020. 12. 2.
반응형