Skip to content

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

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

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

Conversation

@dhlee3994
Copy link
Contributor

재밌게 읽었네요 :)

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

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

@gemini-code-assist
Copy link
Contributor

Summary of Changes

Hello, 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" 6주차 학습 내용을 정리한 노트를 추가합니다. 아키텍처 계약의 다양한 형태, 데이터 관리 전략, 그리고 시스템 변경 시 트레이드오프를 분석하는 방법에 대한 핵심 개념들을 다루고 있습니다. 특히, 컨슈머 주도 계약과 데이터의 적절한 추상화 수준에 대한 저자의 깊이 있는 고민이 담겨 있어, 아키텍처 설계 시 고려해야 할 중요한 관점을 제공합니다.

Highlights

  • 새로운 학습 노트 추가: "소프트웨어 아키텍처 The Hard Parts" 13장부터 15장까지의 학습 노트를 추가했습니다.
  • 아키텍처 계약 논의: 컨슈머가 실제로 사용하지 않는 데이터 허용 범위 및 공통 계약 유지 여부에 대한 개인적인 논의와 생각을 담았습니다.
  • 핵심 아키텍처 개념 정리: 계약의 종류(엄격, 중간, 느슨, 컨슈머 주도), 분석 데이터 관리(데이터 레이크, 데이터 메시), 트레이드오프 분석 3단계 등 주요 아키텍처 개념을 정리했습니다.

🧠 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.

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.

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 document summarizing chapters 13-15 of "Fundamentals of Software Architecture 2nd Edition," covering architectural contracts, analytical data management, and trade-off analysis. A review comment suggests clarifying the section on strict contracts, specifically explaining why versioning is listed as both an advantage and a disadvantage to avoid reader confusion.

- 계약(Contract): 종류가 다른 아키텍처 파트가 어떻게 연결되는지 정의한 것
- 엄격한 계약: XML, 스키마 정보가 추가된 JSON, (g)RPC
- 장점: 계약 충실도 보장, 쉬운 검증 가능, 문서화 용이, 버저닝
- 단점: 단단한 커플링, 버저닝
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
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.

👍

Comment on lines +5 to +8
컨슈머가 실제로 쓰지 않는 데이터까지 같이 내려주는 걸 어디까지 허용할 것인가에 대해 논의하면 좋을 것 같습니다.

예를 들어 Consumer A는 id, name이 필요하고, Consumer B는 id, name, description이 필요한 경우,
하나의 공통 계약으로 유지하는 것이 맞을지, 아니면 Consumer별 계약으로 분리하는 것이 맞을지 이야기하면 좋을 것 같습니다.
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
Collaborator

Choose a reason for hiding this comment

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

일반적으로, API를 제공하는 MS가 데이터의 오너이고, API를 통해서 데이터를 누구에게 어디까지 공개할 것인지를 정하기 때문에, API를 나눌지, 말지는 데이터 오너 마음이지 않을까 생각됩니다

데이터 오너 MS를 관리하시는 분들이 생각했을 때, 더 유지보수하기 쉬운 방향으로 하지않을까 싶고, 특별하게 나눠야할 상황에선 나눌 텐데, 특히나 조회의 경우에는 굳이 나눌 필요가 있을지 사례가 잘 떠오르진 않는거 같습니다

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 6, chapter 13, 14, 15 총 77 페이지, 2026-03-20

3 participants