inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

토비의 클린 스프링 - 도메인 모델 패턴과 헥사고날 아키텍처 Part 1

회원 상세 정보 도메인 모델

아키텍쳐 선택의 순수한 질문드립니다.

해결된 질문

86

마르크스

작성한 질문수 2

0

안녕하세요 토비님! 순수한 궁금증이 생겨서 질문 드립니다!

아키텍처마다 장단점이 있다고 생각합니다. 프로젝트의 규모나 확장성 여부에 따라 어울리는 아키텍처가 다를 것 같은데요, 토비님은 현업에서 어떤 기준을 가장 중점적으로 두고 아키텍처를 선택하시는지 궁금합니다!

java spring spring-boot jpa 리팩터링 ddd

답변 2

0

토비

보통 잘 알려진 가장 단순한 아키텍처로 시작해서 프로젝트가 진행되면서 점진적으로 개선하려고 합니다.

보통 아키텍처는 초기에 잘 만들어야 하고, 그리고 변경이 힘들다고 합니다. 크고 복잡한 시스템이면 어느 정도 맞는 말이죠. 하지만 초기에 프로젝트가 어떻게 발전할지 예측해서 완벽한 아키텍처를 만드는 것은 현실적으로 불가능합니다.

제가 지지하는 방식은 가능한 가장 단순하고 명확한 것으로 시작해서 필요할 때 필요한 부분만 변경하는 것입니다.

0

인프런 AI 인턴

안녕하세요, 인프런 AI 인턴입니다. xorl0514님께서 질문해 주신 아키텍처 선택에 관한 내용을 살펴보겠습니다.

프로젝트에 적합한 아키텍처를 선택하는 것은 매우 중요한 결정으로, 여러 가지 요소를 고려해야 합니다. 토비님께서도 강의에서 다양한 아키텍처의 장단점을 다루시며 설명하신 바 있습니다. 아래는 아키텍처 선택 시 고려할 주요 요소들을 간단히 정리한 것입니다:

  1. 프로젝트 규모와 복잡성: 작은 규모의 프로젝트에서는 간단하며 빠르게 구현할 수 있는 모놀리틱 아키텍처가 적합할 수 있습니다. 반면, 시스템이 복잡하고 많은 모듈로 나뉘어야 한다면 마이크로서비스 아키텍처와 같은 분산 구조를 고려할 수 있습니다.

  2. 확장성: 프로젝트가 성장할 가능성이 있는 경우에는 확장이 용이한 아키텍처를 선택하는 것이 중요합니다. 헥사고날 아키텍처는 변화에 강하고 확장성을 고려한 구조로, 새로운 기능 추가 및 시스템 증대에 유리합니다.

  3. 유지보수: 장기적인 관점에서 유지보수 비용이 경제적인 구조를 선택해야 합니다. 헥사고날 아키텍처는 도메인 중심으로 설계되며, 유지보수성이 뛰어난 점이 특징입니다.

  4. 팀의 기술력: 팀이 가진 기술 스택과 경험도 선택에 영향을 미칩니다. 새로운 아키텍처를 도입할 때는 학습 비용과 러닝 커브도 고려해야 합니다.

이와 관련하여, 이전에 토비님께 다음과 같은 질문이 제기된 사례가 있습니다. 이 질문들과 답변들을 참고하시면 더욱 전략적인 아키텍처 선택에 도움이 되실 것입니다:

저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다.
현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏
추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.

테스트 관련 질문!

0

56

2

N+1 관련해서 질문있습니다.

0

97

3

도메인 모델에서 관계와 규칙을 구분하는 방법

0

85

2

헥사고날 아키텍처에서의 배치, 시큐리티, 비동기 이벤트 처리는 어떻게 하나요?

0

168

2

어댑터에서 도메인에 직접 의존하는 경우에 대해

0

159

2

Member 도메인이 PasswordEncoder를 받는 구조 질문 있습니다.

0

136

2

MemberService와 EmailSender 책임 분리에 대한 질문

0

121

2

NonNullApi를 NullMarked로 대체하라고 합니다.

0

155

2

39. 문서와 코드 다듬기 updateInfo 테스트 질문 있습니다.

0

92

2

Repository Adapter 설계에 대해 피드백을 부탁드립니다

0

121

2

헥사고날 part2 강의 출시 예정일 문의 드립니다.

0

280

2

PT 문의사항

0

114

1

초기 어플리케이션 구동 시 compose.yml 파싱 오류

0

164

2

애플리케이션의 JPA 리턴과 도메인 모델

0

141

2

애그리거트 루트의 하위 도메인들의 depth가 깊어질 때 문의

0

153

2

페이징 처리를 해야한다면 어떻게 해야할까요?

0

209

2

애그리거트의 repository

0

132

2

Domain Expert가 정확히 어떤 역할을 하는 사람인가요?

0

259

1

회원 애플리케이션 서비스 테스트 (1)

0

118

2

정적 팩토리 메서드 관련 질문드립니다!

0

116

2

spotbug + @NonNullApi 로만 Null 방어가 될까요?

0

140

2

required 포트에 관해서

0

99

2

혹시 다음 편은 언제쯤 오픈할까요?

0

179

2

서비스 단위 테스트 코드 작성

0

107

2