Tech story/Cloud 66

gRPC 라이브러리 배포 및 문서 자동화 프로세스 수립

[kt cloud 플랫폼Innovation팀 강솔 님]  gRPC 라이브러리 배포 및 문서 자동화 프로세스 수립  gRPC 기반 시스템에서는 서비스와 메시지가 개발 과정에서 자주 변화합니다. 이때 변경된 API 문서를 최신화하는 작업은 필수적이지만 반복 작업으로 인해 자동화가 필요합니다. 이번 글에서는 gRPC 서비스의 .proto 파일이 변경될 때마다 문서를 자동으로 생성하고 이를 별도 GitHub repository에 배포 및 관리하는 방법을 소개합니다.  1. 자동화 프로세스 정의하기 1.1. 자동화 목표 수준 정의자동화 프로세스는 다음의 목표를 달성하고자 합니다. 1. 자동화 목표라이브러리 자동 배포: .proto 파일이 변경될 때마다 라이브러리가 자동으로 업데이트됩니다.문서 자동 생성: .pro..

Tech story/Cloud 2024.11.11

protoc-gen-doc으로 시작하는 gRPC 문서화

[kt cloud 플랫폼Innovation팀 강솔 님]   protoc-gen-doc으로 시작하는 gRPC 문서화  이번 포스팅에서는 gRPC 기반 API의 효과적인 문서화 방안에 대해 다뤄보겠습니다. 기존에 REST API는 주로 Swagger를 활용해 문서화했는데, gRPC에서도 유사한 수준의 명확하고 일관된 문서를 제공하기 위한 방법을 고민하게 되었습니다.gRPC 문서화를 설계하면서 특히 중점적으로 고려한 요소는 1) 편의성과 2) .proto 파일과의 호환성이었습니다. 내부 공유용으로 활용될 문서이기에, 큰 리소스를 투입하지 않고도 최신의 .proto 파일 내용을 반영할 수 있는 방안을 찾고자 했습니다.이와 같은 요구 사항을 충족하기 위해 protoc-gen-doc을 사용하여 .proto 파일 기..

Tech story/Cloud 2024.11.11

Kafka 이벤트 전송 최적화: Partitioner와 batch 설정 이해하기

[kt cloud 플랫폼Innovation팀 오준영] Kafka 이벤트 전송 최적화: Partitioner와 batch 설정 이해하기 Kafka에서 Producer는 기본적으로 Sticky Partitioner를 사용하여, 이벤트를 batch 단위로 묶어 효율적으로 전송할 수 있습니다.배치 설정은 batch.size와 linger.ms가 있으며, 각각 배치의 크기와 데이터가 쌓이는 시간을 설정해 전송 조건을 조절할 수 있습니다.본 포스팅에서는 Kafka를 활용한 이벤트 발행과 구독하는 과정에서, 겪은 이벤트 분산 이슈의 원인을 파악하기 위해 Kafka Partitioner, batch.size, linger.ms 설정을 분석한 내용을 공유합니다.  1.시나리오 테스트 환경 (Local) Kafka Clu..

Tech story/Cloud 2024.11.07

2024년 Front-end 개발 트렌드를 돌아보며: 클라우드와의 조화

[kt cloud Cloud기획팀 김지웅 님] 2024년 Front-end 개발 트렌드를 돌아보며: 클라우드와의 조화(Looking Back on 2024 Front-end Development Trends: Harmony with Cloud)  Introduction: 프론트엔드 개발의 변곡점클라우드와 프론트엔드 개발의 변화2024년은 프론트엔드 개발에 있어 중요한 변곡점이 된 해였습니다. 기존의 전통적인 프론트엔드 개발 방식에서 벗어나 클라우드 기술과의 연결이 더욱 깊어지면서, 개발자들에게 새로운 기회를 제공하고 있습니다. 클라우드와 프론트엔드 개발의 융합은 단순히 서버리스 아키텍처와 API 중심 설계에 그치지 않고 성능, 확장성, 그리고 보안 측면에서 폭넓은 영향을 미쳤습니다. 클라우드 네이티브 ..

Tech story/Cloud 2024.11.04

MSW로 프론트엔드 개발 프로세스 개선하기 : API Mocking

[kt cloud 플랫폼Innovation팀 송재희 님] MSW로 프론트엔드 개발 프로세스 개선하기 : API Mocking 프론트엔드 개발자라면, 종종 백엔드 API가 준비되기 전까지 대기해야 하는 상황을 경험해 보셨을 겁니다. 이번 포스트에서는 백엔드 API가 준비되기 전에 동일한 규격의 API를 지원하는 가상 서버 환경을 구성하여, 생산성 높은 프론트엔드 개발을 진행할 수 있는 방법을 소개하고자 합니다. 그 중심에는 MSW(Mock Service Worker)가 있습니다.  프론트엔드 개발의 현실 프론트엔드와 백엔드가 협업하며 마주하는 어려움 중 하나는 백엔드 API 연동 과정에 있습니다. 프론트엔드는 클라이언트 UI 화면 구현을 중심으로 작업을 진행하지만, 서버 API를 연동하여 알맞은 데이터와 ..

Tech story/Cloud 2024.11.04

효율적인 gRPC 서비스 설계: Protobuf 작성 컨벤션 도입기

[kt cloud 플랫폼Innovation팀 강솔 님] 효율적인 gRPC 서비스 설계: Protobuf 작성 컨벤션 도입기 클라이언트와 서버는 항상 동시에 업데이트될 수 없기 때문에, 이들이 항상 동기화될 것이라는 가정은 위험합니다. 특히, Breaking Changes(호환되지 않는 변경)가 발생했을 때 클라이언트나 서버가 최신 업데이트를 반영하지 못하면 서비스 중단이나 통신 오류가 발생할 수 있습니다. 이와 관련하여 Protobuf를 정의할 때 유의할 점에 대해 살펴보고, 이를 예방하고 안정적인 서비스 운영을 위해 저희 프로젝트에서 정의한 Protobuf 작성과 관련된 컨벤션 규칙에 대해 설명하겠습니다.   1. Proto 파일 버전에 따른 메시지 내용 변경 먼저 .proto 파일이 변경될 경우 구 ..

Tech story/Cloud 2024.11.04

gRPC로 시작하는 API 개발: 첫 번째 서버와 클라이언트 구현

[kt cloud 플랫폼Innovation팀 강솔 님]  gRPC로 시작하는 API 개발: 첫 번째 서버와 클라이언트 구현  지금까지 gRPC의 핵심 동작 원리와 개념에 대해 학습했었습니다. 이번 포스팅에서는 gRPC 핵심 동작 원리를 바탕으로 Java와 Spring Boot를 사용해 간단한 은행 계좌 잔액 조회 서비스를 구현해보겠습니다. 이 프로젝트를 통해 서비스 스키마 정의부터 서버와 클라이언트 구현까지의 일련의 과정을 따라가며, gRPC 동작 방식을 학습합니다. 그리고 gRPC 관련 여러 가지 테스트 방법에 대해 소개하겠습니다.  1. gRPC 샘플 프로젝트 구현하기 1.1. Sample 시나리오 및 구성    1. 서비스 정의        a. Bank Service: 은행 계좌 서비스      ..

Tech story/Cloud 2024.10.31