개요Kafka는 대규모 데이터 처리와 실시간 스트리밍을 위한 강력한 메시징 시스템으로 널리 사용됩니다. 이를 운영하고 관리하려면 Kafka 클러스터의 토픽, 브로커, ACL, 설정 등을 효율적으로 제어할 수 있는 관리 도구가 필요합니다. 흔히 카프카를 사용할 때, 토픽을 새로 생성하거나, 파티션 수를 증가시키는 작업은 카프카 클러스터 내부 브로커에서 직접 sh 파일을 실행시켜서 수정을 진행합니다. 또는 Consumer Group의 offset을 확인한다던지, Topic의 로그 압축 방식을 확인하여, 시스템 요구사항에 맞게 설정해야할 경우, 번거롭게 내부의 shell file을 실행해야합니다. 예를 들어, 애플리케이션이 특정한 토픽에 이벤트를 써야한다고 가정합니다. 이 가정은 이벤트를 쓰기전에 토픽이 존재..
개요현재 외부 부트캠프에서 프론트엔드와 백엔드가 모여서 협업 프로젝트를 진행하고 있다.해당 프로젝트의 주제는 자취생들을 위한 레시피를 추천해 주는 컨셉의 서비스인데, 추천 알고리즘을 잘 만드는 게 핵심이라고 생각한다. 추천 알고리즘을 설계하기 위해서는 단순히 아무 레시피나 추천해주는 것이 아니라, 어떠한 로직에 의해서 결정된 추천 레시피를 유저에게 전달해주어야 한다. 따라서 우리는 프로젝트 기획 단계에서 Slope-One 알고리즘을 채택하여 다른 유저들이 A부터 D 레시피까지 평가를 했다고 가정할 때, 신규 유입 유저가 B를 평가한다면, B 레시피를 좋게 평가한 유저들이 대체로 어떤 레시피를 선호했는지는 평차와 평균을 통해서 계산하고 신규 유저에게 전달한 레시피 Id를 저장하고, 유저가 추천 레시피를 호..
이전에 했던 프로젝트에서 Elastic Search를 사용해서 전문 탐색 기능을 구현한 적이 있어서, 이력서에 적어뒀었다. 하지만 최근 본 면접에서‘아 내가 Elastic Search에 대해서 진짜 아무것도 모르는구나..’라는 생각을 하게되었고, 이번 기회에 한 번 찾아서 블로깅을 통해서 정리해볼 생각이다. 1. 소개Elastic Search는 오픈 소스 기반의 분산형 검색 엔진으로, 텍스트, 숫자, 지리적 데이터, 구조화 및 비구조화 데이터를 빠르고 효율적으로 검색하고 분석할 수 있는 도구이다. Elastic Stack의 핵심 구성 요소 중 하나로, 대규모의 데이터를 실시간으로 처리하고 검색하는 데 최적화되어 있다. 특히, 대용량 데이터를 처리하면서도 검색 속도를 유지해야하는 시스템에서 많이 사용된다...
드디어 마지막 장인 13장을 다 읽었다.. Chap.13 서비스의 인증과 권한 부여서비스를 개발하다보면, 회원간의 별도의 데이터를 저장한다던가, 특정 게시물을 삭제할 때, 요청한 유저가 해당 게시글의 주인인가를 파악하는 로직이 추가되기 마련이다. 이런 경우에 Spring Boot에서는 요청을 보낼때 누가 보냈는지를 넣어서 전달하고 반환받을 수도 있지만, 이런 것은 Spring스럽지 않기 때문에, Spring Boot Security를 사용해서 보안과 인증, 권한을 처리한다. 13.1 보안 용어 이해인증 Authentication은 사용자가 누구인지 확인하는 단계를 의미한다. 예를 들자면 로그인과 같은 기능이 존재한다.로그인 Form에 Username과 Password를 입력한 후 전달하고, 서버에서는 해..