Python
-
[회고] 소주 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..
-
2019 카카오 1차 코딩테스트 문제 1 (문자열 압축)💻 프로그래밍/알고리즘 2019. 11. 10. 21:13
1. 문제 (정답률: 25.9%) 데이터 처리 전문가가 되고 싶은 “어피치”는 문자열을 압축하는 방법에 대해 공부를 하고 있습니다. 최근에 대량의 데이터 처리를 위한 간단한 비손실 압축 방법에 대해 공부를 하고 있는데, 문자열에서 같은 값이 연속해서 나타나는 것을 그 문자의 개수와 반복되는 값으로 표현하여 더 짧은 문자열로 줄여서 표현하는 알고리즘을 공부하고 있습니다. 간단한 예로 “aabbaccc”의 경우 “2a2ba3c”(문자가 반복되지 않아 한번만 나타난 경우 1은 생략함)와 같이 표현할 수 있는데, 이러한 방식은 반복되는 문자가 적은 경우 압축률이 낮다는 단점이 있습니다. 예를 들면, “abcabcdede”와 같은 문자열은 전혀 압축되지 않습니다. “어피치”는 이러한 단점을 해결하기 위해 문자열을..
-
python에서 비동기 프로그래밍 하기 (feat. Asyncio)카테고리 없음 2019. 10. 1. 19:28
안녕하세요! 오늘은 Asyncio 라이브러리에 대해서 알아보겠습니다. Asyncio는 파이썬에서 비동기 프로그래밍이 가능하도록 해주는 라이브러리 입니다. 본문에 들어가기 앞서 동기(synchronous) , 비동기(asynchronous)에 대해서 간략히 알아 보겠습니다. 1. Synchronous(동기) vs Asynchronous(비동기) 동기(synchronous)는 어떤 작업이 실행되고, 그 작업이 처리되기 까지 다른 작업을 실행할 수 없습니다. 처음 실행한 작업이 처리되고 난 다음 순차적으로 다음 작업이 실행됩니다. 반면에 비동기(asynhronous)는 한 작업이 실행하고, 작업이 처리되고 끝날 때까지 기다리지 않고 다음 작업을 실행합니다. 처음 실행한 작업이 끝났다고 신호가 오면 다시 처리해..
-
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 ..
-
local 개발환경 세팅부터 배포까지 - 1부(Docker 란?)💻 프로그래밍/K8s & Docker 2019. 8. 11. 23:27
안녕하세요! 운동하는 개발자 Jay 입니다! local 개발환경 세팅부터 배포까지는 시리즈(?)로 포스팅 할 예정이며, docker로 개발환경 구축, fabric을 이용한 배포 까지 다룰 것 입니다. 오늘은 개발서버, 실서버 배포 전 로컬에서 테스트 할 수 있는 개발환경을 세팅에 대해 알아 보겠습니다. 1. local 개발 환경의 필요성 보통 자신의 로컬에서 개발을 하게되면 실제 서비스가 돌아가는 서버, 혹은 실서비스 전 개발서버에 배포를 하여 서비스의 동작을 확인합니다. 하지만, 아무런 테스트 없이 바로 개발서버, 실서버에 서비스를 배포하게 된다면 예기치 못한 장애와 버그들에 정신적 스트레스를 받을 수 있습니다. 그렇기에 로컬에서 우리가 만든 서비스를 테스트 할 수 있는 개발환경을 구성해야 합니다. 우..
-
LCS (Longest Common Subsequence) 최장 공통 부분 수열💻 프로그래밍/알고리즘 2019. 6. 23. 16:42
안녕하세요! 코딩하는 JAY입니다. 오늘은 오랜만에 알고리즘 포스팅을 하려고 합니다:D 오늘 포스팅할 내용은 LCS, 최장 공통 부분 수열입니다. 주의해야할 점은 LCS가 두개라는 점입니다. 1. 최장 공통 부분 수열 = Longest Common Subsequence 2. 최장 공통 부분 문자열 = Longest Common Substring 이 두개의 차이저을 아래 예시로 말씀드리겠습니다. 1. ABCD, ABZC = AB 2. ABCD, ABZC = ABC 1번과 2번 예시의 차이점을 아시겠나요? 아마 차이점을 바로 눈치채셨을것 같아요 ㅋㅋㅋ 1번은 두개의 문자열을 비교했을때, 연속적인 문자열을 추출합니다. 2번은 공통된 부분 수열을 추출합니다(연속X) 여기서 핵심은 연속이냐? 아니냐 입니다 ㅎㅎ ..
-
validation 체크 노가다를 줄여주는 Django form, modelform, formset 사용💻 프로그래밍/Django 2019. 4. 27. 19:21
안녕하세요! 코딩하는 JAY입니다. 오랜만의 포스팅이네요.. 항상 오랜만 ㅋㅋㅋ 오늘은 제가 회사 프로젝트를 하면서 진짜 고생 많이 하고, 배우게 돼서 정말 다행인 Form, ModelForm, Formset에 대해서 설명하겠습니다. 일단 각각의 정의(?)를 알아보겠습니다. 1. Form(in HTML): HTML폼은 사용자와 웹사이트 또는 어플리케이션이 서로 상호 작용하는 것 중 중요한 기술 중에 하나입니다. form을 사용하여 사용자는 웹사이트에서 웹서버로 데이터를 전송할 수 있습니다.(submit) 일반적으로 데이터는 웹 서버로 전송되지만 웹페이지가 데이터를 사용하기 위하여 사용할 수 도 있습니다. - 관련 참고글 : http://www.nextree.co.kr/p8428/ HTML : 폼(form..
-
Django REST Framework API 문서 자동화 하기(feat.drf-yasg)💻 프로그래밍/Django 2018. 12. 31. 19:10
안녕하세요! Jay입니다:D 이번 포스팅은 DRF(Django REST Framework) API 문서를 만들어 보겠습니다.물론 자동 으로요!! 사실 이번 포스팅은 회사에서 API문서를 수정하거나, 다른 웹페이지로 이동시키는 문제때문에 이것 저것 찾아 보다가 찾아낸 방법입니다. API 한두개야 그냥 직접 타이핑 할 수 있지만, 아주 방대한 API의 경우 매번 새로 타이핑하는건...정말 노가다죠 ㅎㅎ아주 친절하게도 우리에게는 오픈소스라는 희망이 있었고, 다양한 DRF API 문서 자동화 패키지들이 존재했습니다. 예를들어 Django REST Swagger, Apiary, RAML 등이 있는데, 이번 포스팅에서 사용할 패키지는drf-yasg 입니다.참고자료 : https://drf-yasg.readthedo..