검수요청.png검수요청.png

랙 (통신)

해시넷
125.141.56.91 (토론)님의 2020년 8월 10일 (월) 09:54 판 (발생 원인)
이동: 둘러보기, 검색

(lag, Latency)은 보통 컴퓨터 통신이 일시적으로 지연되는 것을 나타내는 말이다. 하지만 가끔 컴퓨터의 입력장치 등이 일시적으로 응답이 없는 것을 가리키는 말로도 쓰인다. 전문적인 용어로는 패킷이 컴퓨터에서 목적지로 전송된 뒤에 다시 돌아올 때까지 지연되는 시간을 말한다. 한글맞춤법에 따르면 래그라고 써야 하지만, 대부분 '랙'이라고 짧게 쓴다.

개요

컴퓨터상의 랙, 간단하게 설명하자면 일시적인 지연 현상을 뜻한다. 특히 받은 입력을 처리하여 관련 출력을 낼 때까지 걸리는 랙에 관련할 때 인풋랙이라고도 한다. lag이라는 단어의 몇 가지 뜻 중에서 '시간 차이'라는 의미를 가져와서 활용하는 용어이다. 서버클라이언트 간의 시간 차이, 디바이스 간의 입력과 출력 시간 차이 등 여러 가지 경우에 사용된다. 사실 일반 pc 사용자들 사이에서는 랙이라고 하면, 온라인 게임 혹은 웹서핑 등의 인터넷 환경에서 서버나 클라이언트, 혹은 다른 클라이언트 간에 시간적인 차이가 얼마나 발생하는지에 대해서 언급하는 경우라고 보면 된다. 현재 일반적인 컴퓨터의 경우 어떤 장치들을 어떤 방식으로 연결했든지 간에 동기화를 아무리 잘해도 장치들 간의 미세한 시간 차이는 존재할 수밖에 없으며, 당연히 이 시간 차이가 크면 클수록 문제가 되므로 이때 랙이 있다, 심하다 등으로 표현하게 된다. 컴퓨터의 성능이 프로그램이 요구하는 사항을 따라가지 못하거나, 혹은 하드 디스크 드라이브에서 한 번에 많은 데이터를 읽어올 때 화면이 끊기는 현상(하드 스왑)도 일반적으로 랙이라고 불린다. 이 경우는 흔히 컴랙이라고 불리는데, 컴퓨터를 3~5년마다 한 번씩 바꿔야 하는 주요 원인이 되기도 했으나 2010년대부터 SSD가 대중화되고 나서부턴 줄어드는 경향을 보이고 있다. 사실 컴퓨터의 하드웨어가 뒤떨어져서 컴퓨터의 처리 속도가 게임이 요구하는 수준을 따라가지 못해 생기는 현상이니 lag이라는 단어 자체의 뜻에 부합하기는 하지만, 이쪽 의미의 처리 속도 지연은 보통 프리징이라고 한다. 랙이 걸릴 경우, 프로그램(주로 게임)에 따라 온갖 진귀한 이상 현상들이 펼쳐지는 경우가 많다. 애초에 랙이 걸리는 모든 상황을 고려해서 예외 처리를 해가면서 프로그래밍을 하기가 매우 힘들기 때문에 예측할 수 없는 버그가 나오게 되는데, 몇몇 온라인 게임들은 이런 랙을 이용한 버그를 악용하여, 일부러 랙을 걸어서 온라인 게임상에서 부당한 방법으로 이익을 얻는 경우도 있다. 각종 온라인 게임에서 어떤 유저가 이것에 걸리면 주위 사람들이 짜증을 내게 되며, 반응속도가 매우 중요한 대전 액션 게임과 리듬게임은 이게 심해버리면 아무리 게임성이 좋아도 버림받게 된다. 이는 인터넷 브라우저들도 못 피해 가는 문제. 랙이 자주 유발된다는 이유로 인터넷 브라우저를 갈아타기도 하고, 랙이 유독 잘 걸리는 특정 사이트나 서버는 자연히 사람들이 꺼리게 되기도 한다. 시중에 랙을 해결하기 위한 여러 방안들을 담은 자료들이 블로그나 유튜브 영상 등으로 돌아다니나 사실 잘 해결될 확률이 100%라고 하긴 힘들다. 무선랜 자체를 다른 기기로 갈아야 하는 문제, 혹은 컴퓨터 저사양의 문제 등 하드웨어 자체의 문제라면 제아무리 소프트웨어 쪽을 건드린다 해도 무용지물이기 때문이다.[1]

특징

발생 원인

랙의 가장 흔한 원인은 말 그대로 네트워크 지연 때문이다. 온라인 게임은 대부분 네트워크를 전제로 게임이 진행된다. 응당 서버/클라이언트가 있게 되고 이 사이에 통신 속도가 존재한다. 게이머들은 흔히 이를 두고 핑(ping)이라 표현한다. 이 핑이 일정 수준 이상으로 높으면 지연이 발생하고 있다는 것을 직접적으로 말해준다. 지연 속도가 특정 수치 이상이 되면 불일치가 발생한다. 게임 클라이언트에서는 공격 모션이 나왔음에도 실제로 공격 대상에는 피해 수치가 적용되지 않는 것과 같은 상황이 발생하는 것이다. 이게 점점 심해지면 어느 순간 자신도 모르게 멀미가 나오는 것을 느낄 수 있다. 이런 온라인 게임의 네트워크 품질은 비단 자신의 인터넷 회선에만 영향을 받는 것은 아니다. P2P 방식으로 게이머들끼리 네트워크를 형성해서 진행되는 게임의 경우에는 다른 게이머의 네트워크 회선 속도에 자신도 같이 영향을 받는다. 빛의 속도에 근접하면 전혀 다른 세상이 펼쳐지는 것처럼, 핑이 일정 수준 이상으로 높아지면 개발자들이 전혀 예측하지 못했던 새로운 문제들이 발생하기도 한다. 이런 버그들을 악용해서 일부 게이머들은 랜선을 뽑았다 다시 연결하는 태핑이나 특정 패킷을 특정 주소로 무한대로 전송하는 누킹, 자신의 PC에 랙을 의도적으로 유발하는 랙핵과 같은 방법을 사용해서 추가적인 이득을 얻기도 한다. 랙의 또 다른 요인은 게임 서버에 존재한다. 최근 온라인 게임의 추세는 클라이언트는 뷰어 역할만 하고 게임 서버에서 모든 게임 상태를 모델링 하는 방식으로 진화하고 있다. 이렇게 이루어지는 이유는 해킹을 막기 위해서이다. 예를 들어서 디아블로 3에서는 간단한 조작으로 화면에 표시되는 골드 값을 변경할 수 있을지 몰라도 실제 그 표시되는 데이터로 경매장을 이용할 수는 없는데, 그것과 동일한 이치다. 실제 데이터는 서버에 모두 저장돼 있고 그 값을 토대로 계산이 진행되기 때문이다. 이렇게 서버가 복잡해지다 보니 서버의 상태 이상이 고스란히 랙으로 전달된다. 스스로가 속해 있는 게임 서버의 상태 이상으로 모델링 처리 속도가 지연될 시 그 모든 영향을 그대로 받는다는 말이다. 이런 점들을 본다면 이런 종류의 랙에 대해서 게이머가 할 수 있는 것은 하나도 없다. 그저 게임 개발사에서 서버를 안정화 시키기를 기다리는 수밖에는 없다. 랙을 유발하는 이유 중 한 가지로서 모든 게이머가 잘 알고 있듯이 컴퓨터 사양이 있다. 컴퓨터 사양이 해당 게임을 구동할 수 있을 정도로 충분히 빠르지 않다면 필연적으로 심각한 랙이 발생한다. 이 경우에는 당연히 업그레이드 말고는 답이 없다. 물론 게임의 그래픽 옵션 사양을 낮추고, 해상도를 낮추는 방법을 통해서 어느 정도의 가용성을 확보할 수 있기도 하지만 실질적으로 쾌적한 게임을 즐기기 위해서는 컴퓨터 업그레이드가 유일한 답이다.[2] 그리고 랙의 발생 상황에 따라서 상황에 따라서 ‘서버랙’, ‘클라이언트랙’, ‘이동랙’ 등으로 구별하기도 한다.

  • 서버랙 : 많은 접속자가 동시에 몰리면서 서버의 연산이 느려져 게임의 주요 정보를 클라이언트로 보내주지 못해서 발생한다. 한 가지 예로 2004년 오픈베타테스트(OBT, Open Beta Test)를 시작했던 월드 오브 워크래프트(WoW, World of Warcraft)는 많은 유저가 한번에 몰리면서 게임 플레이가 힘들 정도로 느려지는 현상이 발생했다.
  • 클라이언트랙 : 저사양 PC에서 게임을 플레이할 때 많이 발생한다. 서버와 클라이언트의 통신은 무난하나, 사용자 PC가 게임의 요구하는 처리속도를 따라가지 못해 생기는 현상이다. 엄밀히 말해서 랙으로 구분할 수는 없는 프리징 현상이지만, 게임 이용자들은 이를 랙의 일부로 여기고 있다.
  • 이동랙 : 대전액션, FPS 장르에서 볼 수 있는 현상이다. 이는 서버에 보내는 캐릭터의 위치와 자신의 현재 위치가 지연으로 인해 달라지는 현상으로 한두 박자 느리게 동기화되면서 게임의 플레이에 심각한 지장을 초래한다. 대표적으로 SD건담 캡슐파이터, 배틀필드 등의 게임에서 자신은 보이는 상대를 정확히 조준해 공격했지만, 서버에서는 이미 한두 발 앞선 위치로 인식해 조준이 안된 것으로 판정한다. MMORPG(Masive Multi Online Role Playing Game)에서는 상대가 순간 이동하는 것처럼 보이는 현상도 이에 해당한다.[3]

대처 방법

최신 컴퓨터 구매하기

새로운 컴퓨터(최신형 컴퓨터)를 하나 장만하는 것이다. 돈으로 다 해결될 수 있는 방법으로서 최신 cpu, 최근 그래픽 카드를 넣어서 하면 되는 것이다. 인텔의 경우 9세대(2020년 2분기에 10세대 나올 예정) cpu를 구매를 하고, AMD의 경우는 젠 2(2020년 4분기 젠 3 나올 예정)를 구매를 하는 것이다. 그 외 추가적인 부분은 (RAM) 정도이며, 못해도 8GB 요즘 권장되는 램 용량은 16GB이며, 램을 구매를 하실 때 오버된 램(튜닝램)을 구매를 하셔서 사용하시거나 혹은 최신 3200mhz의 순정 램을 구매를 하시면 전보다 렉이 줄어들며 동시에 더 높은 프레임을 볼 수 있다. 다만, 만약 오버를 중점으로 가격이 비싼 삼성 순정 3200MHZ를 선택을 한다면 현재는 수율 자체가 좋지 않기 때문에 그리 현재 많이 팔리는 2666과 차이가 거의 없기에 현재는 유튜브나 구글 검색으로도 오버 자체를 하지 못하는 경우가 아닌 이상 안 사는 쪽을 권장한다. 램 용량은 보통 기본 8GB이지만, 게임을 한다면 요즘엔 16GB는 무조건 구매를 하는 것이 좋다. 또한 게임을 한 면 SSD에다가 게임을 설치하고 플레이를 하시는 것이 좋으며, 윈도즈 설치는 무조건 ssd인데, 부팅 속도가 매우 빨라진다. 이때 NVMe M.2버전과 일반 ssd 버전을 선택을 하게 되는데, 서로의 부팅 속도 차이는 크지 않으니 1초라도 더 빠른 로딩 속도를 원하면 NVMe M.2를 사용하면 된다. 만약 구매 후 콘솔 게임(패키지)까지 생각하여 한번 구매 후 다음 콘솔 제품이 나오기 전까지 최대한 오랫동안 사용하고 싶다면 AMD의 젠 2나 올해 나올 젠 3 8코어 CPU에 RDNA 2세대(빅 나비) GPU를 구매하시면 된다.[4]

기존 컴퓨터 오버하기

기존의 컴퓨터를 사용을 하시던 사람들이나 컴퓨터의 지식이 부족한 사람들이 가장 두려워하는 방법 중 하나인 오버이다. 할 수 있다면 하는 것이 좋지만, 그렇지 않다면 안 하는 것이 좋다. 요즘에는 조립식 컴퓨터를 구매 시 오버를 해주고 출고를 해주는 업체도 있으니 하지 못한다면 오버를 안 하는 것도 하나의 방법이다. 기본적인 오버는 부팅한 후 Delete 키를 눌러서 나오는 바이오스를 통해서 오버를 시도한다. 해당 방법은 각자 알아보는 것이 좋지만, 기본적인 인텔과 amd의 오버 방식은 똑같다. 원하는 cpu 클럭을 입력 후 cpu 전원 값을 입력하고 재시작을 함하면 되며, 램의 경우도 비슷하게 하면 되지만, 램 오버의 경우 램 클럭을 올릴 때 램 타이밍도 같이 맞춰야 한다. msi 보드를 기준으로 하였지만 다른 보드도 다를 바 없기 때문에 수동 오버에 관심 있다면 참고하는 게 좋다.

  • 인텔(Intel)
인텔의 경우는 Z390, Z370과 같은 Z가 붙은 고가의 메인보드(머더보드)가 아니면 오버 자체를 할 수 없다. A 보드나 B 보드의 경우 램 타이밍을 건들어서 오히려 줄일 수는 있으나 이는 일반적인 오버에서 좀 더 심층적인 오버 방식이기 때문에 오버를 배우고자 하는 사람들이나 처음 시도를 하는 사람들은 손을 대지 않는 쪽을 권장한다. 또한 인텔의 경우 k라는 영문이 붙어 있는 것만 오버가 가능하며, 이는 오버 클럭이 가능한 버전을 따로 판매를 하는 것이 된다. non-k 버전의 경우 k 버전보다는 클럭이 다소 낮다. 수동 오버를 잘 못하는 사람들 중에서 9세대 이상의 인텔 PCU를 사용하는 사람들의 경우 인텔에서 만들어 낸 오버클럭을 위한 프로그램(1GB의 용량 차지) 자동 오버클럭 "퍼포먼스 맥스마이저"를 사용하면 된다. 해당 프로그램을 사용 시 자동으로 오버를 해준다. 수동보다는 못한 오버클럭을 보여주지만, 안정성에 초점이 맞추어져 있기 때문에 안전하게 오버를 할 수 있다. 인텔의 경우 수동 오버를 할 시 기존 오버보다 더 높은 클럭을 볼 수 있는 방법이 있는데 그 방법은 소위 말하는 "뚜다"라는 것을 하는 방법이다. cpu의 뚜껑을 직접 따야 하는 방법으로서 몇 만 원 주고 전문적으로 하는 곳에서 뚜다를 하는 것이 안전한데 해당 방법을 통해서 뚜따를 하면 A/S가 날아가니 고 클럭을 위한 오버를 하고 싶으신 사람들만 하기를 권장한다.
  • AMD(Advanced Micro Devices)
AMD의 경우 A320부터 램 오버가 가능하며, B450, 올해 나올 B550과 같은 x50 보드 시리즈의 경우부터 CPU 오버까지 가능하다. 이로 인해 오버를 포함한 가성비로 맞출 경우 현재 AMD가 절대적으로 비용과 성능 쪽에서 우세하다. 라이젠의 경우 인텔과는 달리 모든 cpu에서 오버가 가능하며, 이로 인해 x가 붙은 cpu보다 x가 안 붙은 cpu를 더 선호하는 사람들이 많다. 다만, x 버전과 x가 안 붙은 버전의 경우 오버되는 정도가 서로 다르며, 3600은 3600x를 절대 이길 수 없다. 다만, 3600과 3600x의 실질적인 프레임 차이는 크지 않아서 가성비로 3600을 사는 사람들이 많다. 수동 오버는 건들지 않는 것이 좋은데, 아예 오버할 수 있는 수치가 너무 적기 때문에 안 하는 것이 좋으며, amd에서 PBO라는 자동 오버 기능을 만들어 놓았기에 해당 기능을 쓰는 것이 좋다. 이 기능은 CPU 자체에 있으며 해당 기능을 사용하려면 라이젠 마스터라는 프로그램을 설치하여 실행한 후 Creator Mode라는 곳을 누른 후 Precision Boost Overdrive을 클릭, 아래에 있는 Apply를 누르면 적용이 되며, cpu의 자체의 수율(오버가 더 잘 되는 정도)의 차이와 쿨러의 차이에 따라 오버가 더 잘 되고 안 되는 경우가 있긴 하지만 인텔의 맥스마이저 프로그램처럼 자동 오버를 해주기 때문에 편하다. 인텔처럼 뚜따가 가능하나, 코어 내부에 서멀을 촘촘하게 넣어놓았거나(저가형 g2200 등) 현 인텔보다 솔더링이 잘 되어 있어서 굳이 할 이유가 없기에 안 하는 것이 좋다. 라이젠은 기본적으로 내장 그래기 카드가 없기 때문에 단독으로 사용 불가능하다(G2200, G3200 같은 경우 제외).
  • (Ram)
램의 경우 오버를 하는 사람들이 있고 안 하는 사람들이 있는데, cpu 오버보다는 하는 사람 비율은 좀 더 낮다. 램은 삼성 램을 사야 하는 이유가 가장 안정적이기도 하지만, 램 오버가 마이크론보다 더 잘 되기 때문이다. 마이크론의 경우는 정규화된 램에 맞추어서 먼저 생산을 하지만 오버가 잘 안되고, 삼성의 경우는 마이크론보다는 좀 더 후에 생산을 하지만 오버가 더 잘 된다. 램 오버는 인텔/AMD 둘 다 똑같다. 램 오버가 싫다면 좀 더 가격이 나가는 튜닝 램을 구매를 하시는 것도 하나의 방법이다.[4]
컴퓨터 설정
그래픽 카드 설정

문제점

게임 등에서 랙이 개선되지 않는 본질적인 이유는 다른 부분에 있다. 바로 게임 개발자, 운영자, QA, 서드파티 제품 개발자, 운영자, QA 모두 랙을 모른다는 것이다. 거의 대부분의 경우에 그 모든 사람들은 게이머가 말하는 랙을 전혀 이해도 하지 못한다. 왜냐하면 서로 체감하는 시간의 기준이 다르기 때문이다. 게이머들은 우리가 상상하는 것보다 훨씬 더 민감하다는 의미이다. 일반 게이머 중에서도 잘하는 게이머들은 아주 마이크로한 부분에 대해서도 굉장히 민감하게 반응한다. FPS 게임이라면 총기를 교환하는 속도, 탄환이 발사되는 속도, 줌 속도, MMO 게임에서는 특정 기술이 발동하는 모션의 속도, 자신이 설치한 구조물들이 활성화되는 속도 등등 전혀 게임을 잘하는 사람이 아니라면 알 수 없는 부분에 대해서 불평을 한다. 이게 어려운 점이다. 왜냐하면 게임을 그 정도로 잘하지 않고서는 어찌하더라도 그 속도의 차이를 알 수 없기 때문이다. QA 팀에서 몇 차례에 걸쳐 랙 테스트를 해도 문제가 없다고 하는 이유가 바로 여기에 있다. QA 팀에는 실제 유저가 말하는 랙을 체감할 수 있을 만큼 그 게임을 잘하는 플레이어가 없기 때문이다. QA 팀에서 봤을 때는 총기 교체 속도가 원래만큼이나 충분히 빠르기 때문이다. 이러한 점들을 보완하기 위해서 게임 관련 서드파티 업체들은 항상 채용할 때 지원자가 게임 잘하는지, 좋아하는 온라인 게임은 있는지를 확인한다. 실제로 그러한 게임을 잘하는 직원 같은 경우 다른 직원보다 해당 분야의 게임에 대한 랙이나 핵을 찾는데 훨씬 더 뛰어난 역량을 보여준다. 실제로 게임사나 서드파티나 랙이란 문제에 대해서 진지한 접근을 하고 싶다면 랙을 이해할 수 있을 만큼 뛰어난 게이머를 채용해야 한다. 그렇지 않고서는 아무리 테스트를 해봐야 변함없는 실정이다.[2]

스터터링

일시적 랙으로 인해 게임이 버벅거리는 현상을 주로 지칭한다. 특히 오픈 월드 게임에서 프리 로드할 데이터가 HDD에 있는 경우 잘 발생한다. 심할 경우 프리징이라고 하기도 한다. 물론 해당 문서에도 있듯이 랙과 프리징은 엄밀히 구별되지는 않는 유의어 관계이기 때문에 스터터링/프리징이라는 말만으로는 정확히 어느 정도 심한지 알 수 없다. 따라서, 객관적 증거가 필요한 상황이라면 후술할 내용을 참고해서 정확한 측정을 해보는 것이 좋다. 실시간 평균 프레임 측정으로는 잘 잡히지 않는 미세한 랙이 반복되는 현상을 따로 마이크로스터터링이라고도 한다. NVIDIA가 이걸 이용해서 경쟁사를 곤경에 빠뜨린 적도 있다. 이후부터 이를 확인하기 위해 평균 프레임과 1% Low를 비교하는 방식을 주로 사용한다. 여기서 1% Low는 가장 높은 프레임부터 낮은 프레임까지 순서대로 정렬 후 최하위에서 딱 1%에 해당하는 값을 쓰는 방식이다. 근본적으로 중앙값과 같은 개념이지만 중앙(백분위 50%)이 아니라 하위 특정 위치(백분위 99%)를 사용한다는 점만 다르다. 따라서 평균값 대신 중앙값을 쓰는 경우가 왜 있는지를 알아야 1% Low의 의미를 더 정확히 알 수 있다. 1% Low는 상위 99%이기 때문에 99th 프레임이라고 쓰기도 하며, 0.1% Low도 같이 보여주는 곳도 있다. 초기엔 평균/최저/최고 프레임을 표기하는 방식이 주류였으나, 최저/최고 프레임은 단 한 프레임의 측정치라는 특성상 측정 오차가 무지막지하게 날 수가 있어서 처음부터 큰 의미를 부여받진 못했다. 그나마 최고 프레임은 사람의 체감 성능과 관계도 거의 없는 편이다. 그래서 NVIDIA가 정확한 측정 툴인 FCAT를 개발하여 마이크로스터터링 폭로 사건을 일으켰으나, 해당 문서에도 있듯이 2 PC 녹화를 사후 분석하는 방식이라 비용상 대중화되지 못했다. 결국 효율적이면서도 신뢰도가 괜찮은 마이크로스터터링 분석 방식을 찾다 보니, 퍼센테일 분석을 거쳐서 대세로 자리 잡은 방식이 1% Low이고, 더 민감하게 측정을 원할 경우 쓰는 게 0.1% Low인 것. 다만, 드물게 특이한 값(4% Low, 0.5% Low 등)을 쓰는 경우도 있다. 퍼센테일 및 1%, 0.1% Low는 편리하고 효율적이나, 완벽하진 않다. 단점은 벤치 구간을 너무 길게 잡으면 프레임이 안 나오는 구간에서 나온 스터터링 프레임들이 집계 대부분을 차지하게 되어서 나머지 구간 성능을 알 수 없게 된다는 점. 그리고 맵을 열거나 로딩이 나오는 구간이 들어가 버리면 해당 부분에서 체감 성능과 관계없는 스터터링 프레임들이 집계 대부분을 차지해서 이상하게 낮은 값이 나오게 된다. 따라서 해당 방법으로 마이크로스터터링을 정확히 측정하려면, 측정할 구간을 정확히 정하고 체감 성능과 상관없는 동작을 피해야 된다(특히 맵이나 메뉴를 연다거나, 전체 화면 로딩 스크린이 나오면 안 된다).[1]

각주

참고자료

같이 보기


  검수요청.png검수요청.png 이 랙 (통신) 문서는 하드웨어에 관한 글로서 검토가 필요합니다. 위키 문서는 누구든지 자유롭게 편집할 수 있습니다. [편집]을 눌러 문서 내용을 검토·수정해 주세요.