본문 바로가기

TIL(Today I Learned)

(137)
[Kafka 에러] ERROR Shutdown broker because all log dirs in C:\tmp\kafka-logs have failed ⛔문제점 Kafka가 에러를 발생시키고 비정상적으로 종료가 됨. [에러 로그] 5,__consumer_offsets-26,__consumer_offsets-29,__consumer_offsets-34,__consumer_offsets-10,__consumer_offsets-32,__consumer_offsets-40 and stopped moving logs for partitions because they are in the failed log directory C:\tmp\kafka-logs. (kafka.server.ReplicaManager) [2024-02-08 18:49:26,741] WARN Stopping serving logs in dir C:\tmp\kafka-logs (kafka.lo..
Redis란 무엇일까? 📌 NoSQL의 종류 서로 연관된 그래프 형식의 데이터를 저장할 수 있는 Graph Store Row가 아닌 Column 위주로 데이터를 저장하는 Column Store 비정형 대량 데이터를 저장하기 위한 Document Store 메모리 기반으로 빠르게 데이터를 읽어올 수 있는 Key-Value Store 이 중 Redis는 Key-Value Store 중 하나이다. 📌 Redis(Remote Dictionary Server) 'key-value' 구조의 비정형 데이터를 저장하고 관리하기 위한 오픈소스 기반의 비관계형 데이터베이스 관리 시스템 다양한 in-memory 데이터 구조 집합을 제공하므로 다양한 사용자 정의 애플리케이션을 손쉽게 생성할 수 있다. 주요 사용 사례 : 캐싱, 세션 관리, pub-..
Apache Kafka란 무엇일까? 📌 Apache Kafka 빠르고 확장 가능한 작업을 위해 데이터 피드의 분산 스트리밍, 파이프 라이닝 미 재생을 위한 실시간 스트리밍 데이터를 처리하기 위한 목적으로 설계된 오픈 소스 분산형 Pub-Sub 구독 메시징 플랫폼(LinkedIn에서 개발) 📍 기존 데이터 시스템 시스템 복잡도 증가 통합된 전송 영역이 없어 데이터 흐름을 파악하기 어렵고, 시스템 관리가 어렵다. 특정 부분에서 장애 발생 시 조치 시간이 증가한다. -> 연결 되어있는 애플리케이션들을 모두 확인해야 하기 때문 HW 교체 / SW 업그레이드 시 관리포인트가 늘어나고, 작업시간이 증가한다. -> 연결된 애플리케이션에 side effect가 없는지 확인해야 한다. 데이터 파이프라인 관리의 어려움 각 애플리케이션과 데이터 시스템 간의 ..
윈도우에서 Kafka 설치 및 실행 📌 Kafka 설치 및 실행 1. kafka 다운로드(https://kafka.apache.org/downloads) 2. 압축해제 git bash을 켜고 명령어 입력 tar -xvzf kafka_2.12-3.6.0.tgz 3. zookeeper 실행하기 cmd창 디렉토리 이동 후 명령어 입력 (C:\kafka_2.12-3.6.0\bin\windows) zookeeper-server-start.bat ../../config/zookeeper.properties 4. kafka 실행 새로운 cmd창 디렉토리 이동 후 명령어 입력 (C:\kafka_2.12-3.6.0\bin\windows) kafka-server-start.bat ../../config/server.properties 테스트 해보기 5. t..
성능 향상을 위한 메시지 큐 도입 📌 성능 향상을 위한 메시지 큐 도입 JMeter 테스트에 대한 1차 목표를 현재 Error 발생률 : 57.7% 1차 목표 : Error 발생률 0% -> 시간이 얼마가 걸리든 상관없이 모든 유저가 응답을 받을 수 있도록 하려고 함. 으로 설정하였다. 📍 대기열 시스템이 필요한 이유 지금 서비스에서는 JMeter 테스트 시 시간도 오래걸리고 요청에 대해 모두 응답을 성공적으로 보내지 못한다. 서버가 한번에 처리할 수 있는 요청의 수가 제한적이기 때문이다. 서버에 동시에 과도한 요청이 들어올 경우, 서버는 이것들을 모두 처리하려고 하지만, 한번에 처리할 수 있는 요청의 수가 제한적이므로 일부 요청을 처리하지 못하는 문제가 발생한다. 따라서, 서버가 바로 처리하지 못하는 요청을 일시적으로 저장해두었다가 순..
TIL-231118([프로그래머스/자바] 간단한 식 계산하기) 📝오늘 공부한 것 프로그래머스 문제풀기 📌 문제 📌 풀이 class Solution { public int solution(String binomial) { int answer = 0; String[] str = binomial.split(" "); int a = Integer.parseInt(str[0]); int b = Integer.parseInt(str[2]); if(str[1].equals("+")){ answer = a + b; } else if (str[1].equals("-")) { answer = a - b; } else { answer = a * b; } return answer; } } 1. "a op b" 형태의 이항식이 공백을 기준으로 나뉘어져 있다. 2. 공백을 기준으로 문자열을..
TIL-231117(JPA N+1 문제) 📝오늘 공부한 것 'N+1 문제' 공부하기 커리어톤 참여 프로그래머스 문제풀기 📌 N + 1 며칠전봤던 면접에서 N+1문제에 관해서 여쭤보셨다. 그런데 N+1이 내가 원했던 만큼의 쿼리 조회보다 N번 더 발생하는 것이라는 것만 알고, 정확히는 알지못해서 면접 때 대답하지 못했었다ㅠㅠ(내가 알고 있는것에 확신이 없어서 아예 '잘 모르겠습니다'라고 대답하였다. N+1도 공부하려고 했던 것들 중에 하나였는데, 늦었지만 오늘이라도 정리를 해보려고 한다!! 연관관계에서 발생하는 이슈로 연관관계가 설정된 엔티티를 조회할 경우에 조회된 데이터 갯수(n)만큼 연관관계의 조회 쿼리가 추가로 발생하여 데이터를 읽어오게 된다. -> 1번 조회해야 할 것을 N개 종류의 데이터 각각을 추가로 조회하게 되서 총 N+1번 DB 조..
TIL-231116(DDD, 도메인 주도 설계) 📝오늘 공부한 것 'DDD 도메인 주도 설계' 공부하기 커리어톤 참여 프로그래머스 문제풀기 📌 DDD(Domain-Driven Design) : 도메인 주도 설계 실제 업무에서 사건이 발생하는 집합인 도메인을 중심으로 설계하는 방법 해당 도메인과 일치하도록 소프트웨어를 모델링하는 데 중점을 둔 소프트웨어 설계 접근 방식(wikipedia) 한가지 중요한 특징은 소프트웨어 코드의 구조와 언어(클래스 이름, 클래스 메서드, 클래스 변수)가 비즈니스 도메인의 용어를 일치시켜 나간다는 점이다. 보편적인(ubiquitous) 언어의 사용이다. 도메인 전문가와 소프트웨어 개발자 간의 커뮤니케이션 문제를 없애고 상호가 이해할 수 있고 모든 문서와 코드에 이르기까지 동일한 표현과 단어로 구성된 단일화된 언어체계를 구축..