Skip to content

Comments

소프트웨어 아키텍처 The Hard Parts sprint 4 - 김종필#610

Open
jongfeel wants to merge 4 commits intomainfrom
607-소프트웨어-아키텍처-the-hard-parts-sprint-4-chapter-8-9-총-70페이지-2026-02-20

Hidden character warning

The head ref may contain hidden characters: "607-\uc18c\ud504\ud2b8\uc6e8\uc5b4-\uc544\ud0a4\ud14d\ucc98-the-hard-parts-sprint-4-chapter-8-9-\ucd1d-70\ud398\uc774\uc9c0-2026-02-20"
Open

소프트웨어 아키텍처 The Hard Parts sprint 4 - 김종필#610
jongfeel wants to merge 4 commits intomainfrom
607-소프트웨어-아키텍처-the-hard-parts-sprint-4-chapter-8-9-총-70페이지-2026-02-20

Conversation

@jongfeel
Copy link
Member

Notice

제가 pull request를 올리는 오늘 까지는 다른 분들도 pull request 해 주셔야 리뷰가 가능합니다.

Short review

설날 연휴 기간이었지만 어떻게 밤에 시간을 내서 책을 읽고 정리를 하긴 했습니다.
어려움이 있었지만 되긴 되네요.

또 제가 여태까지 책 읽으면서 감동받았다는 말을 세 번째 하는 것 같은데
내용을 쉽게 설명해주는 것도 있었지만 이해할 수 있게 빌드업을 해서 설명을 해준다는 느낌을 또 받았습니다.
비유를 하자면 잘 차려진 밥상을 받아서 먹어보니 맛있는게 이런 느낌이구나로 이해되는 느낌이었습니다.

@jongfeel jongfeel self-assigned this Feb 18, 2026
@jongfeel jongfeel added 2026 Software Architecture: The Hard Parts 소프트웨어 아키텍처: The Hard Parts, 분산 아키텍처를 위한 모던 트레이드오프 분석 labels Feb 18, 2026
@github-actions
Copy link

우측에 있는 Projects, Milestone, Development를 확인 후 할당 해주세요~! 🙇

@gemini-code-assist
Copy link
Contributor

Summary of Changes

Hello @jongfeel, I'm Gemini Code Assist1! I'm currently reviewing this pull request and will post my feedback shortly. In the meantime, here's a summary to help you and other reviewers quickly get up to speed!

이 Pull Request는 "소프트웨어 아키텍처 The Hard Parts" 책의 8장과 9장에 대한 저자의 독서 노트 및 리뷰를 추가합니다. 8장에서는 코드 재사용 패턴과 공통 고객 정보 관리 방안에 대한 깊이 있는 고찰을 제공하며, 9장에서는 이벤트 기반 패턴과 분산 트랜잭션에서의 에러 처리 및 수동 롤백 경험에 대한 논의를 제안하여, 복잡한 아키텍처 개념에 대한 이해를 돕고 실제 적용 사례에 대한 통찰을 공유합니다.

Highlights

  • 코드 재사용 패턴에 대한 고찰 추가: 새로운 파일 Chapter8_Reuse_Pattern.md가 추가되었습니다. 이 파일은 보험회사의 고객 정보 관리 예시를 통해 코드 재사용 패턴의 가치와 아키텍처적 해결 방안에 대한 저자의 생각을 담고 있습니다.
  • 이벤트 기반 패턴 및 분산 트랜잭션 에러 처리 논의 추가: 새로운 파일 Chapter9_Data_Ownership_and_Distributed_Transactions.md가 추가되었습니다. 이 파일은 이벤트 기반 패턴에서의 메시지 처리 실패 시 데드 레터 큐와 같은 합리적인 해결책을 설명하고, 분산 트랜잭션에서 수동 롤백 경험에 대한 논의를 제안합니다.

🧠 New Feature in Public Preview: You can now enable Memory to help Gemini Code Assist learn from your team's feedback. This makes future code reviews more consistent and personalized to your project's style. Click here to enable Memory in your admin console.

Changelog
  • 2026/Fundamentals_of_Software_Architecture_2nd_Edition/jongfeel/Chapter8_Reuse_Pattern.md
    • 코드 재사용 패턴에 대한 요약 및 리뷰 링크가 추가되었습니다.
    • 8.6절 '코드 재사용 예시와 가치에 대한 설명'에 대한 저자의 개인적인 생각과 아키텍처적 해결 방안이 포함되었습니다.
    • 공통 고객 정보 추상화 및 변경 빈도 관점을 통한 재사용 문제 해결 방안이 제시되었습니다.
  • 2026/Fundamentals_of_Software_Architecture_2nd_Edition/jongfeel/Chapter9_Data_Ownership_and_Distributed_Transactions.md
    • 데이터 소유권 및 분산 트랜잭션에 대한 요약 및 리뷰 링크가 추가되었습니다.
    • 9.8.3절 '이벤트 기반 패턴'에서 메시지 처리 실패 시 데드 레터 큐와 같은 개념에 대한 저자의 이해와 감상이 서술되었습니다.
    • 9.8절 '최종 일관성 패턴'의 에러 처리 시 수동 롤백 경험에 대한 논의 내용이 추가되었습니다.
Activity
  • 저자는 다른 참여자들이 리뷰를 위해 Pull Request를 제출해야 한다고 언급했습니다.
  • 저자는 설 연휴 기간에도 시간을 내어 책을 읽고 내용을 정리했다고 밝혔습니다.
  • 저자는 책의 내용이 이해하기 쉽게 빌드업되어 설명되어 있어 감동받았다고 언급했습니다.
Using Gemini Code Assist

The full guide for Gemini Code Assist can be found on our documentation page, here are some quick tips.

Invoking Gemini

You can request assistance from Gemini at any point by creating a comment using either /gemini <command> or @gemini-code-assist <command>. Below is a summary of the supported commands on the current page.

Feature Command Description
Code Review /gemini review Performs a code review for the current pull request in its current state.
Pull Request Summary /gemini summary Provides a summary of the current pull request in its current state.
Comment @gemini-code-assist Responds in comments when explicitly tagged, both in pull request comments and review comments.
Help /gemini help Displays a list of available commands.

Customization

To customize Gemini Code Assist for GitHub experience, repository maintainers can create a configuration file and/or provide a custom code review style guide (such as PEP-8 for Python) by creating and adding files to a .gemini/ folder in the base of the repository. Detailed instructions can be found here.

Limitations & Feedback

Gemini Code Assist may make mistakes. Please leave feedback on any instances where its feedback is incorrect or counter productive. You can react with 👍 and 👎 on @gemini-code-assist comments. If you're interested in giving your feedback about your experience with Gemini Code Assist for Github and other Google products, sign up here.

You can also get AI-powered code generation, chat, as well as code reviews directly in the IDE at no cost with the Gemini Code Assist IDE Extension.

Footnotes

  1. Review the Privacy Notices, Generative AI Prohibited Use Policy, Terms of Service, and learn how to configure Gemini Code Assist in GitHub here. Gemini can make mistakes, so double check it and use code with caution.

Copy link
Contributor

@gemini-code-assist gemini-code-assist bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Code Review

이번 풀 리퀘스트는 소프트웨어 아키텍처 책의 8장과 9장에 대한 심도 있는 요약과 개인적인 견해를 잘 정리해 주셨습니다. 특히 재사용 패턴과 데이터 소유권, 분산 트랜잭션에 대한 고민이 잘 드러나 있습니다. 전반적으로 내용 이해에 큰 도움이 되지만, 몇 가지 오타와 문장 표현을 개선하면 가독성을 더욱 높일 수 있을 것 같습니다.

Comment on lines 19 to 22
사실 제가 과거에 작업했던 내용을 떠올려 보면 제가 직접 롤백하는 쿼리를 비즈니스 로직 처리 레벨이 아니라 직접 쿼리 명령 실행 프로그램을 통해 쿼리를 만들어 두고 파일로 저장해 뒀다가 정말 직접 실행해서 에러 처리에 대한 롤백 업데이트를 했었습니다.

이게 다른 분들한테도 흔하게 있는 일인지 궁금하네요.
흔하게 있는 일이라면 사람이 에러 처리하는 방법도 임시적인 방법이었다가 아닌 얼마나 체계적이었는가도 얘기해 보면 좋겠습니다. No newline at end of file
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

이게 다른 분들한테도 흔하게 있는 일인지 궁금하네요.

  • 제 경우는 흔한 일 입니다. 다만, 제가 쿼리를 직접 수행하진 않고(권한 없음), DBA를 통해서 요청해서 진행 했었습니다.
  • 단순히 DB만 변경하면 될 때는 위와같이 쿼리를 통해서 해결하지만, 이벤트 발행이 누락되었다던지, API 호출을 다시해줘야한다던지 할 때는 python interpreter 환경에서 직접 코드를 수동으로 동작할 때도 있었고, 아니면, 장애 발생 시, 복구를 위한 slack bot 기능을 만들어두고, 쓰곤 했었습니다

흔하게 있는 일이라면 사람이 에러 처리하는 방법도 임시적인 방법이었다가 아닌 얼마나 체계적이었는가도 얘기해 보면 좋겠습니다.

  • MSA 환경에서는 언제든 장애가 발생할 수 있다고 전제하고, 장애 발생 시 빠르게 조치하기 위해서, 서비스 별 run book을 운영 했습니다. 기본적으로는 매뉴얼하게 빠르게 장애 조치할 수 있는 형태로 운영 되었고, 위에 말씀드린 것 처럼 slack bot 기능으로 처리하거나, python interpreter 활용 혹은 DB만 문제있을 때는 DBA에 요청 등등을 run book에 기록해두고 수행했었습니다

jongfeel and others added 2 commits February 19, 2026 14:55
…l/Chapter9_Data_Ownership_and_Distributed_Transactions.md

Co-authored-by: gemini-code-assist[bot] <176961590+gemini-code-assist[bot]@users.noreply.github.com>
…l/Chapter9_Data_Ownership_and_Distributed_Transactions.md

Co-authored-by: gemini-code-assist[bot] <176961590+gemini-code-assist[bot]@users.noreply.github.com>
Comment on lines +18 to +22
9.8 최종 일관성 패턴을 설명하는 세가지 방법에서 오케스트레이티드 요청 기반 패턴과 이벤트 기반 패턴에서 에러 처리할 때 트랜잭션 보상도 문제가 생기면 사람이 해결해야 한다는 내용이 나와 있습니다.
사실 제가 과거에 작업했던 내용을 떠올려 보면 제가 직접 롤백하는 쿼리를 비즈니스 로직 처리 레벨이 아니라 직접 쿼리 명령 실행 프로그램을 통해 쿼리를 만들어 두고 파일로 저장해 뒀다가 정말 직접 실행해서 에러 처리에 대한 롤백 업데이트를 했었습니다.

이게 다른 분들한테도 흔하게 있는 일인지 궁금하네요.
흔하게 있는 일이라면 사람이 에러 처리하는 방법이 임시적인 방법이 아니라 얼마나 체계적이었는지도 얘기해 보면 좋겠습니다. No newline at end of file
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

꽤 흔한 것 같습니다.

보상 트랜잭션이 실행되다 여러 번 실패하면 데드 레터 큐에 넣고 이떄 슬랙 알림이 오게끔 했었는데, 딱 이정도지 체계적으로 처리하지는 못했네요. 저도 다른 분들의 경험이 궁금하네요 ㅎㅎ

사실 제가 과거에 작업했던 내용을 떠올려 보면 제가 직접 롤백하는 쿼리를 비즈니스 로직 처리 레벨이 아니라 직접 쿼리 명령 실행 프로그램을 통해 쿼리를 만들어 두고 파일로 저장해 뒀다가 정말 직접 실행해서 에러 처리에 대한 롤백 업데이트를 했었습니다.

이게 다른 분들한테도 흔하게 있는 일인지 궁금하네요.
흔하게 있는 일이라면 사람이 에러 처리하는 방법이 임시적인 방법이 아니라 얼마나 체계적이었는지도 얘기해 보면 좋겠습니다. No newline at end of file
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

사실 보상에 대해 문제가 생기면 재처리 되도록 해놨지만 그것이 일정 횟수를 넘어가게 된다면 그것은 운영자가 처리하는게 맞다고 생각하여 어드민을 통해 처리하고, 그래도 처리가 안 된다면 개발자가 로그를 보면서 원인을 파악합니다.

사실 제가 과거에 작업했던 내용을 떠올려 보면 제가 직접 롤백하는 쿼리를 비즈니스 로직 처리 레벨이 아니라 직접 쿼리 명령 실행 프로그램을 통해 쿼리를 만들어 두고 파일로 저장해 뒀다가 정말 직접 실행해서 에러 처리에 대한 롤백 업데이트를 했었습니다.

이게 다른 분들한테도 흔하게 있는 일인지 궁금하네요.
흔하게 있는 일이라면 사람이 에러 처리하는 방법이 임시적인 방법이 아니라 얼마나 체계적이었는지도 얘기해 보면 좋겠습니다. No newline at end of file
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

저는 아직은 경험은 직접 못했지만, 간간히 다른 동료들이 직접 카프카나 DB를 조작하여 처리하는 것을 보긴 했습니다.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

2026 Software Architecture: The Hard Parts 소프트웨어 아키텍처: The Hard Parts, 분산 아키텍처를 위한 모던 트레이드오프 분석

Projects

None yet

Development

Successfully merging this pull request may close these issues.

<소프트웨어 아키텍처 The Hard Parts> sprint 4, chapter 8, 9, 총 70페이지, 2026-02-20

6 participants