로그스태시가 레디스 정보를 읽는 방식

안녕하세요 메이리프입니다. 오늘은 로그스태쉬가 레디스에서 정보를 어떻게 읽는지 적은 글을 씁니다. 본문 로그스태시는 입력 플러그인을 통해서 특정한 소스의 정보를 읽습니다. 마찬가지로 레디스의 정보를 읽을 때에는 레디스 입력 플러그인을 사용합니다. 지원하는 데이터 타입은 list,channel, channel-pattern 이렇게 세 가지를 지원하며, list의 경우 BLPOP, channel의 경우 subscribe, channel-pattern의 경우 psubscribe 를 통해서 정보를 읽어옵니다. BLPOP은 blocking list pop의 약자로, 해당 키에 대해서 빈 값이면 레디스에서 커넥션을 막고, 값이 있을 때에만 값을 POP하여 넘겨줍니다.(POP이후에는 당연히 값이 지워집니다) chan..

ELK 2020.03.03 0

테스트 하기 좋은 코드, 좋은 테스트 코드

이 글을 쓰는 이유 좋은 테스트 코드, 테스트하기 좋은 코드에 대해서 고민하다가 든 생각을 공유해보고자 적습니다. 테스트 하기 좋은 코드 1. 블랙박스 테스트할때 비즈니스 로직의 결과를 단언할 수 있는 코드가 테스트 하기 편하다. 비즈니스로직과 persist 작업이 한번에 이뤄지고 "OK"나 Unit 과 같은 결과물만 내놓으면 stubbing으로 내용이 잘 돌아갔음을 증명해야하고, 이렇게 되면 레포지토리 레이어까지 내려가서 테스트해야한다. "버그 없음"은 테스트 코드를 통해서 증명할 수 있는게 없기 때문에, return을 받아서 결과를 볼 수 있도록 되어있는게 편한 것 같다. 파라미터로 넣은 객체를 확인하는 방법도 있지만, 객체는 Immutable하게 유지해주는 편이 좋기 때문에 비즈니스 로직은 묶어서 ..

Kotlin 2024.01.15 0

2022/07/07 TIL

80~170page 폴로니어스를 햄릿이 실수로 죽이고, 클로디어스를 죽일 기회를 보내는 부분까지 봤다. 그리고 읽다보니까 대학교수 놀리는 부분이 여기에서 나왔다는 게 기억났다. webview_flutter를 오랜만에 만졌다. javascript_channels라는 자바스크립트 채널 셋 옵션이 있다는 것을 알게 되었다. 이걸 사용하면 자바스크립트와 플러터가 메세지를 통해서 통신할 수 있다. 예를 들어 toast라는 채널을 웹뷰에 넘겨주면 자바스크립트에서는 toast.postMessage("hello")같은 방식으로 플러터에 메세지를 보낼 수 있다. 이 채널을 이용하면 웹뷰와 플러터가 통신할 수 있기 때문에 필요한 기능을 잘 분배해서 구현할 수 있을 것 같다.

TIL 2022.07.08 0

다트 변수, Dart Variable

오늘부터 다트 강좌를 시작합니다. 이 강좌를 시작한 이유는 2가지가 있습니다. 첫 번째 이유는 배운 내용을 복습하고 꼼꼼하게 확인하기 위해서입니다. 다른 사람에게 알려주려고 하다 보면 Expert beginner 수준에 있던 지식을 더 끌어올릴 수 있기 때문입니다. 두 번째 이유는 다트 공식 홈페이지에서 다루지 않는 다른 언어들과 비교하고 제가 얻은 경험을 전해서 실전에 도움이 될 수 있는 팁을 드리기 위해서입니다. 다트 먼저 다트가 어떤 언어인지부터 설명드리겠습니다. 다트는 멀티 플랫폼 런타임을 제공하기 위한 언어입니다. 어떤 환경에서든 편하게 프로그래밍할 수 있고, 누가 만들었는지는 잘 모르겠지만 구글의 다트 팀에서 밀어주고 있는 무료 오픈소스 언어입니다. 한때 개발자가 가장 싫어하는 언어 1위에 올..

Dart 2021.08.28 1

Flutter 란?

이 글은 플러터에 대해서 소개하는 글입니다. 이 글에서 다루고자 하는 내용은 크게 두 가지입니다. 첫 번째는 플러터에 대한 소개와 앱 서비스 개발시 고를 수 있는 선지에 대해서 다룰 것이고, 두 번째는 네이티브 프레임워크를 사용하는 팀에서의 경험과 개인적으로 플러터를 사용하면서 느낀 점입니다. 플러터란? 플러터는 구글에서 개발한 크로스 플랫폼 프레임워크입니다. 여러 플랫폼에서 제공되어야하는 서비스를 하나의 코드베이스로 관리하기 위해서 사용됩니다. 크로스 플랫폼 프레임워크? 크로스 플랫폼 프레임워크란 하나의 코드베이스로 여러 플랫폼에 동시에 서비스를 제공하기 위한 프레임워크입니다. 대표주자들은 React-Native/Javascript(이하 RN), Xamarin/C#, Flutter/dart 정도가 있습..

Flutter 2021.08.16 0