업무를 하면서 부트캠프에서 한 것들을 돌이켜보며 왜이렇게 했지... 라는 생각을 굉장히 많이 했다 ㅋㅋㅋ

 

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("~~~");
});

 

이렇게하면 동시에 작업이 가능하다~

+ Recent posts