전체 글
-
[DS] 스택과 큐 (Stack & Queue)CS/DS 2021. 3. 11. 23:58
스택은 데이터구조 수업을 듣는다면 당연히 알게되는 자료구조다. 그래서 익숙하기도 하지만 실제로 알고리즘 문제를 풀 때도 유용하게 사용된다. Stack 정의 스택은 LIFO(Last-In-First-Out) 리스트인데 가장 나중에 들어간 element가 pop했을 때에 가장 먼저 나오는 구조라고 볼 수 있다. 실생활에서 비슷한 예제로는 수건을 쌓아놓았을 때에 가장 위에 있는 수건을 사용하기 때문에 제일 밑에 있는 수건은 사용이 잘 안되는 것으로 이해할 수 있다. 아래의 사진이 스택을 간단하게 설명해준다. Stack Functions 스택을 사용할 때에 중요한 function들이 있다. 시작하기 전에, 스택의 top은 스택에 item이 저장될 공간을 가르키기 때문에 중요하다. Top이라고 이름붙여진 이유는 ..
-
Classification with Dota2 Game Results Dataset (PyTorch)CS/Machine Learning 2020. 12. 22. 14:30
Project Introduction Dota 2 is a very famous multiplayer online battle arena game with over 11 million monthly users. For those of you who don't know this game(like me lol), each gameplay consists of two teams of five players and each player chooses a hero from 120 of them. Each hero has his/her pros and cons. Therefore, the combinations of these characters can affect whether the team will win t..
-
JaCoCo를 사용하여 Randoop의 code coverage 확인하기Software Testing 2020. 10. 23. 17:18
Java 프로그램을 대상으로 유닛 테스트를 자동으로 생성하기 위해서 Randoop을 사용중이다. Randoop이 유닛 테스트를 생성할 때에 code coverage를 확인하고 싶어서 JaCoCo를 사용해서 알아보았다. 예제에서 사용한 repository는 아파치 재단의 commons-csv repository다. Randoop은 이미 설치되어 있다고 가정하겠다. 1. JaCoCo 다운받기 JaCoCo - Java Code Coverage Library의 공식홈페이지 (www.eclemma.org/jacoco/) 에 가서 제일 최신버전으로 다운로드 받으면 된다. 2. JaCoCo Path 지정해주기 JaCoCo 파일의 lib 폴더에 들어가면 7개의 jar 파일이 있다. 현 상황에서 사용할 jar 파일은 '..
-
[Django] Django Channels 배포 서버에서 사용하기 (Apache)Web/Django 2020. 9. 6. 00:38
정말 도움이 많이 된 블로그를 먼저 언급하겠다. 설명이 잘 되어있어서 뭘 해야할지 이해하기가 쉬웠다. victorydntmd.tistory.com/265 [Django] Django Channels 배포 ( Nginx + Daphne + SSL ) Daphne Django와 WebServer가 주고 받기 위해서는 WSGI 프로토콜을 사용합니다. 이와 관련된 글은 여기를 참고해주세요 ! Django Channels를 배포하기 위해서는 HTTP 요청은 uWSGI 프로토콜로 받고, WS( Web Soc.. victorydntmd.tistory.com 하지만 내 프로젝트는 Apache를 사용해서 배포하기 때문에 따로 또 많이 찾아봐야 했어서 기록을 남겨본다. 1. ASGI.py 수정 asgi.py를 아래와 같이..
-
[Django] webhook을 사용하여 잔디(JANDI)에 알림 보내기Web/Django 2020. 8. 18. 23:45
장고로 만든 웹사이트에서 새로운 게시물이 등록될 때마다 잔디에 알람이 가게 한 내용이다. 잔디 커넥트에 이미 Webhook 서비스가 있기 때문에 어렵지 않다. 잔디 우측에 플러그처럼 생긴 버튼을 클릭하면 아래처럼 잔디 커넥트 서비스들을 확인할 수 있다. 여기서 Webhook 수신 (Incoming Webhook)을 보고 '연동 항목 추가하기'를 누르면 아래와 같은 창이 뜬다. 여기서 Webhook URL이 정보를 보낼 주소다. 그리고 그 아래에 알림을 보내고 싶은 잔디의 토픽을 선택하고 설정을 저장하면 된다. 이제 잔디에서의 설정은 다 끝나고 장고에서 설정을 하겠다. #views.py url = "http://" + request.get_host() + reverse('detail', args=[post..
-
Let's Encrypt를 사용하여 HTTPS 설정하기Web 2020. 8. 9. 21:15
보안상의 이유로 https를 사용하는 것이 중요하기도 하지만 사용하려는 기능이 https를 필요로해서일 때도 있다. 본인은 web push 기능을 구현하기 위해서 설정해야했다. 여러 튜토리얼들을 돌았는데 Let's Encrypt를 사용하는 것이 제일 간단한 것 같다. 준비물: IP주소가 아니라 도메인 이름 Apache 설치 과정 도메인 이름이 있으면 과정은 어렵지 않다. 참고로 그냥 실습이 목적이라면 freenom 에서 간단하게 도메인 이름을 설정할 수 있다. 이제 아래 명령어들을 입력해서 certbot 등 let's encrypt에 필요한 것들을 설치하면 된다. sudo apt-get update sudo apt-get install software-properties-common sudo add-ap..
-
[Django] Python 3.5에서 Python 3.7로 업그레이드 하기(mod_wsgi업그레이드) (Ubuntu)Web/Django 2020. 8. 9. 02:18
정말 하루하루 새로워지는 재미가 있는 것 같다. 저번달까지만 해도 새로운 서버에서 뚝딱 30분 안으로 장고에 아파치, MySQL 연결하는 것이 간단했는데 django channels (web socket)기능을 추가해서 그런지 새로운 업데이트가 생겨서인지 또 새로운 서버를 파서 장고를 연결해보려고 했을 때에 AttributeError: module 'asyncio' has no attribute 'coroutine' 이러한 에러와 마주쳤다 ... 열심히 검색을 해본 결과 새로운 서버에서의 파이썬의 버전이 3.5.2인데 django channels에서 사용하는 함수가 3.5.3 이상이여야 해서 그런 것 같다. 그래서 파이썬을 3.7로 업그레이드 하기로 했다 파이썬 3.7로 업그레이드 또 검색을 열심히 해보..
-
[Django] Google 계정으로 로그인하기 (로컬 서버 + 실제 서버)Web/Django 2020. 8. 5. 22:15
예전에도 시도를 해봤었는데 도메인 이름없이 하기가 어려워서 포기했었는데 최근에는 일단 localhost에서는 google 계정으로 로그인하기 성공했다. 그리고 서버에서는 아무래도 IP 주소만으로는 어렵고 아무래도 도메인 이름이 필요한데 돈을 주고 사면 더 좋지만 일단은 연습해보는 것이기 때문에 freenom에서 제공하는 무료 도메인을 사용해보았다. Django-allauth 설치 및 설정 Google 로그인을 가능하게 하려면 기본적인 설치와 설정부터 시작해야 한다. Django-allauth를 사용하면 된다. 사용하려면 아래의 명령어로 사용하는 서버에 설치한다. pip3 install django-allauth 다음 settings.py에 가서 아래와 같은 작업을 해야한다. #settings.py # S..