💻 프로그래밍
-
[RxPy] CPU Concurrency와 Muliti Thread로 Rx하기💻 프로그래밍/Python 2020. 7. 14. 19:13
안녕하세요! 운동하는 개발자 JAY 입니다! 오늘은 드디어! RxPY를 Multi Thread(멀티 쓰레드)로 사용하는 방법에 대해 설명하려고 합니다! 직접 코드를 실행해보기에 앞서 몇 가지 개념에 대해서 알아보고 들어가겠습니다! 1. Concurrency(병행성) VS Parallelism(병렬성) 🌏 RxPy 3.1.0 문서에 보면 Multi Thread 관련된 설명에 이렇게 나와 있습니다. Concurrency(병행성)이라는 개념이 살짝 헷갈릴 수도 있는데, 보통 Multi Thread하면 Paralle(평행) 이라고 생각을 할 수 있는데, 다른 언어는 어떤지 모르겠지만 RxPy에서는 Concurrency(병행)입니다. 즉, 실제로 동시에 실행하는 것이 아닌 동시에 실행하는 것처럼 보이는 것입니다...
-
[MySQL] Unknown table 'COLUMN_STATISTICS' in information_schema (1109) 에러💻 프로그래밍/DB 2020. 7. 12. 23:22
안녕하세요! 운동하는 개발자 제이입니다. 오늘은 mysqldump 할 때, 생기는 에러에 대해서 알아보려고 해요! 최근에 DB 덤프를 해야 하는 일이 있었는데, 갑자기 오류가 나더니 안되는 거예요?! (사실 mysql관련 brew 업데이트를 어떤 작업 중에 하게 됐어요ㅠㅠ) mysqldump -u[user] -p -h[호스트] [데이터베이스] [테이블명] > [저장할 이름].sql 이렇게 mysqldump 명령어를 실행하니까, mysqldump: Couldn’t execute ‘SELECT COLUMN_NAME, JSON_EXTRACT(HISTOGRAM, ‘$.“number-of-buckets-specified”’) FROM information_schema.COLUMN_STATISTICS WHERE S..
-
[RxPy] Operator 응용과 Custom Operator 만들기(feat. 메서드 체이닝(Method Chaning))💻 프로그래밍/Python 2020. 6. 29. 02:56
안녕하세요! 운동하는 개발자 JAY입니다. 오늘은 RxPy 연산자를 응용해서 몇 가지 문제를 풀어보도록 하겠습니다. RxPy에 대한 기본 설명은 여기를 참고해주시기 바랍니다. Rx에서 제공하는 연산자들이 궁금하다면 여기에서 확인해 주세요! 문제를 풀기전 메서드 체이닝에 대해서 알아보고 가겠습니다! 1. 메서드 체이닝? 그게 뭐입니까 휴먼? 🤔 일단 메서드 체이닝이란 method().filter().map() 이런 식으로 메서드를 연속적으로 이어서(체이닝) 쓸 수 있는 방식을 말합니다. 다만 RxPy에서는 메서드 체이닝을 지원하지 않습니다. RxJava 와같은 언어도요 ㅎㅎ 메서드 체이닝을 지원하지 않는 다면, 여러 Observable을 연속적으로 사용할 때 매우 비효율적으로 사용하게 됩니다. 예를 들면 ..
-
[RxPy] Reactive Programming? Rx? 그게뭐야?💻 프로그래밍/Python 2020. 6. 23. 02:30
안녕하세요! 개발자 JAY 입니다! 오늘은 Reactive Programming 그리고 Rx에 대해서 이야기 해보겠습니다. 처음 Rx에 대해서 들어본 건 iOS 개발자 동료들이 RxSwift를 맨날 이야기하길래 ㅋㅋ 궁금해서 물어봤더니 비동기 프로그래밍 관련된 내용이라고 하더라고요! 그리고 요즘 유행(?)이라고 ㅋㅋㅋ 그래서 "아~그런가 보다" 하고 지나가다가 회사 안드로이드 개발자분이 Rx스터디를 열어서 바로 한다고 했습니다. (평소 Rx가 궁금하긴 했지만 의지박약이라 실천에 못 옮겼었는데.. 매우 잘.. 되었습니다 ㅋㅋ) 1. What is Reactive Programming? 🤔 먼저 Reactive Progrming에 대해서 간단히 알아보겠습니다. 늘 그렇듯 위키피디아 를 참고하였습니다. In ..
-
[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..
-
로드밸런싱(Load Balancing) vs 리버스 프록시(Reverse Proxy)💻 프로그래밍/네트워크 2020. 4. 5. 02:17
안녕하세요! 운동하는 개발자 JAY입니다. 오늘은 네트워크에 관련된 내용을 정리해보려고 합니다. 바로 로드밸런싱 과 리버스 프록시 입니다! "로드밸런싱? 그게 뭐지?" 회사에서 일하면서 처음 로드밸런싱이라는 단어를 알게 되었고, 그때 이해하기로는 라우터 같은 개념이라고 이해했습니다. 수많은 클라이언트에서 서버로 접속하려고 하면 그 중간에서 여러 서버로 나눠서 요청을 전달해주는 거? 이때는 그냥 이런 개념이다라고 하고 넘어갔는데, 토이 프로젝트를 하면서 다시 한번 자세히 알아보게 되었습니다. 1. What is Load Balancing? Load Balancing(로드밸런싱) 은 여러 Server에 workload(작업량)를 분산시켜 웹사이트, 애플리케이션, 데이터 베이스 그리고 다른 서비스들의 퍼포먼스..
-
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): 매우 짧은 개발 사이클을 반복하는 소프트..