Skip to content
Open
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
@@ -0,0 +1,33 @@
# 1 ~ 3장

## 논의

최근 개발자를 AI로 대체하는 기업이 많다는 뉴스를 심심치 않게 볼 수 있습니다.
인력 제약은 아키텍처를 결정할 때 가장 중요한 요소 중 하나인데, 인력이 줄어든 조직에서 MSA는 여전히 합리적일까요?
Comment on lines +3 to +6
Copy link
Collaborator

Choose a reason for hiding this comment

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

제 개인적인 경험상 아닌거 같다라는 결론 입니다

실제로 저희 회사에서도, 인력이 많이 줄어들었는데, 인력이 많을 때, 많이 만들어두었던 MS 들 유지보수에 어려움을 겪고 있는 상태이고, 이를 통폐합하고 있습니다

근데 최근에 마켓컬리에서 AI Agent를 적극적으로 활용하는 아티클 을 봤었고, 지금 당장은 아니더라도 가까운 미래에는 MSA의 개수와 인력간의 문제는 없어질 가능성이 있지 않을까 기대해봅니다

Choose a reason for hiding this comment

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

저는 합리적이라고 생각합니다.

AI등장 전에는 "팀의 역량 = Σ팀원 의 역량"이었다면 현재는 "팀의 역량 = Σ(팀원 의 역량*AI 활용능력)" 이라고 생각합니다. 고로 팀원 수가 줄어들어도 개개인의 AI활용능력(회사가 지원하는 AI 리소스, AI의 성능 등 AI에 관련된 모든 것을 포함으로 전제)이 훨씬 더 증가한다면, 오히려 팀의 역량은 늘었다고 생각합니다.

그리고 MSA의 목적이 책에 여러 번 등장하였고, 여러 관점 및 여러 상황에서 MSA가 모놀리식보다 낫다는 결론이 있습니다(당연히 무조건은 아닙니다). 그리고 이 또한 AI가 발전한다하더라도 여전히 모놀리식의 side effect가 MSA보다 높을거 같고, 이러한 예시들로 AI의 발전으로 인해 MSA가 모놀리식보다 낫다는 결론에 영향을 주지는 못할거 같습니다.

결론적으로 저는 여전히 합리적일것이라 생각합니다.

만약 유지보수에 인력이 줄어듦으로서 유지보수에 어려움이 있다면 아직 AI의 성능(주석으로 단다고 아직 인간만큼 개발을 해주지는 못 하는거 같음. 아직은 리팩토링, 테스트코드 작성 정도만 유용가능)이 충분히 올라와주지 않은 상태에서 인력이 줄어들어서 생긴 상황이라 생각합니다. "팀의 역량 = Σ(팀원 의 역량*AI 활용능력)" 의 공식에서 팀원 수 : 10, 개개인 역량 1(모두 1로 통일), AI 활용능력 1(모두 1로 통일) 에서 팀원 수 : 5(절반으로 감소), 개개인 역량 1(동일), AI 활용능력 1.5(0.5증가) 하여

10 -> 7.5가 된 상황이지 않을까 싶습니다.

Comment on lines +5 to +6
Copy link
Member

Choose a reason for hiding this comment

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

당장은 AI를 효율적으로 잘 사용하는 개발자와 그걸 생산성으로 연결시켜 인력 문제를 해결한 사례가 많지 않고 진행 중에 있으므로 아닐 것 같다가 제 의견입니다.
그런데 점점 개발자가 직접 해야 하는 일은 줄고 AI가 해주는 일이 많아질 것이므로 AI가 대체한다고 하면
과거 AI가 없던 시절의 MSA 보다는 인력을 줄이는 건 맞는 방향이라고 봅니다.

Comment on lines +5 to +6
Copy link
Member

Choose a reason for hiding this comment

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

AI가 없었던 시절엔 인력 감축이 직접적으로 팀 역량 감소로 이어졌을텐데, 지금은 적은 인력이 AI를 충분히 활용할 수만 있다면 다수의 퍼포먼스를 내는 것이 충분히 가능한 세상이 됐기 때문에 그런 방면에서 개발자 인원 감소가 마이너스 요소가 될 것 같진 않습니다

물론 전제가 'AI를 잘 다룬다' 이기 때문에 다른 분들이 말씀하신 것처럼 AI를 잘 다루지 못하는 인력만 남거나 or AI에 발전이 없다면 별 소용이 없을 것 같긴... 한데 요즘 AI 발전하는 속도 보면 AI에 발전이 없다 는 가능성이 없는 말인 것 같죠

또한 AI 툴을 효과적으로 다루는 게 개발자 필수역량이 된 만큼 AI를 잘 다루지 못하는 인력만 남을 일도 점점 없어질 것 같네요

장기적으로 보면 합리적? 이라기보단 AI 흐름 속에서 인력 감축은 팀에 (어떤 부분이든) 마이너스가 되지 않을 것이라는 게 제 의견입니다 ..


### 내 생각

AI가 코딩 속도를 높여줄 수는 있지만 분산 시스템의 복잡한 구조, 장애 대응, 데이터 일관성 문제와 같은 복잡성까지 대체하기는 어렵다고 생각합니다.
그래서 인력이 줄어들수록 MSA의 이점보다는 운영 부담이 더 커질 것이고, MSA보다는 다른 대안이 더 합리적이지 않을까하는 생각입니다.

## 내용

- 현대 아키텍처의 하드 파트는 데이터와 아키텍처 관심사 사이의 텐션(밀당)에서 비롯됨
- 데이터
- 운영 데이터
- 비즈니스 활동에 쓰이는 **필수** 데이터
- 일반적으로 트랜잭션 성격의 데이터
- 분석 데이터
- 예측, 트렌드 분석, 기타 BI 용도로 쓰이는 데이터
- 일반적으로 트랜잭션과 무관
- 장기적인 전략 수립과 결정에 중요하게 활용됨
- ADR(Architecture Decision Records, 아키텍처 결정 기록): 아키텍처 결정을 가장 효과적으로 문서화하는 방법
- 아키텍처 피트니스 함수: 아키텍처 특성의 무결성을 **객관적**으로 평가하는 임의의 매커니즘
- 도메인 지식이 필요하지 않음
- JDepend, ArchUnit ..
- 객관적 == 정적(static)? X. 문맥에 따라 다른 값을 반환할 수 있음
- 간혹 수동으로 실행해야 하는 함수도 있음 (수동 피트니스 함수)
- 아키텍처 퀀텀: 독립 배포 가능한 아티팩트 (높은 기능 응집도, 높은 정적 커플링, 동기적 동적 커플링)
- 정적 결합: 공유 DB는 시스템 간의 결합점이 되어 진정한 의미의 독립 배포가 불가능하다 => 1퀀텀 = 1DB
- 동적 결합: 통신(동기? 비동기?), 일관성(원자성? 최종 일관성?), 조정(오케스트레이터? 코레오그래피?)
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
- 동적 결합: 통신(동기? 비동기?), 일관성(원자성? 최종 일관성?), 조정(오케스트레이터? 코레오그래피?)
- 동적 결합: 통신(동기? 비동기?), 일관성(원자성? 최종 일관성?), 조정(오케스트레이터? 코레오그래피?)

- UI 결합: 단일 유저 인터페이스가 백엔드와 단단히 결합되면 아키텍처 퀀텀은 다시 1로 줄어들 수 있음