노무현 대통령 배너
BLOG main image
왕미친놈의 왕미친세상입니다. 미친 소리는 써도 되지만, 근거 없는 소리는 쓰면 안 됩니다.


2009년 7월 22일 왜나라당 소속 국회의원(國會議員)은 결국 구괴우원(寇怪愚猿)임을 다시 한 번 스스로 입증하였습니다. 모르는 사람을 위해 설명하자면 구괴우원(寇怪愚猿)은 도둑질하는 괴생물체와 어리석은 원숭이를 가리킵니다. 한자를 바꾸면 다른 뜻이 되기도 합니다만, 아무튼 저는 저렇게 쓰고 있습니다. 차떼기로 도둑질하고, 대한민국을 위한다는 말은 모두 대한민국에 해가 되기 때문입니다.

사사오입 개헌

대한민국에서는 1954년 5월 20일에 아주 황당한 일이 있었답니다. 바로 사사오입 개헌(四捨五入改憲)이죠. 위키백과 사사오입 개헌의 설명을 그대로 가져오겠습니다.

사사오입 개헌(四捨五入改憲)은 당시 집권당이었던 자유당이 사사오입(반올림)을 내세워 당시 정족수 미달이었던 헌법안을 통과시킨 제2차 헌법 개정에 붙은 별칭이다.

1954년 5월 20일, 국회의원 선거에서 원내 다수를 차지한 자유당은 이승만의 종신 집권을 가능케 하기 위하여 "초대 대통령에 한해 중임 제한을 없앤다"는 것을 주요 골자로 하여 9월 8일 국회에 제2차 헌법 개정안을 제출하였다.

그러나 같은 해 11월 27일, 국회 표결 결과 재적의원 203명 중 2/3이 찬성해야 한다는 원칙에 따른 가결정족수(可決定足數) 136명에서 한 명이 모자란 찬성 135표, 반대 60표, 기권 7표라는 결과가 나왔다. 이에 따라 당시 국회부의장 최순주(자유당 소속)는 부결을 선포했으나, 이틀 후 사사오입의 원리를 내세워 이를 번복하였다.[1]

원래 재적의원 203명의 2/3은 135.33…명으로서 정족수의 경우 이 숫자보다 많아야 하기 때문에 보통 올림한 숫자인 136명이 맞았다. 그러나 자유당은 대학 교수까지 내세우며 사사오입, 즉 반올림을 하는 것이 맞다는 해괴한 주장을 내세워 정족수를 135명으로 하여 가결된 것으로 정정 선포하였다.

이는 절차적인 면 뿐만 아니라 내용적인 면에서도 헌법에 위배되는 위헌 헌법개정이었고, 이후 3·15 부정선거가 있게 한 계기가 되었다.

주석

1. ↑ 한영우, 《다시 찾는 우리 역사 (전면 개정판)》(경세원, 2004), 585쪽. ISBN 89-8341-057-4

사사오입 개헌에서 문제가 되는 점은 크게 두 가지입니다.

첫째로 부결을 선포한 뒤 정당한 이유 없이 그것을 번복하였습니다.

둘째로 사람 수는 반올림(사사오입)을 할 수 없습니다. 무조건 올려야 함에도 반올림을 하였습니다. 다시 말해 사람 수를 나타낼 때 0.1명이라도 계산상 1명으로 계산되어야 합니다. 이는 0.33…명은 1명으로 계산해야 하지 절대 반올림하여 0명으로 계산할 수는 없습니다.

7.22 사태

7.22 사태를 지켜본 국민 가운데 사사오입 개헌을 떠올리는 사람이 많습니다. 이것은 투표 종료가 선포된 뒤에 그것을 무효로 하고 재투표를 실시했기 때문입니다. 한나라당에서는 여러 가지 이유를 대며 합법임을 주장하고 있다.

  1. 안상수 한나라당 원내대표 : "국회 의사국장의 판단에 의해 회의를 진행했다"라고 밝힌 뒤 "의결정족수가 성립되지 않았을 때는 그 안건이 완성되지 않은 것으로 보고 다시 표결할 수 있다"라고 주장했다.

    • 근거 : 국회법 78조 의사일정 미료(未了) 안건에 대해서는 의장이 다시 그 일정을 정한다.
  2. 허용범 국회 대변인 : "원인을 알 수 없는 이유로 재석의원이 의결정족수에 미달하는 수에서 투표종료 버튼이 눌러져 표결이 성립하지 못했다"라고 밝히며 "이에 다시 표결한 것은 법적으로 문제가 없다는 게 국회사무처의 설명"이라고 말했다.

그런데 이러한 주장에는 몇 가지 문제가 있다. 먼저 의결정족수와 관련한 문제이다. 의결정족수가 성립하지 않았을 때에는 그 안건이 완성되지 않은 것으로 볼 수 없기 때문입니다. 안건의 완성은 투표 종료 시가 아닌 투표 개시 시에 판단한다. 다시 말해 투표가 개시되었다는 말은 곧 투표 안건이 완성되었다는 뜻이다. 엄밀히 말해 투표 개시 직전에 안건이 완성되어야 하며, 이는 투표가 무효로 되더라도 안건 자체는 완성된 채로 남는다. 이는 투표를 무효로 돌림으로써 안건을 다시 의제로 붙이지 못하게 막는 장치로서 일사부재의(一事不再議)와 관련이 있다. 이게 성립하지 않는다면 고의로 투표를 무효화하여 안건을 재상정 또는 재투표할 수 있기 때문입니다. 또다른 문제로 국회법 제109조 “가·부 어느 편도 의결에 필요한 수에 달하지 못한 때에는 그 안건은 부결된다.”라는 조항에 위반하고 있다는 점이다. 한나라당의 주장과는 달리 의장이 그 (미료 안건의) 일정을 정하기에 앞서 이미 부결됨으로써 완료되었다. 애초에 한나라당의 주장과는 달리 미료가 아닌 완료이다.

둘째 문제로 (알 수 없는 이유로) 투표 종료 버튼이 눌러져 표결이 성립하지 못했다는 주장도 사실과는 다르다. 헌법 총론이나 헌법 개론 등의 수업을 들은 사람은 알 수 있는 아주 간단한 문제이다. 예전에는 투표함에 투표 용지를 넣었다. 그런데 지금은 버튼을 누르는 방식이다. 차이가 있다면 투표 종료와 함께 투표함은 밀봉하여 추가 투표를 막으며, 버튼 방식은 종료 버튼을 눌러 그 이후에는 투표 버튼을 눌러도 투표에 참가할 수 없다. 다시 말해 종료 버튼을 눌렀다는 말은 투표함의 밀봉에 갈음하며, 이는 곧 투표 종료를 선언하지 않았다고 하더라도 사실상 투표가 종료되었음을 나타낸다. 더구나 이 경우에 이윤성 국회부의장이 투표 종료를 선언했기 때문에 더 이상 논란도 없다. 투표 종료에 대한 이의를 제기하고 싶다면 왜 당시에는 이윤성 국회부의장에게는 아무런 책임을 묻지 않았는지 그게 더 궁금할 따름이다.

사사오입(四捨五入)? 사사오입(死事誤入)!

사사오입은 십진법에서 4 이하는 버리고 5 이상은 취하여 근삿값을 얻는 방법이다. 초등학교 산수만 잘해도 알 수 있는 문제로서, 사람 수를 계산할 때는 사사오입을 할 수 없다는 것은 상식이다. 그런데 과거에는 그런 상식을 무참히 유린한 적이 있으니, 앞서 말한 사사오입 개헌이다.

이번 7.22 사태와 관련하여 사사오입(死事誤入)이라는 말을 쓰고 싶다. 죽일 짓을 잘하는 사람은 오입도 잘한다. 일부 몰지각한 판사검사는 물론이고 왜나라당 구괴우원이나 강간범의 공통점은 모두 오입을 잘하기 때문이다.

참고로 誤入이라는 말은 참 신기하다. "잘못 넣다" 또는 "잘못 들다"라는 말뜻을 가지고 있으며, 국어사전에는 "아내가 아닌 여자와 성관계를 가지는 일"(무엇인가를 잘못 넣었다는 뜻이다)이라고 풀이하고 있다. 왜나라당 구괴우원은 왜 오입일까? 물론 일부 몰지각한 이들은 국어사전 뜻대로 오입을 하기도 했지만, 다른 측면에서도 그들은 오입이다. 들어가지 말아야 할 곳에 들어갔기 때문이다. 그들이 있어야 할 곳은 왜나라 국회이지 대한민국 국회가 아니기 때문이다.

관련 문서

이 글은 스프링노트에서 작성되었습니다.

'이야기 > 왕미친놈의 흰소리' 카테고리의 다른 글

홍준표, 너나 잘하세요.  (0) 2009.10.16
경술국치  (0) 2009.08.29
블로거 시국 선언문  (0) 2009.06.10
이기주의자와 개인주의자의 결혼 이야기  (0) 2009.06.05
50만 명과 16만 명  (0) 2009.05.30
글쓴이는 koc/SALM입니다.
본문에 저작권에 대한 사항이 나타나지 않거나, 저작권이 BY-SA로 표기되어 있다면,
이 글은 GFDL로 공개한 글입니다.

FOR 명령을 이용하여 파일 구조 분석이나 변수를 대체하여 사용할 수 있습니다. 이것을 이용하면 직접적으로 접근하기 힘든 것을 환경 변수를 조작할 수 있습니다.

읽기에 앞서

  • 명령어 구문에서 { | }(브레이스와 바, 중괄호와 막대)로 이루어진 부분은 둘 가운데 하나를 선택해야 한다. 예컨대 {%% | %}와 같은 경우 %%와 % 가운데 하나를 선택하여 사용해야 함을 뜻한다.
  • [](대괄호)로 묶인 부분은 그 부분을 쓰지 않아도 무방함을 나타낸다. 필요할 때만 쓰면 된다.

변수 대체

변수 대체란 말 그대로 입력 받은 변수를 다른 형태로 바꾼다는 뜻이다. 이 변수 대체를 이용하면 몇 가지 조작을 할 수 있다.

변수 대체 기본 사용법

  • %~L
    따옴표("")를 제거하는 %L을 확장합니다. 경로 명 등에 쓰인 따옴표를 제거할 때도 쓸 수 있습니다.
  • %~fL
    전체 경로 이름으로 %L을 확장합니다. 아래 그림에서 집합에는 *.txt 를 넣었으며, 경로는 포함하지 않았음에도 %~fL은 그것을 전체 경로로 확장해 주고 있다.

    위 그림의 내용은 C 드라이브 루트디렉터리에 txt 확장자를 가진 파일이 존재하면 그 파일의 전체 경로를 매개변수로 삼아 dir 명령을 실행하라는 뜻이다.
  • %~dL
    드라이브 문자 전용으로 %L을 확장합니다. 다시 말해 집합에 들어 있는 *.txt를 그것이 존재하는 드라이브명과 콜론(: 쌍점)만 취해서 나타내 준다.
  • %~pL
    경로 전용으로 %L을 확장합니다. %~fL에서 %~dL를 뺀 나머지를 돌려준다. 다시 말해 %~fL에서 맨 앞의 드라이브 문자와 콜론(: 쌍점)을 뺀 나머지를 돌려준다.
  • %~nL
    파일 이름 전용으로 %L을 확장합니다. 기본적으로 집합에 입력한 값과 같은 파일이 존재할 때 그 파일명만 읽어올 때 사용합니다. 이것은 어떤 파일이 존재하는지를 알아보고, 그것과 이름이 같으나 확장자가 다른 파일이 있는지를 알고 싶을 때 사용한다.
  • %~xL
    파일 확장명 전용 %L을 확장합니다. 기본적으로 집합에 입력한 값과 같은 파일이 존재할 때 그 확장자만 읽어올 때 사용합니다. 확장자를 읽어올 때 점(. 콤마)를 함께 읽어옵니다.
  • %~sL
    짧은 이름만 포함하도록 경로를 확장합니다. 이것은 도스에서 사용하는 짧은 경로명으로 파일 이름을 나타내 줍니다.
  • %~aL
    파일의 파일 특성으로 %L을 확장합니다. 다시 말해 파일 속성만을 나타내 주며, 이때 윈도의 형식이 아닌 유닉스 형식에 따라 나타내 준다는 점이 특이합니다.
  • %~tL
    파일의 날짜/시간으로 %L을 확장합니다. 이때 날짜는 date /t 의 형식을 따르며, 시간은 time /t 의 형식을 따릅니다.
  • %~zL
    파일 크기로 %L을 확장합니다.
  • %~$PATH:L
    PATH 환경 변수 목록에 나열된 디렉터리를 검색하고 처음으로 찾은 디렉터리의 전체 이름으로 %L을 확장합니다. 환경 변수 이름이 정의되어 있지 않거나 검색으로 파일을 찾을 수 없으면 이 수정자는 빈 문자열로 확장됩니다.

    C 드라이브 루트디렉터리는 PATH 환경 변수에 지정되어 있지 않으므로 %L 환경변수에 대한 %~$PATH:L 환경변수는 공백을 돌려준다.

    C:\WINDOWS 디렉터리는 PATH 환경변수에 지정되어 있으므로 %~$PATH:L 환경변수 확장이 알맞은 값으로 대체하여 보여줍니다.

변수 대체 복합 사용법

FOR 명령 확장에서 변수 대체를 하나만 쓸 수도 있지만 여러 개를 복합하여 사용할 수도 있습니다.

  • %~dpL
    드라이브 문자 및 경로 전용으로 %L을 확장합니다.
  • %~nxL
    파일 이름 및 확장명 전용으로 %L을 확장합니다.
  • %~fsL
    이름이 짧은 전체 경로 이름 전용으로 %L을 확장합니다.
  • %~dp$PATH:L
    %L에서 PATH 환경 변수의 디렉터리 목록에 나열된 디렉터리를 검색하고 처음으로 찾은 드라이브 문자와 경로로 확장합니다.
  • %~ftzaL
    dir과 같은 출력 줄로 %L을 확장합니다.

위의 예제에서 %L과 PATH는 다른 유효한 값으로 바꿀 수 있습니다. 유효한 for 변수 이름은 %~ syntax를 종료합니다. %L 같은 대문자 변수 이름을 사용하면 코드를 더 읽기 쉽게 만들고 대소문자를 구분하지 않는 수정자와 혼동을 피할 수 있습니다.

응용 예시

Slave 님께서 질문을 하나 올려주셨습니다.

  1. for %f in (*.txt) do run %f > %f.result

위와 같이 하면 파일명은 항상 파일이름.txt.result라고 나타난다네요. 이것을 파일이름.result라고 바꾸고 싶다고 하셨습니다. 참고로 윈도에서 사용한다면 파일이름.txt.result라고 하는 쪽이 여러모로 좋지만, 파일이름.result를 더 좋게 여기는 사람도 많습니다. 이 부분은 사람마다 취향의 차이이므로 자기가 바라는 대로 출력하고자 하지요.

이 문제는 %~nL 항목을 응용하면 쉽게 바꿀 수 있습니다.

  1. FOR %F IN (*.txt) DO run %F > %~nF.result

배치파일에서 사용한다면 아래와 같이 하면 됩니다.

  1. FOR %%F IN (*.txt) DO run %%F > %%~nF.result

다음 예고

FOR 명령에서 파일 구문 분석에 대해 알아보겠습니다.

이 글은 스프링노트에서 작성되었습니다.


'스크립트 > 배치파일' 카테고리의 다른 글

FOR 명령 확장 1  (2) 2009.06.17
FOR 명령  (6) 2009.05.16
GOTO 명령  (3) 2009.05.05
IF 명령 확장  (1) 2009.04.22
IF 문자열  (4) 2009.04.18
글쓴이는 koc/SALM입니다.
본문에 저작권에 대한 사항이 나타나지 않거나, 저작권이 BY-SA로 표기되어 있다면,
이 글은 GFDL로 공개한 글입니다.

카테고리

분류 전체보기 (1005)
스크립트 (22)
벌레와 팁 (126)
소프트웨어 (240)
하드웨어 (6)
이야기 (24)
말의 나무 (506)
미쳐보자 (22)
일기 (48)
아이폰 (10)

최근에 올라온 글

최근에 달린 댓글

최근에 받은 트랙백

달력

«   2009/07   »
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31

글 보관함