개발/개발 일상 2

BeanCopy는 편한데 왜 불안할까? 실무에서 setter로 바꾸게 된 이유

BeanCopy, 처음엔 정말 편했는데 ..서비스에서 DTO Entity 변환을 할 때,처음에는 BeanUtils.copyProperties(source, target) 같은 방식이 너무 편하게 느껴졌다.코드도 짧고, 작성도 빠르고, 당장은 문제 없어 보였다.하지만 점점 마음 한구석이 불편해진다?처음엔 편했지만, 시간이 지날 수록 이런 문제가 생기기 시작했다.어떤 값이 복사되는지 명확하지 않다.필드를 추가/삭제해도 에러가 안 나서 눈치 못 채고 버그 발생디버깅할 때 이 값 왜 들어가 있지? 같은 현상도 발생결국 복사되는 흐름이 코드에 드러나지 않다 보니,읽는 나도 헷갈리는데, 나중에 유지보수하는 사람은 더 헷갈리지 않을까? 하는 생각을 하게됐다.그래서 setter 방식으로결국 명시적으로 하나하나 설정하..

Java에서 CollectionUtils.isEmpty 대신 Optional을 써야할까?

CollectionUtils.isEmpty ? Optional ?개발 중에 이런 상황이 있었다.메서드 파라미터로 List를 받는데, 나는 아래와 같이 null 및 empty 를 체크하고 있었다.if (CollectionUtils.isEmpty(list)) { return;}// 처리 로직그러던 중, 선임 개발자한테 아래와 같은 피드백을 받은 적이 있다."왜 Optional 안 써? Optional 쓰면 더 깔끔하지 않아?" 그래서 궁금해졌다.Optional을 쓰면 정말 더 좋은 걸까?✔️  선임 개발자가 원하는 방향Optional.ofNullable(list) .filter(l -> !l.isEmpty()) .ifPresent(l -> { // 처리 로직..