현재 홈서버의 자원이 한정적이어서 최대한 효율적으로 사용할 수 있도록 설정을 최적화했습니다.테스트용 자원 할당량이니 참고해주세요. 1. Helm 차트 준비Helm은 쿠버네티스 애플리케이션을 손쉽게 배포하고 관리할 수 있도록 해주는 도구로, Redis와 같은 복잡한 애플리케이션도 빠르게 배포할 수 있습니다. 우선, Redis Helm 차트를 사용하기 위해 저장소를 추가하고 업데이트합니다.helm repo add bitnami https://charts.bitnami.com/bitnamihelm repo update 2. redis-values.yaml 파일 구성Redis 설치 시 다양한 커스텀 설정을 추가하기 위해 redis-values.yaml 파일을 작성합니다. architecture: standalo..
홈서버에서 그라파나를 통해 Kafka 모니터링을 설정하면서 겪은 문제 해결 과정을 공유합니다. 기본적으로 리소스가 제한된 환경에서 작업하기 때문에 메모리와 CPU 사용량을 제어하고, Kafka와 Prometheus Exporter 간 연결 설정에서 SASL 인증을 추가하는 방법을 다룹니다. 1. Prometheus-Kafka-Exporter 설치exporter 설치 후 연결이 지속적으로 실패하는 문제가 발생했는데,원인을 분석해보니 Kafka SASL 인증 설정 누락과 Kafka 서버 주소를 자동으로 찾지 못하는 두 가지 문제가 있었습니다. 따라서 아래와 같이 인증 정보와 Kafka 서버 주소를 명시적으로 설정하여 Helm으로 설치를 진행했습니다.# 해당 명령어로 어떤 value 들을 설정할 수 있는지 볼..
아래 글은 인프콘 2024에서 진행된 인프런 아키텍처 2024 ~ 2025 이라는 발표를 듣고 정리한 글입니다. 인프런의 CTO로 계시는 이동욱님께서 발표하신 인프런의 아키텍처 변화와 발전 방향에 대한 내용입니다. 1. 작년 아키텍처 리뷰와 현재 상황작년에는 MSA까지는 아니더라도 분산 환경으로의 전환을 목표로 했습니다. 각 목적 조직마다 레거시 시스템을 복제하여 가져가고, 이를 각 조직의 신규 시스템과 함께 점진적으로 개선하는 것이 계획이었습니다. 하지만 현실적으로는 일부 조직은 레거시가 조금씩 개선되었지만, 다른 조직은 레거시가 그대로 남아있고 신규 시스템의 코드가 아직 작은 상태로 유지되는 등 기술 스택 전환이 조직마다 불균형하게 진행되었습니다. 이런 상황에서 인프런은 현재 국제화를 진행하다 보니..
아래 글은 한국 스프링 사용자 모임(KSUG)에서 진행된 스프링 배치 스터디 내용을 정리한 게시글입니다.DEVOCEAN에 연재 중인 KIDO님의 글을 참고하여 실습한 내용을 기록했습니다. [SpringBatch 연재 04] FlatFileItemReader로 단순 파일 읽고, FlatFileItemWriter로 파일에 쓰기 devocean.sk.com 원본: [SpringBatch 연재 04] FlatFileItemReader로 단순 파일 읽고, FlatFileItemWriter로 파일에 쓰기 지난 시간에는 Chunk 모델에서 사용되는 ItemReader, ItemProcessor, ItemWriter의 개요를 살펴보았습니다. 이번에는 ItemReader와 ItemWriter의 구현체 중 하나인 Fl..
두 대의 노드로 구성된 홈 서버에 Kafka를 설치했더니 제한된 자원 때문에 서버가 그냥 다운되거나 Pod에 메모리 제한을 설정해도 OOMKilled 오류가 발생했습니다. 그래서 Pod가 아닌 컨테이너 자체의 메모리 할당을 조정하는 설정 방법을 찾게 되었습니다.이 글에서는 Kubernetes 환경에서 Helm을 사용하여 Bitnami Kafka를 설치하고, NFS 스토리지 설정을 통해 Volume을 설정하는 방법을 설명합니다.*Kafka는 Helm으로 쉽게 다운 가능한 Bitnami Kafka를 이용하였습니다. 1. 메모리 최적화 설정한정된 메모리 환경에서 Kafka의 안정성을 유지하려면 JVM의 힙 메모리를 적절하게 제한해야 합니다. 이를 위해 Bitnami Kafka Helm Chart의 kafka..
아래 글은 한국 스프링 사용자 모임(KSUG)에서 진행된 스프링 배치 스터디 내용을 정리한 게시글입니다.DEVOCEAN에 연재 중인 KIDO님의 글을 메인 교안으로 진행되는 스터디입니다. [메인 교안 바로 가기] 3회차는 SpringBatch ChunkModel과 TaskletModel을 주제로 스터디가 진행 되었습니다. 스터디 진행 전 교안을 공부하며 정리한 내용은 이곳에서 볼 수 있습니다. [3회차] SpringBatch ChunkModel과 TaskletModel아래 글은 한국 스프링 사용자 모임(KSUG)에서 진행된 스프링 배치 스터디 내용을 정리한 게시글입니다.DEVOCEAN에 연재 중인 KIDO님의 글을 참고하여 실습한 내용을 기록했습니다. [SpringBatch 연재yeseul-dev...
아래 글은 인프콘 2024에서 진행된 지속 성장 가능한 설계를 만들어가는 방법 이라는 발표를 정리한 글입니다. 토스페이먼츠의 김재민님께서 발표 해주셨습니다. 설계를 하지 않는 것이 설계를 잘하는 방법?설계보다 중요한 것은 '구현'이 핵심입니다.설계는 구현을 통해 완성되는 것이고, 완벽한 설계란 애초에 불가능합니다. 개념과 격벽을 통한 유연한 설계소프트웨어 개발에서 중요한 두 가지 개념, 개념과 격벽개념: 소프트웨어를 만들 때 떠오르는 다양한 요소들, 예를 들어 웹툰 서비스에서는 작가, 작품, 결제 등의 개념이 있을 수 있다. 이 개념들을 그룹화하고 그 관계를 잘 설정하는 것이 설계의 핵심.격벽: 개념 간에 무분별한 참조를 막고, 통제된 방식으로만 상호작용할 수 있게 하는 일종의 ‘벽’이다. 격벽을 잘 세..