- 클래스 필드 타입으로 Optional을 사용하지 않는 것이 좋습니다. 🚫
- 함수 파라미터로 Optional을 받지 않는 것이 좋습니다. 🙅♀️
- 함수 반환 타입으로 Optional을 사용하는 것을 선호합니다. 🎁 이는 값에 대한 처리를 호출자에게 위임하는 것을 의미합니다.
- Optional 사용은 책임을 전가하는 것으로, 값 처리를 호출자에게 맡기는 것입니다. ➡️
- 타입을 명확히 하여 상위 레이어에서 Optional 없이 처리하도록 합니다. 🔍
- 제어 불가능한 영역 (예: 외부 API 호출)에서는 Optional 사용이 유용할 수 있습니다. 🌐
- 인터페이스의 함수 반환 값으로 Optional을 사용하는 것을 선호합니다. 💡
- 내부 컴포넌트 간 소통에서는 Optional 사용을 자제합니다. 🤝
- JPA 리포지토리의 Optional 반환은 자연스럽지만, 상위 레이어에서의 Optional 반환은 지양합니다. ⬆️
- Optional을 잘 활용하면 널 핸들링에 유용하지만, 널이 더 직관적일 때도 있습니다. 🤔
- 외부 API와의 소통 시, 응답이 없을 경우 Optional을 사용하여 표현하는 것이 적합합니다. 📤
- 내부 소통에서는 Optional 사용을 자제하고, 데이터 조회 영역에서만 Optional을 허용하는 규칙을 설정하는 것이 좋습니다. ⚙️
- 무조건적인 Optional 사용은 지양해야 합니다. ⚠️
- 리턴 타입이 명확한 경우 Optional로 감싸는 것은 최악입니다. ❌
- Optional 사용 시에는 명확한 이유가 있어야 합니다. ✅
- Optional은 데이터가 없을 수 있음을 알리고, 에러 처리 또는 폴백 사용 여부를 호출자가 선택하도록 합니다. 🎯
- 함수 리턴 시 Optional을 사용하여 책임 전가를 명확히 하는 것이 좋습니다. ➡️
- 데이터 조회 후 데이터가 없으면 내부에서 예외를 던지는 것이 더 명확합니다. 💥
- 코드 체이닝 과정에서 Optional을 사용하여 책임 전가 여부를 결정합니다. 🔗
- 데이터 조회 영역 또는 외부 API 호출 영역에서만 Optional을 허용하는 규칙을 설정하는 것이 좋습니다. 🛡️