업무를 하면서 부트캠프에서 한 것들을 돌이켜보며 왜이렇게 했지... 라는 생각을 굉장히 많이 했다 ㅋㅋㅋ
3,4년차 선배들에게 배운것들이 많다.
특히 그냥 데이터 존재를 했을대 NPE(NullPointException)이 나는 것을 그냥 방치해두면 안되기 때문에
대부분 Optional 을 쓴다고 했다.
그래서 요즘 Optional을 매우 많이 쓰는중 ㅎㅎ
예를 들면
우리는 헥사고날 아키텍쳐로 리부트를 진행했기 때문에 service를 바로 타지 않고 port를 한번 거치는데
OutPort에서
Optional<TransactData> findByTransactId(String transactId);
를 한 다음,
adaptor -> out -> db -> TransactDao 에서
TransactData findByTransactId(String transactId);
그리고 DataBaseAccess에서
@Override
public Optional<TransactData> findByTransactId(String transactId) {
return Optional.ofNullable(transactDao.findByTransactId(transactId)));
}
그리고 마지막으로 service 단에서
OutPort.finByTransactid(transactId).orElseThrow(() -> return new Exception("~~~");
이렇게 사용해준다!
*참고로 예외도 던지면서 다른 작업도 하고싶다면?
orElseThrow(() -> { slackSendHook("~~");
return new Exception("~~~");
});
이렇게하면 동시에 작업이 가능하다~
'개발일기' 카테고리의 다른 글
Mybatis에서 index 오류? (0) | 2024.04.05 |
---|---|
sse 채팅 id 생성 안됨 오류 (2) | 2023.07.31 |
sse 랜덤채팅-docker, kafka 사용하기(2) (0) | 2023.07.22 |
sse 랜덤채팅-docker,kafka 사용하기(1) (0) | 2023.07.21 |