【Factorio】열차 데드락의 원인과 회피 설계
교차로나 역 앞에서 열차가 계속 멈춰 있을 때, 원인은 대부분 '신호 배치', '교차로 용량', '역 앞 대기선 부족' 3가지로 나뉩니다. Factorio 바닐라 v2.0과 Space Age에서는 철도의 기본 원칙이 동일하므로, 이를 정리하는 것만으로도 데드락을 상당히 방지할 수 있습니다.
【Factorio】열차 데드락의 원인과 회피 설계
교차로나 역 앞에서 열차가 계속 멈춰 있을 때, 원인은 대부분 '신호 배치', '교차로 용량', '역 앞 대기선 부족' 3가지로 나뉩니다. Factorio 바닐라 v2.0과 Space Age에서는 철도의 기본 원칙이 동일하므로, 이를 정리하는 것만으로도 데드락을 상당히 방지할 수 있습니다.
처음으로 여러 광산을 연결했을 때, 저도 역 앞 대기선이 분기로 넘쳐서 전체 선로를 멈추게 했습니다. 대기선을 편성 길이만큼 다시 정리하고 교차로 앞을 연동식 신호로 바꾸니 그 자리에서 흐름이 돌아왔어요.
이 글에서는 보통 신호와 연동식 신호의 사용 분담을 바탕으로, 단선・복선・원형 교차로・스태커를 어떤 조건에서 선택해야 하는지 한 번에 정리합니다. 설계 후 막힘을 고치는 게 아니라, 설계 단계에서 막힘을 만들지 않는 실전 절차로 읽을 수 있는 내용입니다.
대상 버전과 선행 지식
대상 버전 명시
이 글에서 다루는 전제는 Factorio 바닐라 v2.0 과 Space Age 입니다. Space Age는 유료 DLC이며, 『Space Age - Factorio Wiki』에서는 2024년 10월 21일 출시로 정리되어 있습니다.
중요한 점은 이 글의 주제인 '열차 데드락 대책'이 바닐라 v2.0에서나 Space Age에서나 기본 원칙이 거의 같다는 것입니다. 교차로 앞에서 멈추고 싶지 않은 곳에는 연동식 신호를 놓고, 출구 쪽에서 열차를 받는다는 생각 방식은 그대로 쓸 수 있습니다. 제가 v2.0에서 기존 세계를 확장했을 때도 기존 선로를 다시 만드는 장면이 있었는데, 교차로 입구를 연동식으로 옮기는 원칙은 그대로 통했습니다. 여기는 버전 차이보다 설계의 논리가 통하는지가 더 중요합니다.
한편 Space Age에서는 공장 전체의 물류 규모가 커지기 쉽고, 열차망에 흐르는 편성 수도 늘어나기 쉽습니다. 즉, 신호의 기본이 바뀐다기보다 기본을 대충 하면 막힘이 눈에 띄기 쉬워진다 고 생각하는 것이 체감에 가깝습니다.

Space Age/ja
wiki.factorio.com이 글의 범위와 전제
이 섹션 이후에서 다루는 것은 어디까지나 철도 중심의 데드락 대책입니다. 구체적으로는 교차로, 분기, 단선 교환, 복선화, 역 앞 대기선, 원형 교차로, train limit을 이용한 유입 억제 등 선로 네트워크 설계에 한정해서 진행합니다.
반대로 Space Age에서 증가하는 행성 간 물류나 우주 쪽 네트워크의 세부 사항까지는 들어가지 않습니다. 그건 흥미로운 영역이지만, 이번 막힘의 본질은 '열차가 어디서 멈춰야 하고, 어디서는 멈추면 안 되는가'를 선로 위에서 정리하는 데 있습니다. 행성이 늘어나도 교차로 입구에서 보통 신호를 쓰면 막힐 때는 막히고, 역 앞 대기 공간이 부족하면 본선을 塞깁니다.
여기서 말하는 데드락은 열차끼리 서로를 기다리며 더 이상 움직일 수 없는 상태입니다. 단 2편성으로도 일어날 수 있고, 손으로 직접 옮기지 않으면 해제되지 않는 경우도 있습니다. 보기에는 '좀 붐비는 정도'로 보여도, 실제로는 진로 예약이 충돌해서 영구 정지 상태에 있을 수 있으므로, 단순한 정체와 같은 취급은 하지 않습니다.
💡 Tip
이 글에서는 '신호 실수로 인한 정지'와 '용량 부족으로 인한 만성적인 막힘'을 구분해서 생각합니다. 신호가 맞아도 너무 작은 원형 교차로나 너무 짧은 대기선에서는 막힙니다. 이 구분을 할 수 있으면 원인 파악이 훨씬 빨라집니다.
용어 미니 사전
여기서 쓰는 용어를 먼저 맞춰 놓겠습니다. 본문에서도 처음 나올 때 설명하지만, 미리 머릿속에서 정리해 두면 읽기가 편합니다.
보통 신호는 열차가 '다음 블록에 들어가도 되는가'를 보는 신호입니다. 직선 구간이나 이미 진로가 단순한 곳의 구간 구분에 적합합니다. 반면 분기나 교차로 앞에서 이것을 쓰면 열차가 교차로 속으로 반 쯤 들어온 후 멈추기 쉬워집니다.
연동식 신호는 다음 칸뿐만 아니라 그 다음 보통 신호나 역까지의 진로가 뚫렸는가 를 본 후 진입을 허가합니다. 다시 말해 '중간에 멈출 바엔 처음부터 들어가지 말자'로 움직입니다. 교차로나 분기 입구에서 쓰는 게 기본이 되는 건 이 때문입니다.
블록은 신호로 구분된 폐쇄 구간입니다. 1개 블록에는 기본적으로 1편성만 들어갈 수 있습니다. 열차는 이 블록 단위로 점유와 해제를 반복해서 움직이므로, 데드락을 생각할 때 '어디를 1블록으로 만드는가'가 꽤 중요합니다. 솔직히 말해서 열차가 막힐 때는 차량 자체보다 블록의 나누기 가 원인이 되는 경우가 많습니다.
이 3가지만 눌러도 '교차로 앞은 연동식, 빠져나온 뒤는 보통 신호'라는 정석 규칙이 꽤 자연스럽게 보입니다.
이 글은 데드락 대책에 한정된 심화 설명이지만, 전제가 되는 열차 네트워크 전체의 짜는 법까지 포함해서 정리하고 싶을 때는 상위 토픽과 오가며 읽으면 이해하기 쉽습니다. 특히 복선의 기본 형태, 역의 배치, 대기선의 생각, 신호의 역할 분담은 데드락 대책만 떼내기보다 네트워크 설계 전체 속에서 보면 더 와닿습니다.
제 감각에도 데드락은 단독 실수라기보다 '교차로' '역 앞' '본선 용량' 3가지가 이어져서 일어나는 경우가 많습니다. 따라서 이 다음 항목들에서는 한 곳만 고치는 얘기가 아니라, 열차망 전체 흐름 속에서 '어디서 멈추고, 어디서는 흐르게 할 것인가'를 맞춰가갑니다.
【Factorio】데드락이란 무엇인가? 먼저 눌러야 할 발생 조건
데드락의 정의와 정체와의 차이
Factorio에서 말하는 데드락은 열차들이 서로를 기다리며 손으로 옮기지 않는 한 해제되지 않는 정지 상태입니다. 보기에는 '좀 붐비는 정도'로만 보여도, 실제로는 진로 예약이 상호로 막혀 있어서 시간이 지나도 흐름이 돌아오지 않습니다. 『튜토리얼: 열차 신호 - Factorio Wiki』에서도 이런 상태는 2편성뿐이어도 발생할 수 있다고 정리됩니다. 여기가 은근 중요한데요.
한편 정체는 늦어져도 앞이 비면 순서대로 흐르는 상태입니다. 교차로 처리 능력이 모자라서 열이 길어지거나, 역의 하역이 느려서 대기 시간이 늘어나는 경우는 힘들지만, 이론상 시간이 지나면 해제됩니다. 즉, 정체는 '늦지만 진행', 데드락은 '진로 조합이 깨져서 진행 불가'라는 차이입니다.
제가 처음 빠진 함정도 여기였습니다. 편성이 2개뿐인데 왜 막혀?라는 게 정말 몰라서 몇 시간을 녹여먹었습니다. 원인은 단순했는데, 교차로 안에 열차가 들어온 뒤 멈출 수 있는 신호 배치가 되어 있었던 거죠. 열차 개수가 아니라 어디서 멈출 수 있게 설계되어 있는가 가 본질이었습니다.

Tutorial:Train signals/ja
wiki.factorio.com3가지 발생 패턴
실전에서 자주 보는 데드락은 대충 3가지로 정리됩니다. 어느 것이든 '그 장소에서 멈추면 안 되는 열차가 멈선다'는 데서 시작합니다.
첫 번째는 교차로 내 대기입니다. 분기나 교차로 앞에 보통 신호를 놓으면, 열차는 '다음 블록만 비어 있으면 들어가도 된다'고 판단합니다. 그 결과 교차로 안까지 진입했다가 출구 쪽이 막혀서 정지하고, 다른 방향 열차도 통과할 수 없게 됩니다. 가장 전형적이면서도 초보자나 숙련자나 자주 하는 패턴입니다.
두 번째는 단선에서의 정면 정지입니다. 단선 구간에 교환선이나 피크닉선이 부족하면, 양쪽에서 온 열차가 같은 구간을 두고 정면으로 마주쳐 그대로 교착합니다. 단선은 초기 비용이 가벼운 만큼, 통행 규칙을 설계로 보충해야 안정적입니다. 교통량이 늘어날수록 이 타입은 노골적으로 나타납니다.
세 번째는 역 대기가 본선을 점유하는 형태입니다. 역 앞 대기 공간이 짧거나 아예 없으면, 입장 대기열이 본선이나 분기로 넘쳐집니다. 그러면 역 자체가 붐비는 것만의 문제가 아니라, 대기열이 교차로까지 뻗어나 네트워크 전체를 멈춥니다. 실제로는 '역의 문제'와 '본선의 문제'가 이어진 거죠.
이 3가지 분류는 따로따로 보이지만, 뿌리는 꽤 공통적입니다. 열차의 정지 위치를 설계하지 못했다는 점 말이에요.
💡 Tip
데드락 대책은 '열차를 너무 많이 늘리지 말기'보다 멈춰야 할 장소를 제한하기라는 발상으로 보면 정리하기 쉽습니다. 열차 개수가 적어도 일어나는 이상, 먼저 효과 있는 건 운용량보다 배치입니다.
현장에서 구분하는 법
실제 맵에서 구분할 때는 열차 수보다 선두가 어디서 멈춰 있는가를 보는 게 빠릅니다. 저는 막힌 순간 전체 화면을 보기보다 먼저 선두 차량의 코를 따라갑니다. 이것만 봐도 신호 실수인지 용량 부족인지 꽤 구분하기 쉽습니다.
주목할 점은 신호와 신호 사이의 어디서 정지하는가 입니다. 교차로 안, 분기 위, 합류 직후에서 멈춰 있으면, 진입 판단이 너그러워서 '안에서 멈출 수 있는' 배치일 가능성이 높습니다. 반대로 교차로의 꽤 앞에서 질서 있게 대기하고 있으면, 신호 생각 자체는 맞고 이제는 처리 능력이나 대기 공간 부족을 의심하기 쉬워집니다.
또 하나 보고 싶은 게 정지 위치가 교차로 앞인지, 안인지 하는 차이입니다. 앞에서 멈춰 있는 열차는 최소한 '빠져나올 수 없으면 들어가지 말기'를 하고 있습니다. 안에서 멈춰 있는 열차는, 그 시점에서 다른 방향을 말려 들일 자격을 가지고 있습니다. 여기는 보기보다 차이가 큽니다.
더욱이 대기열의 꼬리가 본선이나 분기로 넘쳐나가고 있지 않은가 도 중요합니다. 역 앞 스태커가 부족하면, 맨 앞 열차는 역 대기만 하고 있어도, 맨 뒤 열차가 분기를 塞우고 별 선로를 멈춥니다. 현장에서는 '막힌 역'보다 그 열의 맨 뒤가 어디에 타고 있는가 가 원인 파악에 더 효과적일 때가 많습니다.
제 경험에도 데드락은 전체 그림만으로는 오판하기 쉽습니다. 맵상으로는 대정체로 보여도, 실제로는 '교차로 안에 멈춘 1편성' 또는 '역 앞 대기 열의 1개'가 트리거가 되고 있는 경우가 많습니다. 따라서 관찰의 시작점은 열차 수가 아니라 정지 위치의 정확성 입니다. 이게 보이게 되면 손 봐야 할 곳도 꽤 명확해집니다.
데드락의 주원인 1: 신호 배치 실수
보통 신호와 연동식 신호의 작동 차이
이건 이름만 외우면 헷갈리기 쉬운데, 실제 작동은 꽤 명확하게 다릅니다. 보통 신호는 '다음 블록만'을 봅니다. 눈앞의 1칸이 비어 있으면 열차를 통과시키므로, 교차로 안이나 분기 도중이 비어 있으면 열차를 진입시킵니다. 문제는 그 선의 출구가 막혀 있어도 그냥 넣어버린다는 거예요. 그러면 열차는 교차로에 코를 밀어 넣은 뒤 멈추고, 옆에서 오는 열차의 진로까지 塞웁니다.
이에 비해 연동식 신호는 '이 다음의 경로가 빠져나갈 수 있는가'를 선읽기하는 신호입니다. 『튜토리얼: 열차 신호 - Factorio Wiki』에서도 연동식은 다음 보통 신호나 역까지의 경로를 봐서 진입 가부를 결정한다는 생각으로 설명됩니다. 요는 들어가는 게 아니라 빠져나갈 수 있는가 로 판단한다는 거죠.
이 차이는 교차로에서 정말 크게 작용합니다. 보통 신호만으로 짠 교차로는 보기에는 신호가 붙어 있어서 안전해 보입니다. 하지만 실운용에서는 '안에서 멈출 수 있는 교차로'가 되기 쉽습니다. 저도 처음엔 빨간 신호가 나오는데 뭐가 문제인가 전혀 몰랐어요. 솔직하게 말하면 신호가 있다는 것과 제대로 멈출 수 있다는 것은 별개거든요.
분기・교차로의 기본 규칙
기본 규칙은 꽤 심플합니다. 분기나 교차로의 앞은 연동식, 출구 쪽은 보통 신호. 흔히 'chain in, rail out'이라고 부릅니다. 이것만으로 초보적 데드락을 상당히 없앨 수 있습니다.
이유는 명백합니다. 입구에서 '빠져나갈 수 있는 열차만 들어가기'가 필요하기 때문입니다. 교차로 안은 대기 장소가 아닙니다. 반대로 출구는 교차로를 빠져나온 뒤에 보통의 블록 관리로 돌아가고 싶으므로, 보통 신호를 놓는 게 기본이 됩니다. 이렇게 하면 열차는 교차로 바깥에서 질서 있게 대기하고, 내부는 통과 전용 공간으로 작동합니다.
공식 Wiki의 잘 알려진 사례에서도 교차로 바로 앞의 여러 신호를 보통 상태로 두면, 교차로 위에서 정지할 수 있게 되는 배치가 문제로 나옵니다. 그래서 교차로 앞의 신호군을 연동식으로 바꾸면, 진입 조건이 엄격해져서 안에서 막히기 힘들어집니다. 제 감각에도 막힌 교차로의 대부분은 '신호가 부족하다'기보다 '입구 판단이 너그럽다'가 원인이었습니다.
(수정)커뮤니티에서는 v2.0 이후 신호 관리나 분할 방식에 대한 새로운 관찰이나 논의가 나오는 부분도 있지만, 여기서 눌러야 할 핵심 설계 사상 자체는 변하지 않습니다. 만약 'v2.0에서 공식으로 스펙이 바뀐다'고 단언하려면 공식 릴리스 노트나 Wiki의 일차 소스를 병기하세요. 현 상황은 '논의・관찰이 있다' 정도로 남기는 게 안전합니다.
💡 Tip
저는 교차로에서 막혔을 때 '어느 열차가 나쁜가'보다 '이 열차가 교차로에 들어갈 자격이 있었나'로 봅니다. 입구가 연동식이면 이 구분이 정말 쉬워집니다.
짧은 출구 구간에서 출구도 연동식으로 가는 사례
기본은 출구 쪽을 보통 신호로 하지만, 이건 하나의 실전적 예외가 있습니다. 교차로를 빠져나온 직후 구간이 짧을 때입니다. 출구 바로 뒤에 다른 분기, 합류, 역 진입부가 있고, 열차 1개를 받아낼 여유가 없는 경우, 출구를 보통 신호로 하면 '한 번 교차로를 나갈 허가는 났는데, 꼬리는 여전히 교차로 안에 남아 있다'는 상태가 자주 일어납니다.
이런 배치에서는 출구도 연동식으로 두고, 그 다음까지 빠져나갈 수 있는 경우에만 통과시킨다 쪽이 안정적입니다. 커뮤니티에서 자주 말하는 '짧은 출구 구간에서는 chain-out도 쓴다'는 운용이 바로 이 때문입니다. 말 바꿔서, 교차로의 겉보기 출구가 진짜 출구가 아니라는 뜻입니다. 열차 전체가 안전한 영역까지 수용될 때까지를 한 묶음으로 취급합니다.
저도 역 앞 작은 합류에서 이걸 몇 번이나 했습니다. 출구 바로 뒤에 보통 신호를 놓으면, 그 1블록만 비는 순간 열차가 진행해서, 결과로 교차로 위에 차체를 남기게 됩니다. 그걸 연동식으로 바꾸니 갑자기 흐름이 진정되는 거예요. 겉보기에는 지소한 수정이지만, 효과는 정말 큽니다.
흔한 오배치와 수정 순서
초보자가 자주 하는 오배치는 꽤 공통적입니다. 가장 많은 게 교차로 입구를 죄 보통 신호로 만들어버리는 형태입니다. 직선의 감각으로 신호를 늘려가다 보면 자연스럽게 그렇게 됩니다. 하지만 교차로에서는 그게 역효과가 되기 쉽습니다.
수정은 어렵지 않습니다. 막힌 교차로면 먼저 이 순서로 직으면 정리하기 쉬워집니다.
- 교차로나 분기 진입 바로 앞의 신호를 확인한다
- 입구 쪽이 보통 신호면, 거기를 연동식으로 바꾼다
- 교차로를 빠져나온 출구 쪽에 보통 신호를 놓는다
- 출구
RinSeo
Factorio 2,000時間超。100駅以上の列車ネットワーク運用実績と Death World マラソンクリアの経験から、物流・防衛の実践ノウハウをお届けします。