728x90 Java2 [Java] JdbcTemplate.queryForObject의 오해 이상하다? ✔️ 아이디 중복 체크를 하기 위해 클라이언트가 요청한 아이디와 DB에 저장된 아이디와 동일한지 확인해야 했다. 일치하는 데이터가 없으면 당연히 `null` 값이 들어오겠지? ✔️ `Optional`을 사용해 `queryForObject`를 감쌌다. => 하지만, `null`이 아닌 `EmptyResultDataAccessException`이 발생했다. EmptyResultDataAccessException의 근원이 어디인가? ✔️ `queryForObject`의 호출을 따라가보자 📢 비었으면 예외를 터뜨려버린다 해결 방법은 뭐지? ✔️ `queryForList`를 사용하면 결과가 없을 경우 빈 배열로 반환한다. 2023. 11. 14. [Java] 동기(Sync) vs 비동기(Async) :: 블록킹(Blocking) vs 논블록킹(Non-Blocking) 동기 Synchronous 와 비동기 Asynchronous 작업을 수행하는 주체에 관점 동기 Synchronous 1) 한 작업이 완전히 끝나고 난 후 순차적으로 다른 작업을 진행하는 경우 2) 두 작업의 시작 시간과 종료 시간을 같게 맞추는 경우 비동기 Asynchronous 1) 작업을 수행하는 주체의 시작과 끝나는 시간에 관계없이 각자 별도의 시작과 끝나는 시간을 가지고 있는 경우 Sync, Async와 Thread 간의 관계 Sync + Single Thread = Sequential (순차) Sync + Multi Thread = Parallel (병렬) Async + Single Thread = Concurrent (동시) Async + Multi Thread = Concurrent and .. 2023. 4. 22. 이전 1 다음 728x90