그누보드 개선 리포트 #267 - qa_delete Event Hook에서 실제 삭제된 ID 목록을 전달하도록 개선 정보
그누보드 개선 리포트 #267 - qa_delete Event Hook에서 실제 삭제된 ID 목록을 전달하도록 개선
본문
그누보드 5.5.8.3.2 버전에 추가된 1:1문의 삭제 시 동작하는 Hook인 `qa_delete`를 개선하는 패치입니다.
1:1문의 게시판에서 목록에서 글을 삭제를 요청하면 처리 완료 후 `qa_delete` Hook이 실행되는데, 이전 처리 과정에서 내 질문 글이 아니거나, 답변글이 있으면 삭제를 실행하지 않기 때문에(관리자는 이 조건에 관계 없이 처리 됨) Hook에 전달되는 삭제 요청을 받은 `qa_id` 목록은 실제 삭제된 것과는 다를 수 있습니다.
하지만, 이를 모르고 `qa_delete` Hook이 전달해준 목록을 이용하여 처리 시 관련 데이터를 삭제하거나 알림을 발송하는 등 잘못된 처리가 실행될 수도 있는거죠.
그래서 실제로 삭제한 목록만을 담은 두번째 인자($deleted)를 추가로 전달하도록 개선했습니다. 이 목록에는 함께 삭제처리된 답글의 qa_id도 포함되므로 쓰레기를 남기지 않도록 데이터 처리를 개선할 수 있습니다.
이걸 수정하다보니 #266 버그도 발견했고, 과정에서 첫번째 인자를 바꿔버리려 했었는데 호환성 문제나 원래의 `qa_id`도 유지할 필요성이 있는 것 같아서 새로운 인자로 추가했습니다. 추가된지 얼마 안 된 Hook이긴 하지만 자칫 문제를 만들뻔 했네요. ?
- `qa_delete` Hook이 추가된 커밋 : https://github.com/gnuboard/gnuboard5/commit/bcda18cbd5878ee332ca2f223d2ba747e9ca367c
- 이 문제를 개선한 PR : #267
그누보드 github 저장소를 많이 사랑해주세요.
2
댓글 2개

정치관련 게시물로 아무리 미운털이 박혔다지만 제재 받았던 건과 관련이 없고 이용규칙에 위배되지 않은 게시물임에도 경고나 통보 없이 계정이 차단당하는 일은 다시는 없었으면 합니다.
앞으로도 버그나 개선 사항을 보고한 후 이런 유형의 글을 작성할 예정이니 참고하여 판단해주시기 바랍니다. 자유게시판에서 머리 아픈 이야기를 싫어하실 수 있으니 1일 2개를 초과하지 않도록 하겠습니다. (그렇다고 매일 버그를 보고하는건 아닐테니까요. 한 달에 5개도 안 될겁니다)
이 글은 그누보드 github 참여 독려와 PR에 대한 코드리뷰 참여를 독려하고 정보 공유를 목적으로 작성했습니다.
나름의 철학과 소신이 있으신분으로
대한민국 소프트웨어 생태계의 발전과 기술증진 그리고
초보자도 쉽게 접근 가능할 수 있는 접근성에 대해서도 고민는 모습을 엿볼 수 있었습니다
그래서 그누보드의 취지상도 그렇고
오픈소스의 목적으로 봐도 그렇고
어떤 형태든 발전할 수 있는 아이디어라면 그것이
그누보드의 잘못된 설계에 대한 지적이라 해도
기분좋게 이해 하실거라 생각됩니다
저는 개인적으로 지한님의 글을 보며
감사한 마음으로 잘 읽고있습니다