Skip to content

Comments

소프트웨어 아키텍처 The Hard Parts sprint 4 - 김도경#616

Open
benscookie wants to merge 1 commit intomainfrom
kimdokyung-2026-week4
Open

소프트웨어 아키텍처 The Hard Parts sprint 4 - 김도경#616
benscookie wants to merge 1 commit intomainfrom
kimdokyung-2026-week4

Conversation

@benscookie
Copy link
Contributor

Summary

  • Chapter 8: 재사용 패턴 요약
  • Chapter 9: 데이터 오너쉽과 분산 트랜젝션 요약
  • 논의 주제 작성

논의 주제

  • 코드 재사용 방식(코드 복제, 공유 라이브러리, 공유 서비스, 사이드카) 중에서 현재 프로젝트나 회사에서 가장 많이 쓰는 방식은 무엇인가요?
  • 분산 트랜잭션에서 에러가 나서 결국 사람이 개입했던 경험이 있으신 분이 있다면, 그때 어떻게 대응하셨는지 이야기 나눠보면 좋겠습니다.

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

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

@gemini-code-assist
Copy link
Contributor

Summary of Changes

Hello @benscookie, 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!

이 PR은 '소프트웨어 아키텍처 The Hard Parts' 책의 8장 '재사용 패턴'과 9장 '데이터 오너쉽과 분산 트랜잭션'에 대한 요약 문서를 추가합니다. 마이크로서비스 환경에서 코드 재사용 전략과 데이터 관리, 그리고 분산 트랜잭션의 복잡성을 이해하고 논의하기 위한 기반을 마련하는 것이 목적입니다. 아키텍처 설계 시 고려해야 할 중요한 트레이드오프와 현실적인 문제 해결 방안에 대한 통찰을 제공합니다.

Highlights

  • 재사용 패턴 요약: Chapter 8에서 다루는 코드 복제, 공유 라이브러리, 공유 서비스, 사이드카 등 네 가지 코드 재사용 방식의 장단점과 트레이드오프를 정리했습니다.
  • 데이터 오너쉽 및 분산 트랜잭션 요약: Chapter 9의 데이터 오너쉽(단독, 공통, 공동 오너쉽) 개념과 분산 환경에서의 트랜잭션 문제, 그리고 최종 일관성 패턴(백그라운드 동기화, 오케스트레이티드 요청 기반, 이벤트 기반)을 요약했습니다.
  • 논의 주제 제안: 코드 재사용 방식 선택 기준과 분산 트랜잭션 에러 발생 시 사람의 개입 경험에 대한 두 가지 논의 주제를 제안했습니다.

🧠 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/kimdokyung/Chapter8_9.md
    • Chapter 8 '재사용 패턴' 요약 추가
    • Chapter 9 '데이터 오너쉽과 분산 트랜잭션' 요약 추가
    • 관련 논의 주제 추가
Activity
  • 이 PR은 현재까지 특별한 활동이 기록되지 않았습니다.
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

The pull request introduces a new Markdown file summarizing Chapters 8 and 9 of 'Fundamentals of Software Architecture 2nd Edition'. The summary is well-structured and provides good insights into reuse patterns, data ownership, and distributed transactions. The discussion topics are relevant and encourage engagement. The content is clear and easy to understand.


# 논의 주제

- 코드 재사용 방식(코드 복제, 공유 라이브러리, 공유 서비스, 사이드카) 중에서 현재 프로젝트나 회사에서 가장 많이 쓰는 방식은 무엇인가요? 저는 아직 이 네 가지를 의식적으로 구분해서 적용해본 적이 없는 것 같아서, 경험이 있으신 분들은 어떤 기준으로 방식을 선택하는지 궁금합니다.
Copy link
Collaborator

Choose a reason for hiding this comment

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

각 회사와 팀의 상황에 따라 다른 것 같습니다 저는 4가지 모두 다 경험해보기도 했는데, 각각 장단이 있는거 같습니다


- 코드 재사용 방식(코드 복제, 공유 라이브러리, 공유 서비스, 사이드카) 중에서 현재 프로젝트나 회사에서 가장 많이 쓰는 방식은 무엇인가요? 저는 아직 이 네 가지를 의식적으로 구분해서 적용해본 적이 없는 것 같아서, 경험이 있으신 분들은 어떤 기준으로 방식을 선택하는지 궁금합니다.

- 분산 트랜잭션에서 에러가 나서 결국 사람이 개입했던 경험이 있으신 분이 있다면, 그때 어떻게 대응하셨는지 이야기 나눠보면 좋겠습니다.
Copy link
Collaborator

Choose a reason for hiding this comment

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

평시에는 비즈니스로직에 문제가 없지 않는 이상은 사람이 개입해서 처리해야할 정도의 일은 없는거 같습니다

다만, 장애 상황이 발생한 경우에 상태를 맞추기 위해서, 사람이 개입해서 작업하는 것은 많이 했습니다

python의 경우는 interpreter 로 바로 서버에 DB query 혹은 API 호출 등을 할 수 있어서, 보상 트랜잭션을 위한 python script를 만들어두고, 활용하는 경우도 있었고,

슬랙봇을 통해서 하는 경우도 있었네요

Copy link
Member

@jongfeel jongfeel left a comment

Choose a reason for hiding this comment

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

👍


# 논의 주제

- 코드 재사용 방식(코드 복제, 공유 라이브러리, 공유 서비스, 사이드카) 중에서 현재 프로젝트나 회사에서 가장 많이 쓰는 방식은 무엇인가요? 저는 아직 이 네 가지를 의식적으로 구분해서 적용해본 적이 없는 것 같아서, 경험이 있으신 분들은 어떤 기준으로 방식을 선택하는지 궁금합니다.
Copy link
Member

Choose a reason for hiding this comment

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

저는 코드 복제에서 공유 라이브러리 까지는 써봤습니다.

각자 상황에 맞는 프로젝트 규모와 비즈니스 복잡도에 따라 달라지지 않을까 생각합니다.


- 코드 재사용 방식(코드 복제, 공유 라이브러리, 공유 서비스, 사이드카) 중에서 현재 프로젝트나 회사에서 가장 많이 쓰는 방식은 무엇인가요? 저는 아직 이 네 가지를 의식적으로 구분해서 적용해본 적이 없는 것 같아서, 경험이 있으신 분들은 어떤 기준으로 방식을 선택하는지 궁금합니다.

- 분산 트랜잭션에서 에러가 나서 결국 사람이 개입했던 경험이 있으신 분이 있다면, 그때 어떻게 대응하셨는지 이야기 나눠보면 좋겠습니다.
Copy link
Member

Choose a reason for hiding this comment

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

직접 에러를 확인해서 추적을 하고 롤백을 별도로 실행하거나 DB에 직접 접근해 롤백 하는 쿼리를 실행하거나 한 것 같습니다.
이런 일이 반복되면 쿼리도 파일로 저장해서 쓰기도 했습니다.


- 코드 재사용 방식(코드 복제, 공유 라이브러리, 공유 서비스, 사이드카) 중에서 현재 프로젝트나 회사에서 가장 많이 쓰는 방식은 무엇인가요? 저는 아직 이 네 가지를 의식적으로 구분해서 적용해본 적이 없는 것 같아서, 경험이 있으신 분들은 어떤 기준으로 방식을 선택하는지 궁금합니다.

- 분산 트랜잭션에서 에러가 나서 결국 사람이 개입했던 경험이 있으신 분이 있다면, 그때 어떻게 대응하셨는지 이야기 나눠보면 좋겠습니다.
Copy link
Contributor

Choose a reason for hiding this comment

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

전면 장애로 인해 분산 트랜잭션의 보상이 제대로 이뤄지지 않은 경험이 있습니다(어제 4시간짜리 장애도 그랬습니다 ㅎㅎ). 그 때 저희가 할 수 있는게 없어서 타 팀의 장애가 해소되길 기다렸고, 장애 해소 후, 기존 데이터 비교를 통해 후처리 했습니다.


# 논의 주제

- 코드 재사용 방식(코드 복제, 공유 라이브러리, 공유 서비스, 사이드카) 중에서 현재 프로젝트나 회사에서 가장 많이 쓰는 방식은 무엇인가요? 저는 아직 이 네 가지를 의식적으로 구분해서 적용해본 적이 없는 것 같아서, 경험이 있으신 분들은 어떤 기준으로 방식을 선택하는지 궁금합니다.
Copy link
Member

Choose a reason for hiding this comment

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

위에 말씀하신대로 회사나 팀마다 다르겠지만, 저의 회사 같은 경우에는 현재 공유 라이브러리의 비중이 큰 것 같습니다.


# 논의 주제

- 코드 재사용 방식(코드 복제, 공유 라이브러리, 공유 서비스, 사이드카) 중에서 현재 프로젝트나 회사에서 가장 많이 쓰는 방식은 무엇인가요? 저는 아직 이 네 가지를 의식적으로 구분해서 적용해본 적이 없는 것 같아서, 경험이 있으신 분들은 어떤 기준으로 방식을 선택하는지 궁금합니다.
Copy link
Member

Choose a reason for hiding this comment

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

사이드카는 아예 듣도보도 못했고 (...) FE팀 기준 복제가 1순위 라이브러리가 2순위인 것 같습니다

라이브러리 개발용 노드 버전이랑 제품 개발용 노드 버전이 달라서 라이브러리는 가급적 안 건드리게 되네요 :/

제가 작업할 땐 코드 복붙 후 특정 서비스용 예외처리만 별도 수정하는 일이 제일 많았습니다 ..

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