PGR21.com
- PGR21 관련된 질문 및 건의는 [건의 게시판]을 이용바랍니다.
- (2013년 3월 이전) 오래된 질문글은 [이전 질문 게시판]에 있습니다.
통합 규정을 준수해 주십시오. (2015.12.25.)
Date 2016/04/12 12:30:44
Name 몽유도원
Subject [질문] 인터넷상에서 채팅구현. 이런 방법은 서버에 얼마나 과부하걸릴까요?
웹소켓등을 이용한 방식은 아니고 매우 원초적이고 무식한 방법인데

1. 유저들이 채팅방에 입장한다.
2. A가 텍스트를 입력하고 엔터를 치면
3. 나머지 유저들은 해당 화면이 자동적으로 새로고침되면서 A가 입력한 채팅을 볼 수 있다.

이런 방식은 서버에 얼마나 무식하고 비효율적으로 과부하를 줄까요?

통합규정 1.3 이용안내 인용

"Pgr은 '명문화된 삭제규정'이 반드시 필요하지 않은 분을 환영합니다.
법 없이도 사는 사람, 남에게 상처를 주지 않으면서 같이 이야기 나눌 수 있는 분이면 좋겠습니다."
-안군-
16/04/12 12:35
수정 아이콘
일단, 한 유저가 입력을 하는 시점을 다른 유저들이 (웹브라우저에서) 알아챌 수 있는 방법이 웹소켓같은걸 안쓰고는 없습니다.
그러니, 주기적으로 자동갱신을 하거나(PGR의 불판창처럼) 해야 하는데, 생각보다 그렇게 비효율적일 것 까지는 없을 것 같습니다.
백엔드를 어떻게 짜느냐에 따라서 엄청난 차이가 생기겠네요.
16/04/12 12:53
수정 아이콘
아무 일 없이 자동적으로 새로고침은 불가능하구요. 새로고침 정보를 받아야 하는데 그게 웹소켓이나 Server side push로 구현되는 방식이고..
주기적으로 채팅을 땡겨와야 하는데 long-polling을 이용하면 효율적으로 처리할 수 있고, 그냥 polling을 해도 polling interval을 적당한 숫자로 잘 잡으면 그렇게 엄청 무식하거나 엄청 비효율적이진 않습니다.
정지연
16/04/12 13:30
수정 아이콘
소켓이없이 웹페이지로 구현한다면 클라이언트가 주기적으로 서버로 request 를 보내면 서버에서 새로 읽어갈 정보가 있는지 체크하고 결과를 보내주는 식으로 해야 할텐데..
처음부터 이것만을 위한 서버를 별도로 구축하고 참여자수, 주기를 조정한다면 그리 큰 부담은 아닐거라 봅니다.. 다만 원래 다른 목적이 있는 시스템에 곁다리로 이런걸 끼운다면 이경우는 배보다 배꼽이 더 커지는 상황이겠죠..
16/04/12 13:48
수정 아이콘
동시 접속자 수가 가장 중요한 factor 입니다.
랜덤여신
16/04/12 14:04
수정 아이콘
우선, 윗분들이 말씀하신 것처럼 '자동적으로' 새로고침되는 방법은 없습니다. 웹 소켓 없이는 새 메시지가 발생한 시점을 알 수 없으니까요. 따라서 '주기적으로' 새로고침하는 방법을 써야 하겠죠.

아~~주 오래 전 인터넷 채팅 서비스들은 실제로 이렇게 동작했습니다. 90년대 후반에 대략 5초에 한 번씩 새로고침하는 웹 채팅 사이트를 본 적이 있습니다. 내 채팅이 상대에게 바로 바로 안 보이긴 하지만 크게 답답한 수준은 아니었던 걸로 기억합니다.

이런 방식은 메시지량이 적으면 적을수록 낭비가 심할 것입니다. 아무 대화가 없어도 5초마다 새로고침해야 하니까요. 그러나 특정 한계 이상으로 부하가 늘어나지도 않을 겁니다. 아무리 대화가 많아도 5초에 한 번씩만 새로고침하니까요.
Lightsaber
16/04/12 16:29
수정 아이콘
무식하고 비효율적인 방식이긴 하지만 쓰는 사람이 얼마 없다면 문제될 것도 없죠.
옛날에 PERL로 짠 .CGI 파일들로 웹사이트 만들던 시절엔 그렇게들도 제법 구현했었죠.

그런데 굳이 그렇게 비효율적으로 만들어야 할 필요야 요즘엔 그다지 없죠. 웹소켓을 이용한 웹사이트 채팅 구현 예제는 어지간한 언어로 다 소스를 쉽게 찾을 수 있고, 이런 채팅 부분만을 제공해주는 서비스들도 있어서 웹마스터가 채팅 API를 자신의 홈페이지에 삽입해 넣는 식으로 쉽게 넘어갈 수도 있죠.

제 생각에는 비효율적인 방식이긴 해도 어지간히 접속자 수가 많지 않은 바에는 그렇게 큰 부담 없이 운용할 수는 있지 않을까 싶습니다.
한 달에 3만원쯤 주고 임대하는 가상서버들도 httpd에 있는 ./ab 테스트로 DB에서 자료 불러오는 것까지 포함해서 갈궈보면 500명이 동시접속으로 밀고 들어온다고 쳐도 잘 버티던데, 5초에 한 번씩 텍스트만 출력되는 부분을 리프레시하는 것 정도야...
목록 삭게로! 맨위로
번호 제목 이름 날짜 조회
82009 [질문] 스마트폰 카메라 동영상 촬영 최장몇시간까지 될까요? [1] 몽유도원3266 16/04/26 3266
81707 [질문] [법] 단순 주거침입일 경우 처벌이나 벌금, 합의가 가능한가요? [7] 몽유도원8979 16/04/21 8979
81656 [질문] 트랩(함정)형 바퀴벌레 퇴치용품은 없나요? [3] 몽유도원3303 16/04/20 3303
81649 [질문] [LOL] 포지션별 픽률은 어디서 볼 수 있나요? [4] 몽유도원3801 16/04/20 3801
81294 [질문] 센트럴시티 옆 '경부고속터미널'에 먹을만한거 있을까요? [11] 몽유도원3439 16/04/12 3439
81277 [질문] 인터넷상에서 채팅구현. 이런 방법은 서버에 얼마나 과부하걸릴까요? [6] 몽유도원3520 16/04/12 3520
80904 [질문] 전세 2년 자동연장계약 의사가 없을시 통보 문제 [9] 몽유도원3607 16/04/05 3607
80439 [질문] [법] 임차권등기명령에 관한 질문입니다. [2] 몽유도원2489 16/03/28 2489
80248 [질문] 현재 총선제도를 마음대로 개편할 수 있다면 어떻게? [6] 몽유도원2296 16/03/24 2296
79911 [질문] 인천터미널 근처 피시방 추천 부탁드립니다. [2] 몽유도원5693 16/03/17 5693
79506 [질문] [LOL] 헬퍼를 못막는다는게 좀 이해가 안되는데 [10] 몽유도원3541 16/03/10 3541
79063 [질문] 모바일 메신저들의 전화회선인증(SMS)는 법적인 필수절차인가요? [2] 몽유도원2668 16/03/03 2668
79030 [질문] 서울에서 오프라인 중고 만화책 살 수 있는곳은 어디인가요? [2] 몽유도원4412 16/03/02 4412
79014 [질문] '빈백' 제품 추천 부탁드립니다. [4] 몽유도원4158 16/03/02 4158
78624 [질문] "근육이 늘어나면 살이 안찌는 체질이 된다는 말" 맞는 말인가요? [22] 몽유도원5531 16/02/24 5531
78568 [질문] 휴가올릴때 팀장 윗선까지 대면보고를 해야한다? 안해도된다? [11] 몽유도원4133 16/02/23 4133
78529 [질문] 고시원을 찾고있습니다 (회사:역삼역 근처) [10] 몽유도원4025 16/02/22 4025
78240 [질문] 1인가구시대 수도권 주거난, 초고층 원룸(?)건설로 해결은 어려울까요? [18] 몽유도원3122 16/02/17 3122
78149 [질문] 강남역-역삼역 인근 요로결석 병원 추천 좀 부탁드립니다. [1] 몽유도원2996 16/02/16 2996
77826 [질문] [LOL] 라인별 밴 안되는 무난무난한 챔프 추천부탁드립니다. [7] 몽유도원3281 16/02/11 3281
76693 [질문] [법] 고속버스이용중 사고발생시 보상여부(벨트미착용) [2] 몽유도원3888 16/01/22 3888
76573 [질문] 소기름(우지) / 버터 / 마가린 / 팜유 몸에 해로운순서가 어떻게 될까요? [5] 몽유도원6118 16/01/20 6118
76482 [질문] 바닥은 적게차지하면서 높은 빨래건조대가 있을까요? [18] 몽유도원3816 16/01/19 3816
목록 이전 다음
댓글

+ : 최근 1시간내에 달린 댓글
+ : 최근 2시간내에 달린 댓글
맨 위로