이 프로젝트는 Spring Boot를 사용하여 레이어드 아키텍처 방식으로 테스트 코드를 작성하는 예제입니다.
- 본 프로젝트는 Spring Boot의 레이어드 아키텍처 방식을 이용하여 개발되었습니다.
- 테스트 코드 작성 시, H2 데이터베이스와 Java Mail과 같은 외부 프로그램과의 연동이 필요할 수 있습니다.
- Java Mail 등 외부 로직을 포함하는 메소드 테스트에는 mock bean을 사용하고 있습니다.
레이어드 아키텍처는 구조가 단순하며 많은 개발자들에게 익숙해 초중반 프로젝트 개발을 빠르게 진행할 수 있게 합니다. 특히, 스타트업이나 작은 규모의 기업에서 비용을 절약하며 퍼포먼스를 내기에 적합한 구조입니다.
- 단순성: 구조가 간단하며 개발자들에게 익숙합니다.
- 빠른 개발: 프로젝트의 초중반 개발을 신속하게 진행할 수 있습니다.
- 비용 효율성: 초중반 프로젝트 개발 비용을 낮출 수 있습니다.
데이터베이스 주도 설계로 인해 DB 구조에 지나치게 의존하게 될 수 있습니다. 어플리케이션 개발 시 특정 기능의 Use Case를 먼저 고려하고 도메인 간의 관계를 생각하는 것이 중요하지만, 레이어드 아키텍처는 DB 구조를 먼저 고려하여 개발하는 경향이 있습니다. 이는 프로젝트 개발에 부정적인 영향을 미칠 수 있습니다.
- DB 주도 설계: 데이터베이스에 과도하게 의존하는 설계를 유도합니다.
- 의존성 고려 부족: 의존성에 대한 충분한 고려를 유도하지 않습니다.
- 도메인 기능성: 도메인 기반 기능이 효과적으로 작동하기 어렵게 만듭니다.
- 협업 어려움: 다른 개발자와의 동시 작업을 어렵게 만듭니다.
- 확장성 및 속도 저하: 프로젝트 규모가 커질수록 확장성이 떨어지고, 개발 비용이 증가하며 속도가 저하됩니다.