Luavis' Dev Story

생계코딩 이야기

  • tl;dr 이 글은 Instagram의 블로그 글을 번역하고, 저의 개인적인 생각을 담은 글입니다. 혹시 이전 시리즈에 대한 번역은 이 문서에서 확인할 수 있습니다. Instagram팀은 GC를 끔으로써 이슈를 해결했던 방법이 문제점이 있는 것을 파악하고 새로운 API를 추가해서 이를 해결했습니다. 해당 API는 Python 3.7에 새롭게 들어간 gc.freeze입니다. 해당 API가 어떤 맥락에서 추가되었는지 어떤...

  • 넷플릭스의 Linux performance analysis in 60,000ms에 대해서 부분적으로 번역한 글입니다. 리눅스 서버에 성능 이슈로 인해서 로그인했을 때 우리가 가장 먼저 체크해봐야할 사항은 어떤것들일까? 넷플릭스는 많은 사람들이 알고 있는것 처럼 아마존 EC2 리눅스 서버를 사용하고 있다. 이런 대규모 서버를 모니터링하고 성능을 체크하는데에는 툴을 사용하는데 클라우드 전체의 모니터링에는 Atlas, 하나의 EC2 instance의...

  • tl;dr Python은 pymalloc이란 이름의 커스텀 메모리 관리법이 있습니다. 메모리를 arena란 이름의 큰 블럭을 만들고 그 안에 풀을 다시 만들어서 512바이트 보다 작은 오브젝트에 대해서는 대부분 이곳에 생성합니다. 문제의 서막 친구가 매우 흥미로운 글 하나를 번역한 뒤에 포스팅하여 읽어보았다. 파이썬에서 bytes로 객체를 하나 생성하고 이를 /proc/../mem을 이용해서 수정하는 이야기에 관한 글이다....

  • tl;dr pex는 Python application을, 하나의 실행파일로 만들어주는 라이브러리입니다. 설치는 pip을 이용하거나 github.com에 있는 manual을 이용해서 빌드 설치도 가능합니다. 간단한 사용법을 살펴보면. $ pex requests flask 'psutil>2,<3' -o flask-python 위와 같은 방법으로 requests와 flask 특정 버전의 psutil이 기본 설치된 flask-python이라는 이름의 python 실행 바이너리를 얻을 수 있습니다. 아래와 같이 위에서 생성한...

  • 이번에 블로그 디자인을 리뉴얼하면서 스크롤 이벤트에 따른 애니메이션이 들어가게되었고, 이를 위해서는 JS를 이용한 애니메이션기법 외에는 답이 없다는 판단을 했습니다. 따라서 JS를 이용한 고전적인 event를 받고 이를 top값을 바꿔 움직이는 애니메이션을 구현했습니다. transform을 이용하면 조금 더 간단하고 성능도 우월한 개발이 가능하지 않을까 생각하여, 코드를 수정해서 퍼포먼스를 비교해봤습니다. 처음 웹을 공부할때만 해도...

  • TL;DR 이 글은 Instagram의 블로그 글을 번역하고, 저의 개인적인 생각을 담은 글입니다. GC를 없애면 Instagram에서는 10%의 성능 향상을 얻었다고 합니다. 이는 GC를 사용하지 않은것인데요, CPU LLC cache hit율을 높이고 메모리 사용률을 줄일 수 있다고 주장합니다. Instagram에서 서버가 동작하는 방법 Instagram의 웹서버는 Django의 multi-process mode로 동작합니다. application 서버는 pre-fork모드를 이용해서 uWSGI...

  • 너무느렸다… 최근에 아이맥 레티나 5K 27인치(중급형)를 구매하고 퍼포먼스에는 크게 문제를 못 느끼면서 사용하고 있었다. 램 부족 증상을 느껴서 32GB 램을 구매해서 장착한 이후에는 크롬탭으로 램 구이(?)를 해도 크게 문제를 느끼지 못했다. 하지만 이전에는 데스크탑으로 작업해오던 Lightroom 사진작업을 아이맥에서 하는 순간 이게 왜 이럴까 싶을 정도로 심각한 퍼포먼스 문제를 겪었다. 이전에...

  • ADB와 Genymotion

    Aug 19, 2016

    사실 안드로이드 쪽은 주력 분야도 아니고 간단 간단하게 개발할때만 사용했지만 일신상의 이유로 이번에 react-native의 버프를 받아 좀 더 힘차게 개발하고 있다. 하지만 역시나 수 많은 버그가 떨어졌고(사실 react-native로는 아이폰만 개발하는게 정신건강에 이로운듯 하다.. 아직까지는), 조금 황당한 문제가 생겨서 해결법을 올려본다. 문제의 발생 react-native를 사용하면서 adb 커맨드와 친해졌는데 $ adb start-server...

  • GPG RSA가 개발되고 나서 취약했던 프로토콜들이 RSA 암호화 기술을 덮어 씌워져서 비교적 안전한 통신이 가능하도록 만든 사례가 많다. 우리가 쉽게 발견할 수 있는 사례로는 HTTPS가 있다. GPG의 원조격인 PGP(Pretty Good Privacy)는 원래 이메일을 RSA로 암호화 해주는 프로그램이였고 이 아이디어를 바탕으로 오픈소스로 개발된것이 GPG(Gnu Privacy Guard)다. 한국에서도 샾메일이라고 메일 암호화를 개발한적이...

  • Github에서 지원하는 Two-factor password(2차 비밀번호) 가장 활발하게 많은 오픈소스 프로젝트들이 운영되고 있는 Github에서는 보안성을 위해서 OTP형식의 2차 비밀번호를 지원한다. 나 또한 외주 프로젝트를 비롯해서 소프트웨어 마에스트로 등 여러 활동에서 생성한 프로젝트를 관리하기 위해서 github를 이용하기 때문에 보안에 문제가 생기면 안된다. 구글 계정 같은 경우에는 예전부터 2차 비밀번호를 사용했고 github 계정도...