일정 관리 서비스를 구현하는 과정에서, deleteTaskById() 메서드는 id를 파라미터 값으로 받아서 task 테이블에서 해당 id의 행을 삭제하는 기능을 수행한다. 기존 코드는 아래와 같이 작성되어 있었다.

이 코드의 문제점은, 존재하지 않는 id가 입력되었을 때 예외 처리가 없어 사용자에게 적절한 피드백을 제공하지 못한다는 것이었다.
이로 인해 사용자는 일정이 정상적으로 삭제되었는지 여부를 알 수 없었고, 시스템의 신뢰성이 떨어지는 문제가 발생할 수 있었다.
jdbcTemplate.update() 메서드는 반환 타입으로 int를 갖는다. SQL 문을 실행한 다음, 이 메서드의 영향을 받은 행(row)의 수를 반환하는 것.
기존 코드에서는 삭제된 행의 개수를 반환하도록 되어있었는데,
이 반환값을 활용하지 않았기 때문에, 삭제할 행이 존재하지 않아도 별도의 예외를 발생시키지 않았다.
이로 인해 사용자는 삭제가 실패했는지 여부를 알 수 없었다.
이 문제를 해결하기 위해, jdbcTemplate.update() 메서드의 반환값인 영향을 받은 행의 수를 체크하고,
삭제할 행이 없는 경우(affectedRows == 0) 예외를 발생시키도록 코드를 수정하였다.
수정된 코드는 다음과 같다.

이제 deleteTaskById() 메서드는 삭제할 행이 없는 경우 IllegalArgumentException을 발생시키면서 사용자에게 적절한 피드백을 제공할 수 있게 되었다.
이를 통해 시스템의 신뢰성이 향상되었고, 사용자는 삭제 작업의 성공 여부를 명확히 알 수 있게 되었다.
이번에 deleteTaskById() 메서드의 예외 처리 부족 문제를 해결한 방식으로 데이터베이스 작업 시 반환값을 적극 활용하여 예외 처리를 강화하면 시스템의 안정성과 사용자 경험을 개선할 수 있다. 앞으로도 비슷한 문제가 발생할 경우, 이와 같은 접근 방식을 활용하여 문제를 해결할 예정이다.
이와 같은 추가 개선 사항을 통해, 더욱 견고하고 유지보수하기 쉬운 코드를 작성할 수 있을 것이라 기대된다.