전체 글
2025.12.10 사내 발표 - 들쭉날쭉한 AI 품질, 팀 SSOT 문서로 해결하기
2025.12.10 사내 발표 - 들쭉날쭉한 AI 품질, 팀 SSOT 문서로 해결하기
2025.12.27최근 '팀 차원에서 시스템적으로 AI 품질을 어떻게 올릴 수 있을까?'에 대한 고민과 해결 방법에 대해 사내 발표를 했다. 되도록 개인의 역량에 의존하지 않고, 팀 차원에서 AI를 활용하여 시스템적으로 안정적으로 서비스를 운영할 수 있는 방법론에 대해 소개한다.개발팀의 고민: AI 품질 문제AI를 활용한 개발에서 가장 중요한 것은 '속도'가 아니라 '정확한 방향'입니다.AI의 구조적 한계프롬프트 의존성개발자는 작업을 시작하기 전, 스스로 과거의 히스토리를 파악하고 도메인 정책을 검토합니다.반면, AI는 사용자가 입력한 프롬프트와 연관된 코드만 읽습니다. 스스로 과거 작업이나 도메인 지식을 찾지 못하고, 오로지 입력된 프롬프트에만 의존합니다.불확실한 요구사항(Gray Zone)의 임의 추론명확하지 않은 요..
10배 빠른 분산 시스템 디버깅: Micrometer Tracing으로 Trace ID 통합하기
10배 빠른 분산 시스템 디버깅: Micrometer Tracing으로 Trace ID 통합하기
2025.11.19분산 추적으로 마이크로서비스의 복잡한 로그를 단 하나의 Trace ID로 추적하세요목차개요: 분산 추적의 필요성Spring Micrometer Tracing 핵심 이해주요 환경별 Trace ID 활용로그 통합 및 실전 활용실무 활용 꿀팁최종 구현 및 트러블슈팅1. 개요: 분산 추적의 필요성배경이런 경험 있으신가요?시나리오 1: Slack 장애 알림#server-error 채널🚨 [결제 API 처리 실패]Error: Payment gateway timeoutTime: 2025-11-19 10:30:45개발자: (OpenSearch/Kibana 접속)개발자: (시간대 검색)개발자: (에러 키워드 검색)개발자: (수 많은 로그 중 관련 로그 찾기... 😓)시나리오 2: 동시 실행 Batch Job 혼돈[0..
@Transactional만으로 DB 읽기/쓰기 분산하기 (Writer/Reader Datasource 자동 라우팅)
@Transactional만으로 DB 읽기/쓰기 분산하기 (Writer/Reader Datasource 자동 라우팅)
2024.10.31들어가며트래픽이 증가하면서 데이터베이스 부하 관리는 모든 백엔드 시스템이 직면하는 과제입니다. 특히 읽기와 쓰기 작업의 비율이 불균형할 때, 단일 데이터베이스 구조는 병목 지점이 됩니다.이 글에서는 Writer/Reader Multi-DataSource 라우팅 아키텍처를 통해 이러한 문제를 해결한 경험을 공유합니다. Spring Boot 환경에서 @Transactional(readOnly=true) 어노테이션만으로 자동으로 읽기/쓰기 데이터베이스를 분산하는 방법을 소개합니다.문제 상황기존 시스템은 단일 Writer DataSource만 사용하여 모든 조회/변경 쿼리를 처리했습니다// 기존 구조: 모든 쿼리가 Writer DB로@Transactional(readOnly = true)fun findProdu..
[월간회고] 2024년 9월, 생각 정리와 루틴
[월간회고] 2024년 9월, 생각 정리와 루틴
2024.10.02지난 달 되돌아보기지난 달 액션1. 저녁 루틴에 '독서' 추가하기 (= 수면을 위한 저녁 루틴 가꾸기)저녁 루틴에 독서를 넣은 후로 책 읽는 빈도가 엄청 늘었다. 책 읽기가 익숙해져서 그런지 저녁시간 뿐만 아니라 대중교통 이용할 때에도 많이 읽게 된다.저녁에 책을 읽고 나면 비교적 잡생각도 줄어들고 머리가 조용해지는 것 같다.아직 저녁 루틴에 넣은 지 얼마 안되서 빠르게 잠들기에 효과적인지는 좀 더 지켜봐야할 것 같아효과가 조금 있긴 한데, 침대에 누워서 생각이 시작될 때도 있어서 주의가 필요함!2. 주 3회 운동제대로 워킹한 것 같다! 일정이 있었던 주만 빼고 주 3회 운동 했다!되도록 필라테스도 주 3회 신청하려고 노력했는데, 예약이 치열할 때가 있어서 다른 운동도 병행해야할 것 같다.다음 달에는 클..
[소프트웨어 아키텍처 101] 13. 서비스 기반 아키텍처 스타일
[소프트웨어 아키텍처 101] 13. 서비스 기반 아키텍처 스타일
2024.09.14인상깊은 부분분산 시스템에서의 데이터 무결성BASE 분산 트랜잭션라는 새로운 개념의 존재를 알게 됨분산도가 높은 아키텍처에서는 최종 일관성 기반의 BASE 분산 트랜잭션 활용. 이 기법은 최종 일관성 기반이므로 ACID 트랜잭션 레벨의 데이터 무결성은 지원하지 않음최종 일관성이란 별도로 분리된 배포 단위에서 처리된 데이터를 미리 알 수 없는 어느 시점에 모두 일관된 상태로 동기화한다.확장성, 성능, 가용성을 얻는 대가로 데이터 일관성과 무결성을 희생하는 트레이드오프인 셈이다트랜잭션 사가오케스트레이션 및 코레오그래피DB 분리 시 도메인 서비스 간 상호 통신 방지와 데이터베이스 간 중복 데이터 방지를 고려서비스 기반 아키텍처에서 단일 모놀리식 데이터베이스를 개별 데이터베이스로 분리할 수 있고, 마이크로서비스..
[월간회고] 2024년 8월, 삶의 질(식단과 수면)
[월간회고] 2024년 8월, 삶의 질(식단과 수면)
2024.09.12지난 달 되돌아보기지난 달 액션1. 실수를 통해 배우자! 체크리스트 만들기!여러 개 모아봤음 ㅎㅎ 조만간 팀원들에게 공유하면서 더 취합해봐야겠다!2. 잠들기 전 일기로 하루에 있었던 일을 적자하루 마무리를 통해 기억력을 높이고 잠들기 전 잡생각을 떨쳐내기 위함이었는데, 수면 측면에서는 효과적이지는 않았다. 한 달 중 10일 정도 일기 쓴 것 같은데, 하루를 되짚어보는 건 여러모로 좋은 것 같아서 루틴 유지하려고 한다.근데 야근이나 약속이 있으면 저녁 루틴을 잘 안하게 되서, 저녁 루틴은 optional 성격이 있는 것들만 넣어놔야겠다.3. 주말 활용하기 - 주말 아침도 평일과 동일한 루틴을 하되, 블로그 포스팅이나 이력서 갱신 같은 Task를 하는 날로 활용하자!쉽지 않다. 결국 주말을 야무지게 활용한 ..
[소프트웨어 아키텍처 101] 12. 마이크로커널 아키텍처 스타일
[소프트웨어 아키텍처 101] 12. 마이크로커널 아키텍처 스타일
2024.09.07인상깊은 부분보험 청구처럼 비즈니스 케이스가 복잡한 경우에도 사용이 용이하겠다요약마이크로커널 아키텍처(microkernel architecture) 혹은 플러그인 아키텍처(plug-in architechture)제품 기반 어플리케이션(단일 모놀리식 배포 단위로 패키징해서 다운로드 및 설치가 가능하며, 보통 고객 사이트에서 서드파티 제품으로 설치되는)에 적합비제품(nonproduct) 고객 비즈니스 어플리케이션에서도 많이 사용예시) IDE와 같은 텍스트 에디터예시) Payment Processing이 코어 시스템을 나타내는 도메인이라면, 결제 수단(신용카드, 페이팔, 선불 카드 등)이 플러그인 컴포넌트12.1 토폴로지마이크로커널 아키텍처 스타일은 코어 시스템과 플러그인 컴포넌트라는 두 가지 아키텍처 요소로..
[소프트웨어 아키텍처 101] 11. TODO
[소프트웨어 아키텍처 101] 11. TODO
2024.08.31
[소프트웨어 아키텍처 101] 9. 아키텍처 스타일 기초
[소프트웨어 아키텍처 101] 9. 아키텍처 스타일 기초
2024.08.10인상깊은 부분/내 생각실무에서 순수하게 모놀리식을 쓰는 경우가 많을까?s3, serverless, firebase 등을 활용하는 순간 내 시스템 배포는 모놀리식 이어도 전체적인 모습은 분산 아키텍처를 사용하게 되는 거 아닐까?이 경우 분산아키텍처에서 고려해야하는 요소들을 제3자(네트워크를 이용하는) 연동 파트에서도 고려해야한다.비중의 문제인걸까? 완전한 모놀리식은 보기 어려운 것 같다.으음! 아키텍처 차원에서는 모놀리식이라고 보는게 맞으려나? 내가 컨트롤할 수 있는 영역을 어떻게 바라보고 다루느냐도 중요하니까..분산 아키텍처에서의 트랜잭션최종일관성을 기반으로 트랜잭셔널 사가와 BASE 기법을 사용한다.확장성, 성능, 가용성을 얻는 대가로 데이터 일관성과 무결성을 희생하는 트레이드오프인 셈이다요약아키텍처 ..
[월간회고] 2024년 7월, 아침 루틴 가꾸기 성공 🌱
[월간회고] 2024년 7월, 아침 루틴 가꾸기 성공 🌱
2024.08.03지난 달 되돌아보기지난 달 액션1. 리듬감 있는 일상 만들기일찍자고 일찍 일어나려고 노력중이다!최대한 규칙적인 생활을 할 수 있도록 재택하는 날짜도 고정하려고 한다.그리고 8시 기준으로 재택 시에는 바로 출근을 하거나, 사무실 출근하는 날이면 출근 준비를 하는 것으로 기준 삼았다.수면 패턴이 정리되서 좀 더 일찍 일어나게 되면 아침 시간을 더 늘릴 수 있을 것 같다!2. 변수에 영향받지 않는 여유시간 확보하기아침 시간 1시간 30분 확보!요즘 일찍 자고, 알림 2번 이내로 정신이 바로 깬다. 일찍 잠든 날에는 몸도 개운에서 더 잘 일어나게 된다.종종 잠을 설친 날은 뭔가 피로하고 의욕이 없어서 루틴을 스킵하게 되지만, 잘 자고 일어난 날은 아침 시간이 여유롭다.아침에는 루티너리 앱으로 이런 루틴을 실행하..
[반기회고] 2024년 상반기, 리듬감 있는 일상을 만들자
[반기회고] 2024년 상반기, 리듬감 있는 일상을 만들자
2024.07.16주요 이벤트반셀프 인테리어작년 12월 그리고 올해 1월, 2월은 인테리어에 몰입해서 살았다.평일 4~5시간, 주말에는 거의 종일 알아봤던 것 같다.이때는 즐거운 마음으로 인테리어에 빠져서 살았던 것 같다.여행제주도 2박 3일, 방콕 3박 5일혈당 관리저번 건강검진때 공복혈당이 97인가? 높게 나왔었다.아마 아이스크림을 매일 1~2개씩 먹었기 때문이겠지...근력 운동을 해야 근육을 만들면서 당을 소비할텐데 크흠...반 년 정도 군것질 자제하고 거꾸로 식단 하니까 혈당 많이 낮게 나왔다!혈당관리 성공성공!그리고 당을 멀리하니까 이제 군것질하면 너무 달게 느껴진다.걷기와 러닝엄마랑 1시간 걷기를 의식적으로 하고 있다.3월부터 주에 1~2회 정도 꾸준히 하고 있는듯!그러다가 동료의 영업 겸 요즘 유투브 추천 알..
[소프트웨어 아키텍처 101] 8. 컴포넌트 기반 사고
[소프트웨어 아키텍처 101] 8. 컴포넌트 기반 사고
2024.07.11인상깊은 부분[[콘웨이 법칙]]조직구조나 의사소통 방식이 시스템에 묻어난다는 현상, 콘웨이 법칙은 살아있다. “조직문화부터 MSA까지” | 요즘IT최상위 아키텍처를 분하하는 두 가지 방법기술 분할(ex: 레이어드, Common/Local)과 도메인 분할(ex: DDD, 모듈러 아키텍처)아키텍트는 개발자, 비즈니스 분석가, 도메인 전문가와 협력해서 시스템을 어떻게 분할할지(즉, 기술 분할할지, 도메인 분할할지) 결정하고 그에 따른 초기 컴포넌트를 설계한다.컴포넌트 세분도[[아키텍처 101 8. 컴포넌트 기반 사고#컴포넌트 세분도]]적절한 크기/단위의 컴포넌트 식별은 어려운 것 같다.아키텍처 스타일에 따른 컴포넌트 식별 방법 케미p154 [[아키텍처 101 8. 컴포넌트 기반 사고#8.6 컴포넌트 설계]]식..