Skip to content

Comments

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

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

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

Conversation

@dhlee3994
Copy link
Contributor

감기약 먹고 그대로 잠들었었네요.
다음부터는 미리 말씀드리겠습니다.
죄송합니다.

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

github-actions bot commented Feb 8, 2026

우측에 있는 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'의 6장과 7장에 대한 학습 내용을 요약한 새로운 문서를 추가합니다. 데이터와 서비스의 분해 및 통합에 대한 핵심적인 고려사항들을 다루며, 다양한 데이터베이스 유형과 그 특성을 비교 분석합니다. 이 문서는 아키텍처 설계 시 중요한 의사결정을 위한 구조화된 정보와 토론의 기반을 제공하는 것을 목표로 합니다.

Highlights

  • 새로운 학습 자료 추가: 소프트웨어 아키텍처 'The Hard Parts' 6장과 7장에 대한 학습 노트를 담은 'week3.md' 파일이 새로 추가되었습니다.
  • 데이터 분해 및 통합 요인 정리: 데이터 분해 및 통합에 영향을 미치는 다양한 요인들(변경 영향 범위, 커넥션 관리, 확장성, 내고장성 등)이 상세히 설명되어 있습니다.
  • 다양한 데이터베이스 타입 분석: 관계형, 키-값, 문서형, 컬럼형, 그래프, NewSQL, 클라우드 네이티브, 시계열 데이터베이스 등 여러 데이터베이스 타입의 특성(학습 용이성, 확장성, 일관성 등)을 비교하는 표가 포함되어 있습니다.
  • 서비스 세분도 분해 및 통합 요인 분석: 서비스 세분도를 결정하는 분해 요인(서비스 범위, 코드 변동성, 확장성, 보안 등)과 통합 요인(데이터베이스 트랜잭션, 워크플로, 공유 코드 등)이 정리되어 있습니다.

🧠 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/week3.md
    • 6장과 7장의 핵심 내용을 요약한 새로운 마크다운 파일이 추가되었습니다.
    • 데이터 분해 및 통합 요인, 데이터베이스 타입 비교, 서비스 세분도 결정 요인 등이 상세히 기술되어 있습니다.
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 Hard Parts 6장과 7장에 대한 요약 정리를 잘 작성해주셨습니다. 내용이 체계적으로 정리되어 있어 이해하기 쉽습니다. 다만, 문서의 완성도를 높이기 위해 몇 가지 오타와 띄어쓰기 오류 수정을 제안합니다.

- 변경 영향 범위: 테이블 변경 시 얼마나 많은 서비스가 영향을 받는가
- 커넥션 관리: 데이터베이스가 여러 분산 서비스와 커넥션을 맺을 수 있는가
- 확장성: 액세스하는 서비스 수요에 맞게 데이터베이스를 확장할 수 있는가
- 내고장성: 장애 및 수리 등의 사유로 가동 중단될 때 얼마나 많은 서비가 영향을 받는가
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
- 내고장성: 장애 및 수리 등의 사유로 가동 중단될 때 얼마나 많은 서비가 영향을 받는가
- 내고장성: 장애 및 수리 등의 사유로 가동 중단될 때 얼마나 많은 서비스가 영향을 받는가

- Scalability(부하에 대응하는 능력)와 같은 **확장성**이라 명확성을 위해 신장성 사용한 듯
- 서비스 세분도 통합(요)인
- 데이터베이스 트랜잭션
- 워크플로와 코레오그래피: 기능들이 단단히 결합된 서비스들간에서 발생
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
- 워크플로와 코레오그래피: 기능들이 단단히 결합된 서비스들간에서 발생
- 워크플로와 코레오그래피: 기능들이 단단히 결합된 서비스들 간에서 발생

- 과도한 IPC -> 내고장성, 성능 이슈
- 요청의 70%는 자체 처리가 가능하다면 서비스를 분리한 상태로 두는게 합리적
- 나머지 30%가 매우 빠른 응답을 요한다면 서비스를 합치는 것이 타당할 수도
- 즉 요청 처리 성능, 응답성과 함께 요청의 중요도 역시 통합인 중 하나
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.

아무 얘기 없으셔서 걱정 했는데,
몸 상태가 안 좋으면 앞으로 미리 얘기해주시면 참고하도록 하겠습니다.
그럴 때는 미리 쉰다고 얘기하고 pull request는 나중에 올리겠다고 하셔도 다들 이해해줄겁니다.


## 논의

성능 향상을 위해 서비스를 분해했는데, 네트워크 오버헤드 등의 이유로 전체 응답성이 떨어져 다시 합쳤던 경험이 있다면 공유해보면 좋을 것 같습니다.
Copy link
Member

Choose a reason for hiding this comment

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

책 내용대로라면 서비스 분해가 성능 향상의 방법이진 않은데...
어쨌든 제 경험은 아니고 미리 만들어져 있던 서비스를 분석하면서 알게 된 내용으로 얘기해 보면

응답성이 떨어져서 서비스를 합치지는 않았습니다.
대신 SQS라고 비동기 메시지 큐에 담아서 처리하게 했는데 당시에는 그렇구나 하고 넘어갔었다가
나중에 아키텍처 관련 책을 하나씩 읽으면서 서비스간 응답성에 대해 보장해주는 장치로 알게 되었습니다.

Copy link
Collaborator

Choose a reason for hiding this comment

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

성능 향상이라기 보다는 팀이 분리되면서, 서비스도 같이 분해된적이 있었는데, 나누고 나서 보니, 굳이 나눌 필요가 없다고 판단되서(성능적이거나, 운영적 측면에서)다시 합친적은 있었습니다

Copy link
Contributor Author

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 3, chapter 6, 7, 총 95페이지, 2026-02-06

3 participants