분류 전체보기
-
2020년 회고김김 라이프 2020. 12. 27. 17:11
사건 사고가 많았던 한 해였다. 직장인으로서, 개발자로서, 그리고 사람으로서 한 해를 돌아보자. 직장인으로서의 한 해 올해 초, 리즈소프트에 입사한 지 1년이 되었다. 그리고 아파치 카프카와 컨플런트(confluent) 솔루션에 대한 리서치를 계속 진행하고 있었다. 옆 동료분들은 SI 프로젝트로 꽤나 고생을 하고 있었는데, 나 혼자 리서치와 큰 역할 없는 카프카 유지보수 건을 진행하고 있자니 몸이 근질근질했다. 이러한 내 상황을 어디서 들었는지 3월 즈음부터 여러 고객의 컨설팅 요청이 밀물처럼 들어왔다. 그리고 4월, 이천으로 파견을 가게 되었다. 파견 생활은 카프카 컨설팅을 나갔다는 설렘 반, 의정부로부터 출퇴근한다는 두려움 반으로 시작했다. 물론 나는 지원 인력으로 나갔다. 그래도 카프카를 대용량 파..
-
[Kafka 운영] Request log 살펴보기개발자 라이프/카프카 2020. 11. 29. 23:11
들어가며 카프카는 아키텍처 중앙에 위치하여 다양한 클라이언트들의 요청을 받습니다. 그렇기 때문에 간혹 클라이언트에서 잘못된 요청을 보내는 경우가 발생할 수 있습니다. 예를 들면, 스키마가 정의되지 않은 토픽에 대해 프로듀서가 기존과 다른 임의의 메시지 포맷으로 보내게 된다면 컨슈머는 이 메시지를 처리하지 못하게 됩니다. 이와 같이 잘못된 요청이 발생하게 되면 어떤 클라이언트에서 보낸 요청인지 확인할 필요가 있습니다. 그리고 다행히도 카프카는 브로커가 받는 요청에 대해 별도의 로그 파일로 저장할 수 있습니다. 이번 글은 카프카 브로커가 받은 요청에 대해 저장하는 로그인 request log에 대해 살펴봅니다. 이 글 내용은 카프카 한국 사용자 모임에서 진행한 제4회 버츄얼 밋업 내용에서 영감을 받아 작성했..
-
글또 5기를 시작하며김김 라이프 2020. 11. 15. 21:30
글또 3, 4기에 이어 이번 5기에 참여한다. 사실 3, 4기 때는 그 기수 동안 꾸준한 글을 쓰고 나름 글쓰는 버릇을 길렀다고 생각했는데, 4기 끝나자마자 블로그 포스팅이 끊긴걸 보니 아직 습관으로 굳지 않을 것 같다. 물론 이직을 하고 적응하는 시기라 정신이 없었던 것도 있지만, 그래도 의지가 많이 약해진 것 같다. 그래서 이번 5기에 다시 참여함으로써 글로 정리하는 습관을 다시 기르고자 한다. 그러면 어떤 글을 쓰면 좋을까? 이전 4기에선 카프카 플랫폼에 대한 글을 시리즈로 정리했었다. 그러다보니 나름 한 기수를 끝내면서 하나의 책을 쓴 느낌이여서 좋았다. 하지만 이번 5기에서는 어떤 시리즈를 정리하기 보단, 운영하며 혹은 개발하며 마주하는 이슈나 개발 도구들을 주로 정리하고자 한다. 시작부터 아쉬..
-
[매일읽기] Micro optimizations in Java. String.replaceAll개발자 라이프/매일읽기 2020. 9. 7. 11:14
원문: medium.com/javarevisited/micro-optimizations-in-java-string-replaceall-c6d0edf2ef6 Micro optimizations in Java. String.replaceAll In this post, we will discuss the usage of another prevalent code constructions, the String.replaceAll and String.replace methods, and we… medium.com 이번 글은 흔히 사용되는 String.replaceAll과 String.replace 메서드 사용법에 대해 다루며 자바 11 버전에서 이것들의 성능을 확인하고 어떻게 최적화할 수 있을지 알아본다. Stri..
-
[매일읽기] 7 Git Best Practices to Start Using in Your Next Commit개발자 라이프/매일읽기 2020. 9. 5. 10:12
원문 : medium.com/sourcelevel/7-git-best-practices-to-start-using-in-your-next-commit-f9dc54990e86 7 Git Best Practices to Start Using in Your Next Commit Every software has best practices. Git is not different. It has become the most used versioning system in the last years. Many companies… medium.com 1. master 브랜치에 바로 푸시하지 마라 master는 최종 배포를 위한 브랜치 별도의 브랜치를 따서 작업하고 머지할 것 2. 작성자의 신원을 잘 작성하라 커밋 과정에..
-
[Kafka 개발] 카프카 프로젝트에 컨트리뷰트 하는 방법개발자 라이프/카프카 2020. 9. 4. 11:09
들어가며 카프카의 공식 문서 중 How to contribute에 대한 (의역에 가까운) 번역 본입니다. 오역이 있을 수 있으니 틀린 부분 혹은 틀린 것 같은 부분은 댓글로 남겨주시길 바랍니다. 또한 작성일 기준으로 이후 변경된 부분이 있을 수 있습니다. 작성일과 최근 수정일을 참고해 주시길 바랍니다. 컨트리뷰트 하는 방법 사소한 코드 정리부터 커다란 기능 추가까지 모든 기여를 환영합니다. 자바 혹은 스칼라에 대해 몰라도 이 프로젝트에 기여할 수 있습니다. 가장 중요한 부분은 클라이언트 부분입니다. 우리-앞으로의 우리는 카프카 진영을 이야기합니다-는 좋은 품질의 코드와 문서를 가지는 여러 언어 클라이언트를 원합니다. 이건 카프카에 관한 툴들을 구성하는 것만큼 카프카 프로젝트에서 매우 중요한 부분입니다. ..
-
[매일읽기] Working with New Generation of Java개발자 라이프/매일읽기 2020. 9. 3. 10:34
원문 : medium.com/swlh/working-with-new-generation-of-java-236e2dc38316 Working with New Generation of Java Java is the pioneer programming language that ruled the market from last 20 years and performing well. medium.com JDK 14에서 추가된 피쳐들을 살펴본다. 피쳐에 관련된 개선된 코드 비교는 원문을 참고하길 바랍니다. Try-with-resource statement 기존의 try-catch 문은 자원 해제를 위해 finally 문을 별도로 사용해야 했음 try-with-resource는 try 문에 아규먼트 형태로 변수를 초기화..
-
[매일읽기] Understanding gRPC개발자 라이프/매일읽기 2020. 9. 2. 10:58
원문 : medium.com/better-programming/understanding-grpc-60737b23e79e Understanding gRPC And the differences between REST vs. RPC architectures medium.com gRPC에 대해 간략히 알아본다. 또한 웹 애플리케이션과 통신하는 기존 프로토콜 혹은 아키텍처와 gRPC 간 비슷한 점과 다른 점을 알아본다. gRPC란 무엇인가? gRPC는 서비스 간 고 성능 통신을 하기 위한 RPC(Remote Procedure Call) 프레임워크 서로 다른 언어로 작성된 서비스들을 연결 로드 밸런싱, 추적(tracing), 헬스 체크, 인증을 위해 필요에 따라 쓸 수 있음(pluggable) 기본적으로 구조화된 ..