세월호 사태로 인한 국민들의 분노가 청와대로 몰려가고있다. 그리고 청와대 사이트는 지속적인 서버 오류를 토해내고 있다. “당신이 대통령이어선 안되는 이유” 라는 게시물이 화제가 되면서 청와대 사이트가 폭주하고 있다는 언론 보도가 이어지고 있다.
경위야 어찌되었든 어떤 사이트에 접속이 폭주하고 있다는 소식은 서버 엔지니어들에겐 흥미로운 이야기일 수 밖에 없다. 일단 청와대에서 일하는 어느 서버엔지니어는 분명 그 서버를 복구하기 위해 개고생을 하고 있으리라는 추정이 가능할 것이다. 해당 엔지니어분께 힘내시라는 격려말씀을 전한다. 그런데 뭔가 이상했다.
왜 삭제된 글만 다른 에러 메시지가 뜨는가?
SNS를 통해 확산된 “당신이 대통령이어선 안되는 이유” 라는 게시물의 원문 주소 링크를 열면 다음과 같이 존재하지 않는 페이지라는 화면이 표시된다. 우리는 이것을 보통 404 Not Found 에러화면이라고 부른다.
헌데 청와대의 본래 404 에러화면은 위와 같은 화면이 아니다. 청와대는 4월 28일 기준으로 CDNetworks 의 CDN서비스를 쓰고 있는데, 본래 청와대 www1.president.go.kr 와 www.president.go.kr 서버에서 404 에러가 발생될 경우, 청와대가 아닌 CDN 서버의 에러페이지가 표시되어야 한다.
확인 결과, 더욱 이상해졌다
즉, 위 게시물은 404가 아니라, 게시판에서 게시물이 삭제되었을때 나오는 안내화면으로 추정 가능하다. 그래서, 청와대에 나의 신상을 제출하는 위험을 무릅쓰고 본인확인 후 글을 작성해보았다.
그리고 삭제했다.
목록에서 삭제되었음을 확인한 뒤,
다시 내 글의 주소를 열어보았다.
삭제되었다더니, 열린다. CDN을 쓰고 있을테니 캐쉬문제인가 싶어 다른 브라우저에서 시간을 한참 두고 다시 열어보았다.
역시 열린다. 13분 가량 지난 뒤 삭제한 글 주소로 다시 접속해보았다. 여전히 열리고 있다.
청와대 사이트, 왜 이리 구린 거야?
그렇다면 간단하다. 만약 CDN서버가 캐쉬 Expires를 1시간 넘도록 걸고, 컨텐츠가 삭제되더라도 Purge를 하지 않을 경우 계속 뜨도록 설계하며, Static Resources(이미지,스크립트,CSS)가 아닌 페이지까지 이렇게 엄격하게 늘어지는 설정값을 적용해다면 이러한 현상이 생길수는 있지만 이것은 일단 설계 잘못으로 보아야하며, 일반적으로 사이트 설계는 절대 이렇게 안한다.
삭제된 글을 정해진 기간동안 보존하는 것은 법률적 근거가 있기는 하다. 그래서 원본글은 어딘가 안 보이는 곳에 보존한다 치더라도, 사용자가 삭제한 상황에서는 목록에서도 삭제하고, 고유주소로 들어가도 내용이 보이지 않아야 한다. 헌데, 지금은 목록에서만 감춰지고 고유주소로 접근할 경우 여전히 내용이 노출된다. 이 또한 설계 잘못으로 보아야 하며, 포털 서비스 개발이라면 당연히 치명적 결함으로 간주한다.
그렇다면, 다시 “당신이 대통령이 되어서는 안되는 이유” 게시물의 삭제 건으로 돌아오자. 앞서 이야기했다시피 “당신이 대통령이어선 안되는 이유” 라는 게시물의 원문 주소는 다음과 같다.
http://www1.president.go.kr/community/sympathy/free_board.php?srh%5Bview_mode%5D=detail&srh%5Bseq%5D=576100&srh%5Bdetail_no%5D=60771
이 게시물의 고유주소로 접근했을 때엔 왜 이전에 남아있는 글이 뜨지 않고, 아래와 같이 404 에러화면이 표시되는걸까?
그래서, DB서버에 들어가 수동으로 레코드를 삭제한 게시물, 즉 DB상에 존재하지 않는 게시물을 청와대서버로 요청했을때엔 404 에러화면으로 넘어가는지 알아보았다.
DB상에 존재하지 않는 게시물을 호출할 경우, 404 에러화면으로 리다이렉트되는 것이 아니라, NULL값이 return되어 1970-01-01 등의 문구가 나오는 것을 확인할 수 있었다.
결론
청와대 사이트에서 진행한 이 간단한 확인을 통해 얻은 결론은 다음과 같다.
1. 청와대 사이트는 글을 삭제하더라도, 목록에서만 사라질 뿐 고유주소는 남는다.
2. 만일 청와대 데이터베이스에 존재하지 않는 게시물을 요청할 경우, 빈 값을 받아 1970-01-01 로 표기된 빈 페이지가 뜬다.
3. “당신이 대통령이 되어서는 안되는 이유” 게시물 주소에 한하여 특별한 오류페이지로 연결되고 있다.
이러한 청와대 웹사이트 설계가 의미하는 바는 이 글을 읽는 모든 분들이 잘 아리라 생각한다. 이하 설명 생략하겠다. 나는 창조경제를 적극 지지하는 개발자임을 강조해둔다. 희생자분들의 명복을 빌며, 우리 역시 살아남아 다시 만나기를 바란다.
louis vuitton taschenThe Latest Trend In Wedding Saree