시작하며 안녕하세요. Enablement Engineering 팀에서 SRE(site reliability engineer)로 일하고 있는 어다희입니다. 저희 팀은 LINE 서비스를 보다 높은 성능으로 효율적이고 안전하게 사용자에게 제공할 수 있도록 다방면에서 'Enablement'를…
1. 들어가며 안녕하세요. 쏘카 데이터엔지니어링팀 삐약, 루디입니다. 내용을 시작하기에 앞서, 저희 팀의 업무와 역할에 대해 간략히 소개해 드리겠습니다. 데이터엔지니어링팀은 신뢰할 수 있는 데이터를 쏘카 구성원들이 안정적으로 활용할 수 있도록 기반을 마련하고, 이를 실제 비즈니스에 적용…
들어가며 안녕하세요. 쏘카 데이터엔지니어링팀 삐약, 루디입니다. 내용을 시작하기에 앞서, 저희 팀의 업무와 역할에 대해 간략히 소개해 드리겠습니다. 데이터엔지니어링팀은 신뢰할 수 있는 데이터를 쏘카 구성원들이 안정적으로 활용할 수 있도록 기반을 마련하고, 이를 실제 비즈니스에 적용할 수…
Trino로 타임아웃 개선하기 들어가며 안녕하세요. NHN Cloud의 클라우드AI팀 이태형입니다. 로그 데이터가 쌓일수록 조회 속도가 느려지는 문제, 한 번쯤 겪어 보셨을 텐데요. 이 글에서는 이러한 문제를 해결하기 위해 저희 팀에서 Trino를 도입하여 성능을 개선한 과정을 공유해…
시작하며 안녕하세요. SRE(site reliability engineering, 사이트 안정성 엔지니어링) 업무를 맡고 있는 Enablement Engineering 팀 어다희, Service Reliability 팀 천기철입니다. 저희 두 팀은 Service Engineering 실…
소프트웨어 배포 자동화는 코드 변경 및 테스트 이후 프로덕션 환경에 배포하는 과정을 자동화하여 배포 속도를 향상시키고 품질을 보장하는 중요한 기술이며, 이를 통해 배포 빈도를 증가시키면서도 일관된 환경을 유지하고 보안성을 강화할 수 있습니다. AWX(Ansible Web eXecutab…
들어가며 링크 복사 안녕하세요. 카카오모빌리티 웹FE개발팀에서 프론트엔드 개발을 맡고 있는 란입니다. 프론트엔드 개발에서 테스트 자동화는 점점 더 중요해지고 있습니다. 다양한 브라우저 환경, 사용자 입력, 복잡한 UI 등 여러 변수를 다뤄야 하며, 빠른 릴리스 주기에 대응해야 하기 때문…
들어가며 안녕하세요, 카카오 분산데이터베이스 조직에서 MongoDB를 운영하고 있는 앤디입니다. MongoDB의 메인 스토리지 엔진인 WiredTiger에 관한 시리즈의 첫 글 "MongoDB WiredTiger의 파일 구조"에서는 WiredTiger의 구성요소와 아키텍처를 전반적으로…
개요 안녕하세요, 라포랩스 서버 플랫폼 팀의 지수환입니다. 최근 2년간 라포랩스 백엔드 팀은 백엔드 아키텍처를 모노리식 아키텍처에서 MSA로 전환하는 작업을 진행하고 있습니다. MSA 전환 작업을 진행하면서 다양한 어려움을 겪었는데, 그 중에서는 모노리스 서버에서 코드를 분리하고, 새…
데이터카탈로그에서 DataHub를 이용하는 방법 사내 데이터 디스커버리 도구인 데이터카탈로그는 DataHub를 기반으로 구축되었습니다. DataHub는 다양한 플랫폼과 연동되는 활발한 오픈소스 프로젝트로, 필요한 기능들을 새로 개발하지 않고도 활용할 수 있다는 장점이 있습니다. 그러나…
요약: AWS는 re:Invent 2024에서 Nitro System 기반의 다양한 EC2 인스턴스, x86 대비 고효율의 Graviton 프로세서, AI 특화 칩셋 Trainium 등 컴퓨팅 성능 향상과 비용 절감에 초점을 맞춘 최신 기술을 선보였습니다. Graviton은 높은 성능과…
요약: 이 글에서는 AWS re:Invent 2024의 SageMaker 및 Bedrock 업데이트를 공유합니다. SageMaker는 AI 모델 훈련 및 자원 관리 효율성을 향상했고, Bedrock의 다양한 기능으로 AI 서비스 개발을 최적화했습니다. 주요 업데이트로는 Hyperpod…
안녕하세요. Azar Matching Dev Team 의 Zeze 입니다. Flink 는 대다수의 백엔드 엔지니어들에게 친숙한 기술은 아니지만, 이벤트 스트리밍 처리를 위한 대표적인 기술 중 하나입니다. 대규모 실시간 데이터 스트리밍 처리를 위해 분산 환경에서 빠르고 유연하게 동작하는…
요약: AWS re:Invent 2024에서 새롭게 공개한 Amazon Aurora DSQL과 Amazon S3 Tables를 소개합니다. Amazon Aurora DSQL은 사실상 무제한의 확장성과 높은 가용성을 제공하며 인프라 관리가 필요하지 않은 서버리스 분산 SQL 데이터베이스입…
오래전에 소개했던 당근 웹뷰 배포 변천사에 이어지는 근황으로, 이번에는 조금 다른 주제를 다뤄보려고 해요 — 새로운 기술이 정착하면 이전에 사용하던 기술은 어떻게 되는 걸까요? 앞선 글에서 언급했던 것처럼 기존에 구축했던 로컬 파일 기반 웹뷰(이하 “로컬 웹뷰”)를 버리기로 결정하고 정…
요약: 이 글은 배포 일정과 릴리즈를 분리하고 유저 타겟팅을 적용하는 등의 이점을 가진 피처 플래그를 개발하며 직면한 문제 해결 여정을 다룹니다. 어드민 서버와 서빙 서버를 분리했지만, 데이터 동기화 문제가 발생했습니다. 이를 해결하기 위해 Redis Pub/Sub을 활용하고, 안정성을…
Go GC를 너무 믿지 마세요 - 메모리 누수 탐지와 GC 주기 조절 - 등록일 - 2025.02.10 - | - 코멘트 - 9900 Noir는 Go로 작성한 개별 데이터 특화 검색 엔진으로, 메일처럼 사용자마다 데이터가 분리된 서비스에 효과적입니다. 대표적으로 네이버 메일, 메시지 검…
안녕하세요. Azar API Dev Team의 Ledger입니다. 이번 글에서는 Spring Transactional 동작에서 Checked Exception과 Unchecked Exception의 롤백(rollback) 처리에 관한 내용을 다뤄보겠습니다. 여러 사례를 통해 예외 처리…
[원문보기] 인텔리전스 혁명을 위해서는 비즈니스를 어떻게 바라보고, 어떻게 일하고, 어떻게 성공을 측정할지에 대한 근본적인 재검토가 필요합니다. 어쩌면 우리는 지금까지 디지털 트랜스포메이션을 잘못 생각해 오고 있었습니다. ‘전환(transforming)’에 초점을 맞추는 대신, ‘디지털…
- blog 오픈채팅 Lite FE 성능 개선의 모든 것 서론 안녕하세요, 오픈채팅 Lite의 stella, roddy, holly입니다. 오픈채팅 Lite는 부담 없이 수많은 사람들과 대화할 수 있도록 하는 것을 목표로 개발된 서비스로, 지금 이 순간에도 다양한 주제로 많은 이야기가…
들어가며 안녕하세요. Game Platform Dev의 류동훈, Zhang Youlu(Michael), Takenaka, 이형중입니다. 저희 조직은 게임 퍼블리�싱에 필요한 다양한 기능을 개발하고 운영하는 역할을 맡고 있습니다. 저희는 최근 조직 내 업무 효율을 높이기 위해 다양한 LL…
안녕하세요. 카카오뱅크의 서비스 레지스트리 운영 및 연관 시스템을 개발하는 Donggeuri입니다. 저희 서비스아키팀은 카카오뱅크 서비스의 안정적 운영을 최우선 목표로 삼고, 인프라 운영의 신뢰성과 효율성을 극대화하기 위해 노력하고 있습니다. 카카오뱅크 역시 초기에는 온프레미스 VM(V…
코파일럿 “열일”하게 만드는 방법 깃허브 코파일럿(Github Copilot)은 IDE에서 사용할 수 있는 AI 페어 프로그래밍 도구입니다. 2021년에 최초로 공개된 비교적 젊은 툴이지만, 이제는 단 한 번이라도 사용해 본 적 없는 개발자를 찾기가 어려울 정도로 프로그래밍 필수 준비물…
요약: 이 글은 Spring 기반 멀티모듈 프로젝트에서 환경변수를 설정하는 다양한 방법을 비교하고, 가장 적합한 방식을 선택하는 과정을 설명합니다. Spring 환경에서 spring.config.import, spring.profiles.include, @PropertySource, @…
물류의 물짜도 모르던 OMS PM의 OMS 구축기 - 1. 현재를 모르면 미래도 없다: As-Is 먼저 명확히 파악하기 - 2. 데이터를 파악하며 도메인 지식을 넓히다: 거미줄처럼 얽혀있는 데이터들 - 3. 사용자(고객) 인터뷰 중 깨달음을 얻다: SOMS는 생산할 수 있는 주문의 “양…
기업은 내부 구성원의 업무 생산성을 높이고 고도화하기 위해 다양한 정보화 시스템과 업무 지원 소프트웨어를 운영합니다. 또한, 외부 고객들과의 커뮤니케이션이나 서비스 제공을 위해 웹이나 앱을 운용합니다. 이러한 디지털 솔루션들은 현대 기업 운영의 핵심 요소로, 비즈니스 성과와 직결됩니다.…
안녕하세요, 올리브영의 상품 데이터를 다루고 있는 국밥빌런🍲입니다. 현재 올리브영의 상품 데이터를 생성하기 위해서는 오프라인 매장과 온라인몰로 관리하는 상품 데이터를 각기 다른 시스템을 통해 등록하고 연동하게 되어있어요. 저는 이렇게 관리 영역별로 분산되어 있는 상품 시스템을 하나로 통…
이 글은 IDG의 아티클을 전재하여 제공합니다. [원문보기] 새로운 생성형 AI 모델의 등장으로 시장 경쟁이 치열해지고, 비용이 절감될 가능성이 대두되고 있습니다. 또한, 파괴적 혁신이 증가할 수도 있습니다. 중국의 AI 스타트업 딥시크(DeepSeek)가 공개한 오픈소스 버전 추론 모…
안녕하세요! 올리브영에서 매장 도메인을 담당하고 있는 알렉스입니다 :) 이전 글에서 저희는 이벤트 스토밍, 바운디드 컨텍스트 식별, 컨텍스트 매핑 등 DDD의 전략적 설계 과정을 통해 매장 도메인을 추출하는 과정을 알아보았습니다. 이번 글에서는 저희가 지난 1년간 걸어온 아래의 여정 중…
안녕하세요! 올리브영에서 매장 도메인을 담당하고 있는 알렉스입니다 :) 2023년도 11월에 주니어 개발자의 우당탕탕 입사기로 첫 포스팅을 하고 벌써 1년이라는 시간이 흘렀는데요. 이전 글에서 마무리 멘트로 "다음 글에서는 O2O 서비스를 모듈화·모던화 하면서 직면하는 기술 문제들을 해…
안녕하세요. 카카오페이증권 DevOps 팀의 테라입니다. 본 글은 사내 지식저장소를 구축하기 위해 Amazon Bedrock과 슬랙봇을 통합하고 고도화한 경험을 공유하기 위해 작성되었습니다. 본 프로젝트는 ‘siri’ 라는 이름으로 (Apple의 siri가 모티브인 것 맞습니다.), 카…
Hi, I'm Gyubong Lee, a software engineer at Lablup. I've been working on maintaining Backend.AI core and working on the necessary tasks to bring Raft to our pro…
[DAN 24] 데이터 기반으로 지속 성장이 가능한 네이버 검색 FE 시스템 구축하기 - 등록일 - 2025.01.24 - | - 코멘트 - 7636 네이버 검색 FE 시스템 구축 과정에서 저희는 다음과 같은 문제에 직면했습니다. 첫째, 유사하지만 영역이 다른 경우 비슷한 작업을 반복하…
안녕하세요, 카카오 FE 플랫폼 조직의 톡메시지 FE에서 챗봇 관리자센터를 개발하고 있는 글링입니다. 이번 글에서는 챗봇 관리자센터의 성능 최적화 경험을 공유해 보려고 합니다. 챗봇 관리자센터는 앵귤러(Angular), RxJS, 타입스크립트(TypeScript)를 이용해 개발하고 있습…
안녕하세요, 모두싸인에서 백엔드를 개발하고 있는 러리입니다. 모두싸인은 NestJS 프레임워크를 기반으로 백엔드 시스템을 개발하고 있습니다. 하지만 제품 우선순위로 인해 업데이트가 계속 미뤄져, 여전히 오래된 6 버전대 NestJS를 사용하고 있었습니다. 구버전을 사용하면서 다른 최신…
안녕하세요. 토스증권 Realtime Data Team 김용우입니다. 이번 글은 토스증권은 Apache Kafka 이중화 구성에 대한 마지막 편으로 1부 Apache Kafka 이중화 구성에 대한 개요, 2부 Active-Active 구성을 기반으로한 양방향 데이터 미러링에 대해 소개해…
안녕하세요. 모두싸인 백엔드 엔지니어 루디(Rudy)입니다. 모두싸인 제품그룹에서는 엔지니어링 컬처 길드 활동을 통해 개발 과정에서 겪는 어려움을 기술적, 문화적으로 해결하고 있는데요. 제가 속한 ‘비동기 메시지 가시화 파티’가 지난 1년동안 여러 문제를 해결하면서 주도적으로 문화를 바…
요약: Hexagonal Architecture를 도입했다가 제거한 경험을 통해 해당 아키텍처의 장단점과 실질적인 문제점을 다뤘습니다. 완벽해 보이는 Hexagonal Architecture도 상황에 따라 약점이 될 수 있음을 강조하며, 이를 적절히 활용하는 방법의 중요성을 전달합니다.…
[원문보기] IT 전문가와 비즈니스 의사결정권자들은 10년이 넘도록 ‘디지털 트랜스포메이션(DX)’이라는 용어를 일상에서 사용해 왔습니다. 이는 전략적 비즈니스 역량을 마법처럼 구현하는 기업 이니셔티브를 설명하기 위한 용어였습니다. 하지만 이런 의도는 측정 가능한 유의미한 성과와 일치하…
- blog Ingress Nginx Controller의 Prometheus Metric 병목 현상: 원인 분석과 해결 (1부) 개요 안녕하세요. 카카오 광고 추천팀에서 광고 추천 개발 업무를 담당하는 pooh.duck입니다. 이 글에서는 Ingress Nginx Controller에…
AI Agent 시장 동향을 다룬 해당 아티클은 1, 2편으로 나누어 게재됩니다. 미래를 선도하는 AI 애플리케이션이 핵심은 AI Agent가 될 것이며, 앞으로 몇 년 동안 인공지능을 정의하는 주제 중 하나가 될 것입니다. AI Agent는 데이터에서 학습하고, 추세를 분석하고, 예측…
요약: 이 글에서는 분산 시스템에서 로컬 캐시를 설계하고 구현한 경험을 공유합니다. 캐시의 기본 개념부터 로컬 캐시와 글로벌 캐시의 차이점, 데이터 정합성을 유지하기 위한 메시징 시스템 활용 방법을 세부적으로 다루며, 각 환경에 적합한 캐시 전략 선택의 중요성을 강조합니다. 💡 리뷰어…
- AI Agent 시장 동향을 다룬 해당 아티클은 1, 2편으로 나누어 게재됩니다. - 기업은 업무 환경이 급속히 변화함에 따라, 인공지능 기술에 막대한 투자를 할 것으로 예상됩니다. 2024년 11월, 가트너는 IT 심포지엄/엑스포 2024(Gartner IT Symposium/Xp…
[DAN 24] DEVIEW 세션 영상이 공개되었습니다. - 등록일 - 2025.01.15 - | - 코멘트 - 4270 기술 공유를 넘어 네이버의 미래 비즈니스와 서비스 변화 방향을 제시한 'DAN 24'가 많은 분들의 관심과 참여로 성황리에 종료되었습니다. 개발자뿐만 아니라 다양한…
안녕하세요. 토스증권 Realtime Data Team 송지수입니다. Kafka 데이터센터 이중화 1편에서 소개된 것처럼, 토스증권은 현재 Active-Active 구성으로 Kafka를 운영하고 있습니다. 오늘은 Active-Active를 유지하기 위해 필요한 양방향 데이터 미러링에 대…
요약: 카카오페이 정보플랫폼팀이 다양한 데이터를 조합하고 처리하기 위해 Spring Cloud Stream을 활용한 경험을 공유합니다. Spring Cloud Stream의 구조적 이점과 실제 구현 사례를 통해 활용 방안을 구체적으로 전달하고자 합니다. 💡 리뷰어 한줄평 bri.ghte…
이번 토스 피플에서는 UX Engineering Team Leader 조유성님의 이야기를 들어봤어요. 유성님은 토스에 Full Stack Engineer로 입사했지만, Frontend Engineer로 직무 전환을 한 다음, 지금은 토스의 디자인 시스템을 개발하는 UX Engineeri…
안녕하세요. 커뮤니케이션 앱 LINE의 모바일 클라이언트를 개발하고 있는 Ishikawa입니다. 저희 회사는 높은 개발 생산성을 유지하기 위해 코드 품질 및 개발 문화 개선에 힘쓰고 있습니다. 이를 위해 다양한 노력을 하고 있는데요. 그중 하나가 Review Committee 활동입니다…
Kubernetes Job과 커스텀 컨트롤러를 활용한 배치 처리 경험기 - 등록일 - 2025.01.10 - | - 코멘트 - 8137 배치 작업을 VM 서버에서 실행해 동시 실행에 어려움을 겪은 적이 있나요? 이 글에서는 Kubernetes Job을 활용해, 기존에는 VM 서버에서 실…
카프카 컨슈머에 동적 쓰로틀링 적용하기 이 글은 카프카(Kafka)를 사용하는 스프링 환경에서 메시지 처리 속도를 동적으로 조절해야하는 상황과 여러 쓰로틀링 기법들을 소개합니다. 카프카를 사용하는 스프링 프레임워크 환경에 익숙하고, 카프카의 기본 개념 및 컨슈머와 컨슈머 그룹, 파티션…
안녕하세요! 당근 알림 경험팀에서 백엔드 엔지니어로 일하고 있는 데이(Daey)라고 해요. 알림 경험팀은 일반적인 플랫폼 조직이 아닌, 모든 유저의 알림 경험을 고민하는 서비스 조직이기도 해요. 알림 기능을 개발하다 보면 아래와 같은 말을 자주 듣곤 하는데요. “알림은 그냥 보내달라는…
요약: 이 글은 Java와 Kotlin 환경에서 SLF4J를 활용한 로깅 방식을 비교하며, 불필요한 문자열 연산 문제를 다룹니다. Parameterized Logging과 kotlin-logging을 활용한 대안을 제시하며, 성능과 가독성을 모두 고려한 최적의 로깅 방법을 탐구합니다.…
안녕하세요. 토스증권 Realtime Data Team 강병수 입니다. 토스증권은 데이터센터 장애 상황에도 유저에게 정상적으로 서비스를 제공하기 위해 대부분의 시스템을 이중화했습니다. Kafka 이중화에 대해서는 2023년 6월 토스 개발자 컨퍼런스 SLASH23에서 한 차례 발표한 바…
이젠 보내줄 때가 되었다. 대규모 트래픽의 C++ 시스템 Java로 전환하기 사용자의 배달 주소를 기반으로 어느 행정동/법정동에 속해 있는지를 판단하기 위해 기존에는 C++로 작성된 웹 서버를 사용하였습니다. 서버 한 대당 피크 시간 기준 2000TPS를 상회하는 많은 요청을 10ms…
들어가며 LINE Plus의 MPR(Mobile Productive & Research) 팀은 LINE 클라이언트 앱의 빌드 개선과 CI 파이프라인 관리, 자동화 지원 등의 업무를 담당하고 있습니다. 이번 글에서는 저희 팀에서 운영하는 CI/CD에 발생했던 흔하지 않은 이슈와 그 해결…
23년 7월부터 자비스앤빌런즈 인프라팀은 Terraform을 이용한 IaC(Infrastructure as Code) 전환을 시작했습니다. Terraform은 Hashicorp Configuration Language(HCL)로 인프라를 효율적으로 빌드, 변경 및 버전 관리할 수 있는…
안녕하세요, 결제서비스개발팀에서 서버 개발을 담당하고 있는 Jayden, Lani입니다. 저희는 2024년 연초부터 하나의 큰 덩어리였던 카카오뱅크 오픈뱅킹 시스템에서 ‘카드 청구금액 알림 서비스’와 관련된 API 및 배치 작업들을 별도의 시스템으로 분리하는 작업을 계획했고, 2024년…
안녕하세요. 저는 로컬 비즈니스실에서 서버 개발자로 일하고 있는 에렌(Eren)이라고 해요. 당근을 사용해 본 적 있으신가요? 당근의 동네지도 탭에 들어가면 ‘음식점’, ‘카페/간식’ 등 카테고리별로 동네 업체를 모아볼 수 있는데요. 여기서 각 업체의 정보를 담고 있는 ‘비즈 프로필’을…
온라인 커머스의 가장 중요한 요소 중 하나는 단연 주문결제 시스템이라고 생각합니다. 고객이 원하는 상품을 선택하고 결제까지의 과정이 원활하고 빠르게 이루어질 때, 고객들이 느끼는 만족도가 높아지기 때문입니다. 올리브영에서는 이 주문결제 프로세스를 최적화하고, 편리하고 안전하게 쇼핑을 즐…
MySqlPagingQueryProvider 살펴보기 JdbcPagingItemReader와 MySqlPagingQueryProvider를 사용할 때 주의사항 - 들어가며 - spring-batch 의 기본 구조와 Chunk 단위 처리 - 첫 번째 이슈 : MySqlPagingQuery…
매드업에서는 프리즘이라는 시스템을 사용하여 광고 데이터를 수집하고 있습니다. 프리즘에 대해서는 여기를 참고해 주세요. 프리즘은 여러 마이크로 서비스들로 이루어져 있고, 마이크로 서비스들 간의 통신을 위해 메시지 기반 비동기 통신 방식을 사용하고 있습니다. 따라서 메시지들을 안정적이고 효…
2024 선물카드 제목 짓기 대회가 탄생하기까지: 운영, PM, 개발 이야기 배민선물하기에서는 생일과 같은 일반적인 상황뿐만 아니라 집들이나 이직 같은 다양한 축하 상황, 출산이나 입원 등 몸보신에 어울리는 상황까지 모두 아우를 수 있도록 1천 개 이상의 카드를 제공하고 있습니다. 이…
안녕하세요, 카카오페이손해보험 백엔드 엔지니어 루카스예요! 지금 읽고 계신 글은 if(kakaoAI)2024에서 공유한 내용입니다. 그러면서도 우리가 이 비즈니스를 시작하면서 추구했던 방향에 대한 이야기이기도 해요. if kakao 세션 주제에 대한 고민이 있었어요. ‘기술적으로 깊게…
안녕하세요. 회원 스쿼드 백엔드 개발자 뮤즈입니다!🙌🏻 서비스에서 고객과 브랜드의 관계를 가장 잘 보여주는 것이 무엇일까요? 저는 멤버쉽 서비스라고 생각합니다. 멤버쉽 서비스는 단순히 포인트 적립이나 할인 혜택을 제공하는 것을 넘어, 고객과 브랜드 사이의 신뢰를 구축하고, 고객 충성도를…
들어가며 지난 1편에서는 가상 스레드(virtual thread)의 장점을 살펴보고 가상 스레드를 어떻게 생성하고 시작하는지 알아봤습니다. 이어서 이번 글에서는 컨텍스트 스위칭(context switching)의 작동 방식을 살펴보려고 합니다. 1편에서 살펴본 VirtualThread…
안녕하세요. 저는 당근페이 머니서비스팀 백엔드 엔지니어 클로버(Clover)에요! 당근페이에서는 동네에서 쉽고 편하게 쓸 수 있는 금융 서비스를 만들고 있어요. 당근에서 일어나는 거래에는 당근머니가 사용되는데요. 머니서비스팀에서는 당근머니와 관련된 일들에 더해, 동네에서 쓰면 다양한 혜…
안녕하세요, 카카오뱅크 투자개발팀에서 펀드시스템 개발과 운영을 담당하는 Sean입니다. 이번 글에서는 2024년 1월 오픈한 펀드 시스템에서 중요한 역할을 담당하고 있는 ‘펀드 배치 시스템’에 대해서 설명드리고자 합니다. 카카오뱅크 펀드 배치 시스템은 Airflow라는 오픈소스로 만들어…
들어가며 링크 복사 안녕하세요. 렌터카개발파트에서 서버 개발을 담당하고 있는 해리입니다. 저희 파트는 '일단기렌터카'(최단 하루부터 최장 30일까지 대여 가능)와 '카셰어링'(분 단위로 이용 가능) 두 가지 서비스의 서버 개발을 맡고 있습니다. 이번 포스팅에서는 '카셰어링' 서비스를 설…
목차 핵심요약 - 현재 AI 비서의 3가지 한계점과 AI 에이전트로 실현 가능한 이커머스 4대 혁신을 중심으로, 차세대 커머스 생태계의 변화를 살펴봅니다. - AI 에이전트 기술은 기존 AI 비서의 언어 이해 부족, 제한적 데이터 접근, 부정확한 의사결정 문제를 해결하여 답변 정확도 향…
요약: 이 글은 카카오페이에서 코드 가독성과 효율성을 높이기 위해 MVVM 아키텍처를 적용한 사례를 소개합니다. 기존의 RIBs 및 TCA 아키텍처에서 커스텀 MVVM 방식으로 전환한 과정을 설명하며, 비즈니스 로직 구현 방법을 자세히 다룹니다. 유연한 설계와 높은 생산성을 목표로 유지…
2024 프론트엔드 뉴스 한 방에 몰아 보기 안녕하세요. NHN Cloud NCUI개발팀 이진우입니다. 저는 올해 2월부터 매주 프론트엔드 관련 다양한 뉴스레터를 읽고, FE 개발 직무 동료들에게 흥미로운 뉴스, 읽을거리, 유용한 도구 등을 공유해 왔습니다. 어느덧 연말이 가까워지며 쌓…
목차 휴머노이드 로봇이란? 생성형 AI와 더불어 언론을 통해 자주 소개되는 것이 휴머노이드(humanoid)입니다. 휴머노이드는 사람을 뜻하는 ‘human’과 닮았다는 접두사 ‘oid’의 합성어입니다. 즉, 휴머노이드는 인간과 유사한 모습을 갖춘 것이면 꼭 로봇이 아니어도 된다는 것을…
postgres_fdw로 마이그레이션 생산성 높이기 배달의민족 커머스 서비스들의 ‘상품’ 도메인 시스템 통합 프로젝트를 하며 postgres_fdw를 이용해 PostgreSQL DB 간의 별도 배치 애플리케이션 없이 마이그레이션을 경험했던 실제 사례 및 결과와 주의사항, 느낀 점들을 공…
실시간 메시징 시스템 개발 시리즈 - Part 1. 실시간 메시징 시스템 개발 - “삽질 과정” - 실시간 메시징 시스템 구축 과정에서 직면한 기술적 과제들과 해결 과정을 공유합니다. - Part 2. 실시간 메시징 시스템 개발 - “성능 테스트 설계와 분석” - 대규모 트래픽 처리를…
실시간 메시징 시스템 개발 시리즈 - Part 1. 실시간 메시징 시스템 개발 - “삽질 과정” - 실시간 메시징 시스템 구축 과정에서 직면한 기술적 과제들과 해결 과정을 공유합니다. - 👉 Part 2. 실시간 메시징 시스템 개발 - “성능 테스트 설계와 분석” - 대규모 트래픽 처리…
실시간 메시징 시스템 개발 시리즈 - 👉 Part 1. 실시간 메시징 시스템 개발 - “삽질 과정” - 실시간 메시징 시스템 구축 과정에서 직면한 기술적 과제들과 해결 과정을 공유합니다. - Part 2. 실시간 메시징 시스템 개발 - “성능 테스트 설계와 분석” - 대규모 트래픽 처리…
요약: 이 글은 성능 테스트 존 도입 사례와 주요 기능을 다룹니다. 홈화면, 관리콘솔, 모니터링 대시보드 등을 이용하여 테스트 상태를 실시간으로 확인하고, 성능 병목을 효율적으로 파악할 수 있습니다. 이 과정에서 개발 및 운영 환경에서의 성능 최적화 가능성을 탐구하며, 성능 테스트의 중…
안녕하세요. 쿠폰 스쿼드 포덕입니다. 이전 게시글에서는 고객분들의 많은 불편사항이었던 선착순 쿠폰의 개선에 대한 내용이었습니다. 그리고, 이전 작성글 말미에, 대량쿠폰도 같이 개선했다는 작은 문장이 있었습니다. 올리브영 쿠폰은 RabbitMq를 이용한 발급 시스템 구성을 하였고, Rab…
안녕하세요.️ 쿠폰증정스쿼드에서 백엔드 개발 담당하는 어푸입니다! 지난 글에서는 Redis Pub/Sub을 활용한 쿠폰 발급 비동기 처리로 개선된 쿠폰 발급 프로세스를 소개해 드렸는데요. 이번에는 올리브영에서 증정 행사를 어떻게 운영하고 있는지 소개해 보려고 합니다. 아래 목차대로 잘…
PM, 디자이너, 개발자가 함께한 배달의민족 입점 과정 개선기 01. 들어가며 안녕하세요! 세일즈서비스팀은 ‘사장님이 고민하지 않고 신속하게 배달의민족에서 장사할 수 있는 서비스를 제공한다.’는 비전을 바탕으로 배달의민족의 입점할 수 있는 두 가지 방법인 전자계약서와 온라인 입점신청을…
요약: 카카오페이 서버 개발자 엘모는 if(kakaoAI)2024에서 지연이체 서비스를 Kafka 기반으로 재설계한 경험을 발표하고, 이를 기술 블로그에 정리했습니다. RabbitMQ에서 Kafka로의 전환 과정에서 아키텍처 설계, 중복 방지, 성능 최적화 등의 문제를 해결하며 처리 속…
안녕하세요. 토스 Frontend Developer 권선영입니다. 오늘은 토스에서 강력하고 안전한 단계별 상태 관리 라이브러리 @use-funnel 을 어떻게 만들게 되었는지 소개드릴게요. 제 경험이 사내에서 문제의식을 공유하고 해결 방법을 찾으려는 분들께 도움이 되면 좋겠어요. 처음…
여는말 카카오는 서비스의 안정성을 향상하기 위해 데이터센터 및 설비를 지속적으로 확충하는 장기 로드맵을 수립했습니다. 이를 실행하기 위해 여러 지역에 데이터센터를 건립하고, 서버를 점진적으로 분산 배치하고 있습니다. 이러한 전략을 통해서 장애나 재해 발생 시에도 끊김 없는 서비스를 제공…
여는말 카카오에서 운영하는 서비스는 클라우드 위에서 동작하고 있습니다. 안정성과 신뢰성을 높이기 위해, 카카오는 클라우드를 다중화했습니다. 이를 통해 서비스나 데이터센터에 장애가 발생하더라도 신속하게 대응할 수 있으며, 이용자의 소중한 데이터를 손실 없이 안전하게 보관할 수 있습니다.…
- blog [안정성 보고서] 4. 안정성을 위한 품질 관리 여는말 오늘날 이용자들은 빠르고 편리한 서비스를 넘어 안전하고 신뢰할 수 있는 온라인 환경을 원합니다. 카카오는 이러한 요구에 부응하여 서비스 품질 향상과 이용자 신뢰 구축을 위해 다각도로 노력을 기울이고 있습니다. 카카오는…
여는말 카카오는 사용자에게 더 쉽고, 더 편리한 일상을 제공할 수 있도록 노력합니다. 사용자가 언제 어디서든 일상을 누릴 수 있도록 안정적인 서비스를 제공하고자, BCM(업무연속성) 체계를 수립했습니다. BCM 체계는 회사 전반의 업무 및 서비스를 중단할 수 있는 상황을 재난 재해로 정…
여는 말 지난 14년간, 카카오의 서비스는 지속적으로 발전해 왔습니다. 지금 이 순간에도 다양한 서비스를 떠받치는 새로운 시스템이 구축되고 운영되고 있으며, 규모도 점점 더 거대해지고 극도로 복잡해지고 있습니다. 이러한 시스템들이 장애가 발생하지 않도록 개발하고, 이용자에게 1년 365…
Spring Boot 버전업 중 알게된 Java 버전별 캡슐화 정책 강화 자바 모듈 시스템의 변화로 인한 직렬화 문제를 분석하면서 알게된 내용을 공유합니다. 1. 들어가며 안녕하세요. 딜리버리 프로덕트에서 간선 서비스를 개발하고 있는 고산하입니다. 지난 상반기, 컬리에서는 전사적으로 A…
들어가며 안녕하세요, 카카오 분산데이터베이스 조직에서 MongoDB를 운영하고 있는 앤디입니다. 많은 분들이 공감하시겠지만, MongoDB를 운영하다 보면 궁금한 점이 참 많이 생기는 것 같습니다. 그러나 관련 정보를 찾으려 해도 Oracle이나 MySQL만큼 깊이 있는 MongoDB…
1. 들어가며 안녕하세요. 딜리버리 프로덕트에서 간선 서비스를 개발하고 있는 고산하입니다. 지난 상반기, 컬리에서는 전사적으로 AWS MSK의 버전업이 진행되었는데요. 이에 따라 Kafka 클라이언트와의 호환성을 유지하기 위해서 Spring Boot의 버전업이 필요하게 되었습니다. 이번…
안녕하세요. HBase 팀 이욱입니다. 저는 16년간 데이터베이스 엔지니어로 일해 왔습니다. DBA(database administrator)의 업무에는 다양한 작업이 있으며, 그중에서 특히 데이터 마이그레이션은 일상다반사처럼 자주 수행하는 작업인데요. 그럼에도 DBA에게는 언제나 힘들…
안녕하세요. 카카오페이증권 DevOps팀의 스티브입니다. 이번 글에서는 if(kakaoAI)2024에서 발표한 “Kubernetes 지능형 리소스 최적화 (feat. Dr.Pym Project 공유)” 세션의 내용과 함께 발표 시간 상 하지 못했던 이야기들까지 함께 공유하려고 합니다.…
Simple Questions, Big Wins. 간단한 문구에 깊은 철학을 담아낸 <Simplicity24> 가 지난 11월, 뜨거운 관심과 호응 속에 성황리에 막을 열었어요. 21년 처음 시작된 토스의 디자인 컨퍼런스 <Simplicity>는 올해로 3회를 맞이했는데요. 최신 디자인…
카카오는 내부 로그 수집 시스템으로 kemi-log를 운영하고 있습니다. kemi-log는 여러 가지 오픈 소스를 이용하여 구축되었으며, 특히 Fluentd를 메인 컴포넌트로 활용하여 수년간 운영해온 플랫폼입니다. 이 글에서는 Fluentd를 대체하기 위한 마이그레이션 프로젝트를 소개하…
들어가며 링크 복사 안녕하세요. 택시개발팀에서 서버 개발을 담당하는 폰드입니다. 택시개발팀은 승객과 기사 간의 택시 매칭부터 운행 완료까지 필요한 정보를 제공하고 전반적인 흐름을 관리합니다. 우리의 목표는 정확하고 안정적인 주행을 위해 다양한 기능을 개발하고 개선하는 것입니다. 최근에는…
분산 시스템 환경에서 Kafka Consumer 오프셋 이동하기 Spring Kafka 활용한 오프셋 이동 및 메시지 재처리 방법 들어가며 안녕하세요. 컬리 주문플랫폼개발 팀의 이보람입니다. Kafka Consumer를 운영하다 보면 간혹 예기치 못한 문제로 인해, 또는 의도적으로 메시…
지난 6개월 동안 캐치테이블 글로벌은 MAU(월간 활성 사용자)가 두 배 증가했습니다. 이는 영어에서 4개 언어(영어, 일본어, 중국어 간체자 및 번체자)로 확장한 결과입니다. 이 글에서는 캐치테이블이 다국어 서비스 레이어를 구축한 방법과 그 과정에서 발생했던 문제 및 해결책을 소개해…
들어가며 안녕하세요. 컬리 주문플랫폼개발 팀의 이보람입니다. Kafka Consumer를 운영하다 보면 간혹 예기치 못한 문제로 인해, 또는 의도적으로 메시지를 재처리해야 할 때가 있습니다. 이 글에서는 Spring Kafka를 활용하여 오프셋을 이동해 메시지를 재처리하는 방법에 대해…