Celery의 병렬 작업을 쓰게 된 계기는 데이터 관련 처리를 하면서 전체 유저에 관한 엑셀 파일을 만드는 작업에서 시작되었다. 하나의 shell에서 작업하기에는 시간이 많이 걸려서 원래 쉘을 한 9개 정도 켜서 작업을 진행했었는데 이러한 작업들을 충분히 작업큐로 해결할 수 있을 것 같은 생각이 들었다. ( 정말 쉘 9개 켜서 복사 붙여넣기 하는 거 시간이 정말 아까웠다. 이걸로 인해 나의 개발 시간 1시간을 벌 수 있게 되었다. 그래서 병렬작업으로 처리하면서 어떻게 돌릴 수 있을까? 에서 시작되어 까먹지 않기 위해 이 글을 적으려고 한다. celery가 돌아가는 기본 원리는 다들 아실거라 생각하고 진행하겠습니다. @shared_task def something_task(self): ... app.con..
이 주제에 대해서 알아보게 된 것은 최근 제가 다니고 있는 회사에서 하나의 DB로 데이터들을 처리할려고 하니 이에 대한 해결책이 뭐가 있을 까 하고 고민을 해봤습니다. 처음에 내가 생각한 것은 다음과 같습니다. 1. MSA (MIcro Soft Arhitecture) : 마 ~ 우리가 자존심이 있지 쪼개보자!! 2. DB 분산 작업: 기존 애플리케이션 내부 DB를 나누게 되면 이에 대한 쓰기 작업을 분산 시킬 수 있지 않을까? 1번은 우리 회사에서 하기에는 인원도 부족하고, 장기적으로 바라보는 작업이기에 현실적으로 바로 접근하기에는 문 턱이 높기 때문에 저는 2번을 먼저 해보는 게 좋지 않을까 해서 조사하게 되었습니다. 제가 찾아본 공식문서는 다음과 같습니다. https://docs.djangoproje..
요즘 반복적인 운영 업무가 지속적으로 오는 것에 대해서 어떻게 처리할까 고민하던 와중 slack app으로 처리할 수 있지 않을까라는 문득 번쩍이는 생각이 들었다. 슬랙 앱을 만들어주고 그것을 유관부서에서 처리를 해주면 내가 개발할 수 있는 시간을 더 벌수 있을테니까... 우선 어떻게 작동시킬건지 아키텍처 먼저 간단하게 그려냈다. 대략적인 로직은 다음 위의 플로우대로 처리했다. 1.Block-kit 그러면 우선 Block-kit을 통해 원하는 view를 만들어 볼까? https://app.slack.com/block-kit-builder Slack nav.top { position: relative; } #page_contents > h1 { width: 920px; margin-right: auto; ..
https://programmers.co.kr/learn/courses/30/lessons/64065 코딩테스트 연습 - 튜플 "{{2},{2,1},{2,1,3},{2,1,3,4}}" [2, 1, 3, 4] "{{1,2,3},{2,1},{1,2,4,3},{2}}" [2, 1, 3, 4] "{{4,2,3},{3},{2,3,4,1},{2,3}}" [3, 2, 4, 1] programmers.co.kr import java.util.*; import java.util.stream.Collectors; class Solution { public int[] solution(String s) { Tuple tuple = new Tuple(s); return tuple.mappingCountToChunks().get..
https://programmers.co.kr/learn/courses/30/lessons/17677?language=java 코딩테스트 연습 - [1차] 뉴스 클러스터링 뉴스 클러스터링 여러 언론사에서 쏟아지는 뉴스, 특히 속보성 뉴스를 보면 비슷비슷한 제목의 기사가 많아 정작 필요한 기사를 찾기가 어렵다. Daum 뉴스의 개발 업무를 맡게 된 신입사원 튜브 programmers.co.kr 문제 접근 쓴 자료형 Map 단어들의 집합을 표현할 때 중복되는 것도 고려해야하는 문제를 어떻게 효율적으로 해결할까 고민하던 중 맵 자료형을 쓰면 좋을 것 같아서 사용하였다. 단순히 리스트를 사용하기에는 시간 복잡도 면에서 손해보는 것이 있기 때문에 Map 자료형이 더 탁월한 것 같다. Set 이 문제의 핵심 자료형..
https://programmers.co.kr/learn/courses/30/lessons/60058?language=java 코딩테스트 연습 - 괄호 변환 카카오에 신입 개발자로 입사한 "콘"은 선배 개발자로부터 개발역량 강화를 위해 다른 개발자가 작성한 소스 코드를 분석하여 문제점을 발견하고 수정하라는 업무 과제를 받았습니다. 소스를 programmers.co.kr import java.util.*; class Solution { public String solution(String p) { Parenthesis parenthesis = new Parenthesis(); return parenthesis.getValue(p); } public static class Parenthesis { publi..
https://programmers.co.kr/learn/courses/30/lessons/72411 코딩테스트 연습 - 메뉴 리뉴얼 레스토랑을 운영하던 스카피는 코로나19로 인한 불경기를 극복하고자 메뉴를 새로 구성하려고 고민하고 있습니다. 기존에는 단품으로만 제공하던 메뉴를 조합해서 코스요리 형태로 재구성해서 programmers.co.kr import java.util.*; class Solution { public String[] solution(String[] orders, int[] course) { Restaurant restaurant = new Restaurant(orders, course); return restaurant.checkCourseMenu().getCandidateMenu(..
의도 한 서브시스템 내의 인터페이스 집합에 대한 획일화된 하나의 인터페이스를 제공하는 패턴으로, 서브시스템을 사용하기 쉽도록 상위 수준의 인터페이스를 정의 동기 시스템을 서브시스템으로 구조화하면 복잡성을 줄이는 데에 큰 도움이 된다. 공통적인 설계 목표는 서브시스템들 사이의 의사소통 및 종속성을 최소화하려는 것! 예를 들어 소비자가 어느 물품에 대하여 구매버튼을 눌렀다고 하자. 그러면 물류센터에서는 해당 물품을 출고할 것이고, 택배사에서는 해당 물품에 대하여 배송관련 작업을 시행할 것이다. 소비자 입장에서는 구매 버튼을 누르면 특정 시간이 지났을 때 물품이 오면 되는 것이다. 이러한 커머스 시스템은 구매 관련 클래스를 정의하고 구매 관련되어 있는 인터페이스를 정의합니다. 구매자는 어떤 택배사와 물류센터를..
- Total
- Today
- Yesterday
- 프로그래머스
- Spring
- PostgreSQL
- BFS
- headers
- DRF
- 면접
- 자바
- Python
- 알고리즘
- Collections
- setattr
- 파이썬
- 백준
- docker
- 그래프
- ubuntu
- Celery
- django
- thread
- postgres
- docker-compose
- Java
- Pattern
- Linux
- env
- 2021 KAKAO BLIND RECRUITMENT
- dockerignore
- 카카오
- Command Line
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | ||||||
2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 | 24 | 25 | 26 | 27 | 28 |