예외를 씹지 말자. 예외를 씹지 말자…
제 아무리 SI여도 이정도까지 타락하지는 않는데…
간만에 충격을 좀 받아서 주저리주저리 합니다.
다른업체가 유지보수하던 걸 이어받게 됐어요.
이어받아서는 안됐어요.
try {
// 온갖 로직이 들어감.
} catch(Exception e) {
message = “이미 XX하신 YY입니다. 다른 YY를 선택해 주세요.“; // 업무코드라 그냥 적으면 안되서…
model.addAttribute(“message”, message);
return “forward://ZZZZZZZ“;
}
대체 이런 코드를
그것도 이 시스템에서 가장 민감한 컨트롤러 메소드를…
핵심로직을 죄다 컨트롤러에 박아넣은 것도 마음에 정말 안드는데
(MVC상, 비즈니스로직은 서비스에 들어가야 합니다.)
예외가 발생하면, 얘를 오류로 보는 게 아니라 중복 사용이라고 멋대로 판단해서 메시지를 뿌린다는 건
대체 뭔 생각으로 이렇게 짠 거지?
그리고 예외가 발생했으면, 그 원인을 찾아야지
로그 한줄 찍지 않고 그냥 날려버린다는 것도 참 이해가 가지 않고
보안에 안좋다며
예외 메시지를 로그로 출력하는 걸 금지하는 곳이 있긴 하거든요.
스택 트레이스가 민감정보라며…
아니에요 이양반아.
애초에, 클라이언트가 로그에 접근 못하게 막아야 하는거고
다른 사람이, 서버에 무단 원격접속하는 걸 막아야 하는거지.
해커 입장에서는, 일단 서버에 원격접속에 성공했으면, 저런 로그 볼 필요도 없어요.
그냥 jsp나 js 파일에다 악성코드 심으면 끝나는 걸. 아님 백도어를 깔거나.
그리고 그것도 스택 트레이스를 숨기라는거지
오류 자체를 찍지 말라는 게 아니야…
찍고, 발견하고, 수정해야지.