[ Django ] SerializerMethodField
·
Archive/Develop
보호되어 있는 글입니다.
주석(comment)
·
Archive/Develop
TODO 이외에도 FIXME, BUG, NOTE 등과 같이 코드는 아니지만 일관된 주석을 사용합니다. 주석을 다는 것은 프로그래머들 마다 다 다르지만, 이렇게 다는 경우가 많다고 한다. https://www.jetbrains.com/help/pycharm/using-todo.html TODO comments | PyCharm www.jetbrains.com 특히 파이참에서는 저런 주석에 대한 하이라이트 기능도 따로 제공하고 있는 듯 하다. 시간날때 한번 훑어보면 좋을 것 같다. 확실히 저렇게 달면 나중에 찾기도 편하고, 보기 좋을 듯 하다.
[ Python ] 파이썬 스케줄러 작성하기(APScheduler) - BlockingScheduler | 파이썬 반복 작업 수행
·
Archive/Develop
서버 위에서 항상 돌아가는 프로그램을 만드는 중이다. 해당 프로그램이 하위 프로세스를 만들어서 계속해서 어떤 동작을 수행 후 데이터를 출력하고 있다. 이때, while 문을 통해 해당 프로세스의 종료를 계속해서 확인하도록 작성했는데 이 while 문이 약간 불안하다고 하셨다. 휴지시간 없이 너무 cpu를 혹사시킬 것 같아 스케쥴러를 하나 두고 일정 시간동안 프로세스를 실행시키는 방식으로 바꿔보는 것은 어떠냐고 제안을 주셨다. 냉큼 받아들여서 바로 스케줄러를 작성해보고 있다. 생각보다 간단하고 강력한 것 같아 앞으로 여러곳에 써먹을 곳이 많을 것 같다. 이번 포스팅에서는 특정한 시간에 프로그램을 실행시키는 cron 이 아닌 일정 주기로 도는 interval 만 예시로 들 것 같다. 만약 특정 시간에 프로그..
[ Python ] == , != 와 is, is not 의 차이점
·
Archive/Develop
파이썬으로 코드를 작성하다가 어떤 함수 a 의 리턴값과 None 타입을 비교하는 if문을 작성했다. 처음에는 아무 생각 없이 == 으로 작성했다가, 생각해보니까 PEP8 에 의하면 None 과의 비교는 is 가 적합할 것 같아서 급하게 수정했다. 근데 왜 바꿔야하는지, 더 나아가 == 이나 != 연산자가 이미 있는데 왜 is 와 is not이 있어야하는건지 궁금해서 좀 서칭을 해봤다. 우선 아래 코드를 실행해보자. 아주 간단하다. print(3 == 3.0) print(3 is 3.0) 실행 결과는 True 와 False. 분명 동일한 역할을 하는 연산자 같은데, 왜 두 개의 연산 결과가 다른 걸까? 일단 == 과 != 는 값 자체를 비교하고, is 와 is not은 객체를 비교한다. 3과 3.0은 어쨌..
시스템 동작 방식 - Polling VS Event
·
Archive/Develop
시스템이 동작하는 방식에는 폴링과 이벤트가 있다. polling 은 주기적으로 확인해보는 것이고, event 는 사건 발생 시 나에게 알려주는 방식이다. 일반적으로 Event 처리 방식이 즉각 반응이 가능하므로 많이 선호되는 방식이지만, 사건 발생이 일을 처리하는 것보다 일찍 일어난다면 polling 이 더 낫다. 주로 대용량의 데이터가 아주 빠르게 들어올 때 이런 일이 발생한다. 그냥 복잡하게 생각하지 않고 생각해봐도, 이벤트가 발생하지도 않았는데 어떤 일이 있나 계속해서 확인한다면, 그것이 낭비임을 알 수 있다. 가장 최근 시간을 들여서 만든 코드에서, polling 이 변수였기에 이렇게 따로 포스팅을 써봤다. 파이썬에서 subprocess 를 이용하여 하위 프로세스를 생성했을 때, 프로세스가 종료되..
[ SVN ] 내가 보려고 쓰는 SVN 명령어
·
Archive/Develop
평소 Git 만 해왔던 나.... svn과 별반 차이 없다고 들었었는데, 지금 ubuntu에서 실행중인 pycharm 과 svn 이 계속해서 충돌이 난다. 깃허브랑 연동했을 때는 진짜 아무런 문제가 없었는데,, ㅎㅎ,,, pycharm 에디터 내에서 GUI로 제공되는 commit 은 fail 만 주구장창나서 결국 GUI를 포기했다. 역시 터미널이 최고다. svn checkout [svn경로] [저장디렉토리] svn add . 근데 이게 파이참에서 수정해서 그런건지, 최신 버전이라서 기능이 바뀐건지는 모르겠지만 자동으로 add 가 되어있다. svn commit -m "커밋메시지" 깃허브에는 push 를 따로 해줘야 원격 저장소와 연동이 되었는데, svn 에서는 그런걸 건너뛰고 commit 만 해줘도 된다...