Skip to content

소프트웨어 아키텍처 The Hard Parts 4주차 - 이동현#613

Open
dhlee3994 wants to merge 1 commit intomainfrom
dhlee-2026-FSA-week4
Open

소프트웨어 아키텍처 The Hard Parts 4주차 - 이동현#613
dhlee3994 wants to merge 1 commit intomainfrom
dhlee-2026-FSA-week4

Conversation

@dhlee3994
Copy link
Contributor

야근으로 불참할 것 같습니다.
최대한 빨리 처리 후 참여할 수 있도록 해보겠습니다 😭

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

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

@gemini-code-assist
Copy link
Contributor

Summary of Changes

Hello @dhlee3994, 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' 스터디의 4주차 학습 내용을 담은 문서를 추가합니다. 코드 재사용, 데이터 오너십, 분산 트랜잭션 및 최종 일관성 패턴과 같은 핵심 아키텍처 개념에 대한 이해를 돕기 위한 정리된 자료를 제공하여 스터디 참여자들이 해당 주제를 효과적으로 학습하고 논의할 수 있도록 지원합니다.

Highlights

  • 소프트웨어 아키텍처 학습 자료 추가: 8장과 9장에 해당하는 코드 재사용 패턴, 공동 데이터 오너십 해결 기법, 분산 트랜잭션, 최종 일관성 패턴에 대한 내용을 정리한 Markdown 파일을 추가했습니다.

🧠 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/donghyeon/week4.md
    • 새로운 소프트웨어 아키텍처 학습 노트가 추가되었습니다.
Activity
  • 작성자(dhlee3994)는 야근으로 인해 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 Hard Parts' 8장과 9장에 대한 학습 노트를 추가합니다. 내용은 코드 재사용 패턴, 공동 데이터 오너십 해결 기법, 분산 트랜잭션, 최종 일관성 패턴 등 핵심 개념을 잘 요약하고 있습니다. 전반적으로 내용 구성이 좋고 이해하기 쉽게 작성되었습니다. 몇 가지 표현을 좀 더 명확하고 기술적인 용어로 다듬으면 더욱 완성도 높은 문서가 될 것입니다.

## 내용

- 코드 재사용 패턴
- 코드 복제: 서비스 진입점을 정의한 어노테이션과 같이 대부분의 서비스에서 필요한 극히 **정적인 일회성 코드**에는 유용
Copy link
Contributor

Choose a reason for hiding this comment

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

medium

이 문구는 '정적인'과 '일회성'이라는 두 가지 특성을 동시에 강조하고 있는데, 의미 전달은 되지만 문장 구조가 다소 어색하게 느껴질 수 있습니다. 좀 더 자연스러운 표현으로 다듬는 것을 고려해볼 수 있습니다.

Suggested change
- 코드 복제: 서비스 진입점을 정의한 어노테이션과 같이 대부분의 서비스에서 필요한 극히 **정적인 일회성 코드**에는 유용
정적인 코드

- 코드 재사용 패턴
- 코드 복제: 서비스 진입점을 정의한 어노테이션과 같이 대부분의 서비스에서 필요한 극히 **정적인 일회성 코드**에는 유용
- 공유 라이브러리: 버저닝이 필수
- 공유 서비스: 이에 의존하는 서비스가 런타임에 잘못될 가능성이 있음 => 버저닝도 말처럼 쉽지 않음
Copy link
Contributor

Choose a reason for hiding this comment

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

medium

'말처럼 쉽지 않음'은 구어체 표현입니다. 기술 문서나 학습 노트에서는 좀 더 명확하고 공식적인 표현을 사용하는 것이 좋습니다.

Suggested change
- 공유 서비스: 이에 의존하는 서비스가 런타임에 잘못될 가능성이 있음 => 버저닝도 말처럼 쉽지 않음
버저닝 구현 및 관리가 복잡함

- 테이블 분할 기법: 데이터를 물리적으로 나누어 관리
- 데이터 도메인 기법: 도메인 관점에서 데이터를 그룹화
- 대리자 기법: 특정 서비스가 데이터 접근을 대행
- 서비스 통합 기법: 여러 테이블 오너 서비스를 하나의 서비스로 통합, 공동 오너십 => 단독 오너십
Copy link
Contributor

Choose a reason for hiding this comment

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

medium

화살표(=>) 표기는 간결하지만, 문맥상 '공동 오너십에서 단독 오너십으로 전환'과 같이 서술형으로 풀어서 설명하는 것이 더 명확하고 이해하기 쉽습니다.

Suggested change
- 서비스 통합 기법: 여러 테이블 오너 서비스를 하나의 서비스로 통합, 공동 오너십 => 단독 오너십
공동 오너십에서 단독 오너십으로 전환

Comment on lines +3 to +6
## 논의

최종 일관성 패턴 중 **백그라운드 동기화 패턴**은 매우 생소한 패턴인데, 사용해본 분이 계신지 궁금하네요.
어떤 상황이었고, 왜 이 패턴을 사용했는지..
Copy link
Collaborator

Choose a reason for hiding this comment

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

단일 MS는 운영해보았지만, 여러 MS 를 관리하는 형태로 백그라운드 동기화 하는 것은 따로 경험해보진 못했습니다

왜 경험을 못해보았을까? 를 돌이켜 생각해보면, 가장 큰 이유는 책에도 나와있는 경계컨텍스트가 무너진다는 점 때문일 것 같습니다. 각 팀들은 경계컨텍스트가 무너지지 않은 상태에서 관리하길 원하고 그게 익숙하기 때문입니다

위 패턴을 적용하려면, 회사 MS 전체를 관장하는 팀이 존재하고, 그 팀에서 오너쉽을 가지고 해야할텐데, 위와 같이 조직구조를 만들지 않는 이상(콘웨이의 법칙)은 위와 같은 패턴을 쓸 가능성이 없는게 당연하지 않은가 생각됩니다

@jongfeel
Copy link
Member

야근으로 불참할 것 같습니다. 최대한 빨리 처리 후 참여할 수 있도록 해보겠습니다 😭

야근이면... 무리해서 참여하지 않으셔도 되는데 음
11시 넘어서 집에 도착하시면 집에서 쉬시는 걸 추천합니다!

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
Contributor

Choose a reason for hiding this comment

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

저도 백그라운드 동기화 패턴은 사용해보지 못 했고, 이번에 처음 알았습니다.

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

5 participants

Comments