'2008/07'에 해당되는 글 6건

  1. 2008/07/31 [스크랩] 코딩스타일
  2. 2008/07/16 [스크랩] 5분의 파워
  3. 2008/07/16 무엇이 진실인가? -조중동의 왜곡-
  4. 2008/07/13 [음악] 차라의 숲 -러브홀릭
  5. 2008/07/11 [애니메이션] 아버지와 딸 - 미카엘 두 드윅 2000년작-
  6. 2008/07/06 [c++] 학점계산프로그램

부록 A.코딩 스타일

.코딩 스타일

코딩 스타일(Coding Style)이란 코드를 작성하는 방식에 대한 개인적인 기호라는 뜻이다. C/C++은 프리 포맷을 지원하며 코드의 형식에 대한 문법적인 제약이 없으므로 마음대로 작성할 수 있다. 개발자는 개성을 가진 인간이기 때문에 누가 작성하는가에 따라 코드의 모양이 조금씩은 달라질 것이다. 코드의 모양이야 어떻든간에 컴파일러가 코드를 해석하기에 애매하지만 않으면 컴파일하는 데는 아무런 문제가 없다.

그러나 똑같은 내용의 소스라도 사람이 읽기 쉽고 구문 파악이 용이해야 이후 코드를 수정하기 편리하고 효율적으로 유지, 보수할 수 있다. 뿐만 아니라 소스의 구조가 잘 보이면 실수할 가능성이 낮고 골치아픈 버그의 위험을 조금이라도 줄일 수 있다. 컴파일러는 기계이므로 스타일을 무시하지만 이 코드를 읽고 관리하는 사람은 코딩 스타일에 영향을 받으므로 코드의 작성 형태는 소스의 품질에 무시할 수 없는 중요한 요소이다.

코딩 스타일에 정답이라는 것은 없으며 가장 좋다고 소문난 스타일도 나와 맞지 않으면 쓸 수 없다. 어떤 스타일을 선택하든지 그것은 개인의 자유이므로 보기에 좋고 유지하기 편리한 스타일을 사용하되 단, 한 번 정한 스타일은 일관되게 지키는 것이 좋다. 여기서는 어떤 코딩 스타일이 있고 각각의 장단점은 무엇인지 객관적으로 비교해 보기로 한다. 남들은 어떤 식으로 코드를 작성하는지 구경해 보고 자신의 스타일을 만들어 보자.

중괄호 작성 스타일

C++, 자바, C# 언어를 흔히 { } 괄호 언어라고 부르는데 이는 이 언어들의 각 부분에 { } 괄호가 유독 많이 사용되기 때문이다. { } 괄호를 배치하는 형식은 소스의 전반적인 구조를 결정하는 가장 눈에 띄는 차이점이며 또한 개발자마다 각각의 스타일을 고집하는 대표적인 예이다. 여러 가지 스타일이 있지만 대표적인 세 가지 스타일을 들어 보면 다음과 같다. if 문을 예로 들었는데 for, switch 등 대부분의 제어 구조에도 이 스타일들이 적용된다.

 

if (조건)

    {

        명령

    }

if (조건) {

  명령

}

if (조건)

{

  명령

}

GNU

K&R

BSD

 

세 형식 모두 닫는 괄호는 별도로 한 줄에 작성하지만 여는 괄호의 위치와 블록 내의 들여 쓰기 방식이 다르다. 어찌나 유명한 스타일인지 이름까지 붙어 있다.

 

GNU 스타일 : { } 블록을 if문 아래쪽에 작성한다. if 문에 속한 하위 블록임을 분명히 표시하기 위해 블록을 통째로 안으로 들여 쓰고 블록내의 명령도 { 괄호보다 하나 더 안쪽으로 들여쓴다. 가끔 명령을 { } 괄호와 같은 레벨에 들여쓰는 변형된 스타일을 쓰는 경우도 있다. 구조가 제일 잘 보이는 스타일이기는 하지만 들여쓰는 정도가 너무 심해서 수평으로 많은 코드를 작성할 수 없다는 것이 단점이다.

K&R 스타일 : C언어의 창시자들이 흔히 즐겨 썼던 스타일이며 C++의 창시자인 스트로스트룹도 이 스타일로 문서를 작성한다. 블록을 여는 괄호가 블록 시작행의 끝에 있다는 점이 특이하며 명령은 블록 안쪽으로 들여쓴다. 조건절을 주석 처리할 때 약간 불편한 면이 있으나 if를 블록 시작으로 보므로 블록 구조 파악에는 큰 무리가 없다. 이 스타일의 가장 큰 장점은 여는 괄호가 한 줄을 차지하지 않아 수직으로 더 많은 코드를 볼 수 있다는 점이다.

BSD 스타일 : GNU 스타일과 K&R 스타일의 장점만을 취한다. 여는 괄호가 별도의 줄에 작성되어 소스가 좀 더 길어지는 단점이 있지만 블록 구조가 더 잘 보이며 블록이 if와 같은 레벨에 있어 들여쓰기도 심하지 않다. 블록의 시작과 끝이 한 눈에 들어오고 수평 위치가 같아 유지, 보수에는 가장 유리한 스타일이다.

 

세 스타일 모두 함수를 정의할 때는 여는 중괄호를 별도의 행에 따로 배치한다. if 문이나 for에 걸리는 명령이 하나 뿐이라면 굳이 { }를 쓰지 않아도 상관없지만 확장성에 불리하기 때문에 일반적으로 권장되지 않는다.

이 세 가지 스타일 중 GNU 스타일은 상대적으로 인기가 없는 편이며 K&R 스타일과 BSD 스타일이 주로 많이 쓰이는 스타일이다. 두 스타일의 가장 큰 차이점은 { 괄호의 위치인데 블록끼리 중첩될 때 수직 길이에 많은 차이가 있다. BSD 스타일이 여는 괄호의 개수만큼 더 길어진다.

 

if (k == 5) {

     for (i = 0;i < 10;i++) {

          if (ar[i] == 10) {

              func(ar[i]);

          } else {

              proc(ar[i]);

          }

     }

}

if (k == 5)

{

     for (i = 0;i < 10;i++)

     {

          if (ar[i] == 10)

          {

               func(ar[i]);

          }

          else

          {

              proc(ar[i]);

          }

     }

}

 

수직 길이가 더 길어진다는 것은 한 화면에 많은 코드를 볼 수 없다는 뜻이며 아래 위로 스크롤해가며 읽어야 하는 불편함이 있다. 또한 코드를 인쇄했을 때 용지를 너무 많이 낭비한다는 경제적인 이유도 무시할 수 없다. 이런 이유로 과거에는 K&R 스타일이 주로 많이 사용되었으나 요즘은 고해상도 모니터의 도움을 받을 수 있으므로 점점 BSD 스타일을 더 선호하는 편이다. 하드웨어 지원이 충분하다면 BSD 스타일이 모양은 가장 좋다.

들여쓰기

들여쓰기(Indentation)란 블록 앞쪽에 탭이나 공백을 넣어 상위 블록보다 더 안쪽에 배치하여 코드의 종속적인 관계를 표현하는 기법이다. 들여쓰기를 하지 않으면 소스의 논리적인 구조가 잘 파악되지 않으며 블록 구조를 수정할 때 실수할 가능성이 높으므로 반드시 해야 한다. 대부분의 편집기는 자동 들여쓰기를 지원하므로 편집기의 안내대로만 소스를 작성해도 큰 문제는 없다.

들여쓰기를 할 때는 탭이나 공백을 사용한다. 탭은 일정 수의 공백을 대신하는데 탭 하나에 몇 개의 공백폭을 사용할 것인가를 선택할 수 있다. 일반적으로 4가 가장 무난하지만 좀 더 시원스럽게 보이고 싶다면 8을 쓸 수도 있고 수평으로 너무 깊게 들여쓰기 싫다면 2를 쓸 수도 있다. 탭은 제어 코드 하나로 여러 개의 공백을 들여쓸 수 있어 문서 크기가 작아진다는 장점이 있지만 편집기에 따라 폭이 틀려져 문서가 쉽게 깨진다는 단점도 있다.

 

class Some

{

     int           value;      // 정수 멤버

     double         rate;        // 실수 멤버

     unsigned u;           // 부호없는 정수 멤버

};

 

탭폭이 4인 편집기로 멤버 변수명과 주석의 수직 위치를 보기 좋게 잘 정렬해 놓았다. 멤버의 타입, 이름, 주석이 일목 요연하게 파악되므로 아주 깔끔하다. 그러나 똑같은 소스를 탭폭이 8인 편집기로 열어 보면 모양이 완전히 바뀌어 버리며 탭폭이 같더라도 글꼴이 바뀌면 정렬 상태가 깨질 수도 있다. 탭 문자는 절대적인 폭이 없고 주변 상황에 따라 다음 위치가 결정되는 논리적인 포맷 지정을 하기 때문이다.

 

class Some

{

     int                    value;           // 정수 멤버

     double              rate;        // 실수 멤버

     unsigned u;                     // 부호없는 정수 멤버

};

 

편집기를 늘상 같은 걸로만 쓴다면 탭이 편리하지만 이것 저것 바꿔가며 쓴다거나 여러 사람이 같이 작업해야 한다면 탭은 문서의 모양을 일정하게 유지하는 역할을 하지 못한다. 그래서 탭 대신 공백을 사용하고 고정폭 글꼴을 사용하는 사람들도 있는데 이렇게 하면 편집기에 영향을 받지 않고 항상 일정한 모양을 유지할 수 있다. 그러나 공백은 커서를 이동할 때 이동 속도가 느리고 문서가 커진다는 단점이 있다. 대부분의 편집기는 들여쓰기에 공백이나 탭을 선택할 수 있도록 되어 있다.

일반적인 블록의 들여쓰기 방식은 대체로 한 수준 내려갈 때 한번 들여쓰는 것으로 통일되어 있다. for 반복문이나 if 조건문이 시작될 때 들여쓰고 끝날 때 다시 내어쓰면 블록의 중첩 구조를 쉽게 표현할 수 있어 별다른 변형이 없다. 그러나 switch 문의 들여쓰기 방식은 차이가 있는데 case를 switch보다 들여쓰는 경우가 있고 그렇지 않은 경우가 있다.

 

switch (value)

{

     case 1:

          명령;

          break;

     case 2:

switch (value)

{

case 1:

     명령;

     break;

case 2:

 

case를 들여쓰는 쪽이 보기에는 더 시원스럽지만 case 안쪽을 또 들여써야 하므로 깊이가 너무 깊어진다. switch가 두 번만 중첩되어도 4번 들여쓰기 되어 소스가 오른쪽으로 치우치는 경향이 있으며 이렇게 되면 소스 뒷부분을 읽기 위해 수평 스크롤을 해야 하므로 번거로와진다. 보통 case는 switch와 같은 레벨에 두고 case안쪽만 들여쓰는 것이 가장 무난하다.

소스의 오른쪽 끝을 어디쯤에 맞출 것인지도 중요한 결정 사항 중 하나인데 수평으로 너무 길거나 들여쓰기가 깊어지면 불편해진다. 과거 도스 환경의 영향으로 인해 통상 80컬럼 정도에 맞추는 것이 보통이다. 이 길이를 넘어서면 적당한 곳에서 강제 개행을 하는 것이 좋다. 편집 환경의 해상도가 좀 더 높다면 100컬럼 정도까지도 큰 문제는 없지만 그보다 더 길게 작성하는 것은 별로 바람직하지 않다.

빈 줄 사용 여부

빈 줄은 아무 것도 없이 개행만 하는 줄이지만 가독성 높은 소스를 작성하는데 중요한 역할을 한다. 함수는 개별적인 작업의 단위이므로 보통 빈 줄을 하나씩 넣어야 함수간의 구분이 용이하고 보기에도 시원스럽다. 단순 변수 선언문들은 붙여서 쓰지만 구조체나 클래스같이 덩치가 큰 타입 선언문들도 빈 줄로 구분하는 것이 좋다.

함수 내부에도 빈 줄이 종종 사용되는데 선두의 지역 변수 선언문과 본체 코드 사이에도 개행을 하는 것이 보통이며 함수 내부의 코드 덩어리 사이에도 빈 줄을 넣어 다른 작업 그룹임을 분명히 해야 한다. 너무 붙여 버리면 어디까지가 어떤 동작을 하는 코드인지 잘 파악되지 않아 코드를 읽기가 어려워진다. 보통 루프나 조건문 등이 새로 시작될 때마다 빈 줄을 하나씩 삽입하는 편이다.

이 책에서 작성한 예제들을 보면 함수 중간 중간에 삽입되어 있는 빈 줄을 흔하게 볼 수 있다. 예를 들어 소코반의 Move 함수를 보면 지역 변수 선언문과 방향에 따라 이동 거리를 조사하는 switch문 사이에 빈 줄이 있고 switch문과 실제로 이동을 하는 if 블록 사이에도 빈 줄이 있어 각 코드 부분을 논리적으로 구분한다. main 함수를 봐도 전역 초기화, 스테이지 초기화, 입력 및 처리, 게임 끝 판별 등의 큼직한 덩어리 사이에 빈 줄이 삽입되어 있다.

클래스 선언문 내부에도 액세스 지정자별로 빈 줄을 하나씩 삽입하여 멤버들의 그룹이 잘 보이도록 해야 한다. 또한 멤버의 용도에 따라 적당히 빈 줄로 그룹을 나누어 놓으면 보기에 훨씬 더 좋고 새로운 멤버를 추가할 장소를 찾기도 용이하다. 빈 줄이 너무 많으면 소스가 길어지는 단점이 있기는 하지만 적당한 여백이 없으면 소스가 너무 갑갑해 보이므로 필요한 곳에는 아낌없이 빈 줄을 넣도록 하자.

공백 사용

공백은 쉽게 말해서 스페이스 하나를 삽입하는 것인데 문법적으로 공백이 없더라도 컴파일러는 소스를 잘 해석하지만 적절히 띄워 놓으면 소스의 가독성을 높일 수 있다. 공백에 대해서도 일반적으로 적용되는 지침이 있는데 키워드와 여는 괄호 사이에는 공백을 넣는다. 예를 들어 if (...)이나 for (...) 등의 예에서 if와 여는 괄호, for와 여는 괄호 사이에 공백이 하나 들어간다.

그러나 함수와 괄호 사이에는 일반적으로 공백을 넣지 않는다. strcpy(...), printf(...) 등과 같이 함수와 인수열의 괄호를 바로 붙여 쓴다. 함수와 실인수 목록을 하나의 문장을 본다는 시각이다. GNU 스타일은 strcpy ( ... )과 같이 함수와 괄호 사이도 띄우고 첫 번째 실인수와 여는 괄호도 띄우는 것이 일반적인데 익숙하지 않은 사람은 다소 어색해 보인다.

이항 연산자와 피연산자 사이에도 공백을 넣는다. a = 1; 이나 a = b + c; 이런 식으로 말이다. a=1;처럼 딱 붙여 버리면 조금 갑갑해 보이며 a=b+c;도 읽기에 쉽지 않다. 그러나 예외적으로 . 연산자와 -> 그리고 [ ] 연산자는 좌우변이 굉장히 긴밀한 관계이므로 붙여 쓴다. obj.mem 이렇게 붙여서 쓰는 것이 일반적이고 obj . mem 이렇게 띄우는 사람은 거의 없다. *pi, a++ 등의 단항 연산자는 하나의 연산 단위이므로 공백을 두지 않는다.

 

a = b + c * d + 3 + 8;

a = arScore[3] * pRecord->Rate;

 

포인터 선언문의 경우 공백 위치가 애매한데 보통 다음 두 가지 스타일이 사용된다. 이 외에 * 앞 뒤로 공백을 다 넣는 스타일도 있기는 하다.

 

int *pi;

int* pi;

 

이 두 스타일은 똑같은 선언문이지만 의도하는 바는 약간 다른데 전자는 정수형의 포인터 변수라는 뜻이고 후자는 정수 포인터형 변수라는 뜻이다. C언어에서는 전자가 많이 사용되었고 C++언어에서는 후자를 주로 사용하되 정수형과 정수 포인터형을 한 줄에 같이 선언할 때 문제가 좀 있어 선언문 하나당 하나의 변수만 선언할 것을 권장한다. 함수 호출문이나 정의문의 인수 목록 사이에도 콤마 뒤에 공백을 넣는 것이 일반적이다.

 

함수 정의시 : void func(int a, double b, char c);

함수 호출시 : func(123, 4.5, 'Z');

 

여러 개의 인수들이 나열되므로 인수 목록 사이에 공백을 두지 않을 경우 인수간의 구분이 용이하지 않다. 비슷하게 배열이나 구조체 초기식의 초기값들 사이에도 가급적이면 콤마와 공백을 같이 넣는 것이 좋다.

명칭 작성법

변수나 함수, 타입의 이름은 모두 명칭으로 작성되는데 명칭의 첫 번째 요건은 다른 명칭과 구분되는 이름을 가져야 한다는 것이며 또한 표현하고자 하는 대상과 연관된 이름을 가져야 한다. 구분을 위해서는 길이가 너무 짧아서는 안되며 입력의 편의를 위해서는 너무 길어서도 안되는데 보통 3 ~ 10 자 정도가 적합하다. 명칭의 대소문자 구성이나 접두, 접미를 붙이는 방법도 다양한데 대표적으로 다음 세 가지 정도를 들 수 있다.

 

전부 소문자 : score, remaintime, callnextlink

어근만 대문자 : Score, RemainTime, CallNextLink

낙타형 : score, remainTime, callNextLink

 

이 외에 Remain_Time 등과 같이 단어 중간에 _를 넣는 방법도 있는데 타이프 하기에는 조금 불편하지만 읽기에는 가장 좋은 명칭이다. 그러나 밑줄로 시작하는 명칭은 표준이 장래의 예약어확장을 위해 금지하고 있으므로 사용하지 말아야 한다. 매크로 상수는 전부 대문자로 작성하는 것이 보편적이다.

함수와 변수, 타입 등에 따라 이름을 다르게 작성하는 경우도 있는데 변수는 모두 소문자로 함수는 첫 글자만 대문자로 작성하는 식이다. 이 외에 변수의 이름에 b, a, p 등의 접두를 붙여 이름만으로 타입을 분명히 알 수 있도록 하는 방법도 흔히 사용되는데 특히 포인터 타입의 경우 pPos, pTime 처럼 p를 붙여 놓으면 포인터인지 쉽게 알 수 있어 꽤 유용하다. 이름에 명칭의 자격과 타입 정보까지 같이 표현하자는 취지이다.

주석

소스에 설명을 붙이는 주석도 일종의 코딩 스타일인데 되도록 많이 다는 것이 좋다고 생각하는 사람도 있고 불필요한 주석은 오히려 지저분하다고 생각하는 사람도 있다. 과거에는 주석이 많을수록 더 쉬운 소스라는 견해가 일반적이었지만 요즘은 주석보다는 설명적인 소스를 작성하는 것이 더 바람직하다는 견해가 지배적이다. 즉, 다량의 주석보다 주석이 필요없을 정도로 읽기 쉬운 소스가 더 좋다는 뜻이다.

한 줄 주석은 //로 작성하고 여러 줄 주석은 //를 여러 번 쓰거나 /* */를 쓴다. 짧은 주석은 코드 옆에 바로 붙이는 것이 좋고 조금 긴 주석은 코드 위쪽에 붙인다. 한 줄로 작성하기 곤란할 정도로 설명해야 할 양이 많다면 주석으로 달아놓는 것보다 별도의 문서를 따로 작성하고 참고 문서를 주석으로 표시해 놓는 것이 좋다. 소스내의 주석은 텍스트밖에 표현하지 못하지만 참고 문서는 도표, 그림, 흐름드 등을 세밀하게 표현할 수 있어 더 상세한 설명서를 작성할 수 있다.


출처 : winapi.co.kr

[스포츠강좌] 하루 5분의 파워

2008. 7. 8. 화요일

태양아래 새로운 것은 없다.
그러나 우리가 모르고 있는, 과거 좋은 것들은 수많이 존재한다.

-암브로스 피어스-


우리는 짧은 시간을 말할 때, 5분을 거론한다.

군대에서도 5분 대기조가 있고, 한참 바빠서 시간을 더 달라고 말할 때도 5분을 말하고, 요즘 나오는 책들의 제목을 봐도 빠른 효과를 강조하기 위해, 다들 5분을 언급 하고 있다.

5분이라는 말은 실제 시간을 떠나 ‘찰나’의 대명사로 자리잡았다.
이런 트렌드에 얍샵하게 편승하여 ‘하루 5분의 파워 프로그램’ 이라는 것을 만들어 봤다.

운동을 하지 않는 사람들의 이유 중에서 제일 많이 나오는 말은 “시간이 없어서” 이다.

핑계 대는 수준이 상당하거나, 아님 진짜 먹고 사느라 바빠서 일 텐데…
그러나 아무리 시간이 없어도 ‘하루 5분’이란 말 앞에서는 다들 무릎을 꿇을 수 밖에 없다. 그만큼 짧은 시간이니까

하루 5분이라….
명랑 한번 하기도 빠듯한 이 시간에 최대한 효과를 가지기 위해 어떤 운동들이 필요할까?
정말 그 짧은 시간으로 효과나 제대로 거둘 수는 있는 걸까?

그게 사실이라면 요즘같이 힘든 때, 정말로 운동할 돈도 없고 시간도 없는 백수들, 그리고 살림에 허리가 휘는 우리네 남편 혹은 아내들이 시도해 보기에 딱 좋은 프로그램 아니겠는가?

지금부터 설명할 프로그램들은 단순히 그 효과가 좋을 뿐만 아니라, 단련이 되고 나면 응용력도 커지게 되는 굉장한 프로그램이다.
즉 상큼한 이성 한 명 소개 시켜 주는 데서 끝나는 것이 아니라, 낚는 방법까지 가르쳐 준다는 의미 되겠다.

본격적인 기사에 앞서, 장시간에 대한 편견을 깨보고 시작해 보자.
지난 여러 기사들을 통해 꾸준히 언급하며 없애 온 편견이지만, 5분이라는 시간에 맞게 다시 설명해 보겠다.

‘메리에겐 특별한 것이 있다’ 영화에서는 그 유명한 헤어젤 사건 말고도, 재미난 에피소드가 많이 있다.

그 중 하나가 주인공이 메리를 찾아 가는 과정에서, 주인공이 차에 히치하이커를 태우고 난 뒤 그들이 나눈 대화이다.

그 히치하이커는 기막힌 아이템을 가지고 있다고 했다.
지금 8분 복근 만들기 운동 비디오가 히트를 치고 있는데, 자기는 7분 복근 만들기 운동을 만들어서 더 큰 대박을 기대한다는 것이다. 같은 진열장에 ‘8분 복근 운동 비디오’와 ‘7분 복근 운동 비디오가’ 있으면 사람들이 어떤걸 사겠느냐고, 혼자 들떠서 어쩔 줄 몰라 했다.

그러자 우리의 주인공은 “누가 또 6분 복근 만들기가 만들면 어떡하죠” 라고 개념 없는 친절 멘트를 날림으로써, 그 띨빡한 히치 하이커를 혼란에 빠뜨리며, 6분이라는 시간으로는 절대 운동이 될 수 없다고 소리치게 만든다.

필자도 주위 사람들에게 물어 본 적이 있는데, 한결 같은 대답이 하루 6분은 복근을 만들기에 너무 짧은 시간이라고 했다.

6분은 고사하고 인기가 있었다는 8분 복근 운동 비디오(실제로 판매되었던 비디오다)도 대부분 특별한 사람에게나 통하거나 혹은 상업적 사기 정도로 생각한다.
 
즉 우리는 ‘운동 이꼴 장시간’이라는 확고한 생각을 가지고 있기 때문에 이러한 잘못된 결론을 먼저 내려 버리고 시작한다. (장시간이 꼭 나쁘다는 건 아니다. 필요가 있을 때가 있다. 그러나 대다수 사람들이 생각하듯이 장시간 운동만이 최고라는 잘못된 선입견은 여러 가지 치명적인 문제를 발생시킨다. 장시간 운동에 대해서는 다음 패자부활전 시간에 뵙도록 하자)

이런 생각이 가져 오는 것은 다분히 피트니스를 잘못 바라 보는 편견에서 끝나는 것이 아니다.

운동 같지 않은 운동을 할 바에야 아무것도 안 하는 게 낫다는 깔끔 완벽주의자들에게, 아예 운동을 포기하게 만든다.

즉 운동에 대한 잘못된 지식으로 인해 평생 운동과 결별하고 살아가는 것이다.
5분으로 일궈내는 성과가 얼마나 큰지를 안다면, 절대 쉽사리 포기 하는 일은 없을 텐데 말이다.

편견을 깨기란 쉽지가 않다.
사람들은 이미 스스로 결론을 가지고 대화를 하고, 자기가 원하는 것만 듣기 때문이다.

고시에서 1등으로 합격한 사람의 수기에서 하루 5시간만 잤다고 한 내용을 본적이 있다.
다들 비웃으며 거짓말이라고들 한다.
누가 만들어 냈는지 모르지만 4당 5락 이니, 3당4락이니, 이런 말들이 판을 치니 5시간이라면 우습게 여겨질 것이다.

필자는 그런 수기를 보면 반대로 생각한다.
정말 저 사람이 1년 365일 내내 5시간만 잤을까? 설령 그러다 치더라도 나머지 깨어 있는 시간에 최고로 효율적으로 집중할 수 있었을까?

만약 그게 사실이라면, 고시 1등의 합격을 누릴 자격이 충분히 있는 사람이다.
공부 하는 동안 슬럼프 한 번 없이, 하루 5시간만 수면 하면서 나머지 시간에 집중할 수 있다면, 그 어떤 일도 할 수 있다고 필자는 생각한다.
적게 잠자기를 권유하는 3시간 수면법이란 책이 말하는 수면의 시간도, 짬짬이 자는 낮잠까지 합하면 5시간이나 되니 절대 많은 양이 아닌 것이다.

즉 우리는 “교과서만 보지 않고, 비밀스런 참고서를 엄청나게 많이 봤어요”, “저는 하루에 절대 1시간만 운동하지 않고 최소 5시간 이상은 했어요” 등등의 결론을 이미 기대하고 있으며, 그런 대답이 나오지 않으면 무조건 진실을 숨긴다고 생각한다.

대답 해주는 상대방도 마찬가지다.
체력이 좋은 사람이, 하루 1시간만 운동하고 이런 몸과 체력을 가지고 있다고 진실을 말해줘도 듣는 사람들은 잘 믿지를 않는다.
믿지 않는 건 둘째 치고라도, “그 정도의 시간밖에 운동 안 해? 라고 얕잡아 보게 되면, 갑자기 열 받기 시작하면서, 바로 후까시 모드로 바뀌게 된다.
 일단 스트레칭 시간과 샤워시간 그리고 체육관 왕복시간 까지 덧붙이게 되고, 급기야 런닝구 머신 타고 있는 미녀의 엉덩이 보느라 체육관에서 가장 오랫동안 보냈던 시간을 평균적인 시간인 냥 말하게 된다.

다시 주제로 돌아가서,
“시간이 없어서”를 최고의 무기로 삼고 있는 사람들에게, 각종 운동 기구들을 사용하라고 함은, 더할 수 없는 사치이자, 또 다른 핑계 거리를 안겨 줌을 잘 알기에 맨몸운동만 가지고 말해 보겠다.

맨몸운동을 우습게 보는 사람들은, 웨이트를 다루기 전 초보자만이 하는 운동 혹은 웨이트의 보조 운동 정도로만 생각하는데, 참말로 겸손할 지어다.
체조동작 같은 어려운 동작 말고 특수부대에서 자주 하는 간단한 PT 동작들도, 적용하는 프로그램에 따라 절대 쉽지가 않다.

특히 고반복으로 가서 근지구력으로 가게 되면, 그 동안 자랑스러웠던 과도한 갑빠는 애물 딴지로 전락하고, “덩치 값도 못한다”라는 처절한 쪽팔림을 감수해야 만 한다.

특수부대 훈련에서 과도한 근육을 가지는 것은 자살 행위나 마찬가지다.
딱 여러 뇨성들이 좋아하는 정도의 근육만이 해답이다.

그리고 재밌게도 팔굽혀펴기를 통해서 벤치프레스 무게를 올린다거나, 근육을 키우는 사람들도 종종 있다는 것이다.
펌핑 효과 말고도 실제로 근비대 효과를 가져오기도 한다.

느린 근육의 자극이라는 측면도 있겠으나. 정확한 이유는 아무도 모른다.
다만 뽈노이론에서 알 수 있듯이 변화 라는 것으로 설명 가능하다.

후배 중 200kg에 육박하는 스콰트를 하는 넘도, 가끔 하는 타바타 맨몸 스콰트 한번에 그 어떤 때 보다 더 두꺼운 다리가 형성되기도 한다.

반대로 계속 맨몸운동만 하는 것도, 근육을 지속적으로 자라게 하지는 못한다.
방금 언급한 “뽈노 이론” 처럼 항상 다각적인 변화를 모색하고, 자기가 못하는 것일수록 더 즐기려는 마인드를 가져야 한다.

웨이트 우수성을 말하는 사람들은 그것만 주로 하면서 모든걸 판단 지으려는 경우가 많고, 반대의 경우도 마찬가지인데, 진득하게 다른 분야를 파보고 판단하시라.

자 그럼 하루 5분의 기적을 바라는 우리는 무슨 운동을 해야 하나.

정답은 “MPT 5(밀리터리 PT 5대 운동) + 달리기” 이다.

밀리터리 PT 5대 운동(턱걸이, 딥, 윗몸일으키기, 팔굽혀펴기, 맨몸스콰트)이 자주 언급되기에 간단하게 ‘MPT 5’라는 단어로 만들어 봤다.
MPT 5에 대해서는 과거 여러 기사를 통해 설명했기에, 하루 5분 파워 프로그램과 관련해서만 얘기 하겠다.

5라는 숫자에서 느꼈겠지만 말 그대로 각각의 운동을 1분씩 최대한 많은 횟수를 하는 것이다.
왜 너무 시시한가?
이 운동을 5분 동안 하고 나면 절대 그런 소리 안 나온다.

턱걸이 아무리 잘해도 1분간 연속으로 할 수 있는 사람이 거의 없다.
아닌 게 아니라, 쉬지 않고 1분 동안 하면, 50개 이상도 너끈히 할 수 있는 시간이다.

팔굽혀펴기도 마찬가지…
약간의 치팅만 동반해서 미친 듯이 하게 되면 100개 이상도 가능한 시간이 1분이다.
우리가 쉽게 생각했던 1분이 이렇게 위력 적인 것이다.
이제 시간 개념이 달라 보이기 시작하는가?

최대한 많이 하는 걸 최종 목표로 하기에 약간의 치팅은 인정한다.
대신 일주일에 3일 한다고 가정했을 때, 하루만 최대 개수를 목표로 치팅을 허용 하고, 나머지 2일 중 하루는 정 자세로 천천히, 그리고 나머지 1일은 중간 템포로 하면 더 좋다.
 

자 이쯤 되면 또 핑계거리가 나오기 시작한다.
턱걸이 바가 없다. 또는 딥 할 수 있는 데가 없다. 등등
잘 알고 있다. 필자 이런 얘기 들어 본 게 한 두 번이 아니다.

일단 딥은 의자 2개 놓고 그 사이에서 하면 되지만, 이것 마저 힘들다면 다음과 같이 바꾸면 된다.

‘팔굽혀펴기’ ‘윗몸일으키기’, ‘맨몸 스콰트’ 중 2개를 2분씩으로 늘리는 것이다.

친절하게 설명하자면,
월요일(혹은 화요일)은 팔굽혀펴기 2분, 윗몸일으키기 2분, 맨몸스콰트 1분
수요일(혹은 목요일)은 팔굽혀펴기 2분, 윗몸일으키기 1분, 맨몸스콰트 2분
 금요일(혹은 토요일)은 팔굽혀펴기 1분, 윗몸일으키기 2분, 맨몸스콰트 2분을 하면 된다.

매 2일 마다 달라지는 게 머리 아프면 주(week) 단위로 위의 3개 중에 2개를 뽑아서 2분씩 하면 된다.
윗몸일으키기 할 때는 혼자서 그냥 하거나 고정물 어디에나 발을 걸치고 하면 되지만, 혹시나 잡아 주는 사람이 없어서 못하겠다고 불평하는 사람은 V-UP으로 대신한다.

팔굽혀펴기를 시킬 때 1분이 짧다고 하는 사람은 거의 없다.
혹 1분 이상 팔굽혀펴기를 하는 사람에게도 2분을 주면, 혼자서 탕수육 세트 2개 먹은 넘처럼, 더 이상의 시간에 정중히 고개 젖는다..
아주 긴 시간일뿐더러, 특히나 속도를 높이게 되면 더더욱 힘들어 진다.

육군사관학교 출신을 만나 얘기 할 기회가 있었는데, 그들이 받았던 체력단련도, 요약하면 딱 2가지다. 구보와 팔굽혀펴기.
턱걸이는 도구 필요상, 윗몸일으키기는 잡아주거나 다리를 걸칠 때가 마땅찮기에 주로 팔굽혀펴기만 한다고 한다.
보통 팔굽펴펴기는 교육하러 가기 전 자기 기수 숫자만큼 시키는데, 다 마친 후에는 역피라미드로 내려가기도 한다.
탄탄한 몸을 지닌 그들의 기본 운동도 알고 보면 간단한 것이다.

이쯤 하면 결국 6분 복근 운동이라는 것도 어떻게 시행하느냐에 따라, “너무 적은 시간이 아니라 너무 많은 시간이 아니냐?” 라고 불평할 수도 있다는 것을 깨닫기 시작했을 것이다.

해서 이제는 반대로 각각의 운동을 1분 동안 다 채우지 못했을 때 대처상황에 대해 말하겠다.

이걸 해결하는 방식은 두 가지다.

 첫 번째는 1분을 채우지 못한 운동은, 나머지 시간 동안 각각의 운동 가동범위에서 가장 쉬운 자세를 유지하면서 시간을 마저 채우는 것이다.

턱걸이는 바에 매달려 있고, 팔굽펴펴기는 팔을 펴는 자세를 유지한다.
윗몸일으키기와 맨몸스콰트는 약간의 휴식을 취하다, 최대한 빨리 다시 운동하게끔 노력한다..

과거에 설명한 바 있지만 팔굽혀펴기 자세를 유지하는 것과, 턱걸이 바에 매달려 있는 것도 절대 쉽지 않다.
그러므로 상기 두 개의 운동도 쉬운 자세를 유지하지 못하면, 잠시 쉬었다가 곧바로 시간 내에 다시 매달리려고 노력한다.

또 다른 방법은 시간을 쪼개는 것이다.
이것은 심폐기능 단련 또는 근지구력이 모자라지만 심폐기능은 자신 있어서, 더 많은 운동을 하고자 하는 사람들에게 좋은 방법이다.

1분씩 하던 것을 30초씩 쪼개게 되면은 MPT 5를 두 번씩 돌릴 수 있게 된다.
물론 더 다이나믹 하게 하려는 사람은 15초씩으로 쪼개서 4번으로 돌릴 수도 있다.

순서는 본인이 알아서 하면 되지만, 처음에는 턱걸이, 딥, 윗몸일으키기, 팔굽혀펴기, 맨몸스콰트 순으로 해 보길 바란다.


여러 가지 변형된 템포와 변형된 시간으로 일주일에 3일(월, 수, 금 이나 화, 목, 토 처럼 서로 떨어진 3일)동안 각각 ‘MPT 5’을 5분씩 한다.

이제 일요일을 제외한 나머지 3일에 대해 알아보자.

바로 ‘5분 달리기’이다.
마라톤이 유행하는 이 시점에서, 5분 달리기는 너무 우습지 않나 생각하는 사람들도 많겠다.
그러나 운동 방식에 따라 시간은 여러분이 생각하는 방식으로 흘러가지 않는다는 것을 이미 알았을 것이다.

아침 출근 시간에 버스나 지하철을 놓치지 않으려고 헐떡거리며 달리는 당신!.
1시간 이상으로 느껴지는 이 시간은, 실제로 1분 도 채 되지 않는다.

5분 달리기!
빨리만 달리면 절대 쉽지 않다.
그래서 처음부터 너무 무리하지는 말고, 페이스를 유지하면서 시간을 채울 수 있도록 만 노력한다.
몇 번의 시도로 확인해 보면 알겠지만, 5분으로 뛸 수 있는 거리는 상당하다.

혹시나 하숙집 구할 때 지하철 역에서 5분 거리라고만 하고, 걸어서라는 말이 없으면 다시 한번 생각해 봐라. 뛰어서 5분이면 그 다음 역까지도 너끈히 갈 수 있겠따.

오케이! 이쯤 되면 예상되는 또 다른 핑계
집에서 다시 옷 갈아 입고 나오기가 힘들고…..주위에 마땅히 뛸만한 장소도 없고……

이런 사람들 굳이 옷 차려 입고, 신발 갈아 신고 나올 필요 없다.
그냥 퇴근하고 올 때 그 복장에(윗도리는 벗고 손에 쥐어도 된다.) 그 구두 신고, 가방 있으면 들쳐 메고 집까지 달려 가는 것이다.
한 두 번 만 달리다 보면 5분 정도 되는 거리를 알게 된다. 거기에 맞춰서 달리기를 시작 한다.

여러분의 보~오링 한 평소 하우스 시츄에이션은 너무나 잘 알고 있다만, 뛸 때는 집에서 비욘세 같은 여자가 옷 벗고 기다린다 생각하고 이것 저것 체면 없이 무조건 열심히 달린다.

나중에 실력이 늘어날수록, 버스 정류장 하나 먼저 내려서 달려 갈 수도 있으며, 결국 실력이 급상승해서 5분 안에 1,500m 이상을 뛸 수 있다면, 더 이상 체력 때문에 걱정 할 이유는 없어질 것이다

물론 하루 5분 달리기로 그 단계에 오르기는 쉽지 않다.
그러나 좀 더 욕심을 내서 영양학을 통해 지방을 빼서 몸을 건강하게 만들고, 5분 달리기를 할 때도, 하루는 30초씩 인터벌로 끊어서 한다든지, 또 다른 하루는 파틀렉을 뛴다든지 하면서, 종국엔 스스로의 응용력으로 시간을 더 다양하게 이 조절한다면, 충분히 달리기 능력을 상당 이상 향상시킬 수 있을 것이다.

이제 일요일 날 할 수 있는 운동을 알아 보겠다.
우선 너무 피로한 사람은 일단 하루 종일 쉬어 주면 된다.
처음부터 일요일까지 전부를 다 채우려고 욕심부릴 필요는 없다.

그러나 뭔가 하고픈 활력적인 사람들은, 주중에 쌓은 체력을 바탕으로 천천히 산을 올라가면서 좋은 공기도 마시고 체력단련도 하면서 호연지기를 느껴 보는 게 가장 좋겠다.

한편 주말에도 일하느라 바쁜 당신을 위해서는, 좀 다른 운동을 해 준다.
물구나무 서기 5분 혹은 백브릿지 운동 5분 이다.
과거 기사를 참고로 하면 두 가지 운동에 대한 효과를 잘 알 수 있을 거고, 약간 부연 설명하자면 둘 다 체력 단련 목적 이외에도, 몸 건강에 너무나 좋다.
평소 직립 보행을 하는 사람들에게 거꾸로 설 수 있게 하고, 또 머리를 자극함으로써 여러 가지 정신적인 질환도 예방할 수 있다.
또한 목을 단련 하게 되면 수많은 통증 질환으로부터도 해방될 수 있다.
더 자세한 건 다음에 한 번 더 다뤄 보도록 하고, 매일 5분하면 더 좋지만 주말만이라도 꾸준하게 5분 동안 계속한다면, 아주 좋은 효과를 볼 수 있으니, 천천히 하나 하나 단계에 맞게 정복해 나가기 바란다.

이상으로 하루 5분의 파워 프로그램에 대해 알아 봤다.
위의 운동을 영양학과 병행하면서 꾸준히 하게 되면 하루 5분으로도 어마 어마한 효과를 얻게 됨을 보장한다.

헬쓰장에서 갑빠와 팔둘레 키우려고 매일 1시간씩 보내는 사람보다 훨씬 균형 잡히고 멋진 몸과 체력을 가지게 될 것이다.

물론 실력이 늘게 되면 5분이라는 시간에 너무 얽매일 필요는 없다. 특히나 서두에서도 말했듯이 이 운동들을 하고 있으면, 고기를 낚는 법을 알게 되어서, 스스로 어떠한 운동으로 발전시켜 나갈지도 깨우치게 될 것이다.

그때가 되면 필자의 과거 기사들을 더 잘 이해할 수 있게 되고, 그 내용들을 참고해서 더더욱 발전시켜 나갈 수 있다.

딴지 스포츠강사
맛스타드림(mchief@hanmail.net)

TAG 5분, 운동

이럼 나 노빠돼나? ㅋㅋㅋ


Hey ya hey ya hey ya
My dream
Hey ya hey ya hey ya
My dream
지구 어딘가의 모퉁이
나의 별이 있는 곳
푸른 새벽의 노래처럼
고요한 소원의 길
지친 마음
가득 베인 상처와
시린 눈물 달래줄 그 곳
손을 내밀어준
바람을 따라
달의 날개를 펴
꿈속을 날아가
Can't you feel
Can't you feel my heart
나의 숲이여
기적을 시작해
세상 너머 그곳에선
우릴 기다릴
영원함이 있으니
내 시작과
내 끝을 함께 해
(Hey ya hey ya hey ya)

 


(My dream)
Can't you feel
feel my heart
(Hey ya hey ya hey ya)
(My dream)
시간의 벽 너머 어딘가
너와 내가 만날 곳
시들지 않는 무지개와
끝없는 사랑의 길
지워지지 않을
너의 향기와
남겨둔 약속의 시간들
손을 내밀어준
기억을 따라
달의 날개를 펴
꿈속을 날아가
Can't you feel
Can't you feel my heart
나의 숲이여
기적을 시작해
세상 너머 그곳에선
우릴 기다릴
영원함이 있으니
내 시작과
내 끝을 함께 해
oh hey yeah@

Can't you feel
Can't you feel my heart
나의 숲이여
노래를 시작해
세상 너머 그곳에선
우리가 기억할
영원함이 있으니
그 시작과
그 끝을 함께 해
Can't you feel my heart
영원함이 있으니
내 시작과
내 끝을 함께 해
(Hey ya hey ya hey ya)
(My dream)
I've nothing
without you oh
(Hey ya hey ya hey ya)
(My dream)@



영상의 이해 시험공부 도중..
아오 다까먹엇네
이간단한걸짜는데 이리도..
C++로 급조.
1 

글 보관함

카운터

Total : 15,193 / Today : 6 / Yesterday : 22
get rsstistory!