From c7efff3ca8c4c9eb6734ad51c50f72659fb4ed5d Mon Sep 17 00:00:00 2001 From: dhlee3994 Date: Thu, 8 Jan 2026 23:18:34 +0900 Subject: [PATCH 1/2] =?UTF-8?q?1~3=EC=9E=A5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../donghyeon/week1.md | 33 +++++++++++++++++++ 1 file changed, 33 insertions(+) create mode 100644 2026/Fundamentals_of_Software_Architecture_2nd_Edition/donghyeon/week1.md diff --git a/2026/Fundamentals_of_Software_Architecture_2nd_Edition/donghyeon/week1.md b/2026/Fundamentals_of_Software_Architecture_2nd_Edition/donghyeon/week1.md new file mode 100644 index 00000000..bf513740 --- /dev/null +++ b/2026/Fundamentals_of_Software_Architecture_2nd_Edition/donghyeon/week1.md @@ -0,0 +1,33 @@ +# 1 ~ 3장 + +## 논의 + +최근 개발자를 AI로 대체하는 기업이 많다는 뉴스를 심심치 않게 볼 수 있습니다. +인력 제약은 아키텍처를 결정할 때 가장 중요한 요소 중 하나인데, 인력이 줄어든 조직에서 MSA는 여전히 합리적일까요? + +### 내 생각 + +AI가 코딩 속도를 높여줄 수는 있지만 분산 시스템의 복잡한 구조, 장애 대응, 데이터 일관성 문제와 같은 복잡성까지 대체하기는 어렵다고 생각합니다. +그래서 인력이 줄어들수록 MSA의 이점보다는 운영 부담이 더 커질 것이고, MSA보다는 다른 대안이 더 합리적이지 않을까하는 생각입니다. + +## 내용 + +- 현대 아키텍처의 하드 파트는 데이터와 아키텍처 관심사 사이의 텐션(밀당)에서 비롯됨 +- 데이터 + - 운영 데이터 + - 비즈니스 활동에 쓰이는 **필수** 데이터 + - 일반적으로 트랜잭션 성격의 데이터 + - 분석 데이터 + - 예측, 트렌드 분석, 기타 BI 용도로 쓰이는 데이터 + - 일반적으로 트랜잭션과 무관 + - 장기적인 전략 수립과 결정에 중요하게 활용됨 +- ADR(Architecture Decision Records, 아키텍처 결정 기록): 아키텍처 결정을 가장 효과적으로 문서화하는 방법 +- 아키텍처 피트니스 함수: 아키텍처 특성의 무결성을 **객관적**으로 평가하는 임의의 매커니즘 + - 도메인 지식이 필요하지 않음 + - JDepend, ArchUnit .. + - 객관적 == 정적(static)? X. 문맥에 따라 다른 값을 반환할 수 있음 + - 간혹 수동으로 실행해야 하는 함수도 있음 (수동 피트니스 함수) +- 아키텍처 퀀텀: 독립 배포 가능한 아티팩트 (높은 기능 응집도, 높은 정적 커플링, 동기적 동적 커플링) + - 정적 결합: 공유 DB는 시스템 간의 결합점이 되어 진정한 의미의 독립 배포가 불가능하다 => 1퀀텀 = 1DB + - 동적 결합: 통신(동기? 비동기?), 일관성(원자성? 최종 일관성?), 조정(오케스트레이터? 코레오그래피?) + - UI 결합: 단일 유저 인터페이스가 백엔드와 단단히 결합되면 아키텍처 퀀텀은 다시 1로 줄어들 수 있음 \ No newline at end of file From c2bca07dd4cda3f7586b7b454300fb58bcfe4172 Mon Sep 17 00:00:00 2001 From: dhlee3994 <121185072+dhlee3994@users.noreply.github.com> Date: Thu, 8 Jan 2026 23:24:13 +0900 Subject: [PATCH 2/2] =?UTF-8?q?=EB=A7=88=EC=A7=80=EB=A7=89=20=EA=B0=9C?= =?UTF-8?q?=ED=96=89=20=EC=B6=94=EA=B0=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-authored-by: gemini-code-assist[bot] <176961590+gemini-code-assist[bot]@users.noreply.github.com> --- .../donghyeon/week1.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/2026/Fundamentals_of_Software_Architecture_2nd_Edition/donghyeon/week1.md b/2026/Fundamentals_of_Software_Architecture_2nd_Edition/donghyeon/week1.md index bf513740..a83aee02 100644 --- a/2026/Fundamentals_of_Software_Architecture_2nd_Edition/donghyeon/week1.md +++ b/2026/Fundamentals_of_Software_Architecture_2nd_Edition/donghyeon/week1.md @@ -30,4 +30,4 @@ AI가 코딩 속도를 높여줄 수는 있지만 분산 시스템의 복잡한 - 아키텍처 퀀텀: 독립 배포 가능한 아티팩트 (높은 기능 응집도, 높은 정적 커플링, 동기적 동적 커플링) - 정적 결합: 공유 DB는 시스템 간의 결합점이 되어 진정한 의미의 독립 배포가 불가능하다 => 1퀀텀 = 1DB - 동적 결합: 통신(동기? 비동기?), 일관성(원자성? 최종 일관성?), 조정(오케스트레이터? 코레오그래피?) - - UI 결합: 단일 유저 인터페이스가 백엔드와 단단히 결합되면 아키텍처 퀀텀은 다시 1로 줄어들 수 있음 \ No newline at end of file + - UI 결합: 단일 유저 인터페이스가 백엔드와 단단히 결합되면 아키텍처 퀀텀은 다시 1로 줄어들 수 있음