PYCONKR2017 을 다녀와서.

파이콘2017 에 다녀왔다. 작년의 pyconApac 의 화려함을 뒤로하고 올해는 표제부터 Back to the Basic 이었다. 언제나 파이콘의 티켓 예약은 전쟁터였다. 나 빠른 점심을 먹고 들어와서 예약을 했고, 몇분후 예약을 못한 사람들이 속출하기 시작했다. 발표자 모집이 시작이 되었고, 발표를 하고 싶은 마음도 있었지만 올해는 한발자국 멀리서 지켜보게 되었다. 2-3주 정도 남았을 무렵부터 어떤 발표를 들을까 고민을… Read More

flask - request.script_root 이용하기

하나의 웹을 여러 path 에 올려야 할 경우가 있다. 예를 들면, 테스트를 위해서 /web1, /web2 이런식으로 구성해서 올릴 경우이다. 이런 경우 프론트단에서 URL로 지정해 놓은 값들을 수정해 줘야 한다. ajax 를 호출한다고 생각해 보자. 원래 /web/api/room 이런식으로 ajax 를 호출하는 경우가 있었다면 /web1, /web2 에 따라서 /web1/api/room, /web2/api/room 이렇게… Read More

pymssql nextset() 빈값 이슈

최근에 구현한 부분에서 이상한 경험을 했는데 같은 db 프로시저를 호출하는 코드를 쓰고 테스트를 했는데 어떤 조건으로는 데이터가 순서에 맞게 잘 나오고 안나오고 하는 경우였다. 데이터는 mssql 저장 프로시저에서 2개의 결과셋을 반환하는데 첫번째에서는 보여줄 데이터의 금액, 건수 합산 데이터를 보여주고, 두번째에서는 실제 보여줄 데이터가 나오는 것이었다. 그래서 generator 를 이용해서 g.next(), g.next() 이렇게 2번… Read More

flask - render_template 어떻게 사용할까?

flask 를 사용하다보면 view 코드가 길어지는 경우가 있는데 그 중 하나가 views.py 에 route 함수가 많아져서 길어지는것 그리고 다른 하나는 render_template() 함수에 파라미터가 많아져서 길어지는 경우다. 전자의 경우 blueprint 로 분할하거나 resource 단위로 분할하면 해결할수 있다. (이건 다른 포스트에서 자세히 설명하겠다.) 후자의 경우에는 어떻게 해결 할수 있을까? 뭐 이런식으로 길어지는 경우다. return render_… Read More

Azure Text Analytics 연동하기

지난 글에서 chatfuel을 이용해서 챗봇을 간단하게 만들어봤는데 MS Azure 에서 제공하는 Text Analytics API 를 연동해서 감정분석까지는 아니고 단순하게 텍스트에 대한 긍정부정을 알려주는 챗봇을 구성해 보기로 했다. https://azure.microsoft.com/en-us/services/cognitive-services/text-analytics/ 총 4가지 API를 제공하는데 DetectLanguage 랑 Sentiment API 를 이용하기로 했다. Detect Language 는 입력된 텍스트에 대한 언어를 감지해서 결과를… Read More

Python - 리스트 순회중 수정하는 문제

본 글은 Toptal에 올라온 Buggy Python Code: The 10 Most Common Mistakes That Python Developers Make 글을 보고 공부하면서 쓴 글이다. 번역 + 개인의 공부내용이라고 생각하면 될 것 같다. Common Mistake #5: Modifying a list while iterating over it 리스트 순회중 수정하는 문제 >>> odd = lambda x : bool(x % 2) >>> numbers… Read More

flask - json_encoder 지정하기

API 상에서 JSON 으로 응답을 내보내기 위해서는 데이터를 Json Serialize(직렬화)를 해야한다. 그런데 json 에서 표현할 수 있는 데이터는 한정이 되어 있어서 각 프로그래밍 언어에 있는 모든 타입을 지원하지는 못한다. Decimal 형도 그런 예 중 하나인데 파이썬에서는 json.dumps()를 통해서 주로 직렬화를 하고 그 함수의 기능 중에 cls 인자를 통해서 JSONEncoder 를 구현한… Read More

Python - 파이썬 범위 규칙에 대한 잘못된 이해

본 글은 Toptal에 올라온 Buggy Python Code: The 10 Most Common Mistakes That Python Developers Make 글을 보고 공부하면서 쓴 글이다. 번역 + 개인의 공부내용이라고 생각하면 될 것 같다. Common Mistake #4: Misunderstanding Python scope rules 파이썬 범위 규칙에 대한 잘못된 이해 파이썬 범위 해석은 LEGB(Local, Enclosing, Global, Built-in)에 기초하고 있다고 알려져 있다. 충분히… Read More

Python - 예외처리 블록에 대한 잘못된 파라미터 지정

본 글은 Toptal에 올라온 Buggy Python Code: The 10 Most Common Mistakes That Python Developers Make 글을 보고 공부하면서 쓴 글이다. 번역 + 개인의 공부내용이라고 생각하면 될 것 같다. Common Mistake #3: Specifying parameters incorrectly for an exception block 예외처리 블록에 대한 잘못된 파라미터 지정 try: l = ["a", "b"] int(l[2]) except ValueError, IndexError: # To… Read More

Python - 잘못된 클래스 변수의 사용

본 글은 Toptal에 올라온 Buggy Python Code: The 10 Most Common Mistakes That Python Developers Make 글을 보고 공부하면서 쓴 글이다. 번역 + 개인의 공부내용이라고 생각하면 될 것 같다. Common Mistake #2: Using class variables incorrectly 잘못된 클래스 변수의 사용 class A(object): x = 1 class B(A): pass class C(A): pass print A.x,… Read More