분류 전체보기 366

[MSA, Logging] Nodejs 애플리케이션에서 request ID를 correlation ID로 사용하는 법

Background MSA에 대한 로깅과 모니터링은 큰 고민거리이다. 서로 다른 개별 마이크로서비스에서 발생하는 로그를 연결 지어 트랜잭션의 처음부터 끝까지 순서대로 추적해 내는 것은 매우 어렵다. MSA 환경에서 '의미 있는 로깅' 시스템을 구축하려면 어떻게 해야할까? 여기서 '의미 있는 로깅'이란 개발자뿐만 아니라 우리 서비스를 사용하는 관리자나, 사내 비개발직군의 다른 팀원들(가령 우리 서비스의 사용율과 에러율, 비용이 비싼 AI 분석 요청의 횟수.. 등의 데이터 분석이 필요한 사업개발팀) 모두가 쉽게 찾아볼 수 있고, 수집되고 가공시킨 로그 데이터를 이해하기 쉬운 로그를 말한다. What do you need to build a meaningful logging system in MSA? Note..

Dev/DevOps, Infra 2023.07.09

[Lecture] DDD 기반 MSA 모델링 - Intro, Strategic Design, Event Storming

Intro 5월 21일 부터 31일 까지 약 10일간 인프런의 강의를 들으며 도메인 주도 설계(Domain-Driven Design; DDD) 에 대해서 배웠다. 이를 하게 된 계기는 내가 근무하고 있는 의료 인공지능 회사인 Deep Bio는 ‘의료’, ‘AI’ 라는 복잡하고 전문적이 도메인의 비즈니스 문제를 의료 인공지능 소프트웨어로 해결하고자 한다. 따라서 도메인을 이해하는 것이 개발의 첫 걸음인 경우가 많다. 실제로 종종 사내 Medical Officer님께서 병리에 대한 생물학적 도메인 지식의 강의를 해주시기도 한다. 또한 AI ML 알고리즘을 구현하시는 연구팀, 실제 제품 개발을 담당하는 디자이너, 개발팀, 의료 도메인 전문가이신 Medical Officer, 의사분들, BD팀 등 많은 사람들의..

Dev/SW Engineering 2023.05.31

[AWS, Post-mortem] AWS SQS visibility timeout 에러와 이별한 방법 (feat. 장애 부검)

최근 사내 블로그에 글을 썼다. 여기 그 링크를 첨부한다. #7. AI 분석 장애 부검 안녕하세요. Deep Bio Backend Engineer 정현정입니다.👩‍💻 medium.com 위 글과 연관된 블로그 글: 1 [AWS, Post-mortem] EC2 리소스 과다 사용으로 인한 인스턴스 상태 확인 실패 문제와 SQS dead-letter queues 2 [Dev Culture] 내가 경험하고 배운 Project Post-mortem 문화 3 [AWS] SQS event - Lambda - Slack 알람 - PostgresQL 쿼리 실행 1) Serverless framework를 사용해서 local에서 개발하고 cli로 쉽게 배포하기(aws-nodejs-typescript사용) 4 [AWS] S..

Dev/DevOps, Infra 2023.05.13

[MLOps] Data Management (data version control) - DVC

최근 회사에서 MLOps 의 필요성이 많이 대두되고 있어서 (ex. 연구시 AI model에 dependency가 있는 package들의 관리가 필요한데, 이를 개발팀에서 좀 도와줬으면 한다.. 등) 패스트캠퍼스의 강의 내용과 제가 이해한 바를 정리한 글입니다. 관련 내용과 실습한 code는 https://github.com/Gracechung-sw/mlops-practice 에서 확인하실 수 있습니다. Data Management에 있어서 강의 외에도 실제 실습에 도움이 많이 되었던 글은 MLOps Basics [Week 3]: Data Version Control - DVC 입니다. 아래 글에서 인용 박스 안에 적힌 내용은 강의가 아닌 실제 현업 경험 중 연관되어 생각난 것들을 적어둔 것입니다. In..

MLOps 2023.04.30

[오늘, 또 일을 미루고 말았다] 당신은 신뢰할 수 있는 사람, 행복한 인생을 사는 사람

작년 전사적으로 일정 이슈가 많았을 때여서, 코로나에 걸렸는데도 tile processor 구현 일정에 스트레스를 받고 있을 때 소프트웨어 원칙 만들기 에서 "프로그래머에게 요구되는 것은 100점이 아닌 80~90점짜리 프로그램을 기한 내에 완성하는 일이다.” 글을 읽고 많은 부분을 공감하였다. 이 말이 나온 책이 윈도우 95의 프로그래머이신 "나카지마 사토시" 님이 저자인 이고, 이 책을 읽고 중요하다고 생각한 부분을 남기고 중간중간 떠오른 생각을 정리했다. 책의 내용은 인용 박스 로 구분하였다. 0. Intro. 시간 관리의 필요성. 독일의 문호 괴테는 말했다. “아는 것만으로는 충분하지 않다. 활용해야 한다. 의욕만으로는 충분하지 않다. 실행해야 한다.” 그는 갑자기 치고 들어오는 일이 생길 가능성..

[MSA, Monitoring] Kubernetes Monitoring with Prometheus, Grafana

관련 코드는 https://github.com/Gracechung-sw/kubernetes-practice/tree/main/k8s-monitoring 에서 확인하실 수 있습니다. 1. Kubernetes monitoring 1) node - application 의 관계: 1:1 -> 1:N node와 application의 관계가 더이상 1:1 이 아니라 node에는 많은 application이 scheduling될 수 있다. 그래서 무엇을 모니터링 해야하는지 설정할 수 있어야 하고, 모니터링 시스템이 자동으로 감지하고 metric을 수집할 수 있도록 pull-based 모니터링이 사용되고 있다. 2) push-based monitoring vs pull-based monitoring Push-bas..

Dev/DevOps, Infra 2023.03.25

2022년 회고 - 회사, 스터디, 사이드프로젝트, 개발 외

올해는 회사, 스터디, 사이드 프로젝트, 개발 외 적인 것으로 2022년을 정리해보고자 한다. 회고란 사전적 의미로 '뒤를 돌아봄', '지나간 일을 돌이켜 생각함'. 정해진 기간 동안 해왔던 일들에 대해 돌아보면서 문제점이나 잘한 점을 찾아내어 다음 작업에도 좋은 점은 계승하고, 아쉬웠던 점들은 다른 방식을 시도해 끊임없이 개선을 추구하는 것이다. from https://bit.ly/3FLRHjY 1. 회사 1) 의지하던 유능한 동료들의 퇴사 올해 초부터 2분기까지 개발팀에서 내가 많이 의지하던 유능한 동료분들의 퇴사가 있었다. 그때의 나는 아직 1년을 조금 넘긴 병아리 삑삑이 주니어 개발자였기 때문에 당시만 생각하면 아직도 막막함, 두려움, 아쉬움,.. 여러 가지 감정으로 힘이 쭉 빠진다. 그 시기 쯤..

Diary/Y2022 2022.12.25

[Python] Private PyPI Server 세팅 및 upload and install packages

TL;DR Private PyPI Server 세팅 후 package 업로드 및 설치 사용방법에 대해서 정리해보는 글입니다. 아래의 모든 실습에 해당하는 코드는 https://github.com/Gracechung-sw/python-namespace-package-sample 에 있으며 README를 참고하실 수 있습니다. 가장 많은 도움이 된 자료는 https://testdriven.io/blog/private-pypi/ 입니다. Background 크고 복잡하며 확장성을 고려한 소프트웨어는 여러 모듈로 분리 될 수 있고, 각각 ownership을 가지고 주도적으로 개발하는 개발자가 다를 수 있다. Use Case를 생각해보면(use case라고 적고, 내가 현업에서 하고 있는 일이라고 읽는다 ㅎㅎ) ..