pyenv-virtualenvwrapper로 Python 개발 환경 세팅하기

February 3, 2019 Dev

고통의 Python 개발환경 Python으로 개발을 할 때, 자신의 개발환경에서 단 하나의 프로젝트만 개발한다면 별 문제가 없지만 여러 프로젝트를 진행하게 되면 애로사항이 만개합니다. 예를 들어 어느 프로젝트는 django 버전...

2019년 새해 목표 정하기

January 13, 2019 Opinion

신년 목표 없는 삶 연도가 바뀌었습니다. 세는 나이1도 1살 늘었고, 몇 달 뒤면 연호가 바뀌는 국가2도 있습니다. 다들 새해라고 무언가 목표를 잡는 분위기였는데 저는 예로부터 신년목표를 잡지 않았습니다....

PyInstaller로 만든 EXE 파일에서 Python code 뽑아내기

November 4, 2018 Dev

스펙지수 계산기 저는 몇 달 전부터 방치형 모바일 게임을 하나 하고 있습니다. 그 게임에선 유저들 사이에서 "님 스펙 몇?" 같은 방식으로 사용되는 "스펙지수"라는 수치가 존재합니다. 자신의 유닛들의 몇몇...

macOS에서 SSH Key 암호를 그만 요구 당하기

October 24, 2018 Infra

2016년 12월 15일, 저는 macOS를 Sierra로 버전업 한 뒤로 계속 요구되던 SSH Key 암호 입력에 질려서 사투를 하고 고치는 방법을 포스팅했습니다.1 그로부터 약 2년이 지난 오늘, 문득 생각이...

Python으로 알송 가사 추출하기

October 20, 2018 Dev

알송 알송은 이스트소프트에서 만든 알 시리즈 프로그램 중 하나입니다. 특징으로는 재생하는 음원의 가사를 등록하면 다른 사람도 같이 가사와 함께 감상이 가능하다는 점입니다. 그런데 문득 호기심이 생겼습니다. 알송에 등록된...

어려움 중독

August 17, 2018 Opinion

개발자는 공부해야 한다 "개발자는 공부해야한다."라는 말을 부정하는 개발자는 그리 많지 않으리라 생각합니다. 하지만 "무엇을" 공부해야 하는지, "어떻게" 공부해야 하는지에 대해서는 별로 이야기가 없는 것 같습니다. 그렇기에 사람들은 "어려운...

Python App을 위한 Pipenv

April 20, 2018 Dev

pip의 문제 Python으로 프로그래밍을 하다보면 의존성이 생기고, 의존성이 많아지면 골치아파지기 시작합니다. easy_install 시절에는 관리를 상상도 못 했지만 pip으로 세대교체가 된 뒤로는 그래도 시도는 해볼 수 있게 되었습니다. 하지만...

Python의 yield from 키워드는 무엇일까

March 4, 2018 Code

몇 년 전에 yield 키워드에 대한 글을 쓴 적이 있습니다. 근데 이 글을 쓴 뒤로 잊을만 하면 받은 질문이 있습니다. 그럼 yield from은 뭐에요? 그 질문에 답하는 글을...

기초적인 HTTP 상태 코드들

February 8, 2018 Dev

HTTP 통신의 응답 결과에는 Status Code가 포함됩니다. 해당 코드를 통해 결과가 어떠하다는 것을 요약적으로 할 수 있죠. 하지만 제가 만든 API들은 죄다 따로따로 개판인 것 같아서 어떻게 하는게...

Open man page as PDF

December 9, 2017 Code

※ 이 글은 예전 Tumblr 블로그에 썼던 글을 이전한 것입니다. 이상한모임에서 대화중에 재미있는 기능을 소개받았습니다. macOS 한정으로 man 명령어 결과를 PDF 파일을 보듯 볼 수 있는 방법1에 대한...

Python typing으로 인한 순환 참조 대응책

December 3, 2017 Code

기본 지식 Python typing이 무엇인지 모르시는 분들은 이 글을 읽어보시는 걸 추천합니다. 빙글빙글 때는 신나게 Slack bot을 개발하던 시점이었습니다.1 복잡도가 상승하면서 별도 클래스나 모듈로 분리하는 요소가 많아지기 시작했죠....

aiohttp로 하는 비동기 HTTP 요청

November 26, 2017 Code

덕질을 하다보니 소드 아트 온라인 덕질을 열심히 하던 저는, 인터넷상에 소드 아트 온라인이 웹 연재되던 시절의 원고를 다운받을 수 있음을 알게 되었습니다. 모조리 다운받고 싶었는데, 파일이 59개나 되는...

컴공과의 타임머신: 6장

November 21, 2017 Dev

※ 이 글은 이상한모임에서 lemonade(현지환)님과 수다를 떨다가 "이런 내용의 책, 재밌지 않을까?" 라는 이야기가 나와서 쓰기 시작한 글입니다. 시리즈물로 제가 생각한 앞 부분만 살짝 연재해볼 생각입니다. 책으로 내보자는...

mypy와 함께하는 Python Typing

September 14, 2017 Code

파이썬은 자유로운 영혼이에요 Python의 장점 중 하나를 꼽으라면 동적 타입 언어(dynamic typing language)라는 점입니다. 실행하는 시점에서 변수의 타입을 고려하기 때문에 타입을 신경쓰지 않고 코딩이 가능하죠. 아래 코드는 파이썬의...

인격체를 프로그래밍 할 수 있다면?

March 6, 2017 Opinion

이미 아는 분들은 다 아시겠지만, 이 블로그의 필자는 상당한 오타쿠입니다. 특히 소드 아트 온라인은 상당히 좋아해서 소설도 사서 모으고 있고, 방에 포스터도 붙여놓았습니다. 최근에 개봉한 극장판의 경우는 이...

create-react-app 모험 파트 1

February 14, 2017 Dev

줄곧 React 계열의 기술 스택을 활용해보고 싶다고 생각했지만 기회가 오지 않아 해보지 못하고 있었습니다. 그러던 와중, 시뮬레이터 프로그램을 만들 일이 생겨서 React를 차용하기로 했죠. 하지만 제 실력이 너무...

macOS가 SSH Key를 기억하지 못하는 문제 고치기

December 15, 2016 Dev

언제부터인가 SSH에 연관된 작업을 할 때 비밀번호를 요구하기 시작했습니다. 저는 SSH Key를 등록해놓고 사용하므로 비밀번호가 필요할 리 없었습니다. 참고 쓰다가 인내심의 한계를 맞이하고 수정을 위해 여러가지 시도를 해...

Git 커밋 메시지 작성법

November 1, 2016 Dev

프로젝트가 지루하게 늘어지면, 커밋 메시지는 점점 더 무의미해진다. 들어가며 | 일곱 가지 규칙 | 팁들 | 원문 들어가며: 좋은 커밋 메시지는 왜 중요한가? Git 저장소 중 아무거나 골라...

SlideShare에서 자국어 폰트 사용하기

October 31, 2016 Dev

tl;dr: cat /path/to/pdf.pdf | grep -a Ordering for know nation LANG=C LC_ALL=C sed -i '' s'|/Registry (Adobe) /Ordering (NationName) /Supplement [0-9]|/Registry(Adobe) /Ordering(Identity) /Supplement 0|g' filename.pdf SlideShare에서 폰트 사용이...

Ubuntu 16.04에서 FLAC+CUE 파일 분할하기

September 8, 2016 Code

노래를 찾아다니다가 간신히 찾았더니 flac 파일과 cue파일만 덩그러니 있는 것을 받았습니다. flac 파일을 재생하면 원하는 노래가 들어있는 것은 확실하지만 음반 전체가 재생이 되서 곤란합니다. 원하는 곡만 잘라내서 듣고...

블로그 중간 평가

August 12, 2016 Life

잠이 안 와서 웹 서핑을 하던 도중 GA로 블로그를 분석하는 방법에 대한 글을 접했습니다. 이 글에서는 블로그를 왜 운영하는지가 확실해야 분석할 방향이 잡힌다는 이야기를 해주었죠. 확실히 저는 최근...

더 똑똑한 Git diff 만들기

June 14, 2016 Code

개발하다 보면 diff를 봐야할 경우가 많습니다. 형상관리를 쓰다 보면 diff를 볼 일이 더 많습니다. 저는 Git을 주로 사용하는데, diff를 볼 때 짜증 나는 점이 있었습니다. 바꾸지 않은 줄이...

CSS Framework는 만병통치약이 아니다

June 9, 2016 Dev

상당수의 사람들이 이런 이야기를 하는 것을 봅니다. "제품 디자인은 Bootstrap 정도면 충분하고" Bootstrap이란 트위터에서 배포한 CSS Framework을 말합니다. 이것을 사용하면 초기 구성에 용이함이 많은 사례로 검증되었고, 이제는 디자인의...

Python의 Generator와 yield 키워드

May 9, 2016 Code

Python의 반복문 보통 for 구문을 사용해서 0부터 99까지 반복한다고 하면 다른 프로그래밍 언어에선 이런 느낌이 됩니다. for (let i = 0; i < 99; ++i) { do_something(i); }...

SCSS 최적화 전략

April 26, 2016 Code

최근 개발작업에서 Webpack, ES2015, SCSS를 사용했는데, 협업하는분이 빌드가 너무 오래걸린다고 하여 분석해보았습니다. 그 결과 SCSS가 대부분의 빌드시간을 차지하고 있었죠. SCSS가 느리다? 가장 먼저 해본 추측은 SCSS 자체가 느리다는...

Flask에서 숫자를 콤마와 함께 출력하기

April 21, 2016 Code

웹 개발을 하다보면 숫자를 출력할 일이 참 많습니다. 그런데, 사람이 읽기에는 콤마(,)가 있는 편이 읽기 편합니다. PHP에는 number_format이란 함수가 있어서 그 역할을 합니다. Django의 경우 humanize contrib에 intcomma라는...