학교 벌점 사이트 DB 날려먹음 🔥

ki hyun Lee·2022년 9월 26일
11

계기

우리 학교는 평범한 학교들과 달리 자체적인 벌점 시스템을 가지고 있다. 벌점이 어느 정도 이상 쌓인 학생들은 솔로몬 법정이라는 곳으로 넘어가는 시스템인데 이때 벌점 집계를 위해 내가 만든 사이트를 사용하고 있었다만...

🤬 소리함...

이번에 이 사이트에 새로 소리함을 추가하게 되었다. 학생들의 건의 사항을 더욱 효과적으로 관리하고, 학생들도 자신들이 건의한 사항들이 어떻게 반영되고 있는지 확인할 수 있도록 소리함을 만들었지만, 학생 계정의 기본 비번이 1q2w3e4r 점을 악용한 (아니 애초에 이렇게 한 내가 바보다..) 몇몇 학생들이 남의 계정으로 건의를 이상한 건의를 하기 시작했고 이걸 막기 위해 학생들의 비번을 모두 랜덤한 비번으로 바꾼 다음에 이메일로 비번을 보내주자! 라는 나름의 획기적인 생각을 하게 된다.

👻 비번을 바꿔보자!

그렇게 해서 학생들의 비번을 단체로 업데이트하기 위해 백엔드에 코드 몇개를 추가해서, 모든 학생들을 조회해서 학생들의 비번을 랜덤한 문자열로 바꾼 다음에 바꾼 비번과 학생 이름을 CSV로 저장하게 하였다. 여기까진 모두 완벽했다..

⛔️ 문제 발생

이렇게해서 개발 DB에 저장된 새로운 비밀번호들을 실제 DB로 옮기려고 하였다. 하지만 Postico는 한 개의 column을 복붙하는 기능을 지원하지 않았기에 그냥 유저 전체를 복사하고, 지우고, 추가하면 끝일거라고 생각했었다. 하지만, 난 쓸데없이 학생와 벌점 사이에 CASCADE를 적용해뒀었고 그 결과...

🤯 모든 벌점이 삭제됬다...

다 날려먹고 조금 복구한 모습..

실제 DB의 모든 유저를 지웠다가 새로 추가했기에 연결되있던 모든 벌점이 삭제되었다... (Postico는 왜 경고를 안 띄우는거야 @%^%^@%@#) 순간 머리가 하애져서 내가 하지 않았더라도 자동으로 된 백업이 없나 열심히 살펴봤지만 당연히 그런건 존재하지 않았다. DB와 서버를 모두 Render에 배포해뒀기에 render에서 나를 위해 백업을 해둔게 없을까 잘 찾아봤지만, 자동 백업은 유료 플랜만 제공한단다...

돈 좀 낼걸..

백업, 백업, 백업

다행히도 선도부와 사생회 측에서 벌점을 기록해둔 종이가 있다고 해서 벌점은 복원할 수 있다고 한다 (살았다). 사실 이번 문제는 백업을 해두었다면 문제도 아닐 문제였다. 하지만, 내 DB는 날라갈 일이 없다는 이상한 근자감으로 백업을 하지 않다가 이번에 호되게 맞은 것 같다. 항상 백업하는 습관을 들이거나 Render처럼 자동으로 백업해주는 옵션이 있으면 무조건 선택하자.

+ Render

이번에 헤로쿠가 유료화된다고해서 헤로쿠의 대안이라고 불리는 프로젝트들을 여러가지 살펴봤는데 그 중 UI가 가장 깔끔하고, 무료 플랜이 있고, 유료 플랜이 있더라도 싸게 사용할 수 있는 프로젝트를 고르고 골라 고른게 Render였는데 자체적으로 AutoScaling, Automatic Backup, 그리고 CI & CD를 지원하니 헤로쿠 무료 플랜이 없어져서 슬픈 사람들에게 좋은 대안이 될 것 같다! (어차피 난 유로로 써야할 것 같지만...)

profile
Full Stack Developer at Team Verse

13개의 댓글

comment-user-thumbnail
2022년 9월 26일

잘하자

1개의 답글
comment-user-thumbnail
2022년 9월 27일

복구 축하

답글 달기
comment-user-thumbnail
2022년 9월 27일

아찔하셨겠네요. 헤로쿠가 유료화되는 것은 이번 포스트를 통해 처음 알았어요.

1개의 답글
comment-user-thumbnail
2022년 9월 28일

백업하는 습관.. 중요하단걸 알면서도 실천하기 쉽지 않은거같아요ㅠ

1개의 답글
comment-user-thumbnail
2022년 9월 30일

I appreciate the information and advice you have shared. I will try to figure it out for more.
www.myccpay.com

1개의 답글
comment-user-thumbnail
2022년 10월 1일

와...진짜 아찔하네요..

1개의 답글
comment-user-thumbnail
2023년 1월 3일

ㅋㅋㅋㅋㅋ

1개의 답글