django
-
update_or_create()하는데 갑자기 Dead Lock 너는 왜나오냐?! (feat. transaction)💻 프로그래밍/Django 2020. 10. 26. 20:01
안녕하세요! 운동하는 개발자 제이입니다! 오늘은 Dead Lock과 Transaction에 대해서 알아보려고 합니다! 회사에서 종종 위 이미지와 같은 센트리 리포팅을 볼 수 있었는데, Deadlock (교착상태)에 대해서 개념은 알고 있었지만 실제로 코드상에서 왜 Deadlock이 나는지 정확한 이유를 알진 못했습니다. 시니어 개발자분께서 transacion log를 보여주시면서 설명은 해주셨는데, 그냥 그렇구나 하고 넘어갔던 것 같아요(이러면 안 됩니다 여러분 ㅎㅎ) 최근에 DB에 대해서 좀 더 관심이 생겨서 이 Deadlock에 대해서 실제 django orm을 보면서 알아보려고 해요. 1. Dead-lock 그리고 Transaction 일단 간단히 Deadlock이 뭔지 transaction이 뭔지..
-
[개념] Django는 Web Server가 아니라구요!!💻 프로그래밍/Django 2020. 8. 10. 19:38
안녕하세요! 운동하는 개발자 Jay입니다. 오늘은 Django, Nginx, WSGI, gunicorn의 개념적인 내용을 간단히 다뤄보려고 합니다. 사실 웹 개발자로서 처음 커리어를 시작했을때, 많이 헷갈렸던 부분이었습니다. "우리 회사 웹 서버는 Django를 사용해!" 개발자 친구들을 만나면 이렇게 설명 했던 것 같습니다.ㅎㅎㅎ 근데 사실 정확히 따지자면, 틀린 말이죠! (창피함😱) 아마, 저 처럼 처음 웹 개발자로서 커리어를 시작하시는 분들도 이런 개념에 헷갈리셨을 수도 있을 것 같아요! (나만 그런 건가 hoxy?) 1. Django의 역할이 그래서 정확히 뭔데?? 네! 그래서 Django의 역할은 도대체 뭘까요? 이미 다들 알고 계신텐데 Django는 Web Server가 아니라 Web Appl..
-
[오분] 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): 매우 짧은 개발 사이클을 반복하는 소프트..
-
[회고] 소주 1병 조지고 쓴 1년차 개발자의 아찔했던 순간들👨🏻💻 개발자 제이의 이야기 2019. 11. 27. 23:19
안녕하세요 저는 현재 판교에서 백엔드 개발자로 일하고 있는 JAY라고 합니다. 이번 글은 1년동안(2018-11-12 ~ 2019-11-12) 회사에서 했던 대표적인 실수와 어려웠던 점(?)에 대해 이야기 해보려고 합니다. (조금 프리하게 이야기하듯이 작성했으니 양해 부탁드려요!) 1. 월급루팡.. 나야나! 나야나! (혼돈의 카오스 회사 적응기) - 1개월차🤪 전 직장에서 지옥같은 2년을 보내고 2018년 11월12일에 지금의 회사에 입사했다. 전 직장(제조업)에서는 말이 개발자였지, 하는 일은 CS, 제조, QA, 문서... 뭐 대략 이런 일들이 90%였다. 물론 차장급 위이신 분들은 임베디드 개발, 서버 개발을 하셨고 정말 재밌어 보였다.(사실 이런걸 하고 싶..었는데..) 우리(아니 전)팀은 TCM..
-
local 개발환경 세팅부터 배포까지 - 3부(Fabric)💻 프로그래밍/K8s & Docker 2019. 9. 1. 16:38
안녕하세요! 운동하는 개발자 Jay입니다. 오늘은 대망의 3부 배포에 대해 알아 보겠습니다. 배포를 위해 Fabric 이라는 python 라이브러리를 사용하겠습니다. GitHub에서 프로젝트를 clone 받아서 실행(runserver) 까지 실행하는 배포 스크립트를 만들어 보겠습니다! 1. Fabric 이란? Fabric은 SSH를 통해 원격으로 shell commands를 실행할 수 있도록 만들어진 Python (2.7, 3.4+) 라이브러리 입니다. 말그대로 우리가 local에서 만든 프로젝트를 배포하고자 하는 서버에 원격으로 배포를 할 수 있게 해주는 라이브러리 입니다. 물론 그냥은 아니고 SSH를 사용해서요! * Fabric 홈페이지 : https://www.fabfile.org/ Welcome ..