Circuit Breaker 셀메이트 모바일 POS 적용기

Circuit Breaker 회로 차단기 회로 차단기는 전기 회로에서 과부하가 걸리거나 단락으로 인한 피해를 막기 위해 자동으로 회로를 정지시키는 장치이다. 과부하 차단기와 누전 차단기로 나뉜다. 퓨즈와 다른 점은, 차단기는 어느 정도 시간이 지난 뒤에는, 원래의 기능이 동작하도록 복귀된다. 회로 차단.. 아니 코드 차단기 Circuit Breaker는 거의 처음접하는분이 많을겁니다. Circuit Breaker의 주목적은 기능 모듈에서 장애가 나면 다른 모듈로 장애가 전파되는것을 막기위해서 사용합니다. 보통의 Circuit Breaker는 MSA 아키텍쳐에서 사용되는것으로 알고 있습니다. 셀메이트 모바일 포스에서는 외부 통신 API를 제어하기위해서 채택하여 적용해보았습니다. ...

2023-05-11 16:52 · 3 분 · 506 단어 · 이상익

FLUTTER BLOCK? BLOC!

BLOC 패턴 Bloc 패턴은 UI사이에서 이벤트 및 데이터를 수신하고 전달하는 비즈니스 로직 패턴입니다. 기본적으로 Reactive Programming을 기본으로 사용하여 이벤트 및 데이터의 흐름을 처리합니다. 이전에 포스팅했었던 RxKotlin 과 비슷한 RxDart를 사용합니다. Bloc은 UI객체들이 Bloc을 구독하고 있고 Bloc의 상태가 변경이되면 구독중인 UI객체들도 즉시 변경이됩니다. 위의 즉시변경을 위한 BLoC패턴의 중점인 데이터의 흐름은 Sinks와 Stream의 중심으로 구성이 되어있습니다. Widget들은 event를 Sinks를 통하여 BLoC에 송신. Widget들은 BLoC의 stream으로 알림을 받음. Let’s BLoC BloC을 구현하는 방법은 여러가지 방법이 있었습니다. ...

2022-07-14 09:10 · 3 분 · 548 단어 · 이상익

메모리 관리 in Python

출처 : https://realpython.com/python-memory-management/ Python이 뒤에서 데이터를 어떻게 처리하는지 궁금해 본 적이 있나요? 변수는 어떻게 메모리에 저장되나요? 언제 삭제되나요? 이 글에서는 Python이 메모리 관리를 어떻게 처리하는지 이해하기 위해 Python의 내부에 대해 자세히 알아보겠다. 이 글를 통해 다음과 같은 내용을 얻을 수 있다. 메모리와 관련된 로우 레벨 컴퓨팅에 대해 자세히 알아보기 Python이 하위 수준의 운영을 추상화하는 방법 이해 Python의 내부 메모리 관리 알고리즘에 대해 알아보기 또한 Python의 내부 정보를 이해하면 Python의 일부 동작에 대한 더 나은 통찰력을 얻을 수 있다. 파이썬에 대한 새로운 느낌을 얻길 바란다. 우리의 프로그램이 우리가 기대하는 대로 작동하도록 보장하기 위해 많은 연산이 뒤에서 일어나고 있다. 메모리는 빈 책이다 우리는 컴퓨터의 메모리를 단편 소설을 위한 빈 책으로 생각하는 것으로 시작할 수 있다. 아직 페이지에는 아무것도 쓰여 있지 않는다. 작가들이 글을 쓰기 시작 할 것이고 각 작가는 그들의 이야기를 쓸 수 있는 공간을 원한다. ...

2022-05-26 17:40 · 10 분 · 1992 단어 · 신승혁

파이썬에서 GIL이란 무엇일까?

파이썬 Global Interperter Lock(GIL)은 간단히 말해서 하나의 스레드만 파이썬 인터프리터의 제어를 유지할 수 있도록 하는 뮤텍스(또는 락)이다. 즉, 한 시점에 하나의 스레드만 실행 상태에 있을 수 있다. GIL의 영향은 단일 스레드 프로그램을 실행하는 개발자에게 보이지 않지만 CPU 바인딩 및 다중 스레드 코드에서 성능 병목 현상이 발생할 수 있다. GIL은 두 개 이상의 CPU 코어가 있는 멀티 스레드 아키텍처에서도 한 번에 하나의 스레드만 실행할 수 있기 때문에 파이썬의 인기 없는 기능으로 유명해졌다 ...

2022-05-26 15:05 · 7 분 · 1474 단어 · 신승혁

알쓸개잡 4탄 (NoSql)

SQL Sql(Structured Query Language)라는 단어는 자주 접하는 단어이지만 생각해보면 업무용어로는 생각보다 자주 써본 기억은 없는것 같습니다. MSSQL, MySQL등 특정 RDBMS의 이름을 부를때 외에는 말이죠. 의미상으로 ‘RDBMS에서 사용하는 언어’이므로 쿼리를 작성할때에 변수의 이름으로 자주 사용하기도 합니다. NoSQL? 그렇다면 NoSQL이라는건 뭘까요? 용어의 가장 강조되는 의미는 ‘SQL이 아닌것(Not only SQL)‘이라고 합니다. 다시말해 RDBMS가 아닌것은 모두 NoSQL입니다. 그래서 NoSQL이라고 통칭하는 DBMS들은 그들 내에서도 상이한 모습을 하고 있는데요 공통적인 특징으로는 유연한 설계 / 높은 수평 확장성이 있습니다. 이번에는 MongoDB를 훑어보면서 NoSQL이 어떻게 활용 될 수 있을지 알아보겠습니다. ...

2022-04-13 12:51 · 4 분 · 699 단어 · 박대웅

알쓸개잡 3탄 (Scrapy)

Scrapy란? Python으로 작성된 오픈 소스 웹 크롤링 프레임워크 입니다. 이 프레임워크는 웹 스크래핑을 위해 디자인 되어 있으며, Spider를 작성해서 크롤링을 합니다. Scrapy 설치 아래 명령어를 통해서 Scrapy를 설치합니다. 1 pip install scrapy Scrapy 프로젝트 생성 아래 명령어를 통해서 Scrapy 프로젝트를 생성할 수 있습니다. ...

2022-04-05 09:14 · 3 분 · 436 단어 · 김우영

알쓸개잡 2탄 (Pair Programming)

알아두면 쓸 데 있는 잡다한 개발지식 알아두면 쓸 데 있는 잡다한 개발지식을 많은 분들에게 공유하고자 2탄으로 돌아 왔습니다. 저희 스터디(var)에서는 다양한 개발 주제를 탐구하고 공유하고 있으며 개발 주제는 개발 언어, 프레임워크에만 치우쳐 있지 않고 애자일, 디자인 패턴, DB, 개발 툴, 새로 나온 프레임워크 등 다양한 분야에 대해 탐구하고 있으니 앞으로 올라오는 알쓸개잡 포스트에도 많은 관심과 저희 스터디에도 많은 관심 가져주세요~~ 저희 스터디는 언제나 새로운 분들을 환영합니다. (잡아먹지 않아요.. 편하게 들어와주세요) ...

2022-03-30 16:14 · 3 분 · 496 단어 · <남나현>

CI/CD 무중단 배포 POS Projcect 적용기 2탄

개발이란건 어쩌면… 완벽하다고 생각했던 코드는 조금만 시간이 지나서 다시 보면 왜이렇게 헛점 투성이 인걸까요? 개발이란건 어쩌면 삽질의 연속이 아닐까요? 이번에 무중단 배포 적용 진행하는 과정 또한 그러한 시행착오의 연속이었습니다. 완벽했다고 생각한 1차 배포기는 아래 링크에서 확인 가능합니다. CI/CD 무중단 배포 POS Projcect 적용기 1탄 바로가기 첫번째 삽질 지난번 적용기의 핵심은 하나의 서버에 도커 컨테이너를 2개 띄워둔 상태에서 사용하지 않는 컨테이너를 최신상태로 recreate 한 후에 배포한다는 개념이었습니다. ...

2022-03-28 09:28 · 8 분 · 1651 단어 · 박대웅

안드로이드 Overdraw 줄이기 (GPU 렌더링 최적화)

오버드로(Overdraw) 란? 안드로이드에서 오버드로 란 단일 프레임에 동일한 픽셀을 두 번이상 그리는 작업을 의미합니다. 안드로이드에서의 레이아웃은 페인터의 알고리즘 으로 그려지기에 사용자에게 보여지지 않는 부분까지 그려집니다. 이러한 이유로 인해 오버드로가 발생하면 GPU 렌더링 시간을 낭비하여 성능 문제로 이어질 수 있습니다. 어떻게 오버드로를 확인할까? 오버드로 디버그 도구 활성화 기기 설정에서 개발자 옵션을 클릭 합니다. 하드웨어 가속 렌더링 섹션에서 GPU 오버드로 디버그를 선택합니다. GPU 오버드로 디버그 팝업에서 오버드로 영역 표시를 선택합니다. ...

2022-03-23 11:46 · 2 분 · 339 단어 · 송기수

전지적 관찰자 시점 RxKotlin

관찰자 구독의 시대 Observable 일상생활에서도 정기적으로 구독을 하고 편리한 삶을 살아갑니다. 대표적으로 구독이라는 말은 유튜브에서 매우 친숙한 친구입니다. 일상생활에서도 세탁구독, 수건구독등 상상외의 구독이 존재하죠 일상생활에서의 구독도 비동기처럼 살아 갈 수 있도록 도움을 줍니다. (멀티쓰레드는 아니지만요.) 관찰과 구독 기본적인 동작 구조 1. 관찰자가 해당 코드를 구독하여 관찰합니다. 2. 상태가 바뀔때 관찰자가 알려줍니다. 3. 관찰자가 알려준 응답으로 처리를 합니다. ...

2022-03-22 11:04 · 3 분 · 446 단어 · 이상익