스프링캠프 2025 [Track 1] 5. Talk 3 - 기술 Talk (이동욱, 안영회, 조영호)
- 객체에게 역할과 책임을 부여할 때는 객체 자체가 아닌, 전체 컨텍스트를 먼저 고려해야 합니다. 🎭
- 객체 지향 설계 시, 연극이나 애니메이션처럼 시각적인 이미지를 떠올리며 등장인물 간의 상호작용을 설계하는 것이 효과적입니다. 🎬
- 모듈성을 높이는 것은 소프트웨어 개발의 핵심 기술이며, 숙련된 개발자와 초보 개발자를 구분 짓는 중요한 요소입니다. 🧩
- JPA 엔티티와 도메인 객체 분리 여부는 DB 스키마 변경이 도메인 객체에 미치는 영향과 변경 속도를 고려하여 결정해야 합니다. 🔀
- DB 스키마와 도메인 객체의 변경 속도 및 방향을 명확히 알지 못하는 초기 프로젝트 단계에서는 분리보다 통합을 고려하는 것이 좋습니다. 🤝
- 여러 조직이 공유하는 데이터베이스(Shared DB)나 복잡한 레거시 DB를 사용하는 경우, JPA 엔티티와 도메인 객체를 분리하는 것이 합리적입니다. 🏢
- AI 에이전트 기반 프로그래밍은 개발 패러다임에 큰 영향을 미칠 수 있으며, 에이전트 간의 소통 방식이 중요해질 것입니다. 🤖
- 코틀린과 JPA를 함께 사용할 때, 완전한 불변성을 추구한다면 JPA 엔티티와 코틀린 객체를 분리하고, 그렇지 않다면 코틀린 JPA 프레임워크를 고려해볼 수 있습니다. 🛠️
- 미래를 대비한 설계는 좋지만, 과도한 예측은 오히려 코드의 복잡성을 증가시키고 유지보수를 어렵게 만들 수 있습니다. 🔮
- 변경에 유연한 설계를 위해서는 문제의 복잡도에 맞는 가장 단순한 설계를 선택하고, 실제 요구사항이 발생했을 때 코드를 추가하는 것이 좋습니다. ✅
- 창발적 아키텍처를 허용하기 위해서는 변화에 열려 있어야 하며, 지나친 사전 계획은 오히려 유연성을 저해할 수 있습니다. 🍃