Conversation
|
우측에 있는 |
Summary of ChangesHello @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
🧠 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
Activity
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.
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.
|
|
||
| # 논의 주제 | ||
|
|
||
| - 코드 재사용 방식(코드 복제, 공유 라이브러리, 공유 서비스, 사이드카) 중에서 현재 프로젝트나 회사에서 가장 많이 쓰는 방식은 무엇인가요? 저는 아직 이 네 가지를 의식적으로 구분해서 적용해본 적이 없는 것 같아서, 경험이 있으신 분들은 어떤 기준으로 방식을 선택하는지 궁금합니다. |
There was a problem hiding this comment.
각 회사와 팀의 상황에 따라 다른 것 같습니다 저는 4가지 모두 다 경험해보기도 했는데, 각각 장단이 있는거 같습니다
|
|
||
| - 코드 재사용 방식(코드 복제, 공유 라이브러리, 공유 서비스, 사이드카) 중에서 현재 프로젝트나 회사에서 가장 많이 쓰는 방식은 무엇인가요? 저는 아직 이 네 가지를 의식적으로 구분해서 적용해본 적이 없는 것 같아서, 경험이 있으신 분들은 어떤 기준으로 방식을 선택하는지 궁금합니다. | ||
|
|
||
| - 분산 트랜잭션에서 에러가 나서 결국 사람이 개입했던 경험이 있으신 분이 있다면, 그때 어떻게 대응하셨는지 이야기 나눠보면 좋겠습니다. |
There was a problem hiding this comment.
평시에는 비즈니스로직에 문제가 없지 않는 이상은 사람이 개입해서 처리해야할 정도의 일은 없는거 같습니다
다만, 장애 상황이 발생한 경우에 상태를 맞추기 위해서, 사람이 개입해서 작업하는 것은 많이 했습니다
python의 경우는 interpreter 로 바로 서버에 DB query 혹은 API 호출 등을 할 수 있어서, 보상 트랜잭션을 위한 python script를 만들어두고, 활용하는 경우도 있었고,
슬랙봇을 통해서 하는 경우도 있었네요
|
|
||
| # 논의 주제 | ||
|
|
||
| - 코드 재사용 방식(코드 복제, 공유 라이브러리, 공유 서비스, 사이드카) 중에서 현재 프로젝트나 회사에서 가장 많이 쓰는 방식은 무엇인가요? 저는 아직 이 네 가지를 의식적으로 구분해서 적용해본 적이 없는 것 같아서, 경험이 있으신 분들은 어떤 기준으로 방식을 선택하는지 궁금합니다. |
There was a problem hiding this comment.
저는 코드 복제에서 공유 라이브러리 까지는 써봤습니다.
각자 상황에 맞는 프로젝트 규모와 비즈니스 복잡도에 따라 달라지지 않을까 생각합니다.
|
|
||
| - 코드 재사용 방식(코드 복제, 공유 라이브러리, 공유 서비스, 사이드카) 중에서 현재 프로젝트나 회사에서 가장 많이 쓰는 방식은 무엇인가요? 저는 아직 이 네 가지를 의식적으로 구분해서 적용해본 적이 없는 것 같아서, 경험이 있으신 분들은 어떤 기준으로 방식을 선택하는지 궁금합니다. | ||
|
|
||
| - 분산 트랜잭션에서 에러가 나서 결국 사람이 개입했던 경험이 있으신 분이 있다면, 그때 어떻게 대응하셨는지 이야기 나눠보면 좋겠습니다. |
There was a problem hiding this comment.
직접 에러를 확인해서 추적을 하고 롤백을 별도로 실행하거나 DB에 직접 접근해 롤백 하는 쿼리를 실행하거나 한 것 같습니다.
이런 일이 반복되면 쿼리도 파일로 저장해서 쓰기도 했습니다.
|
|
||
| - 코드 재사용 방식(코드 복제, 공유 라이브러리, 공유 서비스, 사이드카) 중에서 현재 프로젝트나 회사에서 가장 많이 쓰는 방식은 무엇인가요? 저는 아직 이 네 가지를 의식적으로 구분해서 적용해본 적이 없는 것 같아서, 경험이 있으신 분들은 어떤 기준으로 방식을 선택하는지 궁금합니다. | ||
|
|
||
| - 분산 트랜잭션에서 에러가 나서 결국 사람이 개입했던 경험이 있으신 분이 있다면, 그때 어떻게 대응하셨는지 이야기 나눠보면 좋겠습니다. |
There was a problem hiding this comment.
전면 장애로 인해 분산 트랜잭션의 보상이 제대로 이뤄지지 않은 경험이 있습니다(어제 4시간짜리 장애도 그랬습니다 ㅎㅎ). 그 때 저희가 할 수 있는게 없어서 타 팀의 장애가 해소되길 기다렸고, 장애 해소 후, 기존 데이터 비교를 통해 후처리 했습니다.
|
|
||
| # 논의 주제 | ||
|
|
||
| - 코드 재사용 방식(코드 복제, 공유 라이브러리, 공유 서비스, 사이드카) 중에서 현재 프로젝트나 회사에서 가장 많이 쓰는 방식은 무엇인가요? 저는 아직 이 네 가지를 의식적으로 구분해서 적용해본 적이 없는 것 같아서, 경험이 있으신 분들은 어떤 기준으로 방식을 선택하는지 궁금합니다. |
There was a problem hiding this comment.
위에 말씀하신대로 회사나 팀마다 다르겠지만, 저의 회사 같은 경우에는 현재 공유 라이브러리의 비중이 큰 것 같습니다.
|
|
||
| # 논의 주제 | ||
|
|
||
| - 코드 재사용 방식(코드 복제, 공유 라이브러리, 공유 서비스, 사이드카) 중에서 현재 프로젝트나 회사에서 가장 많이 쓰는 방식은 무엇인가요? 저는 아직 이 네 가지를 의식적으로 구분해서 적용해본 적이 없는 것 같아서, 경험이 있으신 분들은 어떤 기준으로 방식을 선택하는지 궁금합니다. |
There was a problem hiding this comment.
사이드카는 아예 듣도보도 못했고 (...) FE팀 기준 복제가 1순위 라이브러리가 2순위인 것 같습니다
라이브러리 개발용 노드 버전이랑 제품 개발용 노드 버전이 달라서 라이브러리는 가급적 안 건드리게 되네요 :/
제가 작업할 땐 코드 복붙 후 특정 서비스용 예외처리만 별도 수정하는 일이 제일 많았습니다 ..
Summary
논의 주제