전체 글 (25) 썸네일형 리스트형 Kafka 추가 지식 카프카 커넥트카프카 커넥트는 코드 없이 외부 시스템과 카프카를 연결하기 위한 표준화된 프레임워크입니다.직접 프로듀서/컨슈머 코드를 작성하는 대신, 커넥터 설정만으로 데이터 파이프라인을 구성할 수 있습니다.graph LR subgraph Sources MY[(MySQL)] MG[(MongoDB)] S3_IN[(S3)] end subgraph "Kafka Connect" SC[Source Connector자동 프로듀서] SK[Sink Connector자동 컨슈머] end subgraph "Kafka Cluster" T[Topic] end subgraph Sinks ES[(Elastic.. kafka java 실전 구성 실제 Java 어플리케이션에서 카프카를 어떻게 개발하면 될지 내용을 공부하고 정리했습니다Java 프로젝트에서 카프카 클라이언트를 사용하기 위해 build.gradle에 다음과 같은 의존성을 추가해야 합니다.dependencies { // Kafka Clients SDK implementation 'org.apache.kafka:kafka-clients:3.7.0'}Producer 데이터 전송 정리produce 데이터 흐름 도식화graph LR P[Producer] -- "1. Send (전송)" --> PL[Partition Leader] PL -- "2. Fetch (소비)" --> C[Consumer] subgraph "Kafka Cluster" PL .. Spring Rest Docs (1) 기본 개념 Spring REST DocsAPI를 개발하다 보면 항상 고민하게 되는 것이 API 문서 관리입니다.문서를 따로 작성하면 코드와 불일치가 생기고Swagger를 사용하면 빠르게 문서를 만들 수 있지만 실제 응답과 다른경우도 있고 소스 가독성이 저해 됩니다.이러한 문제를 해결하기 위해 Spring REST Docs라는 도구가 존재합니다.이번 글에서는 Spring REST Docs가 무엇인지, 그리고 어떤 원리로 API 문서를 생성하는지를 정리해보겠습니다.1. Spring REST Docs란 무엇인가Spring REST Docs는 테스트 코드를 기반으로 API 문서를 생성하는도구입니다.일반적인 API 문서 도구와 가장 큰 차이는 다음과 같습니다.테스트를 실행한 결과를 기반으로 문서를 생성한다는 점입니다.즉, .. Transactional 정리하기 Java 언어를 통해서 개발을 하다보면 @Transactional이라는 애노테이션을 정말 많이 붙이게 된다. 비지니스 흐름 동안 문제가 생겼을때 롤백해주는 기능이 있다, 그래서 하나의 흐름 단위로 묶어서 처리를 해야하면트랜젝션으로 묶어야한다. 정도의 개념으로만 이해했었는데 그 사용원리, 사용방법, 주의사항등을 알아보고자 한다. 트랜젝션은 무엇인가?트랜젝션이란 데이터베이스의 상태를 변화시키는 작업을 하나의 논리적인 단위로 묶은 것을 의미한다. 이 단위에서 포함된 작업들은 모두 성공하거나, 하나라도 실패하면 전부 실패해야한다. (데이터의 일관성과 신뢰성을 보장하기 위한 작업) 그래서 작업 도중 오류가 발생하면 이전 상태도 되돌리는 롤백을하고, 모든 작업이 정상적으로 완료되었을 떄만 커밋을 통해서 변경사항을.. Terrafrom 기본 개념 Terraform 개요Terraform은 HashiCorp에서 개발한 인프라스트럭처를 코드로 관리하는(IaC, Infrastructure as Code) 도구입니다. HCL(HashiCorp Configuration Language)이라는 선언적 언어를 사용하여 클라우드, 온프레미스 등 다양한 인프라를 정의하고 관리할 수 있습니다.핵심 개념프로바이더(Provider): AWS, Azure, GCP 등 인프라 서비스를 제공하는 플랫폼과의 상호작용을 담당리소스(Resource): 생성하고 관리할 인프라 구성요소(서버, 네트워크, 스토리지 등)모듈(Module): 재사용 가능한 Terraform 코드 패키지상태(State): Terraform이 관리하는 인프라의 현재 상태를 저장하는 파일워크플로우1. Writ.. CKA 자격증 취득 후기 및 핵심 개념 정리 자격증 취득 후기 EKS 환경에서 업무를 진행하고 있었고 관련해서는 스터디도 한번 진행했었기 떄문에 생각보다 별로 어렵지 않을거라고 생각하고공부를 시작했었는데 내가 대충 알고 있었던 부분도 많았고 생각보다 공부해야하는 범위가 많았었다. 그리고 정말 주어지는 문제를 풀어야하기때문에 각 상황들을 정확하게 이해하는게 중요했었고 이번 시험 준비를 통해서 기존에 어렵풋 알던 지식들을 정확하게 알게 되었고 업무에서 활용하면 좋을 것 같은 개념들도 많이 알 수 있었다. 가격이 비싸서 조금 망설여지기는 하지만 그래도 개념위주보다는 실무 위주의 시험이기 때문에 쿠버네티스 환경에서(혹은 EKS 같은 플랫폼 서비스) 업무를 진행하고 있고지식적으로 좀 더 향상을 원하시는 분들이 있다면 정말 강력 추천하는 자격증이다! .. kustomize 공식 문서 링크 1, 링크2 Kustomize 사용이 필요한 이유 여러 환경 (개발, 테스트, 라이브) 에서 kubernetes설정을 반보적으로 복사/붙여넣기 하지 않고 공통 설정은 재사용하고 차이만 덮어쓰고 싶은 경우에 사용하면 좋다 -> 기존에 각 파일별로 별도 관리하면 유지보수가 어렵고 사소한 누락 가능성이 있다 핵심 개념 Base- 모든 환경에서 공통적으로 사용하는 설정들을 모아둔 디렉터리 - 기본값들을 설정하고 변경이 없는경우 그대로 사용한다 Overlay - 각 환경별로 Base를 기준으로 일부 갚만 덮어쓰기 하는 방식 kustomize/├── base/│ ├── deployment.yaml│ └── kustomization.yaml└── overlays/ ├── dev/.. Helm Helm 은 무엇인가?Kubernetes용 패키지 관리자로, 복잡한 애플리케이션을 하나의 단위(Package 또는 Chart) 로 관리할 수 있게 해주는 도구이다 하나의 서비스에는 여러개의 yaml 파일들이 존재하는데 이 각각의 파일들을 helm이 없다면 직접 apply로 적용하고 환경에 맞게 하드코딩 값들을 수정하고 , 삭제하고 그 과정에서 모든 리소스를 추적 관리 해야하기 때문에 복잡하고 비효율 적이다 -> 그래서 helm이 여러 리소스를 하나의 패키지로 묶어서 관리를 해준다. Helm 설치 helm 설치 자체는 운영서버나 로컬 환경에서 설치가 가능한데 설치전에 kubectl 가 설치되어있어야하고(기술적 필수는 아닌데 , 설치하고 실제 사용을 위해서는 필요하기 때문) kubernetes 클러스터에 .. 이전 1 2 3 4 다음