Python
-
[개념] Django는 Web Server가 아니라구요!!💻 프로그래밍/Django 2020. 8. 10. 19:38
안녕하세요! 운동하는 개발자 Jay입니다. 오늘은 Django, Nginx, WSGI, gunicorn의 개념적인 내용을 간단히 다뤄보려고 합니다. 사실 웹 개발자로서 처음 커리어를 시작했을때, 많이 헷갈렸던 부분이었습니다. "우리 회사 웹 서버는 Django를 사용해!" 개발자 친구들을 만나면 이렇게 설명 했던 것 같습니다.ㅎㅎㅎ 근데 사실 정확히 따지자면, 틀린 말이죠! (창피함😱) 아마, 저 처럼 처음 웹 개발자로서 커리어를 시작하시는 분들도 이런 개념에 헷갈리셨을 수도 있을 것 같아요! (나만 그런 건가 hoxy?) 1. Django의 역할이 그래서 정확히 뭔데?? 네! 그래서 Django의 역할은 도대체 뭘까요? 이미 다들 알고 계신텐데 Django는 Web Server가 아니라 Web Appl..
-
[RxPy] 디버깅, 오류 처리하기💻 프로그래밍/Python 2020. 7. 15. 17:52
안녕하세요! 운동하는 개발자 Jay입니다! 오늘은 RxPy의 디버깅과 오류 처리에 대해서 알아보겠습니다. 1. do() 연산자로 디버깅하기 🐛 RxPy의 유틸리티 연산자 중 do_action()이 있습니다. do_action()은 rx.core.operators.do에 _do_action()을 wrapping 하고 있죠! rx.core.operators.do 에는 do 관련된 함수들이 모여있습니다. 왜 다른 do 함수들은 wrapping이 안되어 있는지 모르겠네요ㅎㅎ - 개인적인 생각으로는 do_action()으로 다른 do 함수들의 동작을 다 할 수 있어서 그런 것 같아요. 어떤 함수들이 있는지 한 번 봐볼까요? _do_action() : on_next, on_error, on_complted 호출 후..
-
[RxPy] Operator 응용과 Custom Operator 만들기(feat. 메서드 체이닝(Method Chaning))💻 프로그래밍/Python 2020. 6. 29. 02:56
안녕하세요! 운동하는 개발자 JAY입니다. 오늘은 RxPy 연산자를 응용해서 몇 가지 문제를 풀어보도록 하겠습니다. RxPy에 대한 기본 설명은 여기를 참고해주시기 바랍니다. Rx에서 제공하는 연산자들이 궁금하다면 여기에서 확인해 주세요! 문제를 풀기전 메서드 체이닝에 대해서 알아보고 가겠습니다! 1. 메서드 체이닝? 그게 뭐입니까 휴먼? 🤔 일단 메서드 체이닝이란 method().filter().map() 이런 식으로 메서드를 연속적으로 이어서(체이닝) 쓸 수 있는 방식을 말합니다. 다만 RxPy에서는 메서드 체이닝을 지원하지 않습니다. RxJava 와같은 언어도요 ㅎㅎ 메서드 체이닝을 지원하지 않는 다면, 여러 Observable을 연속적으로 사용할 때 매우 비효율적으로 사용하게 됩니다. 예를 들면 ..
-
[BitBar] 오픈소스 플러그인 내맘대로 만들어보기 (Mac OS 메뉴바 플러그인)💻 프로그래밍/Python 2020. 6. 14. 05:32
안녕하세요! Jay 입니다. 오늘은 평소에 사용하고 있던 BitBar라는 오픈소스의 플러그인을 만들어 보겠습니다! 1. What is BitBar? BitBar는 Mac OS의 상단에 있는 메뉴바에 어떤 상태등을 쉽게 표시할 수 있도록 해주는 오픈소스 프로그램입니다. 그리고 이 BitBar와 함께 다양한 플러그인으로 여러 가지 상태를 표시할 수 있습니다. BitBar 홈페이지에 가보면 많은 개발자들이 편리하고 재밌는(?) 플러그인 들을 만들어 놓았습니다. https://getbitbar.com/ BitBar - Put anything in your Mac OS X menu bar BitBar: the free app that lets you put the anything into your Mac OS X..
-
[오분] 2020년 첫 토이 프로젝트 시작! Google Cloud Platform 세팅!🎁 토이 프로젝트/오분 (2020년 첫 토이 프로젝트) 2020. 3. 14. 17:25
안녕하세요! 운동하는 개발자 제이입니다~:D 드디어 제가, 2020년 첫 프로젝트를 시작했습니다. 이번에 작성하는 토이 프로젝트 글을 시리즈(?)로 작성될 예정입니다. 주된 내용은, 프로젝트를 하면서 배웠던 것들, 과정을 글로 쓸 예정입니다. 오늘은 그 첫 번째! 내가 이번 토이 프로젝트를 시작한 계기와 어떤 기술 스택들을 사용하는지에 대해 이야기해보겠습니다. 1. 어떻게 [오분: 프로젝트 가제] 을 시작하게 되었는가? 때는 바야흐로 2월 말쯤, 회사 동료들과 점심시간에 카페에서 일상적인 대화와 회사 프로젝트 이야기 등등하다가 "XXX 이런 거 있었으면 좋겠다!" "어?! 그러네 ㅋㅋ 그거 있으면 개꿀! 우리 디자이너, ios개발자 2명, 백엔드 개발자 있는데 한번 해볼까?!" "재밌을 것 같은데? 진짜..
-
[테스트자동화] Github 과 Travis CI 연동하기카테고리 없음 2020. 2. 18. 21:45
안녕하세요! 운동하는 개발자 JAY입니다. 오늘은 테스트 자동화, CI 그리고 TravisCI라는 서비스에 대해서 말씀드리려고 합니다. 1. CI (Continuous Integration) 란? 지속적 통합(continuous integration, CI)은 지속적으로 퀄리티 컨트롤을 적용하는 프로세스를 실행하는 것이다. - 작은 단위의 작업, 빈번한 적용. 지속적인 통합은 모든 개발을 완료한 뒤에 퀄리티 컨트롤을 적용하는 고전적인 방법을 대체하는 방법으로서 소프트웨어의 질적 향상과 소프트웨어를 배포하는데 걸리는 시간을 줄이는데 초점이 맞추어져 있다. 대표적인 CI 툴에는 젠킨스(Jenkins)가 있다. (출처: 위키백과) 간단히 말하자면, 팀 내에서 작업한 결과물들을 정기적(지속적)으로 통합하는 것을..
-
Django 에서 Celery로 비동기 worker 실행하기💻 프로그래밍/Django 2019. 12. 23. 00:06
안녕하세요! 운동하는 개발자 Jay 입니다. 오늘은 Celery라는 비동기 워커에 대해 알아 보겠습니다. 1. What is Celery ( 먹는 샐러리 아니죠~) 간단히 말하면 Django에서 비동기 처리를 위한 방법으로서 사용하는 것이 Celery 입니다. 우리가 비동기로 처리하고 싶은 작업들을 queue에 저장하면, Celery는 그 작업들을 가져와 처리합니다. celery를 실행하는데 있어 필요한 것이, 앞서 말한 queue 입니다. celery에는 message brocker라고 합니다. 메세지를 주고 받을 수 있는 서비스들입니다. 메세지 브로커 종류에는 RabbitMQ, Redis 등이 있습니다. 아주 편하게도 docker에 RabbitMQ, Redis 이미지가 있기때문에, 저는 docker를..
-
[Pytest] TDD를 해야하는 이유 (django TDD 적용하기)💻 프로그래밍/Django 2019. 12. 8. 21:54
안녕하세요! 운동하는 개발자 Jay입니다. 오늘은 TDD(Test Driven Development)를 해야 하는 이유와, Django api를 만들어서 간단하게 TDD를 적용해보도록 하겠습니다. 1. What is TDD(Test Driven Development) 먼저 TDD가 뭔지에 대해서 간략하게나마 알아보겠습니다. 사실 처음 Test Driven Development라고 TDD를 단어로만 접했을 때는 단순히 테스트 케이스를 짜서 로직에 대한 테스트를 실행하는 걸로만 알았습니다. (물론 이것도 넓게는 TDD의 범위에 속한다고 생각합니다.) 그래서 정확히 TDD의 정의를 찾아봤습니다. - 테스트 주도 개발(Test-driven development TDD): 매우 짧은 개발 사이클을 반복하는 소프트..