본문으로 건너뛰기

"backend" 태그 · 33개 게시물

모든 태그 보기

최소한으로 울리는 알림 만들기: 비정상 병원 알림

· 약 9분
박서영
접수예약팀

병원은 진료 중인데 똑닥 앱에서는 접수가 되지 않습니다. 병원 PC와 연결이 끊어졌지만 누구도 상황을 인지하지 못합니다. 유저가 고객센터에 문의한 뒤에야 대응이 시작되기도 합니다. 접수가 비정상적으로 멈춘 상황을 먼저 발견하고 대응할 수 있도록 비정상 병원을 감지하는 알림을 만들었습니다.

접수가 닫혀 있는 병원을 찾는 것만으로는 충분하지 않았습니다. 휴게시간이나 휴진처럼 정상적으로 접수를 중단한 병원은 제외해야 했고, 여러 서버가 같은 병원을 동시에 감지하더라도 알림은 한 번만 발송되어야 했습니다. 무엇을 비정상으로 볼지, 언제 알림을 보낼지, 중복을 어떻게 막을지, 필요한 순간에만 알림이 울리도록 기준을 정한 과정을 공유합니다.

AWS Agentcore와 Strands Agent를 활용한 AI 서버 구축기

· 약 19분
하승오
백엔드팀

똑닥 AI 서버는 병원 리뷰 감성분석, 리뷰 AI 요약, 상담 태그 추천, CS 답변 추천처럼 LLM 추론이 필요한 똑닥의 기능을 한곳에 모아 운영하는 서버입니다. 이 글에서는 이 서버를 AWS Bedrock AgentCore Runtime과 Strands Agents 위에 어떻게 구축하였는지, 그 과정에서 어떤 결정을 내렸고 어떤 문제를 겪었는지를 공유합니다.

사내 인프라 플랫폼 배럭 구축기

· 약 13분
박진홍
DevOps

안녕하세요, 비브로스 DevOps 박진홍입니다.

똑닥 서비스를 운영하다 보면 "토픽 하나 만들어 주세요", "서버 하나 올려 주세요", "이 버킷 권한 좀 주세요" 같은 인프라 요청이 매일 티켓으로 DevOps에 들어옵니다. 하나하나는 어렵지 않지만, 그때마다 운영자가 코드를 고치고 PR을 올리고 배포하는 일을 반복해 왔습니다.

배럭(Barracks) 은 개발자가 이 요청을 직접 신청하고, 운영자가 승인하면 곧바로 배포까지 이어지도록 만든 사내 인프라 플랫폼입니다. 배포 시스템을 새로 만들지는 않았습니다. 이미 운영 중인 ArgoCD(약 400개 Apps 운영)와 Terraform 파이프라인(AWS, Kafka, QueryPie, GitHub, MongoDB)은 그대로 두고, 그 앞에 신청과 승인 단계를 붙여 개발자가 직접 요청할 수 있게 했습니다. 올해 7월, 2주 완성을 목표로 PoC를 시작했고, 지금은 똑닥 서버 배포, Kafka 토픽·ACL, AWS·MongoDB 권한, 배치와 피크타임 스케일까지 포털에서 처리합니다.

이번 글에서는 왜, 어떻게 만들었는지 와 그래서 무엇이 좋아졌는지 를 중점적으로 다루고, PoC부터 현재 진행 중인 고도화 작업까지의 과정을 정리하였습니다.

자가 발전하는 유저 인터뷰 에이전트 개발기

· 약 23분
하승오
백엔드팀

똑닥 AI 모더레이터는 사람 대신 유저 인터뷰를 진행하는 AI 에이전트입니다. 이 글에서는 AI 모더레이터가 어떤 배경에서 시작되었고, 검수자의 피드백이 다음 인터뷰의 전략을 자동으로 다시 만들어내는 "자가 발전" 구조를 어떻게 설계하였는지 공유합니다.

MSA - 원칙, 아키텍처, 그리고 DB 분리

· 약 19분
박진아
백엔드팀

안녕하세요. 비브로스에서 백엔드 개발을 담당하고 있는 박진아입니다.

MSA 전환을 진행하며 정리한 내용을 한 편으로 묶었습니다. 핵심은 7장입니다. 단일 DB에 모여 있던 104개 컬렉션을 무중단으로 도메인별 DB 6개로 분리한 과정을 다룹니다. 앞의 여섯 장은 그 작업의 바탕이 된 이론을 정리합니다 - 왜 MSA인가에서 출발해 원칙, 서비스 경계, 아키텍처 유형, 통신·resilience 패턴, 데이터 일관성 순서입니다.

Claude Code TDD 서브에이전트와 하네스 구축기 — 7개 에이전트, 18종 회귀 평가

· 약 20분
김예림
백엔드팀

들어가며​

안녕하세요. 비브로스에서 백엔드 개발을 담당하고 있는 김예림입니다.

TDD 실무에서 사용한 경험이 있으신가요? 저는 거의 없습니다. 일정압박과 일단 처음의 요구사항이 그대로 유지된적이 거의 드물고 기획과 같이 개발을 하는 방향으로 많이 일했어서 그런지 TDD를 많이 써보지는 못했습니다.

AI와 함께 하는 지금, AI가 만든 결과물이 내가 요구한 테스트에 확실히 통과하는지에 대한 의문에 대한 해답과 테스트가 개발을 이끄는 구조는 분명 필요했고, 그 방식을 AI와 함께 일하는 환경에 맞게 다시 만들어보고 싶었습니다.

이 글은 Claude Code에 TDD를 붙여보겠다는 질문에서 시작해, 7개의 서브에이전트와 그 에이전트들을 검증·통제하는 하네스를 만든 기록입니다. CLAUDE.md 규칙과 Plan Mode를 보다가 서브에이전트로 넘어간 과정, refactorer와 orchestrator가 생긴 이유, 18종 회귀 평가·권한 훅·사이클 메타데이터로 만든 하네스, 그리고 YAML 파일을 import하여 가시성을 높인 대시보드 제작까지 제가 고민한 순서대로 정리했습니다.

예약 시스템 개편기: 우리는 왜 '예약 레고'를 만들었나

· 약 16분
김예림
백엔드팀

들어가며​

안녕하세요. 비브로스에서 백엔드 개발을 담당하고 있는 김예림입니다.

이번 글에서는 병원 예약 시스템을 전면 개편한 경험을 공유하려 합니다. "예약"이라고 하면 단순히 시간을 골라 버튼을 누르는 것으로 끝날 것 같지만, 실제로는 그 이면에 예상보다 복잡한 문제들이 숨어 있었습니다.

감기 진료 10분, 예방접종 5분, 초음파 50분. 진료 항목마다 소요 시간이 다른데, 이것들을 하나의 시간표 위에 빈틈없이 쌓을 수 있을까요? 마치 레고 블록처럼 크기가 다른 조각들을 빈 공간 없이 채워 넣는 것이 이번 개편의 핵심 목표였습니다.

이 글에서는 다음 문제들을 풀어간 과정을 설계 관점에서 다루겠습니다.

  • 진료 항목마다 다른 소요 시간을 어떻게 하나의 시간표에 빈틈없이 쌓을 것인가?
  • 두 사람이 동시에 같은 시간을 예약하면 어떻게 할 것인가?
  • 예약 수가 맞지 않을 때, 원인을 어떻게 추적할 것인가?

똑쿼리 고도화 일대기

· 약 17분
하승오
백엔드팀

똑쿼리는 전사 데이터를 LLM을 통해 조회할 수 있는 서비스입니다. 여기서 전사 데이터는 단순한 데이터 웨어하우스의 수치를 넘어서, 프로젝트 문서, API 문서, 사내 규정까지 포괄하는 개념입니다. 이 글에서는 똑쿼리가 어떤 배경에서 탄생했고, LangGraph 도입과 함께 어떻게 고도화되었는지를 공유합니다.

EKS 1.32 업데이트 그리고 새로운 업데이트 방식

· 약 11분
박진홍
DevOps

안녕하세요, 비브로스 DevOps 박진홍입니다.

23년도에 EKS 업데이트 방식을 소개한 적이 있는데, 어김없이 찾아온 EKS 1.29버전의 지원 종료로 인해 업데이트를 진행해야 했습니다.

기존 CDK를 통해 EKS를 배포하고 In-place 업데이트하던 방식에서 EKSCTL을 통한 Blue-Green/Record 변경 방식으로 운영하다가 약 2년이 지나 해당 업데이트의 문제점을 파악하고 새로운 업데이트 방식을 검토하고 도입하기로 한 여정을 소개하고자 합니다.

이번 글에서는 EKS 업데이트시 고려했던 부분 과 도입 과정 을 중점적으로 다루고, 똑닥 인프라의 고도화 과정 을 일부 추가하여 작성하였습니다.

테스트 코드 작성 가이드(근데 이제 Jest를 곁들인)

· 약 22분
김예림
백엔드팀

안녕하세요, 비브로스에서 백엔드 개발자로 일하고 있는 김예림입니다.

개발 과정에서 이제는 테스트 코드가 필수처럼 여겨지고 있지만, 여전히 어렵고 멀게 느껴지는 경우가 많습니다. 저 역시 테스트 코드를 작성하면서 내가 쓰고 있는 기법의 정확한 의미나 스타일을 잘 알지 못하거나, 어느 정도로 작성해야 할지 감이 오지 않아 혼란스러웠던 경험이 많았습니다. 이런 경험들이 쌓이다 보니 점점 테스트 코드의 필요성도 희미해지고 귀찮고 불필요하게 느껴질 때도 있었습니다.

그래서 이번 글에서는 저와 비슷한 경험을 하신 분들을 위해 테스트 코드 작성 가이드를 준비해보았습니다. 이 글은 방대한 이론서처럼 어렵게 쓰인 문서가 아니라, 가볍게 읽으며 기초와 목적성을 다질 수 있는 내용을 담았습니다. 글을 읽고 테스트 코드 작성의 감을 잡아보고, 더 궁금한 점이 생기면 스스로 찾아보게 되는 출발점이 되었으면 합니다.

여기에 Jest를 살짝 곁들였으니, 맛있게 읽어주세요! 😊

나야

ROP Pattern

· 약 10분
고윤호
백엔드팀

안녕하세요. 비브로스 백엔드 개발자 고윤호입니다.

이번에는 이름은 낯설지만 막상 들어보면 친숙한 개념인 ROP Pattern을 소개하고 어떻게 사용하며 어떤 장단점이 있는지 함께 얘기해보고자 합니다.

Argo Events 도입기

· 약 9분
박도준
백엔드팀

들어가며​

안녕하세요, 비브로스에서 DevOps 엔지니어로 일하고 있는 박도준입니다.

최근 비브로스에 새롭게 합류하여 온보딩 기간을 거쳐 첫 업무를 맡게 되었습니다. 해당 업무는 Argo Events를 사내에 도입하는 것이였습니다. 이번 글에서는 "왜" Argo Events를 도입하는지와 "어떻게" 구성하고 사용하는지 공유드리려 합니다.

AWS Node Auto Scaler Karpenter 도입기

· 약 9분
박진홍
DevOps

안녕하세요, 비브로스 백엔팀에서 인프라를 맡고 있는 박진홍입니다.

23년 상반기 EKS Blue-Green 업데이트에 이어 Karpenter 도입기를 소개해드리고자 합니다.

기존 AWS Cluster AutoScaler를 사용하였지만, 스파크성 트래픽시 노드 스케일링 속도에 문제가 있었고 비용 최적화를 위해 Karpenter 도입에 대해 고민하였습니다.

시작하기전 Kubernetes 엔지니어들의 많은 고심이겠지만.. 인프라의 변경사항은 "낭만이 아니라 헬이다!!!" 라는 말과 같이 유사한 영상이 있어 공유드립니다!

웃으면서 봐주시면 감사하겠습니다. 😂

Gitops를 활용한 AWS EKS Blue-Green 업데이트 적용기

· 약 7분
박진홍
DevOps

안녕하세요, 비브로스 백엔드팀에서 인프라를 맡고 있는 박진홍입니다.

비브로스에서는 Amazon Cloud의 EKS Service를 사용하고 있고, 당시 최상인 1.22 버전의 EKS를 사용환경에 적용하였습니다. 똑닥 서비스들의 배포되고 안정적인 운영을 이어가던 도중 심판의 날이 다가오게 되었습니다.

EKS 최신 버전을 당시 구성하여도 약 3개월 1번씩 EKS 버전이 새로 나오게 되며, 약 1년 뒤에는 새로운 버전으로 업데이트를 진행해야 합니다.

저희는 기존 사용 중인 클러스터를 업데이트 하는 방식(In-place 롤링 업데이트)가 아닌, Gitops를 활용한 Blue-Green 방식으로 클러스터 업데이트를 진행한 방법에 대해 소개하려고 합니다.

Node.js로 Firebase Dynamic Link 다루기

· 약 7분
김현섭
백엔드팀

안녕하세요, 비브로스 백엔드팀에 새로 합류하게 된 김현섭입니다.

비브로스 백엔드팀은 신규 입사자를 위한 온보딩 프로세스가 준비되어 있고, 해당 과정에는 기술 스택 학습 및 모의 프로젝트 등 다양한 과정이 포함되어 있습니다.

저는 모의 프로젝트 대신 서버에 Dynamic Link 관련 API를 추가하는 간단한 업무를 맡게 되었고, 이 글을 통해 해당 과정에서 사용한 Dynamic Link를 소개하려고 합니다.

지금은 맞고 그때는 틀리다 (기술 블로그 개편 여정)

· 약 5분
허민지
백엔드팀

안녕하세요 백엔드팀 허민지입니다.

해당 글은 똑닥 기술 블로그 개편 과정에 대한 기록입니다. 1) 블로그 개편이 불가피했던 이유, 2) 여러 플랫폼과 프레임워크 비교, 3) 블로그를 재정비하며 개선한 점을 상세하게 작성해 보았습니다. 글이 도움이 되길 바라며 가벼운 마음으로 한 번 읽어봐 주시기 바랍니다.

공공 API 크롤러 개발기

· 약 5분
배정석
백엔드팀

안녕하세요, 비브로스 백엔드 팀에서 일하고 있는 배정석이라고 합니다. 저희 백엔드 팀은 신규 입사자가 들어왔을 때, 기본적인 입사 가이드를 진행한 후 마지막으로 사내 템플릿을 이용하여 간단한 토이 프로젝트를 진행하는데요. 본래 근무일로 5일 예정이던 토이 프로젝트를 8일째 하고 있는 것에 대한 변명으로 제 토이 프로젝트에 대한 글을 적기로 하였습니다.

ifify: 코드의 본질에 집중하는 기술

· 약 6분
고윤호
백엔드팀

제목부터 어그로 가득하고 조금은 오만하기까지 한 이 글을 읽으실 때는 진지함을 조금 덜고 가볍게 훑고 지나가 주세요

ifify는 비브로스에서 공개 배포한 node.js 라이브러리입니다. 이 포스트에서는 ifify 개발 동기와 코드에 대한 접근 방식에 대한 의견을 나누어 보고자 합니다. ifify에 대한 자세한 내용 및 사용법은 npm 페이지에서 확인해보시길 바랍니다.

TSOA로 HTTP API 개발하기

· 약 7분
허준석
백엔드팀

안녕하세요, 비브로스 백엔드 팀에서 백오피스 개발자로 일하고 있는 허준석입니다. 최근에 비브로스에 입사해 비브로스 백엔드 팀이 일하는 방법을 배우며 TSOA라는 라이브러리를 알게 되었습니다. 타입스크립트로 NodeJS API 서버를 개발해 본 분들이라면 고민했을 몇 가지 문제들을 TSOA가 우아하게 해결하고 있다고 생각되어서 짧은 글로 공유해보려 합니다.

5개월차 뉴비의 코드 리뷰

· 약 7분
허민지
백엔드팀

안녕하세요 백엔드팀 허민지입니다.

시간이 벌써 빠르게 흘러 비브로스에 입사한 지 약 5개월이 되어갑니다. 아직 개발자라고 자신을 소개하기에는 부끄러운 실력이지만 어느새 본격 신입 생활에 접어들었습니다. 그동안 자바스크립트와 타입스크립트를 다루며, 팀 장기 프로젝트에 투입되고 일감을 할당받아 작게나마 똑닥 서비스에 기여하고 있습니다.

마이스터고 출신 신입 .NET 개발자가 비브로스에서 일하는 방법

· 약 7분
김경훈
백엔드팀

안녕하세요 비브로스 R&D부 백엔드 팀에서 .NET 개발자로 일하고 있는 김경훈입니다. 이제 입사한지 약 3주 정도가 지났는데 입사 전부터 지금까지 제가 신입 개발자로 비브로스에 합류해 적응해 나가는 과정을 얘기해 보려고 합니다. 아직 3주 정도밖에 되지 않아 이런 글을 쓰는 게 이른 감도 없지 않아 있지만 🤣 열심히 작성해 보겠습니다.

비전공자 부트캠프 출신 신입 개발자의 두달 회고록

· 약 4분
허민지
백엔드팀

안녕하세요. 백엔드팀 허민지입니다.

저는 미술대학을 졸업한 비전공자입니다. HTML과 CSS에 대한 관심을 시작으로 코딩 콘텐츠를 접했고, 우연히 노마드 코더 번역 장학생으로 활동하며 백엔드의 매력을 느끼게 되었습니다. 그렇게 저는 커리어 전환을 결심하며 부트캠프 백엔드 교육 과정을 등록했습니다. 부트캠프를 진행하며 node.js의 매력에 빠졌고, 백엔드 개발자로 비브로스에 합류하게 되었습니다.

잔디 날씨 알림 봇 개발기

· 약 10분
서민수
백엔드팀

안녕하세요. R&D부 백엔드팀 서민수입니다. 저희 백엔드팀에는 신규 입사자가 들어왔을 때 기본적인 입사 가이드를 진행하고 나서 마지막으로 사내 템플릿을 이용해 간단한 토이 프로젝트를 직접 만들어보는 시간이 있습니다. 이 시간에 제가 개발한 날씨 알림 봇 개발과정에 대해 알아보겠습니다.

AWS ECS 살펴보기

· 약 5분
안정민

안녕하세요. 접수/예약 서비스 개발 및 인프라를 담당하고 있는 백엔드팀 안정민 입니다. 저희 똑닥에서 현재 일부 서비스를 제외하고 주로 사용 중인 AWS의 컨테이너 오케스트레이션 서비스 ECS(Elastic Container Service)에 대해서 살펴보려고 합니다.

AWS SAM CloudFormation

· 약 5분
김광호

비브로스 제품개발팀 김광호입니다.

똑닥에서는 AWS Lambda를 적극 활용하고 있습니다. 현재 똑닥에서 사용 중인 람다 함수만 197개 정도 됩니다. 그렇다고 사용자에게 직접적으로 제공하는 서비스에서 사용하는 것은 아닙니다. 상시적으로 서버를 유지할 필요가 없는 간단한 배치 처리, CSV 파일 생성, 푸시 알림 등에서 주로 사용하고 있습니다. (처리 시간이 오래 걸리는 배치 작업은 AWS Batch, Elastic Map Reduce, Atlas DataLake를 활용하고 있습니다.)

레디스를 활용한 병원 찾기 서비스 API 개발

· 약 5분
김광호

비브로스 제품개발팀 김광호입니다.

현재 똑닥은 병원 접수/예약 서비스를 메인으로 하고 있지만 처음에는 병원 찾기 서비스로 런칭했습니다. 접수/예약을 하기 전 병원부터 찾아야 하니 여전히 병원 찾기 기능은 사용자들이 가장 많이 사용하는 기능 중 하나입니다.

Yeoman 으로 프로젝트 찍어내보기

· 약 10분
이준형
백엔드팀

안녕하세요. 항상 서문이 힘드네요. 처음이라 가벼운 글로 시작해보고자 합니다.

저같은 월급루팡이 아니라면 다들 프로젝트를 여러 개 만들어보셨을텐데요. 프로젝트를 여러 개 만들다보면 특수한 형태가 아니고서는 공통적인 요소들을 발견하게 됩니다. 폴더구조, DB커넥션, 의존성설정, 로그인, 띄어쓰기, 깃 설정 등등... 개인이 공부를 위해 이것저것 해보는 게 아닌 이상, 특히 MSA(Micro Service Architectures)를 지향하는 회사라면 작은 기능 하나하나에도 똑같이 생겨먹은 프로젝트를 여럿 만들게 될겁니다.

백엔드팀을 소개합니다

· 약 3분
정종석
백엔드팀

비브로스 기술 블로그를 드디어 오픈 했습니다.!
기술공유 때 블로그 뚝딱 만들기를 했더니 결국 제가 만들게 되었네요.

첫번째 글이니 만큼 뭔가 멋지게 쓰고 싶었지만 글 재주가 없어서 무얼 쓸까 하다가 고민끝에
간략한 회사 소개와 사용하는 기술들, 저희팀에 대하여 먼저 이야기를 시작해 볼까 합니다.