본문 바로가기

카테고리 없음

DB 에 있어야하는 데이터인데 없는 경우, 에러 코드는 무엇을 써야 할까?

 (오늘꺼 지하철에서 폰으로 막 끄적이는거라 얘 뭐라는거지? 할 수 있음 주의)



개발자로써 항상 고민되는 사항..
에러 코드, 에러 메세지를 어떻게 쓸 것인가...?

 
 

에러의 책임이 명확한 경우는 에러 코드 처리가 쉽다.
클라 잘못인 경우 400,404
쿼리에서 오류난 경우 500..
 
 
그런데 DB 에 당연히 있어야할 데이터가 없는 경우,
그런건 어떻게 처리해야 할까 ?_?

 

뭐 예를 들어..
user 테이블에서 primary key 가지고 특정 유저 조회 했는데, 당연히 존재해야하는 password 값이 null 로 들어가있는 케이스가 있다면....? (구글소셜로그인이면 pwd 가 null 일 수 있자나! 금지. 애초에 막으면 됐자나 !금지.  Just 가정임 가정.)


일단 이 사항은 클라의 잘못이 아니니까,
이 에러케이스의 경우 api 응답 코드는 심플하게INTERNAL_SERVER_ERROR 라고만 보내줌
(클라 입장에선 DB 값이 빵구가 나서 에러가 났든~ 서버 코드 로직 단에서 문법 오류가 났든~ 자세히 알 필요 없고 서버쪽 오류구나만 알면 되니까)


그런데 서버 입장에서는 에러리포팅을 받자 마자, 버그트래킹 시간을 조금이나마 줄이기위해 DB 어떤 테이블의 데이터 빵꾸가 났는 지 즉시 알았으면 좋겠단 말이G..


그래서 특정 테이블의 데이터에 빵꾸가 있는 경우 아래와 같이 에러메세지가 슬랙 리포팅 오도록 함
데이터베이스에 필요한 값이 없습니다 ( XXX 정보가 없습니다 )



에러 메세지가 너무 구구절절 자세해지면
1. 메세지 컨벤션이 달라질 수 있는 점
2. 코너케이스가 많이 생겨버림

이런 문제가 발생할 수 있기 때문에 일단 이 정도로만 규칙을 정하고 막을 내렸심.


그럼Bye~
(급종료.)