브로커 신호

마지막 업데이트: 2022년 4월 3일 | 0개 댓글
  • 네이버 블로그 공유하기
  • 네이버 밴드에 공유하기
  • 페이스북 공유하기
  • 트위터 공유하기
  • 카카오스토리 공유하기
Redis 가 속도면에서 더 빠르다고는 하지만 엔터프라이즈 환경에서 다양한 라우팅, 메시지 유실 방지 등이 필요로 합니다.하지만 메시지가 유실되어도 상관이 없고 속도가 중요한 경우는 Redis 가 더 효율적일 수 있습니다. 상황에 맞춰 사용하는 것이 좋습니다.

쇼디 (쇼크 디텍터 shock detecter) 의 신호는 어떻게 계산되는가

가끔 쇼디 신호가 잘못 나는 경우에, 낚이시는 분들이 있습니다.

이 쇼디는 상품화를 해야하는 놈인데, 일이 너무 바빠 미루고 있습니다.
그래도 신호값이 어떻게 계산되고 무슨 근거로 나오며, 이에 대해 이해하고 덜 낚이시라고 적습니다.

길게 적었는데 날아가서 맨붕 왔습니다.
최대한 효율적으로 설명하겠습니다.

fake volume은 볼륨과 비슷해 보이지만 볼륨값을 전혀 쓰지 않은 지표입니다.
이는 사실 변동성을 계산하다가 나온 값을 가시화 한 브로커 신호 것 입니다.

자 그럼, fake volume이 늘 볼륨과 비슷하다고 가정해봅시다.
그러면, 다른 경우는 뭐고, 어떤 경우일까.
그래서 그걸 표시한게 쇼디라고 보시면 됩니다.

fake volume은 오픈소스이니 수식이 궁금하시면 직접 보시면 되며,
수학과 차트와 프로그래밍을 조금 아시는 분은 쇼디 비슷한 것을 직접 만드실 수 있겠습니다.
제 밑천을 거의 다 알려드렸습니다.

이제 자세한 설명을 해보겠습니다.

여러분은 차트를 보며 여러 커뮤니티를 돌다보면 쉽게 볼 수 있는 말이 있을 겁니다.

"볼륨도 없이 반등하네, 가짜다."

사실 여러가지 문장을 가져와서 적었는데 다 날아가서.

아무튼 굉장히 유명한 이론이죠. 찐반은 볼륨이 높다.

본래 변동성은 볼륨과 함께해야 합니다.
그런데 변동성에 비해 볼륨이 높다면
그 자리는 아마도 '변곡점' 이겠지요.

사실 처음에는 fake volume을 만들어보고,
볼륨과 너무 닮아서, 볼륨과 이 값이 차이가 나는 곳은 어떤 곳인지 궁금해서
차트에 가시화 했더니
이런 결과가 나왔습니다.
그뒤로 2번 정도의 수식 수정이 있었고,
수정된 수식 최종본에서 핵심 부분 90%를 fake volume 이라는 이름의 오픈소스로 공개한 것 입니다.
(나머지 10%는 볼륨과 비교하는 것 입니다.)

이러면 너무 제 밑천을 다 까는것 아닌가 싶겠지요.
하지만 이런 것은 너무 비밀스러워서도 안되는 법이라고 생각합니다.
알고 써야 제대로 쓰는 것이지요.

이제 이해가 가셨다면, 약간의 쇼디 신호가 나와도 변곡점이 아닌 것을 어느정도 읽을 수 있을 것 입니다.
세력이 단순 자전거래로 인한 볼륨이라고 생각되면
쇼디 신호가 나와도 무시해야 하겠습니다.

단순히 추세선을 돌파중이라면 볼륨이 붙기 때문에 쇼디 신호가 나올 수 있습니다.

반대로, 반등을 하는데 쇼디 신호가 없다면, 곧바로 재하락을 생각해볼 수 있겠습니다.

SBS

네, 칸영화제 경쟁 부문에 오른 두 번째 한국 영화 '브로커'가 오늘(27일) 새벽 이곳에서 베일을 벗었습니다.

네, 영화 '브로커'는 4년 전 칸영화제에서 황금종려상을 받은 일본의 거장 고레에다 히로카즈 감독이 한국의 유명 배우들과 함께 만들어 더 화제가 됐는데요.

  • 매우 작은 폰트
  • 작은 폰트
  • 보통 폰트
  • 큰 폰트
  • 매우 큰 폰트

(예시) 가장 빠른 뉴스가 있고 다양한 정보, 쌍방향 소통이 숨쉬는 다음뉴스를 만나보세요. 다음뉴스는 국내외 주요이슈와 실시간 속보, 문화생활 및 다양한 분야의 뉴스를 입체적으로 전달하고 있습니다.

프랑스 칸영화제에서 경쟁 부문에 진출한 또 한 편의 한국 영화가 현지에서 공개됐습니다. 일본 감독과 한국의 유명 배우들이 함께 한 작품인데, 자세한 내용은 취재기자 연결해서 알아보겠습니다.

곽상은 특파원이 영화 '브로커' 공개 현장에 다녀왔는데, 먼저 분위기가 어땠는지부터 전해주시죠.

네, 칸영화제 경쟁 부문에 오른 두 번째 한국 영화 '브로커'브로커 신호 가 오늘(27일) 새벽 이곳에서 베일을 벗었습니다.

극장 앞에는 상영 1시간여 전부터 긴 대기 행렬이 생겼습니다.

감독과 배우들이 현장에 도착하자 분위기는 한층 더 고조됐는데요,

[고레에다 히로카즈/'브로커' 감독 : 몇 번이나 (칸영화제에 초청되는) 특별한 기회를 갖게 돼 기쁩니다. 고맙습니다.]

영화 '기생충'으로 프랑스 관객들에게도 잘 알려진 송강호 배우에 대한 반응도 뜨거웠습니다.

[송강호/'브로커' 주연 배우 : 평소에 너무 존경해왔던 감독님인데, 이렇게 따뜻하고 너무 감동적인 작품을 하게 돼서 영광스럽게 생각합니다.]

우리 영화에 대한 관심이 뜨겁다는 것을 다시 한번 느낄 수 있었는데, 영화를 본 사람들 반응은 어떻던가요?

네, 영화 '브로커'는 4년 전 칸영화제에서 황금종려상을 받은 일본의 거장 고레에다 히로카즈 감독이 한국의 유명 배우들과 함께 만들어 더 화제가 됐는데요.

감독이 한국의 '베이비 박스' 문제에 착안해, 아기를 파는 브로커와 아기 엄마의 이야기를 직접 쓰고 연출했습니다.

[고레에다 히로카즈/'브로커' 감독 : 국적과 상관없이, 태어난 생명에 대해 어른들이 어떻게 관계 맺는지를 여정을 통해 보여주고 싶었습니다.]

영화가 끝난 뒤에는 10분 넘게 기립 박수가 이어졌는데, 사회 문제를 깊이 있게 다뤘다는 반응부터 감독 특유의 감성이 느껴지지만 조금은 평이하다는 반응까지, 다양한 평가가 나왔습니다.

[제니퍼 레이티시아/모나코 영화 판매업자 : '아이 유기'라는 사회 문제를 다루며, 관객의 브로커 신호 보편적 정서를 자극합니다.]

[하이디 리노박/프랑스 영화 홍보 전문가 : 좀 더 시간을 가지고 생각해봐야 할 것 같습니다. 전반적으로 조용하고 잔잔한 영화입니다.]

Python Celery란

해당 글은 celery 를 이용하여 코드를 잘 작성하는것에 비중을 둔 글이 아니라

간단한 celery 소개 브로커 신호 및 특징과 broker 에 대해 공부하기 위해 작성한 글입니다.

Celery 는 python 동시성 프로그래밍에서 가장 많이 사용되는 방법 중 하나입니다. 몇 가지 설정만 한다면 간단하게 python 코드를 실행하는 worker 를 만들 수 있습니다.

Celery 는 task 를 broker 를 통해 전달하고 worker 가 처리하는 구조입니다.

공식 홈페이지에서 celery 의 정의를 찾던 중 가장 핵심 적인 문구를 하나 찾았습니다.

실시간 처리에 중점을두고 작업 예약을 지원하는 작업 큐입니다.

물론 스케줄링을 지원하지만 실시간 처리에 중점을 두고 있습니다.

Celery 구성 요소

Celery 의 구성요소는 크게 3가지로 구분됩니다.

Broker: task(message)를 worker 에게 전달하는 역할

Celery 특징

  • Cleient 나 Worker 는 연결 유실이나 실패에 대해 자동으로 재시도 합니다. 또한 Broker , Worker 를 HA 구성하여 고가용성이 뛰어납니다.
  • 단일 Celery 프로세스는 최적화 설정(RabbitMQ, librabbitmq 등)을 통해 밀리 초 정도의 대기 시간으로 분당 수백만 개의 작업을 처리 할 수 있을 정도로 빠릅니다.
  • Celery 는 확장성이 매우 뛰어나 거의 모든 부분을 커스텀하여 사용할 수 있습니다. (사용자 지정 풀 구현, serializer, compression 브로커 신호 schemes, logging, schedulers, consumers, producers, broker transports 등.)

Celery Broker

broker 는 client 와 worker 사이에서 메시지 전달을 브로커 신호 중개하는 역할을 합니다. 5.0 버전 기준으로 다음과 같은 broker 를 지원합니다.

  • RabbitMQ
  • Redis
  • Amazon SQS(모니터링, 원격 제어 지원X)
  • Zookeeper(실험적)

해당 글에서는 일반적으로 많이 쓰는 RabbitMQ 와 Redis 를 다룰 예정입니다.

RabbitMQ vs Redis

RabbitMQ

  • RabbitMQ 의 인증 및 인가 방식을 그대로 사용할 수 있습니다.
  • 매우 효율적이고 광범위하게 배포 및 테스트 된 메시지 브로커이지만 더 많은 내구성과 안정성을 위해 조정하면 성능에 영향을 미칠 수 있습니다.
  • 고급 라우팅 요구 사항이있는 엔터프라이즈 메시징을 제공하는데 더 적합합니다.

RabbitMQ_ACK.PNG

RabbitMQ ACK

Message가 최소 한번 이상은 전달되는 것을 보장하는 성질입니다. 이러한 성질을 At Least Once 라고 명칭합니다. 송신자는 Message 를 전송한 이후에 수신자로부터 ACK 를 받지 못한다면, 수신자에게 ACK 를 받을 때 까지 Message 를 재전송합니다. 따라서 수신자가 ACK 를 받지 못한다면 Message 를 재전송합니다. 송신자가 Message 를 처리한 다음 수신자에게 ACK 를 전송하여도 일시적 Network 장애로 인하여 수신자에게 ACK 가 전달 되지 않을 수 있습니다. ACK 를 받지 못한 송신자는 Message 를 다시 수신자에게 전송할 수 있습니다. 즉 수신자는 동일한 Message 를 2번이상 받을 수 있습니다.

따라서 celery에서는 RabbitMQ 를 broker 로 사용할 때 해당 메시지에 대해 멱등성이 필요합니다.

Redis

  • 시작이 빠르고 가볍고 빠른 브로커이지만 안정적인 전달을 지원하지 않습니다.
  • 시스템이 종료되는 경우 몇 분 동안 작업에 대한 정보를 손실하는 것이 중요하지 않은 애플리케이션에 대해 선택할 수 있습니다.
  • Redis 자체가 메모리를 사용하여 저장하는 방법이라 메모리가 부족한 상황에서는 임의로 key 가 삭제될 수 있습니다. task 를 받아도 삭제 될 수 있습니다.

Redis 가 속도면에서 더 빠르다고는 하지만 엔터프라이즈 환경에서 다양한 라우팅, 브로커 신호 메시지 유실 방지 등이 필요로 합니다.

하지만 메시지가 유실되어도 상관이 없고 속도가 중요한 경우는 Redis 가 더 효율적일 수 있습니다. 상황에 맞춰 사용하는 것이 좋습니다.

Celery Worker

Starting the worker

celery worker 는 같은 머신에서도 다른 hostname 브로커 신호 을 통해 여러 worker 를 생성할 수 있습니다.

Stopping the worker

TERM 시그날을 통해 워커를 종료할 수 있습니다.

종료가 시작되면 작업자는 실제로 종료되기 전에 현재 실행중인 모든 작업을 완료합니다. 작업이 중요한 경우 KILL signal을 보내기전 작업을 수행하기 전까지 기다려야합니다.

worker 가 무한 루프 또는 이와 유사한 상황에 갇혀서 상당한 시간이 지난 후에도 종료되지 않는 경우 KILL 신호를 사용하여 worker 를 강제 종료 할 수 있습니다. 그러나 현재 실행중인 작업은 손실됩니다.

또한 프로세스가 KILL 신호를 무시할 수 없지만 children (thread, proccess?)을 종료할 수 없습니다. 이러한 경우에는 명령을 통해 수동으로 종료합니다.

Restarting the worker

작업자를 다시 시작하려면 TERM 신호를 보내고 새 인스턴스를 시작 해야 합니다. 작업자를 브로커 신호 관리하는 가장 쉬운 방법은 celery multi 를 사용하는 것입니다.

프로덕션 환경에서는 supervisor 등(프로세스 관리 시스템)을 사용해 worker 가 종료되지 않도록 관리해야 합니다.

회사에서도 celery 를 통해 비동기 작업을 처리하고 있지만 특수한 방법으로 사용하다보니 종종 message 가 사라지거나 task 를 처리하는 중에 사라지는 경우가 종종 있었습니다. 또한 celery 를 k8s로 관리하는데 workload resource 업데이트를 하면 container 가 거의 곧 바로 죽어 작업을 처리하지 않고 사라지는 경우도 있엇습니다. 글을 작성하면서 배운 내용을 기반으로 graceful shutdown 까지 적용해보려 합니다.

k8s에서 Pod 종료 이벤트의 순서는 SIGTERM 을 1번 브로커 신호 프로세스에 전송합니다. ( terminationGracePeriodSeconds 30초)

유예 기간이 만료되어도 Pod 이 삭제되지 않으면 SIGKILL 신호가 해당 프로세스로 전송되고 Pod 가 API 서버에 삭제됩니다.

따라서, terminationGracePeriodSeconds 을 적절하게 늘려주어 graceful shutdown 이 되도록 해보려합니다.

선거캠프, 전문가 없고 브로커만 활개

폰트사이즈작게

6·4 지방선거의 레이스가 시작됐다. 그러나 상당수 예비 후보들은 출발 신호를 받고도 속도를 내지 못하고 있다. 선거캠프 핵심요원을 모두 채우지 못했기 때문이다.

보통 후보 캠프는 선거 전략가와 홍보 전담자, 회계 책임자가 핵심이다. 하지만 상당수 출마예정자들은 쓸만한 핵심요원 영입에 어려움을 겪고 있다고 입을 모은다.

반면, ‘선거꾼’으로 불리는 브로커들의 유혹은 전방위적으로 펼쳐지는 모습이다. 선거만 열리면 설쳐댔던 이들은 주로 정치 신인들을 ‘먹잇감’으로 노리고 있다. 이미 일부 정치 지망생들이 낚였다는 소문까지 돌고 있다.

△선거 전략가 어디 없소= 선거 경험이 있는 정치인들과 달리 신인들에게 전략가는 선거 내비게이터(navigator)다. 때문에 신인들은 전략가를 찾기 위해 백방으로 수소문을 하고 있다. 하지만 현실은 녹록치 않다. 시지역보다 군 지역에서 겪는 현실의 벽은 더 높다.

A지역 군수 입지자는 일찌감치 출마 선언을 하고도 경험과 능력을 갖춘 전략가를 찾지 못했다. 그는 “인생을 걸었는데 아무나 영입할 수는 없지 않냐. 캠프를 지휘해본 인사를 찾고 있지만 불순한 생각을 가진 사람만 있다. 시간이 없는데 어찌해야 할지 걱정이다”고 했다.

지난 2010년 지방선거를 치렀던 B지역 입지자도 상황도 별반 다르지 않다. 일단 전략가를 모시기는 했지만 부족한 점이 많다는 판단이다. 그는 “초반부터 주도권을 잡기 위해선 선거전략이 중요한데 많이 부족하다. 추가 영입을 하려해도 사람이 없다”고 토로했다.

△홍보 전문가 귀하신 몸= 최근 들어 선거전에서 매스컴과 인터넷 영향력이 커지면서 캠프 대변인과 홍보담당자의 역할이 중요해졌다. 때문에 선거 때만 되면 예비 후보들은 언론인 출신 영입에 안간힘을 쓴다.

후보들이 전·현직 언론인에 공을 들이는 이유는 홍보 목적도 있지만 언론인들의 인맥을 활용해 방송과 신문 노출 빈도를 높이는 데 주된 목적이 있다.

C지역 시장 예비후보는 “처음에는 자체적으로 홍보인력을 운영하려고 했지만 시간이 갈수록 언론인 출신의 필요성이 절실해져서 평가가 좋은 기자 명단을 놓고 영입을 추진 중이지만 사람이 없다”고 했다.

아예 언론인 영입을 포기한 예비후보도 적지 않다. 자천으로 캠프 홍보담당을 맡겠다는 언론인이 있지만 이들의 실력과 주변 평가가 그다지 좋지 않아서라는 이유다. 오히려 명망있는 언론인은 삼고초려를 해도 캠프 참여를 거부한다고 한다.

△제철 만난 선거꾼들= 여느 선거 대와 마찬가지로 당선을 장담하면서 ‘한몫(?)’을 챙기려는 브로커들은 오히려 홍수다.

실제 D지역 군수 입지자는 당내 경선을 위해 조직을 모아주겠다며 1회 출장에 500만원을 활동비를 달라는 요구를 받았다고 털어놨다. 하지만 돈이 많은 것도 아니고, 위험부담이 커 거절했다는 설명이다. 또 캠프 전체를 지휘하겠다며 수억 원을 요구한 이도 있었다고 했다.

E지역 단체장 입지자도 비슷한 경험을 했다. 조직과 돈을 지원할 테니 당선 후 이권과 인사권 약속을 해달라는 것이었다. 그는 “솔깃한 제안이지만 양심을 팔면서까지 수용할 수 없어서 돌려보냈다”고 전했다.

도내 정치권의 한 관계자는 “선거 때만 되면 조직과 돈을 앞세운 브로커들이 판을 친다. 유혹에 넘어가면 당장은 좋겠지만 승패와 관계없이 교도소 담장을 걷는 것과 다름없다”며 “돈 쓰는 선거는 반드시 역풍을 맞게된다는 선거판의 진리를 새겨야 한다”고 강조했다.


0 개 댓글

답장을 남겨주세요