프로그래밍
클라이언트 설치 없이 카프카 브로커와 통신하기 - Kafkacat
클라이언트 설치 없이 카프카 브로커와 통신하기 - Kafkacat
2020.11.29카프카를 사용하는 개발자라면 로컬 혹은 서버에서 브로커와 직접 통신을 해야 하는 경우가 있습니다. 이 때 별도 설치 없이 명령어 한 줄로 편리하게 쓸 수 있는 도구인 Kafkacat을 소개해드리겠습니다. 사용법 자세한 문법은 해당 링크를 참조하시기 바랍니다. 토픽 목록 출력 docker run --tty --interactive \ confluentinc/cp-kafkacat \ kafkacat -b kafka:9092 \ -L 토픽 메세지 컨슈밍 docker run --tty --interactive \ confluentinc/cp-kafkacat \ kafkacat -b kafka:9092 \ -t topic_name \ -C 토픽 메세지 포맷 지정 및 컨슈밍 docker run --tty --int..
Filebeat-Kafka-Nifi로 데이터 스트림 5분 안에 구성해보기
Filebeat-Kafka-Nifi로 데이터 스트림 5분 안에 구성해보기
2019.12.22이번 포스트에서는 Filebeat, Kafka, Nifi를 docker-compose로 구성하고, 데이터 스트림을 생성하는 과정을 진행해보겠습니다. 튜토리얼 방식으로, 개인 로컬 맥에서 간단하게 따라서 진행해주시면 됩니다. 데이터는 Filebeat -> Kafka -> Nifi -> Kafka 순서로 흘러가는 구조입니다. 데이터 소스로 Apache 웹 로그를 사용해 실제 환경과 같이 일정 속도로 흘러가도록 구성하고, 실시간으로 데이터 스트림이 동작하는 모습을 확인해보겠습니다. Tested on: MacOS v10.14.6 docker v19.03 docker-compose v1.24 구성하기 적당한 workspace로 이동한 뒤, Filebeat에 제공하기 위한 데이터 소스로 weblogs.log 파일을..
Strimzi를 활용한 kafka 클러스터 구성하기 - 설치
Strimzi를 활용한 kafka 클러스터 구성하기 - 설치
2019.08.04Strimzi - Apache Kafka on Kubernetes Strimzi provides a way to run an Apache Kafka cluster on Kubernetes in various deployment configurations. strimzi.io What is Strimzi? Strimzi는 Apache Kafka on Kubernetes and OpenShift를 목표로 운영되는 오픈소스 프로젝트입니다. 이 글은 strimzi on minikube 가이드 문서를 참고하여 맥에서 로컬 개발용 Kafka 구성 방법을 정리합니다. Local setup minikube를 실행합니다. minikube 설치는 kubernetes 공식 문서를 참고합니다. minikube start ku..
MS Azure로 갈아타기 - 5. Circle CI로 CI/CD 구성하기
MS Azure로 갈아타기 - 5. Circle CI로 CI/CD 구성하기
2019.02.06이번 포스트에서는 CI/CD 구성에 대해서 다루겠습니다. 저는 Circle CI를 이용해 구성해보겠습니다. 진행은 다음과 같습니다. CircleCI 빌드하기 API로 Artifact 가져오기 CircleCI에 가상머신 SSH 키 등록하기 Azure 배포하기 시작에 앞서 CircleCI를 이용한 것은 저의 기존 프로젝트를 활용하기 위해서인데, 꼭 이와 동일하게 구성할 필요는 없습니다. 만약 선호하는 솔루션이 있거나 기존 사용하던 것이 있다면 다른 것을 사용하는 것도 무방합니다. CI 구성이 처음인 분들을 위해 다른 옵션을 소개드리면 Travis CI, Jenkins 등이 있습니다. 장단점이 있는데, 복잡한 것이 싫고 간단하게 해결하고싶은 분들은 Travis CI 또는 CircleCI를 사용하시고 본인이 C..
MS Azure로 갈아타기 - 4. React 어플리케이션 만들기
MS Azure로 갈아타기 - 4. React 어플리케이션 만들기
2019.01.30이번 포스트에서는 기본적인 React 어플리케이션을 생성하고 Github에 등록하여 소스 관리가 가능하도록 구성해보겠습니다. 다음 과정으로 진행하겠습니다. React 어플리케이션 생성 Github 등록 React 어플리케이션 생성 react app을 생성합니다. 로컬 머신의 nvm을 통해 Node 8.10.0 버전 이상을 설치하고 진행하시기 바랍니다. 만약 하위 버전을 사용해야 한다면, create-react-app 모듈을 별도 설치해 진행해주셔도 무방합니다. node --version # v8.10.0 이상 npx create-react-app my-react-app react app을 실행해봅니다. 브라우저에 정상적으로 뜬다면 성공입니다. cd my-react-app npm start Compiled..
MS Azure로 갈아타기 - 3. 웹서버 실행하기
MS Azure로 갈아타기 - 3. 웹서버 실행하기
2019.01.20저번 포스트에서 리눅스 가상머신 준비를 마쳤습니다. 이번에는 아래 과정을 진행해보겠습니다. Nginx 설치 웹 어플리케이션 연결 도메인 설정 (Optional) SSL 인증서 설정 (Optional) nginx 설치 CentOS의 경우 nginx 설치는 yum으로 진행하면 됩니다. 운영체제에 따라 다르겠지만, CentOS가 아니라면 nginx의 공식 문서를 참고하여 설치하도록 합시다. sudo yum -y update && sudo yum -y install epel-release nginx 설치가 다 됐으면 nginx를 구동해봅시다. 시스템이 재시작됐을 때 자동으로 nginx를 시작하게 하고싶다면 enable을 해줘야 합니다. sudo systemctl enable nginx sudo systemctl..
MS Azure로 갈아타기 - 2. 가상머신 만들기
MS Azure로 갈아타기 - 2. 가상머신 만들기
2019.01.20이번 포스트에서는 아래 과정을 진행해보겠습니다. (MS Azure 공식 문서에 대부분 나와 있으니 참고하셔도 됩니다) 가상머신 생성 가상머신 접속 디스크 마운트 (Optional) 가상머신 생성 가상머신을 추가합니다. 홈 > 가상머신 > 추가 선택 구독 및 리소스 그룹을 설정합니다. 그룹이 없는 경우 리소스 그룹을 새로 만들기 생성합니다. 인스턴스 정보를 입력합니다. 이미지: 선호하는 운영체제를 선택합니다. 저는 CentOS-based 7.5로 진행해보겠습니다. 지역, 가용성, 크기: 각각 대한민국, 사용 안 함, B1s로 선택합니다. 관리자 계정 정보를 입력합니다. SSH 키 방식을 선택하고 사용자 이름, SSH 키 정보를 넣어줍니다. (SSH 키 생성 방법 참고) 네트워크 인바운드를 설정합니다. 여기..
MS Azure로 갈아타기 - 1. 체험판 계정 만들기
MS Azure로 갈아타기 - 1. 체험판 계정 만들기
2018.12.31Azure 체험 계정 FAQ를 가볍게 흝어보고 시작하겠습니다. 체험판 계정을 통해 제공되는 것은 아래와 같습니다. 12개월 무료 서비스 750시간의 Microsoft Windows Server용 Azure B1S 범용 Virtual Machines 750시간의 Linux용 Azure B1S 범용 Virtual Machines 128GB의 Managed Disks: 64GB(P6) SSD 저장소 2개의 조합, 1GB 스냅숏 및 2백만 개 I/O 작업 5GB의 LRS-Hot Blob Storage: 2백만 개의 읽기, 2백만 개의 쓰기 및 2백만 개의 읽기/목록 작업 5GB의 LRS File Storage: 2백만 개의 읽기, 2백만 개의 목록 및 2백만 개의 기타 파일 작업 데이터베이스 트랜잭션 단위가 1..
MS Azure로 갈아타기 - 0. 시작하며
MS Azure로 갈아타기 - 0. 시작하며
2018.12.31공부도 할 겸 나만의 웹 서버를 갖고싶어 사용한 클라우드 서비스가 있었습니다. Digital Ocean이라는 호스팅 서비스인데, 나름 메이저에 속하면서 가성비도 괜찮아 최근까지 만족스럽게 잘 써 왔습니다. 그런데 얼마 전 친구가 구글 GCP 크레딧을 얻어 사용하는 모습을 보고 혹하게 됐습니다. 그래서 GCP를 들어가 확인해보니, 예전에 무슨 생각이었는지 몰라도 크레딧을 받았었고 그 사실을 까맣게 잊어버려 300$가 그대로 만료되어 있었습니다. 대충 넘어갈 수 있었지만, 전에 AWS 프리티어도 이와 비슷하게 활용하지 못한 전적이 있었기 때문에 어떻게든 체험판 크레딧을 써보자 하고 마음먹게 됐습니다. 그래서 생각한 것이 바로 MS Azure입니다. 알만한 사람은 다 알겠지만 MS 역시 구글, 아마존과 비슷하..
ping은 되는데 curl/wget이 안되는 경우
ping은 되는데 curl/wget이 안되는 경우
2018.12.29최근 리눅스에서 개발 중 특정 서버의 Rest API를 curl/wget으로 호출 시 timeout 에러가 발생한 적이 있습니다. 방화벽 문제를 의심했으나, ping은 가능한 상황입니다. 통신이 가능하므로 방화벽 외의 다른 문제가 있을 것이라고 의심하게 됐습니다. 결론 위의 경우 특정 port의 인바운드/아웃바운드 방화벽이 적용된 것이라고 먼저 의심해봅시다. ping은 port를 사용하지 않는다 흔히 특정 port에 대해 통신 테스트를 할 경우 ping이 아니라 telnet을 사용합니다. ping은 port 옵션이 없기 때문입니다. 여기서 유추해볼 수 있는 것은 ping이 port를 사용하지 않는 통신 방식이라는 것입니다. Protocol curl은 HTTP, FTP, LDAP 등 어플리케이션 계층의 다..
다익스트라 알고리즘 파이썬으로 구현하기 - 최단경로
다익스트라 알고리즘 파이썬으로 구현하기 - 최단경로
2018.12.17https://www.acmicpc.net/problem/1753 1753번: 최단경로 첫째 줄에 정점의 개수 V와 간선의 개수 E가 주어진다. (1 ≤ V ≤ 20,000, 1 ≤ E ≤ 300,000) 모든 정점에는 1부터 V까지 번호가 매겨져 있다고 가정한다. 둘째 줄에는 시작 정점의 번호 K(1 ≤ K ≤ V)가 www.acmicpc.net 다익스트라 알고리즘을 사용해 최단거리를 구하는 문제입니다. 별다른 고민 없이 알고리즘 그대로 파이썬으로 옮겨 적으면 쉽게 통과할 것 같지만, 한 가지 함정이 있습니다. 바로 빠른 IO 처리입니다. 파이썬에서의 빠른 입출력 구현은 input 대신 sys.stdin.readline을 사용하는 것인데, 입출력이 큰 경우 시간 최적화를 위해 습관화하는 것이 좋습니다...
Tmux 사용하기
Tmux 사용하기
2018.12.02tmux(tty multiplexer)는 아래와 같은 터미널 작업 시 유용한 도구입니다. 멀티 세션 지원 터미널 창 분할 (수평, 수직) 개발자 간 작업 중인 터미널 세션 공유 잘 작성된 cheatsheet가 있으니 헷갈릴 때 참고하면 좋습니다. # 세션 열기 # -s: 세션 이름 부여. 없을 시 0부터 순차 적용 tmux -2 tmux -2 new -s my-session # -2 옵션은 터미널의 256 Color를 세팅하기 위한 옵션입니다. # 이를 지정하지 않으면 vi 에디터의 colorscheme이 제대로 작동하지 않습니다. # 매번 지정이 귀찮다면 아래 명령어로 shortcut을 등록할 수 있습니다. echo "alias tmux='tmux -2'" >> ~/.tmux.conf tmux # 세션..