본문 바로가기
개발 잡담

DB 논리적 제약 조건일 때 애플리케이션에 검증 코드를 추가해야 하는가?

by 휴일이 2025. 12. 18.

 

 

 

회사 송년회에 먹은 디저트 개굿

 

 

 

현재 개발하고 있는 mmebot 에는 DB 에 제약 조건을 걸지 않을 셈이다.

이유는

 

먼저 프로토 타입으로 출시 후, 빠르게 기능 추가를 할 것이기 때문에 DB 가 확확 바뀔 가능성 있음. (99.99% 바뀔 것임.)

제약 조건이 걸려있으면 변경이 어려웁자나 ㅜㅜ 힝

 

 

(당연히)애플리케이션에는 제약 조건을 걸 것이다.

 

나는 JPA 를 사용하니까 Entity 에 이런 식으로 ㅎㅎㅎㅎ

 

 

 

헌데 여기서 의문이 하나 생겼다.

 

논리적 제약 조건을 사용할 때 애플리케이션에 검증 코드를 추가해야 할까?

 

 

 

 

흠...

 

 

1차원적으로는

-> 어차피 Entity 에 제약 조건을 걸어놔서 JPA 가 알아서 걸러주지 않나..? 라고 생각했음

-> 앱을 통하는 insert , update 등은 JPA 가 전부 막아줄 테니까.. 굳이..?

-> DB 에 직접 CUD 등을 하지 않으면 되잖아?.?

 

 

 

그런데 좀 더 생각해보면..

 

 

 

 

-> DB 에 직접 CUD 등을 하지 않으면 되잖아?.? ->>>> 운영 환경에서 DB 를 직접 만지는 순간이 100% 있을 수밖에 없음.

그 뜻은 제약조건에 위배된 데이터가 들어올 가능성이 99.9% 존재한다는 것.

그런데 DB에 검증 코드를 추가하지 않는 것은 갱장히 짧은 생각일 수 있다..

 

 

 

그리하여 나는 반드시 데이터를 가져오기 전 제약 조건을 검증하겠다고 결심을 하였는데...

 

 

 

(바로 다음 글에 계속)

 

 

 

 

 

728x90
반응형