Code Once, Use Everywhere: Building Shared Libraries for Multiple Projects @ Spring I/O 2025
- 여러 프로젝트에서 동일한 기술적 문제를 해결할 때 코드 공유가 필요하다. 🤝
- 복사-붙여넣기의 반복적인 작업에 지쳐있을 때 공유 코드를 고려해볼 수 있다. 😫
- 공유 코드를 통해 반복 작업을 줄이는 것이 비용 효율적인지 판단해야 한다. 💰
- 모든 프로젝트가 단일 소스에 동의하고 표준화된 접근 방식을 따르는 데 동의해야 한다. ✅
- 비즈니스 로직은 공유 코드에 포함하지 않는 것이 좋다. 📦
- 불안정한 기능은 공유 코드에 포함하지 않아야 신뢰도를 유지할 수 있다. 🐛
- 예상만으로 코드를 공유하지 말고, 실제 필요성을 확인해야 유지보수 비용을 절감할 수 있다. 🤔
- 개인적인 욕심이나 과도한 도움은 지양하고, 필요한 최소한의 코드만 공유하는 것이 좋다. 🧘
- 라이브러리는 Maven 의존성 추가만으로 쉽게 사용할 수 있도록 설계해야 한다. ✨
- 개발자가 라이브러리 설정에 번거로움을 느끼지 않도록 자동 설정 기능을 제공해야 한다. ⚙️
- 특정 기능만 선택적으로 사용할 수 있도록 모듈화해야 한다. 🧩
- 라이브러리 구조는 모든 모듈이 유사하게 보이도록 일관성을 유지해야 한다. 🏗️
- 코드가 항상 Spring Framework에 의존하지 않도록 자체적인 추상화를 제공해야 한다. 💡
- Core 모듈은 Spring Framework에 의존하지 않는 핵심 클래스들을 포함해야 한다. 🧰
- Spring 모듈은 Spring Framework를 사용하여 Core 모듈의 추상화를 구현해야 한다. 🌱
- Spring AutoConfigure 모듈은 자동 설정 클래스와 속성들을 포함해야 한다. 🚀
- Spring Boot Starter 모듈은 기본 의존성 세트를 제공하는 작은 모듈이어야 한다. 🎬
- AutoConfiguration 어노테이션을 사용하여 프록시 생성을 방지하고 속도를 향상시켜야 한다. ⚡
- 조건부 어노테이션을 사용하여 빈이 애플리케이션 컨텍스트에 없을 때만 생성되도록 해야 한다. 🚦