본문 바로가기
반응형

개발 이야기48

[HTML] 드래그 방지, 우클릭 방지, 블록 선택 방지 기능 넣기 태그 안의 attribute에 아래 내용을 추가한다. oncontextmenu='return false' => 우클릭 방지 onselectstart='return false' => 블록 선택 방지 ondragstart='return false' => 드래그 방지 만약 글로벌하게 이 속성을 적용하고 싶다면, body 태그에 추가하면 된다. 2021. 1. 5.
슬랙 장애 (Connection Failed) 발생 자정에 회사 업무 내용을 보기 위해 슬랙에 들어갔더니.. 오늘도 장애가 발생했다. 현재 슬랙 장애 관련 안내 페이지: status.slack.com/2021-01/9ecc1bc75347b6d1 Slack System Status Resources for real-time and historical information about the Slack service. status.slack.com 휴.. 일단 우리 내부 서버는 중요 태스크를 처리한 뒤 슬랙 hooking URL로 알림 발송을 하는 기능이 여럿 구현돼 있다. 근데 이런 연결 문제가 생기는 날에는.. 잠을 제대로 청할 수 없다. 모든 태스크 처리 후 슬랙 알림을 보내는 부분은 예외처리가 되어 있으니, 타임아웃(30초) 에러가 나더라도 큰 문제는 .. 2021. 1. 5.
Request with Signature, Nonce by Using API Key & Secret pair & Validate Request API key와 Secret 을 활용하여 안전한 API 를 구현할 때 Signature와 Nonce의 원리를 이용하면 쉽게 구현할 수 있다. Nonce는 쉽게 생각하면 요청 ID로 생각할 수 있으며, 이전 요청의 Nonce값 보다 다음 요청의 Nonce 값이 커져야 한다. (가장 쉬운 방법은 아래 코드처럼 타임스탬프를 이용하면 된다.) Nonce가 필요한 이유는 공격자가 클라이언트의 요청을 훔쳐서 그대로 서버에 요청을 보내는 경우, Nonce 값이 커지지 않고 똑같기 때문에 서버가 두 번째 요청을 거절할 수 있다. 그럼 클라이언트의 요청을 훔쳐서 Nonce만 높여서 보내는 경우에는 탈취가 가능하지 않나? 맞다. 그렇기 때문에 Signature가 필요하다. 서버에서 API key와 Secret을 발급할 때.. 2020. 12. 30.
Django Custom User Model & Custom Authentication django의 기본 유저 모델을 사용하면 간단한 사이트 구현은 어렵지 않게 할 수 있으나, 세부적인 유저 정보들을 더 담고 싶고, 로그인 등의 인증 방식을 더 다양하게 만들고 싶은 경우에는 커스텀화된 모델과 authenticate 함수를 구현하는 것이 좋다. 이번 예제에서는 django.contrib.auth.models 에 정의된 User 관련 모델이 아니라 아예 다른 django.db.models 의 Model 만을 이용하여 로그인/로그아웃 등의 auth 플로우를 구현한다. 본 글은 django 1.11.4 기반으로 작성하였다. 프로젝트 구성 MyApp - MyApp - settings.py - urls.py - account - views.py - urls.py - models.py - tests... 2020. 12. 30.
django-extensions, jupyter 를 활용하여 브라우저로 django code 접근하기 필요 패키지 설치하기 >> pip install django-extensions >> pip install jupyter 비밀번호 설정하기 >> ipython from IPython.lib import passwd passwd() >> Enter password: >> Verify password: 설정 파일 만들기 >> jupyter notebook --generate-config Writing default config to: {path}/.jupyter/jupyter_notebook_config.py >> sudo vim {path}/.jupyter/jupyter_notebook_config.py # jupyter_notebook_config.py c.NotebookApp.ip = '0.0.0.0'.. 2020. 12. 14.
디렉토리 용량 구하기 du /path/to/calc 2020. 12. 10.
반응형