-
Notifications
You must be signed in to change notification settings - Fork 5
소프트웨어 아키텍처 The Hard Parts 2주차 - 김종필 #591
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
base: main
Are you sure you want to change the base?
소프트웨어 아키텍처 The Hard Parts 2주차 - 김종필 #591
The head ref may contain hidden characters: "588-\uC18C\uD504\uD2B8\uC6E8\uC5B4-\uC544\uD0A4\uD14D\uCC98-the-hard-parts-sprint-1-chapter-4-5-\uCD1D-72\uD398\uC774\uC9C0-2026-01-23"
Conversation
|
우측에 있는 |
Summary of ChangesHello @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! 이 PR은 "소프트웨어 아키텍처 The Hard Parts"의 챕터 4와 5에 대한 개인적인 학습 요약, 리뷰 및 논의 주제를 추가합니다. 아키텍처 분해의 기본 개념과 평가 지표부터 컴포넌트 기반 분해 패턴의 실제 적용 사례와 네임스페이스 설계에 대한 깊이 있는 성찰까지, 소프트웨어 아키텍처의 핵심 원칙과 실용적인 접근 방식을 탐구합니다. Highlights
🧠 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 AssistThe 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
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 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
|
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Code Review
이 PR은 "소프트웨어 아키텍처 The Hard Parts" 4장과 5장의 요약 내용을 추가합니다. 책 내용에 대한 깊은 고민이 담긴 좋은 요약입니다. 전반적인 가독성을 높이고 몇 가지 오타를 수정하기 위해 아래와 같이 몇 가지 제안을 드립니다.
...entals_of_Software_Architecture_2nd_Edition/jongfeel/Chapter4_Architectural_Decomposition.md
Outdated
Show resolved
Hide resolved
...entals_of_Software_Architecture_2nd_Edition/jongfeel/Chapter4_Architectural_Decomposition.md
Outdated
Show resolved
Hide resolved
...entals_of_Software_Architecture_2nd_Edition/jongfeel/Chapter4_Architectural_Decomposition.md
Outdated
Show resolved
Hide resolved
...oftware_Architecture_2nd_Edition/jongfeel/Chapter5_Component-Based_Decomposition_Patterns.md
Outdated
Show resolved
Hide resolved
...oftware_Architecture_2nd_Edition/jongfeel/Chapter5_Component-Based_Decomposition_Patterns.md
Outdated
Show resolved
Hide resolved
...oftware_Architecture_2nd_Edition/jongfeel/Chapter5_Component-Based_Decomposition_Patterns.md
Outdated
Show resolved
Hide resolved
...oftware_Architecture_2nd_Edition/jongfeel/Chapter5_Component-Based_Decomposition_Patterns.md
Outdated
Show resolved
Hide resolved
...oftware_Architecture_2nd_Edition/jongfeel/Chapter5_Component-Based_Decomposition_Patterns.md
Outdated
Show resolved
Hide resolved
…l/Chapter4_Architectural_Decomposition.md Co-authored-by: gemini-code-assist[bot] <176961590+gemini-code-assist[bot]@users.noreply.github.com>
…l/Chapter4_Architectural_Decomposition.md Co-authored-by: gemini-code-assist[bot] <176961590+gemini-code-assist[bot]@users.noreply.github.com>
…l/Chapter4_Architectural_Decomposition.md Co-authored-by: gemini-code-assist[bot] <176961590+gemini-code-assist[bot]@users.noreply.github.com>
…l/Chapter5_Component-Based_Decomposition_Patterns.md Co-authored-by: gemini-code-assist[bot] <176961590+gemini-code-assist[bot]@users.noreply.github.com>
…l/Chapter5_Component-Based_Decomposition_Patterns.md Co-authored-by: gemini-code-assist[bot] <176961590+gemini-code-assist[bot]@users.noreply.github.com>
…l/Chapter5_Component-Based_Decomposition_Patterns.md Co-authored-by: gemini-code-assist[bot] <176961590+gemini-code-assist[bot]@users.noreply.github.com>
…l/Chapter5_Component-Based_Decomposition_Patterns.md Co-authored-by: gemini-code-assist[bot] <176961590+gemini-code-assist[bot]@users.noreply.github.com>
…l/Chapter5_Component-Based_Decomposition_Patterns.md Co-authored-by: gemini-code-assist[bot] <176961590+gemini-code-assist[bot]@users.noreply.github.com>
| ## 논의 주제 | ||
|
|
||
| 처음부터 모놀리스는 아니더라도 컴포넌트 기반으로 분석 과정을 통해 하나의 서비스를 완성해 나가는 기법에 대해 설명한 부분이 인상 깊었다. 솔직히 어려울 수도 있는 내용을 구체적이고 자세히 잘 설명할 수 있다는 점에서 감동까지 받았다. | ||
|
|
||
| 꼭 여기에서 설명하는 컴포넌트 분해 기법이 아니더라도 자신이 설계한 컴포넌트의 네임스페이스 설계가 책에서 설명하고 있는 방법에 비춰 봤을 때 어느 정도 수준인지 논의해 보면 좋을 것 같다. | ||
| (책의 예시대로라면, 골프공? 농구공? 비행기?) | ||
|
|
||
| 나의 경우에는 농구공 두 개, 여러개의 골프공 정도라고 볼 수 있는데, 레이어드 아키텍처를 버리지 않고 살리면서도 컴포넌트 기반 네임스페이스를 사용한 경우가 있기 때문이다. | ||
| 여기서 농구공에 해당하는 부분은 첫 번째 리뷰 내용에 있듯이 네임스페이스 규칙에 대해 책의 방법이 아닌 내가 하고 싶은 방법대로 했다는 점이다. 어떻게 보면 네임스페이스 별 컴포넌트 이지만 그 안에는 레이어드 구조를 살리고 싶었던 미련이 있었다고 볼 수 있다. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
여객기 사이즈 라고 하기엔 책 기준 끝판왕으로 보여서, 그정돈 아닌거 같고 현재 기준으론 농구공 정도인데, 꽤나 큰 농구공으로 볼 수 있을거 같습니다(10년 묵은 레거시라..) 파이썬 코드베이스를 자바 스프링 코드베이스로 비즈니스 도메인 단위로 패키지(이 책 기준 컴포넌트)를 나눠서 AI 이용해서 재구현 하는 작업을 하고 있습니다
| 꼭 여기에서 설명하는 컴포넌트 분해 기법이 아니더라도 자신이 설계한 컴포넌트의 네임스페이스 설계가 책에서 설명하고 있는 방법에 비춰 봤을 때 어느 정도 수준인지 논의해 보면 좋을 것 같다. | ||
| (책의 예시대로라면, 골프공? 농구공? 비행기?) |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
작년 말에 리팩터링했던 레거시는 골프공은 아니더라도 야구공 ~ 농구공 수준 (나름 기준을 정해서 잘 쪼갰다) 은 된다고 생각했는데
불과 3개월만에 레거시가 되어서 재리팩토링을 하니 작년 말 코드 정도면 마을버스 정도는 되는 것 같습니다
하위 서비스로 쪼개야 했음에도 불구하고 (예를 들면, 고양이, 강아지, 호랑이, 독수리) 특성이 같다는 이유만으로 뭉쳐놨더니 (=> 동물 서비스로 뭉뚱그려 분류)
세부적으로는 서로 다른 화면임에도 불구하고 의존성과 내부 예외 분기가 너무 심해서 (날개 달린 동물에 대한 예외처리, 냉온동물에 대한 예외처리 등) 새로운 기능이 추가될때마다 예외처리로 만원버스가 되어버렸습니다
지금은 다시 농구공 사이즈로 회귀하려고 쪼개는 중입니다..
논의 주제는 챕터 5에 적었습니다.