기본 콘텐츠로 건너뛰기

추천 가젯

Tmux 환경에서 Vim 컴파일 시 발생하는 termio/termios 감지 오류 해결 방법

 리눅스 환경에서 소스코드를 직접 빌드하다 보면 의외의 환경 변수나 터미널 세션 설정 때문에 엉뚱한 빌드 에러를 마주할 때가 있습니다. 대표적인 예로 Tmux 세션 내부에서 Vim 소스를 컴파일할 때 발생하는 termio/termios 감지 오류 가 있습니다. 이번 글에서는 해당 에러가 발생하는 원인과, 단순한 clean 으로는 해결되지 않는 이유 및 올바른 해결 방법을 정리합니다. 1. 문제 원인 Vim의 소스 코드 빌드 과정( configure )은 시스템이 System V 계열인지 Linux 계열인지 판별하기 위해 termio.h 와 termios.h 헤더 파일 및 터미널 인터페이스를 검사(Probe)합니다. 하지만 Tmux 내부(세션 안)에서 컴파일을 진행할 경우 , Tmux가 제공하는 PTY(Pseudo-Terminal) 환경과 TERM=screen 등의 특수한 환경 변수 영향으로 인해 Autoconf가 터미널 인터페이스를 검출하는 과정에서 오동작을 일으킵니다. 그 결과, 실제 시스템 조건과 무관하게 설정 에러를 발생시키게 됩니다. 2. 왜 make clean 으로는 해결되지 않을까? 일반적인 개발 과정에서는 빌드가 꼬였을 때 make clean 을 실행하곤 합니다. 하지만 make clean 은 컴파일된 오브젝트 파일이나 바이너리( .o 파일 등)만 삭제할 뿐, Autotools가 시스템 환경을 탐색한 결과로 남긴 캐시( config.cache 또는 내부 매크로 변수)나 설정 파일들은 그대로 유지 합니다. 일반적인 상황에서는 시스템의 하드웨어/OS 정보가 바뀌지 않기 때문에 이 잔여물이 문제가 되지 않습니다. 그러나 Tmux나 Screen 같은 터미널 멀티플렉서 환경에서 탐색된 왜곡된 정보가 캐시에 박혀버리면, 나중에 Tmux 외부(일반 터미널)로 나와서 빌드를 시도해도 이전의 오염된 캐시 때문에 계속해서 오류가 발생하게 됩니다. 3. 해결 방법 이 문제를 해결하기 위해서는 반드시 Tmux 외부 환경 에서 기존의 오염된 설정 파일을 ...

리버 데미지업 전후 비교.

일단 위 그림(다운로드한 위치 블로그 있음) 을 보시면 알 수 있겠지만, 반지름에 따라 일정하게
스플래시 범위가 나누어 진다.  여기서 알 수 있는건, 25% 범위 ,50%범위에 들어오는 유닛들이 굉장히 많다는 것이다. 그러면 이제 생각을 해보자.


먼저 리버의 공격력을 알아보자.

리버의 공격력은 100 일반형이다. 그리고 로보틱스 서포트베이에서 업그레이드를 통해 +25를 
해줄 수 있다. 

그러면, 다음 표로 한방에 죽는 유닛들을 살펴보자. 
한방리스트누적표
2531.255062.5100125
X브루들링(방+1)브루들링SCV(방2업)SCV다크템플러(쉴+방=4)
저글링메딕(방1업)히드라
드론파벳디파일러
프로브메딕
라바벌쳐
저글링하이템플러
마린
고스트

음. scv 방2업 메딕 방1업 까지는, 원래 한방이 아니었는데 한방이 된다.  
드론이나 프로브는 팍팍 잡히는데, SCV는 그렇지 않았는데, 그건 당연히 체력이 많아서이다. 

한방기준으로는 조금 아쉽다. 이제 두방 기준으로 보자.

어차피 쉴드업 3까지 안해서... 몇개는 의미 없음. 그래서 나중에는 대충 씀.
두방리스트
누적표(저그는 당연히... 100% 아니건 버로우 X를 기준으로 함)
25+2531.25+31.2525+5031.25+62.550+5062.5+62.525+10050+100125+31.25125+62.5
브루들링라바SCV히드라하이템플러다크(+2)다크(+2)골리앗골리앗드라군
저글링프로브메딕벌쳐러커러커리버
드론고스트디파일러다크탱크(+2)질럿
프로브SCV(+1)하이템플러탱크
라바(+2)메딕(0)
마린파벳
고스트(+2)

뭐 파란색은 ... 풀업 또는 해당 업일 때... 쉴드가 1이라도 회복되면 다른 경우인데, 어차피 인게임에서는 겪을 일이 없다.   바이오닉상대로는 특별할게 없다.  

SCV 잡는 용도를 생각할 때는, 25%범위 두방이나, 50%범위 한방이 매우 중요하다고 할 수 있다.   유리한 상황에서는 하던대로, 셔틀 속업 먼저 해서, 그냥 하면 되고,
40:60 상황에서는 선리버 업이나, 셔틀이 적기지에 떨어질 시간 맞춰서 좀 늦게 더블 서포트 베이를 시도해 볼 필요가 있다. 무난하게, 지는 상황이기에 변화가 필요함. 

공업리버는, 탱크나 골리앗 잡다가, 옆에 스치는 애들 잡기도 좋고, 노업은 100%만 죽으니까 scv를 점사하다가, 불발이 나지만, 공업리버는 건물 지정한 후 스플로 scv를 잡을 수 있음.

셔틀리버로 중간중간 시즈 주저앉히는 싸움이 요즘 메타라, 벌쳐 25%+50%로 잡히는것도 큰 차이, 어차피 중앙에서 몰려다니기 때문에  25%+50%이나 25%+25%+25%로 잡을 기회는 충분히 많음. 


저그 상대로는... 주도권이 저쪽에 있고 스커지 때문에, 셔틀속업이 우선이고, 자원 여유는 없음. 그돈이면, 역뮤탈 대비용으로 마엘스톰 준비할 수 있어서 여유가 좀 없지만, 일단 해놓으면 쏠쏠함.
벌쳐보다 히드라만날일이 더 많아서 원래는 안죽는 상황에서 죽는건 차이가 큼.

25%+50%, 25%X3으로 살아남는 애들은, 러커 될 수 있는 애들이고,  
딸피라서 한방만 더 때리면 된다고 말하기 쉽지만, 러커에 스톰쓰면서  한방만 더 때리면 되는 상황을 많이 겪었을 것이라 생각함. 그 상황에서 말처럼 쉽지 않다는 걸 토스유저들은 배웠을 거라 생각함.  

그리고 의외로 디파일러는 전장에서 돌아다니기 때문에 스플래시는 잘 맞지만, 정타로 맞을 일은 별로 없음. 그래서 럭키로 디파일러를 잡는 상황이 생각보다 많이 연출되서 좋음.

토스잡는 이야기는 밥먹으러 가야해서 여기서 마침.

결론.  1. SCV 잘잡으려면, 리버공업이 필요함. 
         2. 히드라, 벌쳐 스플래시로 더 많이 죽일 수 있음.
         3. 탱크, 골리앗, 벌쳐 진출 견제 시, 효과 좋음.
         4. 질럿,리버,드라군 잡는게 다름. 
         5. 의도하지 않았지만 럭키로 하템, 디파일러 잡히는 경우가 있음. 그냥 감사하셈.  



댓글