1. 개요Exception은 활용하기에 따라 가독성, 안정성, 유지보수성을 향상시킬 수 있지만 잘못 활용하면 역효과도 내는 친구입니다. Exception을 잘 활용하기 위한 방법을 살펴봅시다.2. Exception규칙 57: 예외는 예외적 상황에만 사용하라.1) 예외는 예외적 상황을 위해 고안된 것이기 때문에, JVM을 구현하는 사람 입장에서 보면 명시적 테스트만큼 빠르게 만들 이유가 별로 없다.2) try-catch 블록 안에 넣어둔 코드에는 최신 JVM이 사용하는 최적화 기법 가운데 일부가 적용되지 않는다.즉 이름이 말하듯, 예외는 예외적인 상황에만 사용해야 한다. 평상시 제어 흐름에 이용해서는 안 된다. 쉽게 이해할 수 있는 표준적인 숙어대로 코딩해야지, 너무 머리를 많이 굴리면 곤란..
1. 들어가며 자바 언어의 일반적인 원칙들에 대해 다룹니다. 지역 변수, 자료형, 리플렉션, 최적화까지 다양하게 다루는 파트입니다. 2. 일반적인 프로그래밍 원칙들 규칙45: 지역 변수의 유효범위를 최소화하라.이는 클래스와 멤버의 접근 권한은 최소화하라와 유사하다. 지역 변수의 유효 범위를 최소화하면 가독성과 유지보수성이 좋아지고 오류 발생 가능성도 적어진다.해당 방법을 보장하기 위해서는 다음과 같은 방법이 있다. 1) 처음 사용하는 곳에서 선언한다. c언어처럼 블록 앞부분에 선언하는 건 자바와 어울리지 않는다.2) 거의 모든 지역 변수 선언엔 초기값이 포함되어야 한다.3) while문보다는 for문을 쓰는 것이 좋다. 순환문 변수와 가독성 덕분이다.4) 메서드 크기를 줄이고..
1. 개요 이번엔 Kafka의 큰 세가지 축(Producer - Broker - Consumer) 중 하나인 Consumer에 대해서 알아보고자 합니다.Producer에 대해서 아직 안 읽어보셨다면 다음 글을 먼저 읽어보시는 걸 추천드립니다.https://rawshrimpsushi.tistory.com/46 Kafka - Producer1. 개요 앞서 살펴본 것처럼 Kafka는 여타 Message Queue처럼 Producer - Consumer 구조를 가지고 있으나 세부적인 디테일은 크게 다릅니다. 오늘은 그 중 Producer를 좀 더 심층적으로 알아보고자 합니다. 앞rawshrimpsushi.tistory.com 오늘 글은 다음 글을 기반으로 소스 코드, 다양한 자료를 보며 작성되었습니다!https..
1. 개요 앞서 살펴본 것처럼 Kafka는 여타 Message Queue처럼 Producer - Consumer 구조를 가지고 있으나 세부적인 디테일은 크게 다릅니다. 오늘은 그 중 Producer를 좀 더 심층적으로 알아보고자 합니다. 앞으로 RabbitMQ와의 비교까지 갈 길이 머니 얼른 정리해보겠습니다! 오늘 글은 다음 글을 기반으로 소스 코드를 보며 작성된 글입니다!https://d2.naver.com/helloworld/6560422 2. Kafka Producer란? Kafka는 Producer의 데이터 전송을 위해서 Producer API를 제공합니다. Producer는 브로커에 특정 Topic(partition까지도 가능)을 지정하여 메시지를 전달합니다. 오늘은 Producer에서 유저에..
1. 개요졸업논문으로 Kafka와 RabbitMQ에 대해 작성하고 있습니다. 그 과정에서 다양한 자료 조사를 해야 했고 유용한데 번역되지 않은 자료, 논문들도 많이 있었습니다. 그래서 논문 작성 김에 해당 자료 조사를 여러 차례 블로그 글로 정리해서 올리고자 합니다 :) Kafka만의 특징 - push 방식Kafka는 push 방식으로 동작하는 기존 message Queue(RabbitMQ 등)와는 다르게 Consumer가 Broker 로부터 메시지를 직접 가져가는 Pull 방식으로 동작합니다. 즉 Consumer는 자신의 처리 능력만큼의 메시지만 가져와 처리합니다. - 로그 방식또한 in-memory 저장 방식이 아닌 메세지를 디스크에 저장한다는 특징을 가집니다. 일반적인 메세징 시스템은 Consume..
1. 들어가며 parameter와 return value는 어떻게 다루는 것이 좋은가? method signature는 어떻게 설계할 것인가? method 문서는 어떻게 만드는 것이 바람직한가?에 대해서 다룹니다. 2. Method규칙38: 인자의 유효성을 검사하라.index는 음수가 될 수 없다거나 객체 참조는 null이 될 수 없다는 등의 유효성 검사는 반드시 문서로 남기고 메소드 시작 부분에서 검사해야 한다.public 메소드라면 인자 유효성이 위반되었을 때 경우에 발생하는 예외를 Javadoc의 @throws 태그를 사용해 문서화해라.보통 IllegalArgumentException이나 IndexOutOfBoundsException, NullPointerException이 이용된다.public이 ..