에러 회고 시리즈에서는 제가 백엔드 개발자로서 일을 하면서 제가 발생시켰던 에러에 대해 정리해서
다음에는 이런 실수를 하지 않도록 정리 하는 내용입니다!
옵셔널 체이닝 연산자는 참조나 기능이 undefined 또는 null일 수 있을 때 연결된 객체의 값에 접근하지 않고 undefined을 반환합니다.
장점
const market = {
code: "AA",
name: "전통시장"
}
console.log(market.storeManager);
// undefined 호출됩니다.
console.log(market.storeManager.name);
// undefined이 호출되는 것이 아니라 에러가 발생합니다.
console.log(market?.storeManager?.name);
// 에러 없이 undefined이 호출됩니다.
const marketRoadAddress = market.address?.roadAddress || "주소 추가 필요"
현재 회사에서 스마트스토어를 사용하고 있는데 취소(cancel) 같은 경우는 사유를 받아오고 있지만 환불(return) 같은 경우 사유를 받고 있지 않았습니다.
이번에 어플에서 상인들이 사유를 볼 수 있게 하기 위해 환불에 대한 사유를 받아야 하는데,
네이버에서 제공해주는 스마트스토어 API는 취소와 환불의 상태값이 다르기 때문에 상태에 따라 던져주는 값도 달라 아래와 같이 처리하였습니다.
이때 옵셔널 체이닝을 빼먹는 실수를 하여, 해당 데이터 처리 작업에서 에러가 발생하였습니다 ㅠㅠ
this.DetailedReason = prdOrdNaver?.CancelInfo?.CancelDetailedReason
|| prdOrdNaver?.ReturnInfo.ReturnDetailedReason || null;
// 취소 또는 환불 사유를 받을 수 있게 작성 하는 것이 목표였습니다. 취소 사유가 없으면 환불 사유 체크하고 없으면 null 값으로 저장