Loading...
2022. 7. 31. 23:09

[Kafka] 카프카의 코디네이터 Zookeeper

우리가 컴퓨터에 카프카를 설치하려면 반드시 따라서 설치해야하는 것이 있습니다. 바로 주키퍼(Zookeeper)인데요. 다른 메시지 큐와 다르게 카프카는 왜 주키퍼를 필요로 하는 것일까요? 코디네이션 서비스 시스템 (Coordination System) 분산 처리 시스템을 다루다보면 가장 큰 난제가 바로 분산된 시스템끼리 어떻게 정보를 공유할 것인가? 입니다. 쿠버네티스, 카프카 등 분산 시스템 자체는 클러스터를 중심으로 하위 노드들이 집결 되어 있는 형태가 보통인데 클러스터에서 하위 노드를 관리하기 위해 해야할 일은 아래와 같습니다. 각 하위 노드들의 Healthcheck Lock Processing 분산된 서버들끼리 통신할 때 서로 리소스를 공유하려다 보면 자원 점유 문제가 발생하는데, 이를 처리하기 ..

2022. 7. 30. 14:48

[Kafka] Apache Kafka는 무엇이고 왜 성능이 빠를까?

카프카란 무엇일까? 카프카란 말을 들어본 적은 있지만 아직 사용해본 적이 없다면 이 소프트웨어가 되게 생소할 수 있습니다. 카프카는 Linkedin에서 처음 개발하여 아파치 오픈 소스까지 오게 된 대용량 메시지 분산 처리 플랫폼입니다. 메시지 분산 처리 플랫폼 여기서 이야기하는 메시지란, 우리가 개발한 일련의 소프트웨어를 통신하기 위한 메시지를 말합니다. 가령 우리는 소프트웨어를 개발할 때 서로 기능을 분리하기 위해 함수를 사용하는데, 함수끼리 통신을 위해서 보내고 받는 데이터들을 정의합니다. 이를 우리는 파라미터라고 합니다. 그런데, 마이크로서비스는 어떨까요? 서로 프로세스도 다르고 인스턴스도 다른 상황에서 각 서비스끼리 통신하려면 메시지를 주고 받을 수 있어야 합니다. 이를 위해 우리는 메시지 큐를 ..

2022. 7. 24. 17:33

[PowerShell] Windows Terminal과 oh my posh로 Powershell을 더 이쁘게 사용하기

개인적으로 Windows를 쓸 일이라곤 많이 없었습니다. 개발은 대부분 Linux 혹은 OS X에서 진행하고, Windows는 게임 머신이나 Windows binary 개발 외에는 거의 쓸 일이 없었으니깐요. 그런데, 최근 Windows Terminal을 보고 이제 Powershell도 꾸미는 시대가 왔다는 것을 느끼며 사용기와 함께 이뻐진 Windows Terminal을 소개하고자 합니다. 딱딱하다 못해 친숙하지 않은 Powershell과 CMD Windows 명령 프롬포트는 그야말로 레거시를 상징하는 프로그램입니다. 그를 대체하기 위해 Windows Server 2008과 Windows Vista에서부터 Powershell을 도입했지만 스크립트는 풍부하게 지원하더라도 친숙하지 않은 UI 등은 저에게 ..

2022. 7. 2. 15:21

[OpenCV] 원하는 이미지 영역(관심영역, ROI) 자르기(Crop)

블로그 글을 쓰다보면 특정 영역만을 잘라서 저장하고 싶을 때가 있습니다. 윈도를 사용하다보면 윈도에서 제공하는 Windows 사진 뷰어 등의 프로그램을 이용해 원하는 이미지의 영역을 자를 수 있는데, Mac OS X나 Ubuntu에 있다보면 기본 프로그램으로 이런 것들을 제공하지 않다보니 쓸 프로그램을 찾게 되는 경우가 잦았는데요. 이렇게 원하는 이미지를 불러와서 간단하게 원하는 영역을 자를 수 있는 프로그램을 한 번 만들어보도록 하겠습니다. MouseEvent OpenCV에서 MouseEvent를 사용하기 위해서는 콜백 함수를 구현해야 합니다. 콜백 함수에 대해 잘 모르시겠다면 아래의 글을 참고해보세요. 2016.12.18 - [Programming/OpenCV] - OpenCV에서 Mouse Even..

2022. 7. 2. 14:02

[OpenCV] C++와 OpenCV 4.x로 개발할 수 있는 환경 만들기

간만에 OpenCV 글을 작성하게 되었습니다. 요 몇년 백엔드 엔지니어링 공부를 하게 되면서 장난감처럼 여겨오던 OpenCV 글을 다시 쓰게 되었는데요. 안 본 사이에 벌써 OpenCV 4.6 Pre-release로 OpenCV 5.x 버전까지 올라온 것을 보고 정말 시간이 빨리 흘러가고 있다는 것을 새삼 느꼈습니다. 만들 환경 오늘은 아래의 3가지 도구를 사용해서 OpenCV 개발 환경을 만들어보도록 하겠습니다. JetBrains CLion / CMake OpenCV 4.6 Ubuntu Linux 20.04 사실 OpenCV를 사용할 수 있는 환경은 C++ 외에도 Python이 있는데요. 딥러닝이나 머신러닝을 주로 하시는 분들은 Python을 이용할 것이고, 그 외 IoT나 카메라 등 하드웨어를 주로 ..