git feature branch 모델 프로젝트 적용기

원래 사내에서 svn을 사용하고 있는데 자회사쪽과 작업을 하면서 그쪽 개발자를 구워 삶아서(홀려서) svn 이 아닌 git을 저장소로 사용하기로 하고, github 를 쓰고 싶었지만 작업자가 2명이라서 yona H2 embedded 버전을 사용하기로 했다. 오픈소스에 기여하거나 혹은 만들거나 할때 master 브랜치 외에 develop 브랜치 까지만 써보긴 했고, git feature branch 모델은 실제 업무에 사용해 본적은 없었다. 고도화… Read More

PROGRESSIVE WEB APP ROADSHOW 2017 KOREA

커리어가 웹의 백엔드와 프론트 언저리에 걸쳐져 있는데 확실히 프론트엔드 개발쪽은 변화가 굉장히 빠르게 일어나고 있다는 것을 느낀다. AMP, PWA 에 대해서 도데체 뭔지 그리고 지금 결제 관련 일을 하고 있기 때문에 WebPaymentAPI 에 대해서 좀 더 알고자 참가하게 되었다. 행사 준비 자체는 잘 되었던것 같다. 스타벅스 커피도 있었고, 오후에는 도넛을 나눠줘서 다들 즐겁게 먹으면서 봤던것… Read More

hyperdrive 사용기

맥북프로를 지른후 가장 큰 고민은 기존에 이용하던 주변기기를 어떻게 연결할 것인가 하는 문제였다. 집에서 사용하는 환경은 아래와 같았다. HDMI 로 연결된 델 30인치 모니터 USB 로 연결된 키보드 USB 로 연결된 아이폰 이어폰 단자로 연결된 스피커 이어폰 단자는 기존에도 있었던 부분이라서 바로 연결해서 쓸 수 있었는데 나머지는 뭔가로 연결해야 하는 상황이었다. 애플에서 이미 맥북프로 신형을… Read More

EMOCON S/S 2017 후기

올해도 어김없이 이모콘을 들었다. 아래의 타임테이블에서 내가 들은것만 볼드 표시를 했다. 주로 Day1을 들었는데 Day2는 듣다가 아드님이 놀아달라고 보채는 바람에 듣길 포기했던것 같다. Time Table Day1 Google Analytics Chatbot 만들기, Rookie bot! (20분) 마케팅에 써먹을 수 있는 Microsoft Flow + Azure Functions (20분) try! Swift Tokyo 2017 후기 (20분) 텐서플로우 맛보기 (30분) 도메인 주도 개발(DDD)… Read More

pycharm - 화면 모드

pycharm 에서는 3가지 화면을 다르게 볼수 있는 것을 제공하고 있다. 그래서 특정 상황에 맞는 화면모드를 사용 할 수가 있다. Full Screen Presentation Mode Distraction Free Mode FullScreen 은 말 그대로 전체화면으로 보기다. 이 모드를 선택하면 단순히 현재보는 화면에서 상태표시줄이나 맥의 경우 dockbar 가 없어지고 pycharm이 전체화면으로 보여지게 된다. Presentation Mode 는 기본 뷰에서 프로젝트 뷰나… Read More

pycharm - bookmarks 북마크

pycharm 에는 북마크 기능이 있다. 많은 파일과 소스 파일내에 특정 위치를 빠르게 이동하기 위해서는 북마크 기능이 필수적이다. F11(윈도우 기준) 키를 눌러서 현재 있는 위치에 북마크를 지정 할 수 있다. 중요한 점은 소스파일 뿐만 아니라 project 뷰 안에 파일을 선택한 상태에서도 F11을 통해서 북마크에 추가 할 수가 있다. Shift+F11 를 누르면 현재까지 북마크한 파일이나… Read More

늦은 저녁을 먹다.

퇴근을 해서 늦은 저녁을 먹었다. 밥상머리에 앉아서 아내가 차려준 저녁을 먹으면서 왜 늦게 퇴근을 한 것일까? 왜 내가 지금 밥을 먹고 있는지 생각하게 되었다. 오늘 오후, 우리는 장애를 맞이했다. 2시부터 일어났던 장애를 6시에 알게 되었고 롤백을 했고, 피해에 대한 수치적 자료를 수집했고, 이슈가 장애의 원인이 되는 코드에 대해서 리뷰를 했다. 리뷰 후, 장애를 맞이했을 때에… Read More

flask - jinja2 tojson 필터

flask 문서를 보다보니 standard filters 라는 항목이 있는데 tojson 이 그 내용이다.(기본적으로 제공하는 필터라는 내용) 간략하게 애기하자면, 어떤 랜더링할 변수에 tojson 이라고 jinja2 템플릿 상에서 | 를 이용해서 붙이게 되면 json으로 변환된 값을 랜더링해준다. 예를들어, user 라는 dict 객체에 데이터를 넣어서 전달한다고 할 때, @app.route('/') def hello_world(): user ={} user['name'] = 'ash84'… Read More

pycharm - settings.jar 개발환경 공유

사내 팀에서 pycharm 을 파이썬 개발 공식툴로 사용하고 있다. 처음에 커뮤니티버전에서 시작해서, 개인 프로페셔널을 쓰다가, 이제는 회사에서 라이센스를 끊어서(기업용) 사용하고 있다. 개인 개발용으로도 구입해서 사용하고 있는데, 회사와 내 개인용 컴퓨터(맥) 간의 pycharm 환경을 동일하게 맞추고 싶었다. 테마, 폰트, 색깔 같은 외향적인 부분이 가장 크게 맞추고 싶은 부분이었고 개인적으로 사용하는 서버나 그런것들도 다시 설정하기도… Read More

dev-meetup.github.io 개발기

개발자 세미나는 예전보다 훨씬 많이 자주 열리고 있다. 컨퍼런스 단위는 사실 1년에 많이 열리진 않지만, 어떤 단체나 회사에서 주도하기 때문에 홍보가 잘되고 많은 사람들이 참여하기 마련이다. 그렇지만, 밋업이나 세미나 그런 단위는 커뮤니티안에서만 주로 공유가 되고 외부 개발자가 알기가 어려웠다. 물론 찾는 노력을 하면 되지만, 모든 커뮤니티/사이트에 대한 워치독(watchdog)이 될 수는 없다. dev-meetup.… Read More

AWSKRUG 신년 콘퍼런스 - re:Invent 특집

올해 첫 세미나/컨퍼런스로 [AWSKRUG 신년 콘퍼런스 - re:Invent 특집] 을 선택했고, 다녀왔다. AWS 를 사실 회사에서나 개인 프로젝트를 할때에도 부담되는 부분이 있어서 사용하진 않고 있지만, 앞으로는(언젠가는) 더 AWS, AZURE 등을 도입하는 방향으로 갈 것이라고 생각했기 때문에 신청하게 되었다. AWS RE:INVENT 신규 서비스 정리 (윤석찬) 전반적으로 새로나온 서비스에 대한 간략한 소개가 주를… Read More

pipreqs - requirements 뽑기

virtualenv 를 사용하면 사실 좋긴 한데, 그게 아닌 경우에 대해서 개발 서버에서 작업했을때 requirements.txt 를 뽑기가 어렵다. requirements.txt 가 필요한 이유는 서버에 세팅시 pip install -r 옵션을 통해서 한번에 라이브러리를 설치할수 있기때문에 필수이다. pipreqs 를 사용하면 특정 프로젝트 하위에서 사용하는 라이브러리 리스트를 추출할 수 있다. virtualenv 를 도입하기 힘든 환경에서 사용하면 좋을 듯.… Read More

[Ghost] 블로그 연관포스트 기능 추가하기

ghost 블로그 툴을 선택해서 사용한지도 꽤 되어 가는데, 마크다운(markdown)을 이용한 글쓰기 툴을 제공한다는 점 그리고 서비스와 설치형이 모두 있다는 점에서 선택했지만, 기존에 사용했던 티스토리, 워드프레스에 비해서 몇몇 기능이 없는 것은 사실이다. 카테고리를 지정하거나, 사이드바에 있는 다양한 기능들은 사실상 ghost 블로그에서는 찾아 보긴 힘들다.(서비스 형에서는 어떤지 모르겠다.) 이번에 블로그에 추가한 기능은 해당 포스트와… Read More

친절한 미용사

밥을 급히 먹고 나오는데 주노헤어가 정면에 있었다. 동료들에게 머리를 자르고 들어가겠다고 얘기하고 미용실로 들어갔다. 찾으시는 디자이너가 있냐는 말에 그냥 머리 자르러 왔다고 했다. 한 디자이너가 나에게 와서 이것저것 묻는다. 나는 그냥 깔끔하게 잘랐으면 좋겠다고 얘기 했다. 지금 머리는 너무 길고 특히 앞머리가 길어서 눈을 찌른다고. 커트 가격 애기를 들었을 때 약간 후회했다. 원래 다니던 곳보다… Read More

(flask) jsonschema 를 이용해서 request.json 검사하기

API에서 파라미터의 유효성 검사는 필수적인 요소이긴 하지만, 개발자로서 여간 귀찮은 일이 아닐 수 없다. API의 양이 많을수록 할 일은 많아진다. 세세하게 체크할 부분은 해야하지만 기본적으로 파라미터 유무, 파라미터의 데이터 형을 체크하는 부분이 필요했다. API는 기본적으로 JSON 을 POST로 받는 식으로 구성되어 있어서 JSON을 검증하는 부분이 필요했다. JSON 검증을 위해서 jsonschema 를 활용할 수 있다는 것을… Read More

기술 링크 정리 #3 - 2016/12/28

파이썬 관련 파이썬 코리아 격월 세미나 파이썬 코리아의 세미나는 자주 열리지 않는 편인데, 12/17일에 격월 세미나가 열렸었다. 다음번 격월 세미나를 기다려본다. 웹 개발, 왜 어려운가? 오픈소스 네이밍 특징들 파이썬을 만난지 100일♥째 Python 3.6.0 is now available! Python 3.6이 릴리즈 되었다. 관련해서 정리한 내용을 확인해보자. 기타 Git 100% 활용하기: 협업을 위한… Read More

(flask) JSON 데이터 받기 및 예외처리

(adsbygoogle = window.adsbygoogle || []).push({}); flask 에서 json 데이터를 받아서 처리할 때 reqeust.get_json() 혹은 request.json 을 이용할 수 있는데, mime type을 application/json 타입으로 보내는데, {} 없이 빈 JSON 문자열 조차도 안 보내는 경우가 있을수가 있다. from flask import Flask from flask import request app = Flask(__name__) @app.route("/test", methods=['POST']) def test(… Read More

기술 링크 정리 #2 - 2016/12/20

파이썬 관련 Python 3.6: A quick look 지난주 Python3.6.0 RC1 이 나왔다고 했는데, Pycharn 2016.3 버전에서 Python3.6을 어떻게 지원하고 있는지에 대해서 설명하고 있다. 특히 f-string 에 대해서 Pycharm에서 쓰기 쉽게 지원하고 있는것을 보여준다. PYCON PH 2017 CDO 파이콘 필리핀 2017의 티켓판매를 시작했다고 한다. 파이썬코리아 댓글에서 열리는 섬은 여행 금지구역이고 장소는… Read More

기술 링크 정리 #1 - 2016/12/09

파이썬 관련 Python 3.6.0 RC1 Python3.6.0 Release Candidate1 에 대한 내용을 담고 있다. 에 가면 좀더 자세한 내용을 볼 수 있다. CPython 구현 개선에 대한 내용이 있는데, dict 타입을 재구현해서 PyPy와 비교해서 더 빠르다고 하고, Python3.5 와 비교해서 20% ~ 25% 향상 되었다고 한다. 포맷 문자열이 아래와 같이 가능해진다. >>… Read More

audio5.js 를 이용한 음원 재생 및 제어

이번 프로젝트 하면서, 주문이 들어왔을 때 웹상에서 특정 소리로 사용자에게 알려줘야하는 부분이 있었는데, 음원 재생관련 라이브러리를 찾아 보다가 괜찮은 것이 있어서 예제코드를 남긴다. http://zohararad.github.io/audio5js/ 좀더 위의 링크에 들어가서 보면 세세한 조절을 할 수가 있도록 제공하고 있다. 예를 들면, seek 기능을 제공하고 있기도 하다. 위의 예제를 쓰고 나서 추가적으로 요청사항이 들어와서 특정… Read More