한 밤의 트래픽 다이어트 회의 결과 공유합니다.
페이지 정보
본문
밤 11시에 시작해서 84분 동안 진행된 한 밤의 트래픽 다이어트 회의 결과 공유합니다. 많은 개발자분들이 참석하셔서 활발하게 논의해 주시고, 각자 역할을 할당하여 진행해 주시기로 했습니다. 저는 회의를 진행하고, 서기를 했을 뿐…
앙님들께서 참고할 사항이 있기에 내용을 공지로 정리합니다. 다이어트의 시기와 방법을 각각 상이하기 때문에 당장 적용되는 것들도 있고, 차차 되는 것도 있습니다. 다운타임이 필요한 사항도 있고, 아닌 사항도 있습니다.
1. 트래픽 다이어트 영역별 설명
(1) 인프라: 불필요한 인프라 리소스를 빼고, 기존 오버스펙으로 할당되어 있는 리소스를 축소 예정입니다.
(2) 클라우드 플레어 적용: 그누보드의 정적파일이 보관되는 data 폴더에 클라우드 플레어를 적용할 예정입니다.
(3) 외부 URL 차단: 엔진엑스 설정을 조정하여 외부에서 다모앙 리소스를 빨아먹는 것들 차단할 예정입니다. 특히 별도의 솔루션을 설치해서 리소스의 흐름을 모니터링할 예정입니다.
(4) 원본 이미지 업로드 처리: 이미지가 원본 이미지로 업로드되고, 이것이 원본이미지로 보이다 보니 트래픽을 많이 먹는 단점이 있습니다. 원본 이미지를 올릴 필요가 있는 경우 별도 옵션을 체크하도록 처리할 예정입니다. 이 옵션이 체크되지 않는 경우에는 1080p 해상도로 자동 리사이즈 됩니다.
(5) 업로드 이미지 webp 자동 변환: 업로드되는 이미지를 압축률이 좋은 이미지 포맷인 webp로 자동변환할 예정입니다.
(6) 중복 이미지 제거: 이미지를 업로드할 때 이미지의 hash를 DB에 저장해서 중복 업로드 이미지의 경우 이미 업로드된 것을 사용하도록 처리할 예정입니다.
(7) 이모티콘 화면 처리 방법 변경: 이모티콘을 선택하는 화면을 정적화면으로 바꿔서 미리보기시 발생하는 불필요한 트래픽을 절감할 예정입니다. 선택하는 화면만 정적으로 되고, 실제 이모티콘을 사용할 때에는 움직입니다.
(8) 첨부파일 제한: 자료실을 제외한 나머지 게시판에 첨부파일 기능을 비활성화 할 예정입니다. 이 경우 동영상, 음성, 노래 등의 파일을 첨부로 올리던 분들은 불편함이 생기실 것입니다. 불편하시겠지만 트래픽을 쪽쪽 빨아먹는 묵직한 미디어(mp4, mp3 등)는 링크로 사용해 주시면 감사하겠습니다.
(9) 프로필 이미지 변환 및 리사이징: 현재 프로필 이미지로 사용하는 것이 게시판 목록의 아이콘으로도 사용되고 있습니다. 이때 프로필 이미지 크기가 변환 없이 작게만 표현되고 있기 때문에 낭비되는 트래픽이 있다고 판단하여 프로필 이미지를 리사이징 하여 적용할 예정입니다. 움직이는 gif의 경우에도 webp로 자동 변환될 수 있습니다.
(10) 광고 이미지 처리: 광고 업무 프로세스를 담당하는 별도 작은 프로그램을 개발자님들과 만들고 있습니다. 이 프로세스에 맞춰서 광고에 사용하는 이미지도 처리 방식을 바꿀 예정입니다.
(11) 메인 화면 캐싱: 메인 화면의 트래픽이 상당히 많음에도 불구하고 아직 제대로 캐싱이 이루어지고 있지 않았습니다. 레디스라고 하는 캐싱 솔루션에 메인화면을 캐싱하여 트래픽을 절감시킬 예정입니다. 메인 화면도 회원과 비회원이 볼 수 있는 항목을 차등화 시킬 예정입니다.
(12) 자게 첫 화면 캐싱: 자게가 다모앙 전체의 약 60% 가량의 트래픽을 차지하고 있습니다. 그 중에서도 1페이지의 활용도는 매우 높습니다. 이 부분을 캐싱처리 해서 트래픽 절감을 유도하려고 합니다. 게시물을 읽는데에는 크게 지장이 없지만, 공감수 등이 실시간으로 반영되지 않는 다는 점을 감안해 주시면 됩니다.
(13) 화면 최적화: html 소스 구현할 때 불필요하게 낭비되는 작은 바이트까지 없애도록 minify 작업을 진행할 예정입니다. 작은 리소스이지만 워낙 접속률이 많기 때문에 이러한 것들이 모여도 큰 효과를 낼 수 있을 것으로 예상하고 있습니다.
(14) 검색 엔진 도입: 검색할 때 DB 서버를 많이 긁어가기 때문에 서버 스펙을 낭비하는 효과를 주고 있다고 하네요. 이에 검색 엔진을 도입해서 DB 서버 스펙을 낮춰서 비용 절감 효과를 내기 위한 작업을 할 예정입니다. 아울러 비회원은 검색을 하지 못하도록 막을 예정입니다.
(15) 인덱스 개선: DB 서버 부가 경감을 위해 인덱스 최적화되 추가로 진행할 예정입니다.
2. 앙님들께서 양해해주실 부분
기술적으로는 위와 같은 항목을 처리하겠으나, 앙님들께서도 트래픽 다이어트를 위해 양해해주실 부분이 있습니다. 지속가능한 다모앙을 위해 진행하는 것들이니 감안 부탁드립니다.
- 중간중간에 화면이 깨지거나 잘 안나오는 경우가 있을 것입니다. 최적화 작업을 하면서 발생하는 일시적인 오류이므로 유지관리 게시판, 자게, 질답게 등에 '저만 이런가요?'라고 안물어보셔도 됩니다. 당분간은 이런 문제들이 반복될 수 있습니다. 작업자들이 많이 있고, 반복적으로 모니터링을 하고 있으므로 대부분 일시적인 현상일 것입니다.
- 프로필 이미지에 오류가 생길 수도 있습니다. 서버에서 일괄적으로 작업을 하기 때문에 예외적인 상황에 의해서 이미지 표현이 안될 수도 있습니다. 이 부분은 케이스별로 대응을 해야하는데, 5만개 가까운 프로필을 모두 대응해 드리기는 어려울 수 있습니다. 프로필 이미지를 저장해 두셨다가, 깨지는 경우라면 직접 수정하셔야 할 수도 있습니다.
- 게시판에 이미지 업로드하는 프로세스가 바뀔 예정이므로 참고하셔야 합니다. 큰 용량의 원본 이미지의 활동도를 최대한 낮추는 것이 목적이니 감안해 주시기 바랍니다.
- 자료실을 제외한 나머지 게시판에서 첨부파일 기능을 사용하지 못하게 될 것입니다. 이렇게 되면 mp4, mp3 등의 미디어는 더이상 첨부하여 사용할 수 없게 됩니다. 불편하시더라도 링크를 사용해 주시면 감사하겠습니다.
- 기타 수정했으면 하는 항목들은 처리가 당분간 어려울 수 있으니 감안해 주시기 바랍니다.
영역별로 기능별로 적용되는 시기와 방법은 다를 수 있으니, 어느 순간에 바뀌어 있을 수도 있고, 접속에 불편함이 생길 수도 있습니다. 또한 트래픽 다이어트를 위한 기능에 많은 개발자님들의 리소스가 들어갑니다. 모두들 현생이 있으심에도 불구하고 자발적으로 나서서 진행해 주실 예정입니다. 숨어서 개발에 힘써주시는 많은 분들께 응원 부탁드립니다.
BohemianSimon님의 댓글
항상 감사합니다.
달과바람님의 댓글
이미지 이모티콘 수를 많이 줄였는데, 이게 서버 트래픽에 부담이 된다면 다모앙을 이용하는 이용자 PC 혹은 모바일 기기에 이모티콘 세트를 저장해 다모앙 서버에서 이미지를 로딩하지 않도록 하는 방법은 가능한 걸까요?
어차피 모두 같은 이미지 세트를 가지고 있기만 하면 되는 것 아닌가 해서요.
재미 있는 요소이기는 하지만, 트래픽에 부담이 된다면 정상화 될 때까지는 없어도 되겠지만, 굳이 해야 한다면 기술적으로 구현 가능한 방법일까 싶어 문외한의 상상으로 막 던져 봅니다. ^^
그아이디가알고싶다님의 댓글