(지하철에서 폰으로 막 끄적이는거라 얘 뭐라는거지? 할 수 있음 주의)
개발자로써 항상 고민되는 사항..
에러 코드, 에러 메세지를 어떻게 쓸 것인가...?

에러의 책임이 명확한 경우는 에러 코드 처리가 쉽다.
클라 잘못인 경우 400,404
쿼리에서 오류난 경우 500..
그런데 기본적으로 있어야 하는 필수 데이터가 없는 경우
어떻게 응답을 줘야 할까 ?_?

뭐 예를 들어..
요금제 플랜 데이터가 비어 있거나 삭제된 경우임.
// 기본적으로 DB 에 저장되어 있어야함
Plan: { id: "premium", price: 15000 }
이 에러케이스의 경우 api 응답 코드는 심플하게
INTERNAL_SERVER_ERROR 라고만 보내줌
클라 입장에선 DB 값이 무결하지 않아서 에러가 났든~ 서버 코드 로직 단에서 문법 오류가 났든~ 관심 없고,
“서버 문제”라는 사실만 알면 되기 때문에 세부적인 오류 원인은 전달하지 않는게 맞음
그런데 서버 개발자 입장에서는
에러리포팅을 받자 마자 원인 분석 시간을 조금이나마 줄이기위해
정확히 어떤 테이블의 데이터가 비어있는 건지 즉시 알았으면 좋겠단 말이지..
그래서 에러 리포팅 메세지를 바꿔봤음
데이터베이스 무결성 문제로 인한 서버 에러 발생 시
관련 정보를 포함한 리포팅 메시지를 포함하도록 함
규칙: "데이터베이스에 필요한 값이 없습니다 ( XXX 정보가 없습니다 )"
에러 메세지가 좀 간단하긴 한데
그렇다고 또 너무 자세하게 적으면 경험상 다음과 같은 문제가 생겼음..
1. 메세지 컨벤션이 달라짐 (일부 메시지는 간결하고 일부 메시지는 구구절절)
2. 코너케이스가 생겨버리면 그때부터 에러 메세지가 오히려 혼란을 줄 수 있음
그래서 무결성 문제가 생긴 테이블명만 에러메세지에 포함하도록 함.