si 회사는 람다 스트림을 보고
사실 람다나 스트림, 익명 함수 같은 기능이 새롭고 어려워서 안 쓰는 거라면 이해할 수 있습니다. 하지만 Java 1.8부터 나온 기술이라 이미 15년 가까이 지난 기능이죠.
그걸 지금까지 안 쓴다는 건 분명 이유가 있는 것이지, 굳이 “쓰는 사람 vs 안 쓰는 사람”으로 편 가를 필요는 없다고 생각합니다.
오히려 난이도만 따지면 NIO 2.0이나 JNI 같은 게 훨씬 어렵습니다.
요즘 개발 환경에서는 스프링 공통 코드나 이미 잘 만들어진 오픈소스를 어떻게 활용하느냐가 더 중요한데, 그런 부분을 비판하는 게 더 생산적이지 않나 싶습니다.
제가 작성한 JDK 기반 코드도 사실 복잡한 건 없습니다. 1년 차 개발자도 충분히 쓸 수 있는 수준이죠.
private List<RestResultVo> processUsers(
List<IdmUnityUserVo> users,
String taskType,
Function<IdmUnityUserVo, String> userFunction) {
logger.info("{} start: {}", taskType, users.size());
logger.info("Transaction active: {}", TransactionSynchronizationManager.isActualTransactionActive());
return users.stream()
.map(user -> processSingleUser(user, taskType, userFunction))
.collect(Collectors.toList());
}
private RestResultVo processSingleUser(
IdmUnityUserVo user,
String taskType,
Function<IdmUnityUserVo, String> userFunction) {
// ...
processQueue(user, taskType, serverId);
return new RestResultVo(
user.getAccount_id(),
ErrorCodeConstants.REGSITER_SUCESS,
determineRtnCode(msg),
msg
);
}
이런 걸 “못 써서 안 쓰는” 경우는 거의 없겠죠.
저도 물경력 15년 차지만, 여기서 제가 하급에 속하지만 다 쓰는기술입니다;
코파일럿이 정리해줫습니다=_=