캔낫 현상

 



1. 개요
2. 원인
3. 문제가 된 이유
3.1. 제한치가 너무 낮다
3.2. 유즈맵 제작을 제한한다.
4. 장점 아닌 장점
5. 해결법
6. 소식 및 패치


1. 개요


스타크래프트에서 엔진의 오브젝트의 최대 개수 제한으로 발생하는 문제를 의미한다.
스타크래프트는 맵에 있을 수 있는 유닛[1]의 수[2]1.20까지 1700개로 제한되어 왔다. 만일, 이 이상으로 유닛을 생산하려 하거나 트리거를 이용해 생성을 시도하면 "'''Cannot create more units'''"[3]라는 메시지와 함께 유닛 생성이 강제로 취소 되어 버린다.
유닛 개체수 자체에 제한이 걸리지 않은 전략 게임도 많지만, 그런 게임들의 경우 일정 이상으로 유닛이 많아지면 게임의 속도가 급속도로 느려지기 때문에 게임 대부분은 최대 유닛의 개수를 어떤 형태로든지 제한하는 시스템을 넣는다. 따라서 스타크래프트의 유닛 제한 역시 별 문제는 없었어야 했다.

2. 원인


오브젝트 갯수 제한은 하드웨어의 처리능력 한계 때문으로, 오브젝트의 수가 지나치게 많아지면 이를 계산하는 하드웨어에 부담을 주기 때문이다. 당장 최신 게임만 하더라도 게임 내 오브젝트가 지나치게 많아질 경우 렉을 유발하는 경우가 많은데, 더군다나 스타크래프트 1은 1998년 출시된 매우 오래된 게임으로 당연히 당시의 하드웨어 기준에 맞게 제작되었다. 스타크래프트 1의 메모리 최소 사양은 16, 권장 사양은 32'''MB'''로, GB급 메모리가 보편화된 현재 시점에서는 코딱지만한 수준의 작은 메모리였고, 이런 작은 메모리를 기준으로 제작된 게임이기 때문에 갯수 제한 역시 굉장히 낮게 설정되었던 것이다.
일단, 이러한 오브젝트 제한은 특히나 실시간으로 변수 입력이 되는 오브젝트가 많은 슈팅게임, RTS에는 필연적으로 따라온다. 에뮬레이터 등으로 과거의 슈팅 게임류를 해보면 자주 보이는 게임 느려짐, 스프라이트 깜빡임[4], 추가 오브젝트 생성 불가[5] 등의 현상은 처리속도 제한이 한계수를 넘기면 발생하는 현상이다. 이를 막기 위해 화면상의 스프라이트 갯수를 제한하는 시스템을 넣은 게임이 많았으며, 슈팅게임에서 보스에 바로 붙어서 데미지를 가하는 플레이가 보편화되었던 이유도 스프라이트 제한 수 때문에 붙지 않으면 투사체 갯수가 줄어들었기 때문이다.
전략 게임 대부분에 흔한 '인구수' 같은 제한은 간접적으로 오브젝트 최대 갯수를 줄이기 위해 설정된 시스템이었다. 컴퓨터가 처리할 수 있는 한도 이상으로 유닛이 많아지면 랙을 유발하기 때문에 이를 막는 일종의 안전장치로 걸려 있는 제한이었던 것. 다만, 스타크래프트는 좀 특이한데, 아래 문단 참조.
상술했지만 스타크래프트 1의 최소 사양은 펜티엄 90 MHz, 16 MB의 메모리이다. 제작 당시에는 당시의 최저사양에 맞게 최적화하여[6] 개발하였던 게임이지만, 문제는 제작자들이 게임이 10년 이상 롱런하여 현재까지도 플레이될 것이라는 생각을 고려하지 못했다는 것이다. 그러니까 이 게임을 만드는 사람들 누구도 '설마 이 게임이 개인용 컴퓨터 메모리 사양이 GB 단위가 되는 시대까지 플레이 되지는 않겠지? ㅎㅎ' 하는 생각으로 만들었다는 것이다.
이 게임이 발매된 뒤, 화제가 된 무렵에도 메모리 32 MB 정도면 게임을 즐기는 데에 대부분 문제가 없었고, 그 시대에는 메모리 가격이 매우 비쌌기 때문에 아무나 64 MB 기본 메모리를 장착할 수가 없었다. 그래서 메모리를 최대한 아껴서 쓰는 프로그래밍은 대단히 중요했고, 블리자드 역시 거기에 충실한 훌륭한 프로그래밍을 완수했다. 현재 시점에서 스타크래프트의 메모리 할당을 두고 '고작 65메가가 할당되는'이라는 표현을 쓰는 유저들도 있는데, 당시 시대의 하드웨어를 고려하면 초호화컴퓨터를 마련해야 저 조건을 만족한다. 극단적으로 말해서, 이 게임은 1998년 3월에 오리지날이 출시됐고, 그 해 11월에 브루드 워가, 그리고 1년 뒤인 1999년에 온게임넷 스타리그 대회가 처음으로 이루어졌으며, 무려 14년이 지난 2013년까지 TV방송으로써 게임이 중계되었다. 그 동안에 윈도우가 6번이나 버전 업된 신제품(Windows 98 ~ Windows 8)이 나왔고, 월드컵이 4번 열렸으며, 출시 당시에 초등학교에 입학한 아이들은 수능을 치고 대학교에 입학한 시간 지날 동안에 한 프로그램을 써온 것이다. 일반적인 PC 프로그램의 수명을 생각하면 사람으로 200살을 넘긴 수준의 장수만세 게임. 다만, 그 동안에 게임의 버전도 올랐다.
물론 시대가 흐르고(스타크래프트가 이렇게 히트할 줄도 몰랐고) 요구에 따라 클라이언트를 손봐서 한계 메모리 허용을 더욱 높이는 방법도 쓸 수 있었을지도 모른다. 캡콤의 개발 방식이면 5%법칙을 넣은 스트리트 파이터 2처럼 지속적인 버전업 등을 통해 IP를 관리했을 것이다. 그러나 일단 만들어진 것을 바꾸기는 대단히 어려운 것이 컴퓨터 프로그래밍이다. 그렇게 간단한 문제이면 패치되었어도 진작에 되었겠으나, 만약 그 때문에 버그가 추가로 터지거나 수정해야 하는 이슈가 엄청 늘어나면 막대한 몸값을 가진 블리자드의 프로그래머의 인건비를 갉아먹게 되기에 회사로서는 우선순위도 높지 않은 일에 리스크를 감수할 이유는 없다. 유닛수 부족에 불편해할 만한 4 vs 4 게이머, 유즈맵 제작자들에겐 불편하고 분통터지는 일이겠지만 세상일이라는 게 다 이렇다. 1.18 이후에는 최저/권장 사양이 대폭 상승되었지만 한동안 해결되지 않았다. 곧, 블리자드의 입장에서는 스타크래프트는 분명히 역사에 남을 히트작이지만, 적어도 이 게임을 회사의 IP로 만들어 지속적인 시리즈로 작품을 내면서 관리할 생각은 없던 셈이다. 더구나 스타크래프트 2의 3부작이 다 나온 뒤에 리마스터가 나왔고, 리마스터는 골수 팬들을 위한 팬 서비스이니 2를 신경을 쓰지, 1을 신경을 쓸 이유가 없는 것도 한 몫 한다.
제작진은 이걸 고치면 생겨날 여러 문제 때문에 당장은 손보지 못했으나 앞으로 어떻게든 해보겠다고 알렸다.#

3. 문제가 된 이유



3.1. 제한치가 너무 낮다


오브젝트 제한치를 설정한 것 자체는 상술했듯 다른 게임에서도 흔히 있는 일이지만, 스타크래프트의 제한치가 유독 튀는 문제를 일으킨 원인은 '''일반적인 플레이를 감안해도 제한치가 너무 낮다는 것이다.''' 출시 당시부터 4:4 플레이를 제대로 할 수 없어서 문제가 되었다. 출시 당시의 PC 사양을 고려하여 설정했겠지만[7], 그것도 플레이어 수와 인구수 같은 문제를 생각해보면 PC사양을 고려했다는 짐작은 억측에 가까운 수준이다. 사내 내부 테스트로 4:4 게임 몇번만 해봤어도 이 오브젝트 제한 수가 6인전 이상의 게임에서 문제를 일으킨다는 것은 충분히 인지할 수 있었을 것이지만, 그럼에도 블리자드는 오브젝트 최댓수나 인구수 한계를 변경하지도 않고 8인전을 지원한다고 출시한 것이다.
인구수 개념이 설정된 전략 게임 가운데 스타크래프트같이 괴기한 현상을 일으키는 게임은 사실상 손에 꼽힌다고 볼 수 있는데, 최대 플레이어 수 제한/인구수 제한이 오브젝트 제한 개념에 가깝기 때문에 오브젝트 제한 수 초과 유닛을 만들지 못 하도록 인구수 제한을 걸기 때문. 다만, 스타크래프트의 경우 8인전까지 지원하는 게임 시스템, 인구수 제한과 오브젝트 제한이 서로 충돌하는 탓에 문제가 벌어지는 것이다. 오브젝트 제한수에 걸맞게끔 다인전을 제한하든지, 인구수 제한을 더 줄이고 오브젝트 제한 수를 더 늘렸으면 애초에 발생할 일이 아니었던 문제다.
스타크래프트는 엄연히 최대 8인전을 공식적으로 지원하는 게임이지만, 설정된 오브젝트 제한치가 8인전 최소치를 간소히 넘는 수준이며, 최대치에는 전혀 못 미치기 때문에 '''정작 완전한 8인전이 안 된다.''' 최대 8인전이 가능한 게임이라 홍보했으면서 애초에 시스템적으로 8인전이 힘든 상태로 출시한것이다. 저렇게 낮은 오브젝트 개체수 제한을 걸려거든, 플레이어당 최대 인구수를 100 정도로 줄이거나, 최대 6인전까지만 지원하거나 최대 오브젝트 제한수를 8인전에서 문제가 생기지 않게끔 더 늘려야 한 것인데, 이도저도 아닌 허울뿐인 8인전이 된 것. 그래서 빠른무한 같은 맵은 12시와 6시를 빼고 최대 6인까지 지원하는 맵이 많은데 그래도 결국 캔낫 현상을 피하지 못한다. 즉 이 부분은 자기네들이 설정해놓은 오브젝트 제한 수 기준으로는 6인전 지원도 빠듯함에도 (이를 인지하고 있었든, 인지하지도 못했던 간에) 8인전을 지원한다는 사기를 친 블리자드의 문제다.
한 게임에서 유닛이 수천 개씩 등장하는 게임이 많지는 않고, 각 플레이어의 최대 인구수가 200이기 때문에 인구수 1을 차지하는 일꾼 유닛만 200개 뽑아도 1600개일 뿐이며, 한 유닛이지만 인구수를 여럿 먹는 고급 유닛까지 있다는 것을 고려하면 문제가 없어보일 수 있지만, 문제는 캔낫 현상은 오브젝트 제한수이기 때문에 건물이나 시스템 내부적으로 제어할 수 없는 유닛까지 포함하고 들어가는 것. 정상적인 게임으로도 제한치까지 유닛을 뽑아낼 수 있다는 게 가장 큰 문제이다.
해처리 한 개마다 세 개씩 나오는 라바. 유닛은 두 개이지만 인구수는 1만 먹는 저글링과 스커지는 말할 것도 없고, 몸통과 포탑이 별개의 유닛으로 구성된 시즈 탱크와 골리앗은 겉보기에는 한 유닛이지만 실상 게임 내부적으로는 두 유닛이며[8], 리버의 스캐럽과 캐리어의 인터셉터는 생산만 하고 맵에 없더라도 내부적으로 유닛 카운트에 합산된다. 그 탓에 프로토스 5~6명이 캐리어만 주야장천 뽑아서 인터셉터를 풀로 채우면 제한을 빨리 넘겨 버린다. 저그 4인이 저글링만 200기씩 뽑아도 이 제한을 넘기는 셈. 맵에 배치된 미네랄과 베스핀 가스도 유닛이라는 것은 덤이다.
웃기는 건 저렇게 제한에 걸린 상황에서 유닛을 생산하면 유닛은 안 나오면서 자원은 정상적으로 소비되는 것. 당연히 이후로는 정상적인 게임 플레이가 어려워진다. 특히 저그에 타격이 크다. 라바가 있어야 뭘 뽑는데, 라바도 유닛이라 제한에 걸려서 안 나온다. 게다가 인구수를 풀로 채운 물량전이 자주 일어나는 게임 특성상 자주 마주치기 쉬운 걸림돌이 되어 버렸다.
디파일러의 다크 스웜이나 커세어의 디스럽션 웹은 실제로 유닛이라[9] 만약에 캔낫이 발생한 상황에서 스킬을 쓴다면 캔낫 때문에 안 써지고 않고 에너지만 먹는 일이 발생한다.

3.2. 유즈맵 제작을 제한한다.


그러나 아무래도 1:1 대전이 더 많은 일반 게임보다는 유즈맵[10]에서 더 큰 문제가 되었는데, 대체로 대량의 유닛들을 사용하는 유즈맵들이 많이 등장했기 때문이다. 특히 디펜스, 블러드, 디플로메시, 문명, 소환술사 계열 유즈맵처럼 대단히 많은 몹이 등장하거나 플레이어간 대규모 전투가 일어나기 쉬운 맵에서 조금만 장기전 들어가면 거의 단골 손님 수준이다. 이 제한 때문에 나와야 하는 몹이 안 나오거나 보너스 유닛이 등장하지 않는 오류를 불러일으키는 경우가 자주 나타난다. 위와 같은 유즈맵들은 심하면 1명이 300~400기씩 유닛을 모으기도 하고 저런 경우가 아니더라도 이렇게 많은 유닛을 사용하는 유즈맵은 흔하다.
또한 '스타크래프트'라는 게임이 워낙에 오래된 게임이기 때문에 맵 에디터로 할 수 있는 기능도 상당히 제한적이어서 에디터로 구현이 어려운 기능은 유닛을 추가로 활용하여 해결하는 경우가 많다. 예를 들어, 게임 통제를 위해 많은 제어용 유닛이 소비되거나[11] 콘텐츠 기능 구현을 위해 쓰는 유닛[12]들은 맵 만들다가 좀 방심하면, 심하면 수백 개씩 쓰게 되기도 하는데, 이것들이 유닛 카운트를 잡아먹고 캔낫 현상의 영향을 받아 트리거 오동작을 일으키기도 한다. 때문에 유즈맵 제작자들은 캔낫 현상을 대비해서 유즈맵을 만들 필요가 있다.[13]

4. 장점 아닌 장점


단점만 있는 것은 아니다. 강제로 맵 전체에 있는 유닛 수를 제한하기 때문에 플레이어들이 유닛을 모으기만 하고 몸을 사리는 것도 예방할 수 있고[14], 유닛을 너무 많이 쌓지 못하게 하여 렉을 유발하는 일을 줄이기도 한다. 하지만 현세대 컴퓨터의 성능은 훨씬 높아서 이 정도로는 랙이 발생하지 않고, 실제로는 인구수 200을 먼저 찍은 쪽이 공격에 나서기 때문에 그렇게 의미있는 수준의 장점이 아니다(...).[15]

5. 해결법


간단하다. 장점 문단에도 있다시피 플레이어들이 서로 치고박고 싸우면서 유닛을 소비하면 된다. 몸을 사리던 플레이어들이 자신의 유닛들을 던지거나, 많은 유닛을 보유한 플레이어에게 유닛을 죽게 하든지 하라고 아비규환이 되는 모습을 볼 수 있다.
제한을 푸는 방법은 있지만, 엔진 자체의 문제이기 때문에 '''맵 제작자가 이 제한을 푸는 방법은 현재로서는 마땅히 없다.''' 게다가 뭐든 할 수 있을 것 같은 EUD로써도 해결하기에는 너무나 복잡하여 불가능에 가깝다. EUD의 일종으로서 투사체의 제한치를 늘리는 Unlimiter로써도 유닛 제한치는 늘릴 수 없다. 이는 아마 유닛 배열이 여러가지로 엮여있거나 정적으로 코드에 박혀 있는 게 원인인 듯하다. 별도의 프로그램이나 플러그인을 통해 코드패치를 하는 식으로 늘린 사례는 있으나 어찌됐든 일반적으로 맵 제작자가 이 제한을 풀어낼 만한 마땅한 방법은 없고, 블리자드의 패치를 바라는 수밖에 없었다.

6. 소식 및 패치


스타크래프트: 리마스터 소식이 뜨면서 이러한 제한이 완화되기를 기대하였으나 1.18 패치의 출시날에도 블리자드에서는 패치에 관해 아무런 언급도 없다시피 하였다. 스프라이트에 대한 내용은 미리 공지를 하였지만 현재 캔낫 현상에 관해선 아무런 언급도 없었다. 스타크래프트: 리마스터 제작 시, 블리자드 측은 주로 프로게이머들 위주로 피드백을 받았다. 프로 게임을 진행하는 1:1 매치에서는 캔낫을 걱정할 일이 없기 때문이다. 다만, 스타크래프트가 공식적으로 8인전을 지원하는 게임인 만큼, 일반적인 8인전에서는 전혀 문제가 생기지 않을 정도로 제한을 높이는 것은 반드시 해야 한다. 게다가 이 제한 자체가 과거의 컴퓨터 사양 문제로 비롯된 만큼, 사양이 대폭 높아진 현재 기준으로 이 제한을 유지할 이유는 사실상 없는 셈이다.
1.19 패치로도 수정되지 않았다. 미국 배틀넷 포럼의 한 유저가 다수의 유닛이 운용될 때 스프라이트가 렌더링되지 않고 공격이 먹히지 않는 현상이 고쳐지냐고 물어본 글에 수정된다는 개발자의 답변은 있다.# 이는 스프라이트 수 제한으로 말미암아 발생하는 문제이고, 캔낫 현상도 같은 원인으로 말미암아 발생하는 문제라 긍정적으로 관측할 수 있다.
블리자드 측에서 이에 대해 답변을 달았는데, 내용은 아래와 같다. #

Howdy Friends,

We're days away from release, but we know Cannot Create More Units is a topic of

great importance to the community.

There are massive implications for the engine and gameplay with this change. We

haven't ruled it out, but we also haven't had time to land on the correct solution;

"Don't break StarCraft."

We will delve deeper into the problem after release. See you soon.

Cheers,

Classic Games

안녕 친구들,

출시를 얼마 남기지 않은 요새, CCMU가 커뮤니티의 가장 큰 논제라는 걸 알아요.

이를 바꾸는 건 게임 엔진이나 플레이에 크나큰 영향을 끼칠 수 있답니다.

고치기로 한 부분이긴 하지만 우리의 철칙인 '스타크래프트를 부수지 않는다'를

지키면서 수정할 시간이 부족했어요.

출시 후에 이 문제에 대해 더 깊숙이 살펴 볼테니, 나중에 봐요.

고마워요, 클래식 게임.

요약하면, 캔낫 현상을 고치려면 엔진 전체를 들어엎어야 하는 만큼 커다란 수정을 해야 해서 당장은 해결이 어렵지만 이 문제를 계속 지켜본다고 했다. 특히 리마스터 버전은 클래식 버전과의 호환성도 고려해야 하기 때문에, 수정이 쉽지는 않아 보였다.
2017년 12월 8일, 1.21 패치로 일부 EUD 맵 실행 지원과 함께, 유닛 개수 제한이 1700개에서 2배인 3400개로 늘어났고, 방을 만들 때 유닛 제한량을 설정하는 옵션이 추가되었으며, 확장에 체크할 시 유닛과 스프라이트 제한량이 함께 증가한다. 투사체 개수 제한은 100개에서 2배인 200개로 늘었다. 다만, 대규모 교전 시의 버벅거림은 아직 있는 것으로 보이고#, EUD 맵 실행 시에 유닛 제한량은 오프셋 문제인지 1700개로 고정된다.
이와는 별개로, 투사체 개수 제한은 1.21.3 패치로써 200개에서 2배인 400개로 또 늘었다.
현재는 스프라이트 개수 제한도 오리지널은 499개, 확장은 999개까지 늘어난 상태다.
1.22.2 패치로 Unlimiter 플러그인 공식적으로 지원되어 투사체 개수, 스프라이트 개수, 이미지 개수의 제한을 65,536개까지 늘일수 있게 돠었다.
여담이지만 유닛제한이 풀려도 2배가 한계인건 둘째치고 확장유닛수라도 유닛이 일정 규모 이상 생성되면 컴퓨터 유닛을 아직도 트리거로 움직일 수 없는데 이게 EUD맵이랑 다를게 없다는 거다. 플레이어가 유닛에 내리는 명령도 선택 유닛들 가운데 극히 일부에만 제대로 먹히거나 아예 씹힌다.
간단히 말해 캔낫 해결도 잊을 만하면 의미를 상실한다는 얘기다.

7. 스타크래프트 2


후속작인 스타 2에도 있다. 스타 2에서 발생하는 현상의 이름은 'Ability Limit'이라고 하며, 섬멸전 기준으로 대략 모든 플레이어들의 인구수가 총합 6000 정도에 도달하면 발생한다고 한다.
다만 스타 1와 다르게 유닛이 생성되지 않는게 아니고 해당 유닛의 능력들이 할당되어 않아 이동도 공격도 못 하는 일명 깡통으로 생성되며, 생산 건물은 건설 시작하지마자 자동으로 취소된다. 일반적으로 오류 메시지가 나오지 않다보니 바로 알아채기가 어렵지만 유닛들이 건물에 달라붙어 아무것도 안 하고 명령도 아예 먹히지 않게 된다.
맵 에디터로 테스트를 해보면 디버그 로그에 오류 메시지가 출력되는데, "user: 능력의 한계에 도달했습니다."가 표시되는 걸 볼 수 있다.
[1] 플레이어나 다른 개체와 상호작용하는 개체의 단위. 예를 들어, 마린 1기는 하나의 유닛이다.[2] 스타트 로케이션은 합산되지 않는다.[3] "유닛을 더 이상 생성할 수 없습니다." 이 이유로 영어로는 이 현상을 이 메시지의 앞글자만 따온 'CCMU'라는 이름으로 부른다.[4] 록맨 2 문서에 있는 부빔트랩 공략 영상을 보면 알 수 있는데, MSX판 알레스터, 엑시드 엑시스, 이카리 등 마이크로닉스가 NES로 저질 이식한 아케이드 게임 등등 깜빡임 현상 해결은 기술력에 따라 천지차이였다. 이를 해소하고자 NES로 게임을 만들 때 갖은 꼼수와 묘수를 통해 어떻게든 적은 처리량으로 많은 내용을 화면에 보여주려고 노력했다. 파판3 같은 게임조차도 전투 배경을 화면 일부에만 표시하거나, 록맨 시리즈는 아예 초대형보스전이나 와일리와의 최종결전땐 시커먼 배경으로만 나오든가 하는 식으로 말이다.[5] 이를 이용한 대표적 꼼수가 파이널 파이트의 최종보스 벨가전의 하메.[6] 이 때문에 스타크래프트는 CPU 활용도가 매우 높아서, 오버클럭한 CPU 테스트용 게임으로도 종종 활용됐을 정도다.[7] 지금도 가끔 제한치에 걸린 때에 렉이 걸리는 컴퓨터가 종종 있는데, 하물며 출시 직후의 사양으로는 당연히 감당이 어려운 수준이다.[8] 시즈 탱크와 골리앗은 이동과 공격이 별개의 유닛으로 구성되어 있어서 무빙샷을 할 수 있다. 다만 밸런스 문제로 무빙샷이 불가능하도록 패치된 상태다.[9] Scmdraft 2 같은 특수 에디터로 배치할 수 있다.[10] 다른 게임에서 흔히 말하는 커스텀 맵을 의미한다.[11] 특정 지점을 계속 돌게 해서 타이머 역할을 하게 하거나 리콜 같은 특수 효과를 위해 배치하는 경우.[12] 문명의 식민지처럼 이정표 역할을 하거나 NPC처럼 배치해두고 가만히 있는 오브젝트 역할을 하는 경우.[13] 대량의 유닛을 신속하게 학살하는 스킬이나 아이템을 추가하거나 유닛 수가 많을수록 페널티를 부과하는 등...[14] 다만, 일부 트롤러들은 최대한 유닛을 많이 모은 다음 사리는 방법으로 일부러 캔낫을 유도하여 남들이 유닛을 생산하지 못하게 한다.[15] 다만 트리거로 엄청난 양의 유닛이 생성되는 컴까기류 맵은 정공법으로는 답이 없어서 캔낫이 발생할 때까지 죽어라 수비하다가 캔낫이 발생하면 그때 쌓인 유닛으로 공격을 가는 방법 외에는 승리할 방도가 없는 터라 유닛 제한을 확장으로 선택하고 방을 만들면 끝없는 소모전만 벌이다가 패배를 맞이할 뿐이라 유닛 제한을 오리지널로 선택하고 방을 만들어야 한다.