다낭 여행 홈쇼핑 현지을 통해 즐기는 쇼핑의 새로운 매력
홈페이지제작지원사업
상한가 이유는?
포바이포는 9일 주식시장에서 상승세를 보이며 상한가를 기록했다. 상한가를 기록한 이유는 CES 2024 혁신상에서 자체 개발한 화질 업데이트 인공지능 해결책 픽셀Pixell로 콘텐츠 엔터테인먼트 부문과 디지털 이미징사진 부문에서 혁신상을 수상했기 때문입니다.
”CES혁신상”은 세계 3대 IT 가전 전시회중 하나인 ”CES(Consumer Electronics Show)를 미국 라스베이거스에서 주최하는 미국소비자기술협회가 CES전시회에 참가한 기업들을 대상으로 미래를 혁신할만한 기술 및 상품을 선정하여 발행하는 상입니다.
이번 혁신상을 받은 포바이포의 픽셀은 수만건의 초고화질 영상을 학습한 인공지능이 채도, 선예도, 명암, 노이즈 증을 미세하게 조절하는 방식으로 화질을 고도화해서 인간이 시각적으로 보는 실제와 비슷한 수준으로 영상화질을 실현하는 가장 앞서 나가는 형태의 업데이트 AI 기술이라는 평가를 받았습니다.
카프카 클러스터의 구성
앞서 설명했듯이 카프카의 클러스터브로커를 구성하는 방법은 오픈소스를 활용하여 직접 구축하거나, 전문관리업체의 솔루션을 활용하는 방법이 있습니다. 사내에 처음 도입하는 기술이므로 어느 정도의 지식과 경험이 쌓기 전까지는 전문업체의 솔루션을 활용하는 방법이 유리하다고 판단했습니다. 그래서 전문업체 해결책 중의 하나인 AWS의 MSK를 도입하기로 결정했습니다. 전문업체의 솔루션을 선택했을 경우에도 대표적인 개념 이해를 바탕으로 설정 업무를 진행해야합니다.
브로커는 몇개로 구성할지, AZ은 어떻게 배치할지, 문자 저장 기간을 얼마로 할지, 디스크는 어느정도로 할당할지 등 수많은 설정값들이 존재합니다. 거의 모든 Default 설정값을 제공해주지만, 주요한 설정값들은 무조건적으로 제대로 이해하고 직접 설정을 해주어야 합니다.
브로커가 준비되면 이벤트가 저장되는 단위인 토픽을 생성해야 합니다.
이벤트 발행
브로커와 토픽이 준비되면 이제 브로커에 이벤트를 발행해 줄 프로듀서를 준비해야 합니다. Producer Client 라이브러리를 다운로드하여 비즈니스 로직 프로그램 내에 카프카로 메시지를 전송해 주는 방법과, 소스코드 프로그래밍 없이 저장된 데이터를 읽어들여 브로커로 메시지를 전송해주는 커넥트를 활용하는 방법이 있습니다. 초기 개발시에는 가장 보편적인 형태인 Kafka Producer Client 라이브러리를 이용하여 주문이 생성되는 시점에 브로커로 이벤트를 발행하도록 개발 하였습니다.
이 방식은 시험운행 초기에는 잘 작동하였스나, 갑자기 브로커로의 호출이 완료되지 않고, 주문 생성 서버에 누적되는 현상이 발생하였습니다. 결국은 주문생성 서버가 Hang 상태로 전환되어 정상 서비스를 할 수 없는 상태가 되었습니다. producer client의 연동 오류시 재 시도 횟수를 설정하는 값을 설정 하였음에도 발생한 상황이었습니다.
카프카 개발운영 환경 구성
새로운 기술 도입 시 , 개발자로 하여금 마음껏 개발해 보고 테스트해 볼 수 있는 환경을 제공하는 것은 중요합니다. 개발자가 로컬 개발환경에서 시험삼아 토픽을 생성하고 이벤트 발행 및 구독을 마음껏 할 수 있게 제공 해야하고, 타 개발자와 나누는 환경은 적절한 거버넌스 체계로 운영되어야 합니다. 최소한의 비용으로 개발자에 테스트 배드를 제공하기위해 토픽명을 통해 구분되도록 관리하고있습니다.
또한 파티션과 컨슈머의 연동 관계 특성으로, 개발자가 개발하고 테스트하는데 많은 방해를 받을 수 있습니다. 예를들어, 특정 서비스를 여러명이 개발 중인 환경에서, A개발자는 1개의 파티션으로 구성된 토픽에 대한 컨슈머 프로그램을 개발하고 테스트하기위해 로컬ide에서 소스코드를 개발하고 build 및 구동을 할것입니다.
향후 과제
카프카를 학습해 가면서 엔터프라즈 시스템에 적용 하기에는 완벽한 준비와 용기가 필요합니다. 비교적 간단한 사례로 첫 적용사례를 만들고 점차 확대해나갈 계획으로 시작하였습니다. 마이크로서비스 전환 프로젝트가 진지하게 진행됨에 따라 Event Driven Architecture를 적극 활용하기위한 카프카 적용 사례를 확대해 나갈 계획입니다. 시스템간의 인터페이스나 어플리케이션 구조를 단순화하거나, 비동기 처리가 필요한 곳에 적절한 솔루션이 될것입니다.
또한 비즈니스 트랜잭션과 이벤트 발행 트랜잭션의 무결성 확보를 위한 Outbox 패턴의 구조를 준비중입니다. 누락된 메시지를 추적하거나, 네트워크 다운이나 브로커 다운 등의 비정상 상황에서도 비즈니스 트랜잭션과 비동기로 처리되어 견고한 시스템을 확보할 수 있을것으로 기대됩니다. 이벤트 스키마는 전달하는 측과 수신하는 측의 데이터 구조를 약속하는 역할을 합니다.
자주 묻는 질문
상한가 이유는?
포바이포는 9일 주식시장에서 상승세를 보이며 상한가를 기록했다. 궁금한 사항은 본문을 참고하시기 바랍니다.
카프카 클러스터의 구성
앞서 설명했듯이 카프카의 클러스터브로커를 구성하는 방법은 오픈소스를 활용하여 직접 구축하거나, 전문관리업체의 솔루션을 활용하는 방법이 있습니다. 궁금한 내용은 본문을 참고하시기 바랍니다.
이벤트 발행
브로커와 토픽이 준비되면 이제 브로커에 이벤트를 발행해 줄 프로듀서를 준비해야 합니다. 궁금한 내용은 본문을 참고하시기 바랍니다.