programming language 60

[Java 기초] 진수에 대한 이해와 SHA256 변환시 이슈 + 코드 리팩토링

최근에 legacy code 를 보다가 필자가 안타깝게도 기초가 부족해 코드가 이해가 잘 되지 않았다. 그래서 복습할 겸 필자가 이를 정리하고자 한다. 시작전에 이 코드가 이해가 되는가? 그러면 해당 글을 안봐도 될 것이다. // 직접 변환public static String Sha256data(String str){ String rtnData = ""; try{ MessageDigest md = MessageDigest.getInstance("SHA-256"); md.update(str.getBytes(StandardCharsets.UTF_8)); byte byteData[] = md.digest(); StringBuffer sb = ne..

[Kafka 활용] Kafka 지식 부록 1 - Kafka MirrorMaker2, Kafka Stretched Cluster(feat. 토스증권 사례 + Uber 의 KIP-405)

지난 글에서는 스키마 레지스트리에 대해서 공부했고, 실습을 진행했다.(지난 내용 : [Kafka 활용] Kafka 심화 4 - 스키마 레지스트리와 실습하기) 그리고 책은 다 읽긴 했다. 다 읽은 기념으로 독서 회고록도 이번 글에서는 Kafka에 대한 글 정리를 마무리하는 시간을 가지려고 한다. 너무나 방대한 카프카의 생태계와 정말 다양한 사용법이 존재하며 이를 일일히 다 공부한다 해도 어짜피 기억도 안나는거 핵심만 가져가고 이런게 있구나~ 하고 다음 관심사로 넘어가는것이 옳다고 생각한다. 우선 기존에 참고하던 도서인 "실전 카프카 개발부터 운영까지 (저자 : 고승범)" 를 마무리 했다.(교보문고 링크 : 실전 카프카 개발부터 운영까지 : 데이터플랫폼의 중추 아파치 카프카의 내부동작과 개발, 운영, 보안..

[Kafka 활용] Kafka 심화 4 - 스키마 레지스트리와 실습하기

지난 시간에는 kafka에 보안 관련해서 실습해보고 개념을 정리했다.(지난 내용 : [Kafka 활용] Kafka 심화 3 - 보안 적용 : Kafka SSL, SASL, ACL) 솔직히 보안 적용하는거 굉장히 귀찮았다. 물론 엮여있는 기본 개념들을 찾아서 정리하고 하느라 또 늦어진 감이 있긴 한데, 이런게 있구나~ 싶은 정도만 잘 알고 있어도 나중에 쉽게 적용할 수 있지 않을까 싶어서 SSL만 자세히 정리하고 나머지는 요약하는 수준으로 마무리했다. 이번 글에서는 카프카에서 어떻게 스키마를 정의하고 활용할 수 있는지, 어느 유명 기업에서 어떻게 적용을 했는지 알아볼 것이다. 특히 이번 글의 흐름은 '실전 카프카 개발부터 운영까지' 를 참고했다 늘 kafka공부를 하면서 잘 정리된 흐름! 덕분에 열심히 공..

[Kafka 활용] Kafka 심화 3 - 보안 적용 : Kafka SSL, SASL, ACL

지난 시간에는 Kafak2 심화 과정으로 공식문서에서 권장하는 운영을 위한 성능과 prometheus 랑 Grafana를 세팅해서 실제로 모니터링이 가능한지 알아보았다. [Kafka 활용] Kafka 심화 2 - 안정적인 운영을 위한 지식 + 모니터링 도구 설정 이번 시간에는 Kafka 에서 소개하는 보안 설정들을 알아보고 이것을 적용해 볼 것이다. 목표1. Kafka Security에 대해 알아본다.3. Kakfa 보안 실습 환경을 구축 및 SSL을 적용한다.3. Kafka SASL, ACL이 뭔지 이해한다. 0. 들어가기 전에해당 내용을 이해하기 전에 SSL에 대해서 정리를 하고자 한다. 필자는 생활코딩의HTTPS와 SSL 인증서를 참고했다. 정리한 내용은 다음에서 읽어보길 바란다.([Security..

[Kafka 활용] Kafka 심화 2 - 안정적인 운영을 위한 지식 한꼬집 + 모니터링 도구 한꼬집

지난 글에서 [Kafka 활용] Kafka 심화 1 - Uber System Design와 Kafka 사용에서 어느 곳에 Kafka를 적용하면 좋을지 연습했다. 아 드디어 올것이 왔다! 그래서 카프카를 어떻게 관리하고 구성할 것인가? 하드웨어적으로 메모리양이나 설정은 어떻게 하는것이 좋고 모니터링은 어떻게 하는지를 정리해서 알아보도록 하겠다.하 귀찮아~1. 0. 들어가기 전에KRaft에 대해서 다른 글도 찾게 되었다. DEVOCEAN에서 KRaft에 대해서 또 잘 정리해서 참고로 읽으면 좋을 것 같아 필자도 읽어보고 다시 글 정리를 진행했다. Apache Kafka의 새로운 협의 프로토콜인 KRaft에 대해(1)Apache Kafka의 새로운 협의 프로토콜인 KRaft에 대해(2) 무엇보다도 현업자의 경..

[Kafka 활용] Kafka 심화 1 - Uber System Design와 Kafka 사용

지난 글에서 카프카에서 KRaft에 대해 간단하게 이해하고 실습 진행 및 사용사례를 조사했다.([Kafka 기초 학습] Kafka 기초개념 7 - KRaft 간단 이해 및 실습 진행 + 사용 사례 조사) 이번 시리즈 부터에서는 키메라 스스로가 "Kafka 활용"이라고 명명했다. 이유는 실제로 이 kafka가 큰 시스템에서 바라보았을 때 어느 문제점을 해결하기 위해서 어느곳에 배치해야하는지 맥락을 파악하기 위함이다. 따지고 보면 이전 글에서 사용 사례를 보면서 뭔가 부족해서 좀 더 활용적인 면에서 어떻게 Kafka를 써야하는지 머리에 집어놓고 싶어서 그렇다. 해당 글은 1번 섹션에서 설명하겠지만 Hello Interview 라는 youtuber의 영상을 주로 참고해서 필자의 말로 풀어낸 것이다. 다만, 중..

[Kafka 기초 학습] 카프카 기초 개념 7 - KRaft 간단 이해 및 실습 진행 + 사용 사례 조사

지난 글에서는 컨슈머에 대해서 이해하는 시간을 가졌다. (지난글이 궁금하면 여기 클릭!) 이번 시간에는 KRaft에 대해서 알아보려고 한다. KRaft(Kafka Raft) 이전에는 Zookeeper를 사용했다는데, 필자의 입장에서는 지금 쓰지도 않아 흥미도 없는거 억지로 파고 들어봤자 금방 잊을거라는 생각이 들었다. 그렇기 때문에 KRaft를 위주로 어떻게 작동하고 설정하는지 알아보고 실습을 통해 이해할 예정이다. 1. Zookeeper에 대한 간단한 고찰Apache ZooKeeper는 고도의 신뢰성을 갖춘 분산 조정을 가능하게 하는 오픈 소스 서버를 개발하고 유지 관리하기 위한 노력의 일환이다. ZooKeeper는 구성 정보 유지 관리, 명명 규칙 적용, 분산 동기화 및 그룹 서비스 제공을 위한 중앙..

[Kafka 기초 학습] 카프카 기초 개념 6 - 컨슈머 이해 및 실습 진행

지난 글에서는 프로듀서에 대해 이해하고 실습을 진행해 보았다. 사실 이전 글에서 프로듀서와 컨슈머를 다 정리하려고 했는데 프로듀서 관련해서 알아볼 내용이 많았기 때문에 컨슈머 관련 글을 따로 분리했다. 하여간 이번 글에서는 컨슈머에 대해 이해하고 컨슈머 사용 실습을 진행해볼 예정이다. 목표1. 컨슈머의 구조에 대해 이해한다.2. 컨슈머의 다양한 설정을 통해 실습을 진행한다.0. 들어가기 전에 컨슈머(consumer)란 무엇인지 정리해보자. An Apache Kafka® Consumer is a client application that subscribes to (reads and processes) events.출처 : https://docs.confluent.io/platform/current/cli..

[Kafka 기초 학습] 카프카 기초 개념 5 - 프로듀서 이해 및 실습 진행

지난 시간에는 메시지와 메시지 포맷 그리고 파티셔닝에 대해서 알아보았다. (지난 글 궁금하면 여기 클릭!) 이번 글에서는 프로듀서와 컨슈머에 대해 각각 알아보고 어떻게 작동하는지를 찾아보고 또 실습을 할 것이다. 목표1. 프로듀서에 대해 깊이 이해한다.2. 프로듀서의 다양한 옵션을 사용해 실제로 실습한다.0. 들어가기 전에 필자가 Kafka 공부를 시작하면서 구성한 mini pc 와docker를 이용한 구성도이다. 이를 보고 이제 producer와 consumer가 어떻게 어디에 들어가서 작동하는지를 알아볼 것이다. 프로듀서와 컨슈머는 한글로 번역하면 생성자와 소비자이다. 우리는 계속 레코드를 topic내 파티션들에 쌓고 이곳에 메시지 혹은 레코드를 쌓고 이를 읽는 것을 보았다. 프로듀서(produ..

[Kafka 기초 학습] 카프카 기초 개념 4 - 메시지와 메시지 포맷 과 메시지 전송 및 분석 실습 + 파티셔닝 이해

지난 시간에는 하이워터마크와 리더에포크에 대해 알아보았다. (지난 내용이 궁금하면 여기 클릭!) 이번에는 메시지와 메시지 포맷, 그리고 로그와 컴팩션에 대해서 좀 더 자세하게 보려고 한다. 물론 지난글인 카프카 기초 개념 2 - 자세한 개념과 프로듀서의 작동 방식, 그리고 topic 상세 정보 보기에서 살짝 봤는데 뭔가 아직도 헷갈렸다. 그도 그런게 책을 읽으면 책의 내용이 뭔가 차근차근 한다기보다는 널뛰기 해서 갑자기 이거 봣다가, 저 뒤에 가서 아 이거 자세히 못봣으니 여기서 보자. 그리고 뒤에 가서 아 이거 또 설명해야해요 이런 방식이다. 그렇기 때문에 계속 글을 다시금 보면서 부족한 부분은 별도의 시리즈로 빼고, 앞에 기초 개념 내용도 재정비를 할 것이다. 해당 글의 내용은 Kafka 공식 문서..