JAVA/Study 2

아파치 카프카(Apache kafka) - 1

카프카의 탄생 2011년 구인/구직 및 동종업계의 동향을 살펴볼 수 있는 사이트인 ‘링크드인’에서는 파편화된 데이터 수집 및 분배 아키텍처를 운영하는데 큰 어려움을 겪었다. 데이터를 생성하고 적재하기 위해서는 데이터를 생성하는 소스 애플리케이션과 데이터를 최종 적재되는 타깃 애플리케이션을 연결해야 한다. 초기 운영 시에는 단방향 통신을 통해 소스 애플리케이션에서 타깃 애플리케이션으로 연동하는 소스코드를 작성했지만, 시간이 지날수록 아키텍처는 거대해지고 소스 애플리케이션과 타깃 애플리케이션의 개수가 많아지면서 데이터를 전송하는 라인이 기하급수적으로 복잡해지기 시작했다. 위 예시를 보면, Source에서 Destination으로 전송하게 된다면 큰 문제 없이 전송할 수 있고 원인 파악 및 트러블슈팅이 어렵지..

JAVA/Study 2022.01.13

Logging Framework

Logging이란? - 프로그램 개발 또는 완료 후 발생할 수 있는 오류에 대해 디버깅 또는 모니터링 하기 위해 필요한 로그를 기록하는 것을 말한다. 좋은 로그 시스템이란? - 로그 메시지는 애플리케이션의 동작을 잘 이해할 수 있도록 충분히 구체적이어야 함 - 로그 메시지를 기록하는데 성능 저하가 없어야 함 - 어떤 배포 환경이라도 로그를 수집하고 저장할 수 있도록 유연해야 함 SLF4J(Simple Logging Facade for Java)이란? - Logging Framework의 Facade Pattern을 말한다. 따라서 다양한 Logging Framework에 대해 추상화가 가능하고 유지보수가 좋다. 즉, 어떤 Logging Framework를 사용하던지 같은 방법으로 로그를 남길 수 있도록 ..

JAVA/Study 2021.06.12