2008. 11. 15. 13:16

종아리 운동 종합

1. 스탠딩 카프 레이즈(Standing Calf Raise) 

카프 레이즈 기구에 서서 어깨를 패드 밑에 놓고 엄지 발가락 밑의 둥근 부분을 받침대에 댄다. 발가락을 딛고 가능한한 높이 일어선 후 몸을 내려서 발꿈치가 받침대보다 아래로 내려가도록 한다. 양다리를 동시에 실시해도 되고 한다리씩 교대로 실시해도 된다. 또한 바벨을 어깨에 메거나, 덤벨을 양손에 들고 실시할 수도 있다. 
 


2. 시티드 카프 레이즈(Seated Calf Raise)  

시티드 카프 레이즈 기구 위에 자리를 잡고 무릎 위의 넓적다리를 가로 질러 패드를 놓고 발가락을 받침대에 놓는다. 발가락을 이용하여 가능한한 높이 중량을 들어올린 후 발꿈치를 최대한으로 내린다.



3. 레그 프레스 머신 카프레이즈(Leg Press Machine Calf Raise)  

레그프레스 머신을 이용해서 실시하는 운동으로 레그프레스 머신에 앉아서 두 다리를 똑바로 펴고 앞발꿈치를 머신의 발판 위치에 놓고 자세를 취한다. 앞발꿈치를 앞으로 최대한 밀어 올린 후에 다시 원래의 자세로 돌아온다.



4. 동키 카프 레이즈(Donkey Calf Raise)  

나무토막 위에 앞발꿈치를 올려놓고 상체는 마루 바닥과 평행하게 굽히고 두 손은 고정된 물체를 잡는다. 이 때에 엉덩이 위에는 사람이 올라앉는다. 발뒤꿈치를 위로 최대한으로 밀어 올린 후에 다시 원래의 자세로 내려온다. 무릎은 굽히지 않도록 주의한다.



5. 점핑 스쿼트(Jumping Squat)  

처음에는 맨몸으로 점핑 스쿼트를 실시하고, 강도를 높이고자 할 때는 가벼운 바벨을 메고 하는 방법과 두 손에 덤벨을 들고 하는 방법이 있는데, 스쿼트 자세로 웅크리고 앉았다가 힘차게 일어나면서 높이 점프하는 운동이다.

'부위별 트레이닝 > 하체' 카테고리의 다른 글

허벅지 운동 종합  (0) 2008.11.15
2008. 11. 15. 13:07

이두 운동 종합

 1. 덤벨 컬(Dumbbell Curl) 

서든지 앉든지 양손에 덤벨을 들고 손바닥을 몸쪽으로 향하게 하여 허리 선에 붙인다. 한번에 한 팔씩 하던지 양팔 모두를 컬한다. 이 때 전완을 몸의 바깥쪽으로 향하게 한다. 동작의 정점에서 팔꿈치는 양 옆에 놓여지고 손은 어깨에서 약간 바깥쪽으로 비틀어져 있어야 한다.



2. 리버스 컬(Reverse Curl)


손바닥을 아래로 향하게 하여 바벨이나 EZ바를 들고 선다. 상완의 움직임 없이 바를 어깨 높이로 들어올린다. 덤벨이나 케이블로도 사용가능하다.



3. 해머 컬(Hammer Curl)


손바닥을 몸쪽으로 하여 덤벨을 양옆에 들고 선다. 상완의 움직임이 없이 덤벨을 어깨쪽 으로 들어 올린다.



4. 바벨 or 케이블 컬(Barbell or Cable Curl)  

이 운동은 상완 이두근의 기본이 되며 이두근을 둥근 모양으로 발달시킨다. 손바닥을 위로 향하게 하여 바벨을 허리선 위치에 잡고 서서 상완을 움직이지 않고 어깨쪽으로 들어 올린다.  덤벨, EZ바, 케이블을 이용해서도 할 수 있다.

주의 : 바벨컬의 경우 상급자나 선수들에 있어서는 상체를 앞뒤로 흔들면서(치팅) 운동을 하는 경우가 있는데, 초보자나 중급자의 경우에는 반동을 이용하지 말 것을 권한다.



5. 프리쳐 컬(Preacher Curl)  

프리쳐 컬 벤치에 앉아 상완을 패드에 평평하게 놓는다. 손바닥을 위로 향하게 하여 바벨이나 EZ바 또는 케이블의 손잡이를 어깨넓이로 벌려서 잡는다. 이두근이 완전히 수축될 때까지 바를 컬한다. 덤벨을 하용하여 한번에 한 팔만을 컬할 수도 있다.



6. 인클라인 덤벨 컬(Incline Dumbbell Curl)

 인클라인 벤치에 앉아서 몸을 뒤로 젖혀 머리와 등 전체를 등받침대에 댄다. 덤벨을 양손에 들고 팔을 아래로 내려뜨린다. 손 바닥이 몸쪽으로 보도록 한다.  양손을 한 번에 컬하는 방법과 한 팔씩 번갈아 가면서 컬하는 방법이 있다. 덤벨을 들어올린 후 숨을 내쉬며 덤벨을 내리면서 숨을 들어마신다.

상체를 뒤로 길울이기 때문에 이두근에 보다 강한 자극을 줄 수 있는 운동방법이다.



7. 얼터내이트 덤벨 컬(Alternate Dumbbell Curl)  

벤치에 앉거나 서서 양 손에 덤벨을 잡고 선다. 한 쪽의 덤벨을 어깨 높이까지 들어올린 후에 다시 원래의 자세로 내리고, 다른 쪽의 덤벨을 어깨 높이까지 들어 올렸다가 다시 원래의 자세로 돌아온다. 즉 왼손 오른손을 교대로 컬을 하는 방법이다. 반동을 이용하지 말고 천천히 실시해야 한다. 컬하는 방법에는 두가지 방법이 있는데 첫 번째 방법은 한쪽손의 컬 동작이 완료한 후에 반대 손을 컬하는 것이며, 두 번째 방법은 동시에 교대로 실시하는 것이다. 초보자의 경우는 첫 번째 방법이 적당하며, 중급자 수준 이상일 경우는 두 번째 방법이 적당하다.



8. 컨센트레이션 컬(Concentration Curl)  

벤치의 끝에 앉아 양발을 좌우로 벌리고 팔 뒤꿈치를 무릎 안쪽 부위로 받치고 덤벨을 잡는다. 팔꿈치를 고정시키고 덤벨을 완전히 들어 올려 2초 정도 멈추었다가 다시 천천히 원래의 자세로 돌아온다. 일정 회수를 반복한 후에 반대편 팔을 실시하도록 한다.


'부위별 트레이닝 > 이두' 카테고리의 다른 글

이두근 키우는 그립법  (0) 2010.08.04
2008. 11. 15. 12:26

간(肝)건강체크 리스트

 

□ 휴식을 취해도 피로와 무력감이 가시지 않는다.

□ 오른쪽 젖가슴 밑에서 통증이 느껴진다.

□ 배에 가스가 자주 차고, 소화가 안된다.

□ 입에서 역한 냄새가 난다.

□ 담배 맛과 입맛이 떨어진다.

□ 피부가 거칠어지고 나이에 맞지 않게 여드름이 난다.

□ 생리가 불규칙하고 양이 줄어든다.

□ 오른쪽 어깨가 불편하여 주로 돌아누워 잠을 잔다.

□ 쉽게 감기에 걸리고 배탈이 자주 나타난다.

□ 피부가 노랗게 되고, 눈에 황달이 나타난다.

□ 대변 색깔이 엷어진다.

□ 잇몸에서 피가 자주 나고, 쉽게 멍이 든다.

□ 젖가슴이 예전과 달라졌다.


0-2가지 : 간이 건강하게 잘 괸리되고 있는 편입니다.

3-4가지 : 간이 미새한 적신호를 보내고 있는 중입니다.

5가지이상 : 간 건강에 위험신호가 켜지고 있습니다. 반드시 전문의에게 간질환 유무를 점검 받아야 합니다.


이 체크리스트는 간 건강을 점검하는 보편적인 기준에 따른 것으로 전문의의 진료를 대신 할 수는 없습니다. 정확한 진단 및 치료는 반드시 전문의와 상의하시기 바랍니다.


2008. 11. 14. 17:47

깡통 개발자의 C# 익히기 -제 3강- (CLASS에 대해서...)

이번 강좌는 CLASS에 대해서 알아보겠습니다. 어제 강의에서 잠깐 언급한 적이 있는데 원낙 중요하고, 광범위한 내용이라 3강에서 이렇게 알아보는 것입니다. 필이 중요한 부분이므로 필독하시기 바랍니다. 만약 이해가 안되는 부분이 있다면 그냥 읽어만 두고 넘어가자. 

클래스의 정의


객체를 생성하는 데이타원본 

  •     Abstraction(추상화)
  •     Encapsulation(은닉)
  •     Inheritance(상속)
  •     Polymorphism(다형성)  

클래스의 특이사항


▷ Nested Class

    - Public : Aⓒ.bⓒ 로 외부에서 접근 가능

    - Private : Aⓒ에서만 사용하는 개인적 서브클래스 

▷ Static method

    - Static 변수를 조작

    - 인스턴스변수 & this 연산자 & 일반멤버메서드 사용 불가 

new 연산자의 내부동작

    - 지정된 자료형의크기만큼 heap 으로부터 메모리 할당

    - 힙영역에는 메모리의 할당을 위한 특별한 포인터 존재

    - 포인터를 중심으로 한쪽은 할당된 메모리, 다른쪽은 할당가능한 메모리

    - 요청된 크기의 충분한 메모리있는지 논리검사

    - 크기만큼의 메모리할당하고 포인터 조정

    - 불충분시 가비지 컬렉터의 메모리수거시까지 기다림

    - 이 역시 불가시 메모리할당 오류 

▷ readonly member

    - 한번 값을 초기화하면 값의 변화 불가능

    - 생성자함수를 사용하여 초기화 수행    

▷ static 생성자 함수

    - static 키워드로 지정된 클래스 레벨의 생성자 함수

    - 클래스가 메모리로 로딩될때 호출

    - static 별수를 초기화할때 사용

    - 접근지정자 지정 & 인자호출 & this 사용 불가능

    - 오직 한번만 호출 가능 

▷ Finalize

    - Garbage Collector 에게 반환 알림 -> 두번 호출가능성

    - ~Class(); 과 동시선언 불가능 

▷ 기타사항(중요함)

    - 단일상속만을 지원 -> interface 사용

    - public 접근자만 상속으로 지원함

    - 상속되는 순간 실제 메모리가 따로 생성됨

    - protected 지정자의 멤버는 후손클래스에게만 제공됨 

인터페이스(Interface)


클래스가 제공하는 서비스를 명시하는데 사용되는 행위의 집합. 특징으로는 메소드,속성, 인덱서,이벤트는 포함할 수 있으나, 상수, 필드멤버, 생성자, 소멸자, 공유멤버는 포함할 수 없다.

구문

interface 인터페이스명 {

//    인터페이스 멤버선언

}

 ▷Sealed

    - class가 sealed로 접근권한이 설정된 이 클래스는 다른 클래스의 기본 클래스가 될수 없다. 

▷Abstract

    - class의 멤버를 모두 정의내리지 못한 기본 클래스

    - interface -> 다중상속

 

abstract class A
{
   public abstract void F();
}
abstract class B: A
{
   public void G() {}
}
class C: B
{
   public override void F() {
      // actual implementation of F
   }
}

 예상대로 내용이 점점 많아 지고 있습니다. 오늘은 주말이고 하니 여기까지 하겠습니다. 즐거운 주말보내십시오.

<<출처>> 데브피아

2008. 11. 14. 17:44

깡통 개발자의 C# 익히기 -제 2강- (.NET FRAMEWORK)


이번 강좌는 간단하게 나마  .NET FRAMEWORK에 대해서 알아보겠습니다.  2강 내용이 많아서 정리하는라고  좀 늦었습니다. 이해바랍니다. 4강까지는 거의 기본환경이나 기초지식에 대한 강좌입니다. 지루하시더라도 많은 성원바랍니다.

■ .NET FRAMEWORK의 객체지향
  클래스(CLASS) : 객체를 생성하는 데이터 원본
                            Abstraction(추상화)
                            Encapsulation(은닉)
                            Inheritance(상속)
                            Polymorphism(다형성) 

※ 객체 지향에 대한 더 자세한 내용은 Visual C++ Lecture 에 제가 게제한 "[특강]깡통 개발자의 객체지향 개념" 이란 제목의 강좌가 있습니다. 이 강좌를 참고하시기 바랍니다. 

<참고>

언어/구분  

속성(Attribute)

행위(Behavior)

비주얼C#

데이터 멤버(data member)

함수 멤버(function member)

비주얼C++

멤버 변수(member variable)

멤버 함수(member function)

비주얼베이직

속성(property)

메소드(method)

자바

필드(field)

메소드(method)

델파이

속성(property)

메소드(method)

        

■ .NET FRAMEWORK 구성

    WEB Services, User Interface

        |

    ADO.NET : Data & XML

        |

    Base Class Library

        |

    Common Language Runtime

 

  ▷Common Language Runtime

어떤 언어로 작성된 프로그램이 실행되기 위해 컴퓨터가 내장하고 있어야할 컴포넌트.

     <컴파일 생성단계>    

  1. 스코드 및 메타데이타 같이 컴파일
  2. 원래소스코드와 다른 언어의 코드와 병행 링킹 및 생성
  3. Base Class Library와 .NET 프래임워크 정보를 포함하여 형안성화

        <특징>

  • 언어 상호 운용성
    어떤 .NET언어로 작성된 소스 코드도 첫번째 컴파일 과정을 거치면 표준화된 IL코드로변환된다. 다른 IL코드를 붙여 어플리케이션을 구축하게 된다.
     
  • 플랫폼의 독립성
    IL 코드는 CLR Interpreter와 Base Class Library가 장착되면 실행가능 Common Language Runtime은 응용프로그램 개발을 단순하고 견고하게 해준다.

     <관리환경>

  • 클래스 로더(Class Loader)
    메타 데이터와 클래스의 로딩 및 배치(Layout)을 관리한다.
     
  • 중간 언어를 원시코드로 변환하는 컴파일러(IL to Native Compilers)
    IL(Intermediate Language)을 원시코드(Native)로 변환한다.(just-in-time)
     
  • 코드관리자(Code Manager)
    코드의 실행을 관리한다.
     
  • 가비지 콜렉션(GC:Garbage Collection)
    모든 개체들의 lifetime을 자동 관리한다. 이것은 멀티 프로세서이자, 확장 가능한 가비지 콜렉터이다.
     
  • 보안엔진(Security Engine)
    사용자 뿐 아니라 코드의 출처에 근거한 evidence-based security를 제공한다.
     
  • 디버그 엔진(Debug Engine)
    응용 프로그램을 디버그하고, 코드 실행을 추적할 수 있게 한다.
     
  • 형 검사자(Type Checker)
    안전하지 않은 형 변환이나 초기화되지 않은 변수가 존재할 수 없게 한다.IL코드가 형 안정선을 유지하도록 보장해 준다.
     
  • 예외 관리자(Exception manager)
    Windows Structured Exception Handling(SHE)와 통합되어, 구조화된 예외 처리를 가능하게 한다. 오류 리포팅이 향상되었다.
     
  • 스레드 지원(Thread Support)
    멀티 스레드 프로그래밍을 가능하게 하는 클래스들과 인터페이스들을 제공한다.
     
  • COM Marshaler
    COM과의 마샬링(marshaling)을 제공한다. 마샬링은 스레드 또는 프로세스의 경게를 가로질러 인터페이스 메서드 호출을 포장하고 전송하는 프로세스이다.
     
  • Base Class Library지원(BCL Support)
    BCL을 지원하는 런타임과 코드를 통합한다.

   ▷Base Class Library

Base Class Library(BCL)는 런타임의 기능을 노출시키고 개발자가 필요로 하는 high-level서비스들을 네임스페이스(Namespace)를 통해서 제공.     

    Base Class Library

    System ──────────→Fundamental data type.

      ├──Collections────→ordered list, hash table, group

      ├──Configuration

      ├──Diagnostics

      ├──Globalization

      ├──IO ────────→File IO/Stream

      ├──Net────────→TCP/IP

      ├──Reflection

      ├──Resource

      ├──Runtime

      ├──Security

      └──Text

   ▷ADO.NET

ActiveX Data Object(ADO)기술 
 비연결형 프로그래밍 모델(Disconnected programming model)  

    ADO.NET

    System.Data

        ├──ADO

        ├──Internal

        ├──SQL

        └──SQLTypes

    - ADO.NET 개체 모델을 구성하는 클래스

    - Table & Reation -> DataSet 클래스

    - 다양한 데이터 원본을 사용(XML, OLEDB, SQL서버)

     System.XML

        ├──Xsl

        ├──XPath

        └──Serialization

    - XML을 지원

    - XML 변환기(parser)와 작성기(writer)를 제공

    - XSLT네임스페이스 -> XSL-Transformation을 제공

    - XPath는 데이터 검색을 가능하게 하는 QL 제공

    - Serialization는 웹 서비스 전체적인 핵심 인프라제공

    - 개체(object)를 XML 표시 형식으로, 또는 그 반대로 변환할 수 있는 기능을 포함

 <<출처>> 데브피아

2008. 11. 14. 17:42

깡통 개발자의 C# 익히기 -제 1강- (C#의 특징)

오늘부터 C#강좌 시작한 깡통입니다. 초기에는 환경이나 특징에 대해서 먼저 파악하도록 합니다. 그래서 이번 강좌는 특징에 대해서 알아 보는 것입니다. 참고로 앞으로의 강의 자료는 여타 문서와 각종 자료를 바탕으로 제가 정리한 것입니다. 그럼 시작해 보죠.(보기좋게 정리 잘되어 있죠?) 

■ 요약

    현대적이고, C와 C++을 바탕으로 둔 구성요소 형식의 프로그램 언어

    모든 것을 프로그램의 대상으로 사용

    다음 세대의 강력한 프로그램 언어

    생산성

    표준화 제시 

■ 구성요소 지향적인 언어

   ▷ C#은 C/C++ 계열 중에서 처음으로 "구성요소 지향"의 언어

   ▷ 구성요소의 개념:

            Properties, methods, events

            Design-time 과 run-time 속성

            XML을 이용한 Documentation

   ▷ One-stop programming  가능

            Header  파일, IDL, 등  이  필요  없다.

            ASP.NET  페이지에서  스크립트  언어로  사용  

■ 모든 것을 객체로

    ▷ 전통적인 관점

            C++, Java:  Primitive 형식은  객체간의 상호작용 없음

            Smalltalk, Lisp:  성능의 비용의 과다

    ▷ C#  는  성능을  향상

            시스템과  통합으로  성능  개선

    ▷ 확장성  및  재사용성  증가

            새로운  선언  형식:  Decimal, SQL…

            Collections,  등.,  모든  형식과  사용이  가능  

■ 강력한 프로그램 작성

    ▷ Garbage collection

            No memory leaks 과 stray pointers

    ▷ Exceptions

            Error handling

    ▷ Type-safety

            No uninitialized variables, unsafe casts

    ▷ Versioning 

■ 통합환경

    ▷ 상호작용

            XML, SOAP, COM+, DLL 과  다른 .NET 언어와 통합

    ▷ Integration

            Visual Studio 도구와 디자이너에 맞게 설계

            .Net Framework 과는 완벽한 통합

    ▷ 생산성

            C++ 계승

            기존의 개발자의 사용 및 교육

            .NET 에서 대부분의 코드 구현

<<출처>> 데브피아

2008. 11. 14. 10:02

약보다 더 좋아!!

 

* 비타민 U 풍부한 위장병의 명약입니다

흔히 위장병에 좋은 식품으로 양배추를 꼽는데여. 양배추 속의 비타민 U가 위장을 튼튼하게 해주어 만성위염, 위궤양 등을 예방하고 치료하는 효과가 탁월하기 때문이죠. 하지만 브로콜리 속에는 양배추보다 훨씬 많은 비타민 U가 들어 있어요. 그뿐만 아니라 위암과 위궤양을 일으키는 헬리코박터 파일로리균을 죽이는 설포라페인이라는 성분이 들어 있어 위궤양과 위암에 효과가 있답니다. 또한 브로콜리 싹에는 브로콜리보다 설포라페인 성분이 20배나 더 많이 들어 있어요^^.


* 셀레늄 성분이 강력한 항암작용을 일으키죠,

브로콜리 속에 풍부하게 들어 있는 셀레늄은 노화를 촉진하는 활성산소를 중화시키는 작용을 하고 항암작용이 탁월한 것으로 알려져 있습니다. 암 중에서도 주로 전립선암, 대장암, 폐암, 간암, 유방암, 췌장암 등에 효과가 큰데요. 특히 스트레스를 많이 받거나 환경오염 물질에 지속적으로 노출될 경우, 45세 이상부터는 셀레늄을 많이 섭취해야 합니다.. 그밖에 셀레늄은 면역체계를 강화해 질병을 예방하고 어린이 성장발육을 촉진시키며, 고혈압과 심장병 등 각종 성인병 예방에도 효과적이랍니다.


* 비타민 A 풍부해서 면역력을 키워줍니다.


브로콜리 속에는 비타민 A가 풍부한데여, 비타민 A는 피부나 점막의 저항력을 강화해 감기나 세균의 감염을 예방하는 효과가 있어 꾸준히 먹으면 질병을 예방할 수 있습니다. 특히 브로콜리 싹에는 비타민 A의 전구물체인 베타카로틴이 다량 들어 있어 면역력 증진은 물론 야맹증에도 좋아요~


* 비타민 C가 레몬의 2배, 감자의 7배입니다.^^

브로콜리는 비타민 C가 풍부한데 레몬의 2배, 감자의 7배나 더 많은데요. 또한 빈혈을 예방하는 철분 함량도 100g 중 1.9mg으로 야채 중에서 단연 으뜸이죠. 이는 다른 야채보다 2배나 많은 양. 특히 브로콜리의 풍부한 식이섬유는 장 속의 유해물질을 흡착해 몸밖으로 배출시키는 작용을 하여 대장암 예방에 탁월한 효과가 있어요~.


* 활성산소를 억제하여 노화를 막아줍니다.

우리 몸속에 활성산소가 쌓이면 노화를 촉진하는데, 활성산소는 음식이 소화되고 흡수되는 과정에서 발생합니다. 브로콜리는 활성산소를 억제하는 효능이 탁월하고 해독작용도 뛰어나서 노화를 예방하는 효과가 큽니다.



브로콜리는 녹색채소 중에서 영양가가 가장 높으며 생것은 가식부 100g당 칼슘 64mg, 인 195mg, 철 1.5mg, 칼륨 307mg, 나트륨은 10mg이 함유되어 있다. 칼륨에 비해 나트륨 함유량이 낮아서 이뇨촉진작용을 하고, 심장, 신장질환 및 신진대사 불순환자의 식이요법에 좋은 채소이다. 비타민 C는 98mg이나 함유되어 있는데, 이것은 딸기나 키위의 약 2배, 콜리플라워의 3배, 양배추의 4배, 그린아스파라거스의 13배, 양상추의 27배에 해당하는 양이다. 또 카로틴이 766㎍, 비타민 B2 0.26mg, 섬유소도 1.4g 등, 건강한 채소의 대표격이라고 말해도 과언은 아니다. 또 설퍼라페인(Sulforaphane)의 전구물질인 글루코라페인(Glucoraphane)을 많이 함유하고 있어서 신진대사시 발생하는 발암물질을 중화시켜 DNA의 손상과 암 발생을 막아준다.


영양가가 높고 간단하기 조리가능하기 때문에 최근 소비량이 크게 증가하고 있다. 브로콜리를 요리할 때에는 봉오리를 잘게 나누고 줄기도 2~4등분하여 소금을 넣은 물에 살짝 데쳐서 헹구지 말고 식힌 다음 그대로 소스를 곁들여 샐러드를 만들어 먹는다. 볶거나 그라탕이나 프라이를 해도 훌륭하다. 꽃봉오리 근처에 붙어 있는 잎은 케일처럼 이용이 가능하다.


신선편이 생식 샐러드용으로도 사용해도 좋다. 최근에는 냉동된 브로콜리도 유통되고 있는데, 해동한 것은 끓는 물에 8분간 익히고 냉동상태의 것은 10분간 익혀 먹는 것이 좋다. 중국, 대만, 홍콩 등지에서는 꽃대의 껍질을 벗겨낸 후 떡국처럼 썰어서 데쳐먹거나 기름에 볶아 먹는 경우도 있다.

2008. 11. 13. 14:33

1세대 부터 5세대 프로그래밍 언어..

프로그램 언어의 정의 - 컴퓨터와 의사소통 하기 위한 표기법.

*1940년대 폰노이만 방식등장

-cpu가 처리해야 할 명령들을 일련의 명령 코드로 작석

-프로그램 개념 시작

-어셈블리어탄생(symbol사용)

=>기계종속적,저급수준의 추상화,읽고 쓰기 어려움

-고급수준의 추상화 요구 : 고급 언어의 등장

=>프로그램 간략,이행 용이 ,이식성 증가, 배정,반복,선택개념

 

1세대 언언: 기계어

-폰노이만의 내장 방식에 의해 출련,

-컴퓨터가 이해 할수 있는 유일한 언어.

-숫자를 사용하여 프로그래밍

-기종에 따라 기계어가 다르다 즉, 호환성이 없음

 

2세대 언어 : 어셈블리 언어

-기계어와 1:1로 대응하는 기호 언어

-무자를 사용하므로 기계어에 비해 쉽다

-기종간의 호환성 면에서 기계어보다는 융통성이 있음

-기계의 존적

 

3세대 언어 :고급언어-fortran, algol, cobol, lisp, snobol, basic, pascal, ada, c

-자연어와 가까운 단어와 문장으로구성된 언어.

-번역 기법 : 컴파일러, 인터프리터

-기계 독집적.

 

*논리형 언어

-기호 논리학에 근거,

-계산의 실행 순서를 기술하는 대신 무엇을 하려고 하는가를 선언

-반복이나 선택 개념 불필요

 

*객체지향 언어

-객체에 기반을 둔 언어 : 객체란 상태를 의미하는 기억장소와 상태를 변경할수 있는 연산의 집합

-객체의 클래스로 그룹화

-클래스 선언 :  c나 pascal에서 구조형 자료를 선언하는 방법으로 선언

-클래스 읜 인스턴트 : 선언된 객체의 한 실 예

-객체 지향으로 방법을 처음 소개 한 언어.slmua67

 

*함수형 언어 - 함수의 결합으로기능을 수행하는 언어 ( lisp)

-수학적 함수를 가능한 폭넓게 모방하여 명령형 언어의 문제해결 방식 탈피 목적

-복잡한 함수를 작성하는 기초가 되는 원시 함수와 연산, 데이터표현을 위한 구조 제공

-변수의 운영과 값의 배정으로 인하여 효율성 증가, 실행의 효율성 저하.

 

4세대 언어 : 초고급 언어 (문제 해결형 언어, 비절차 언어, 사용중심언어, 자연어)

-4GL(fourth generation language)

-영어나 그밖의 우리가 일상 사용하는 자연어와 거의 같은 대화 형식으로 표현된다.

-사용자가 원하는 일을 컴퓨터가 해낼 수만 있으면 된다는 개념으로변화

-절차 위주의 언언처럼 긴 프로그램 작성 않해도 된다는 이점 제공.

 

*보고서 작성기-데이터 베이스 파일을 전부 인용, 일부만 써서 양식 보고서를 출력(폴다운메뉴방식)

*질의어 - 정보를 복구하는데 쉽게 쓸수 있도록 개발된 언어.

*응용생성기 - 문제를 서술, 응용프로그램이 만들어지는 프로그래머의 도구

 

5세대 언어 : 자연어 : 프로그램을 작성하기 위해서 인위적으로 만들어진 컴퓨터 언어.

-영어나 일어 또는 한국어와 같은 언어를 사용하여 일을 처리하는 목표..

 

'IT Story' 카테고리의 다른 글

모니터 수명을 알려주는 사진  (0) 2008.12.02
USB 3.0 규격 확정  (0) 2008.11.19
RSS에 대하여  (0) 2008.10.30
북한 해킹능력 'CIA.펜타곤 침투는 기본이다'  (0) 2008.10.19
오픈소스DB가 몰려온다  (0) 2008.10.16
2008. 11. 13. 14:31

메모리 관리와 동적 할당.. C

1. 메모리의 구성.

 0(주소)                                                                                                                          216                               220  

                                       

 |<-----------data----------------> |<-------------heap-------------->|<----------------stack----------------------->|

                                   first in last out(FILO) 

data 영역 : 전역변수, 함수코드,....
heap 영역: 사용하지 않음, 동적할당 영역
stack 영역:지역변수..AUTO변수(생략가능).
 

2.프로그램 흐름과 메모리 

void sub(int);
int n=100;                 //전역변수
double d= 56.7;        //전역변수

int main()
{
   int a=20;
   sub(a);
}

void sub(int x)
{
  int k = x;
}

0       DATA

   n=100
   d=56.7
 

 HEAP

  
  
 

 STACK

 

   k=20 

  int k 선언시 생김

   x=20

sub(a)가 실행 되는순간 생김

   a=20

1000
 
메모리 공간 반납 순서

k -> x -> a-> n ->d

 레지스터는 스텍 포인터를 저장하고 있는 게 있다..
 

3.메모리 동적 할당.

memory all location(malloc)

 정상 수행: 첫번째 주소 리턴

 실       패: NULL포인터 리턴

 void* malloc(size_t size)
 메모리 해제.  void free(void* ptr)

size_t 는 unsigned int 를 재정의 

double* d=(double*)malloc(sizeof(double));
                                       --------------
                                       시스템에 따라 자료형드링 차이 나기때문에 프로그램 보수유지를 위해서 
                                       sizeof사용
  void *d;
     *d=4.5는 불가능하다.. 자료형이 없기때문에 불가능하다 
                                   d에가서 몇바이트를 할당(참조) 할지 모르므로 안된다
                                   그러므로 강제 형변환을 해야한다..

   d

 350

 |
 |  
▼ 

350

 
 
 

   HEAP

 
void 포인터는 잠깐 주소 저장가능 하지만 *를 사용해서 참조 불가능
이유는 그 주소로 가서 몇바이트를 읽어야하는지 모르기 때문에 그래서 자료형에 대한 정보가  필요하다.


//malloc.c

#include<stdio.h>
#include<stdlib.h>

int main()
{
 double* d=(double*)malloc(sizeof(double));

     *d=99.9;

 printf(" *d = %2lf , d = %d , addr = %d \n",*d,d,&d);
 printf(" size d = %d , *d = %d byte \n",sizeof(d),sizeof(*d));

 free(d);

 return 0;
}

 

2008. 11. 13. 11:45

메모리(힙과 스텍, 데이터영역)의 이해

스텍(STACK)메모리 : 변수, OS에서 관리,
힙(HEAP)메모리 : 프로그래머가 관리, 해제하지 않을 경우 문제발생   

프로그램을 실행하면 운영체제는 메모리를 할당한다. 단순히 메모리공간 하나만 떡 하니 제공하는것이 아니라 적절하고 효율적이며 용도에 맞게 메모리공간을 나누어 놓았다.

데이터 영역

전역변수, static 변수를 위한 공간이다. 이 두 변수는 프로그램이 실행되자마자 데이터 영역의 메모리를 차지하며 프로그램이 종료될때야 비로소 메모리에서 해제된다. 전역변수는 말그대로 함수 외부에 선언하는 변수이고 static 변수는 시작부터 0으로 초기화되며 데이터가 누적되는 변수이다. 일반적으로 static변수에 관한 오해가 있을거 같아 잠깐 그 부분에관해 설명좀 해볼까함 ㅋㅋ

#include<iostream>

void start(void){
    static int lee;
}

int main(){
    start();

    return 0;
}

lee 변수는 언제 메모리를 치자힐까?? 대다수의 사람들은 메인함수에서 start함수를 호출하고 나서 메모리를 차지한다고 생각할지도 모른다. 하지만 절대 그렇지않다. 전역변수나 static변수는 위에서 언급했듯이 프로그램이 실행되자마자 데이터 영역의 메모리를 차지한다. 그렇다면 저 static int lee는 무슨의미일까? 바로 0으로 초기화 하기위한 작업이다. 일반적으로 변수를 선언하면 auto변수라해서 초기화되지않은쓰레기값이 들어가지만 static을 붙이면 0으로 초기화한다.


스텍 영역
컴파일타임 즉, 번역시간에 메모리공간을 차지하는 영역이다. 함수에 접근해서 읽어낸 변수는 대부분 스텍영역에 메모리를 배정받는다. 블록구조의 규칙을 엄격히 여겨 한 블록내에서 선언된 변수는 그 블록이 끝날때 메모리가 해제된다.

#include<iostream>
int main(){
    int lee;
    return 0;
}

짧지만 강력한 예제 ㅋㅋㅋㅋ;;
lee변수는 컴파일과 동시에 4바이트의 메모리공간을 차지할것이다. 10번을 하던 100번을 하던 같은 크기의 메모리 공간을 차지한다.


힙 영역
실행시간에 메모리공간을 차지하는 영역이다. 사용자가 직접 메모리를 할당해야하며 해제또한 사용자가 직접 해줘야한다.

#include<iostream>

using std::cin;

void get(int i=0);


int main(){
    int size;
    cin>>size;
    get(size);
    return 0;
}

void get(int i){
    int array[i];
}


int array[i]이런식의 변수선언은 스텍에 할당하라는 명령과 같다. 사용자의 입력을 통해서 배열의 크기가 조절될수있기때문이다. 분명 이 조건에 따른다면 힙에 메모리가 할당되야한다. 하지만 이 소스는 100% 컴파일 에러가 난다. 이런식으로 힙영역에 메모리를 차지할수 없기때문이다. 그렇기 때문에 malloc또는 new 연산자가 있는것이다.

#include<iostream>

using std::cin;
using std::cout;
using std::endl;

void get_put(int i=0);

int main(){
    int size;
    cout<<"할당할 크기의 숫자를 입력하세요"<<endl;
    cin>>size;
    cin.get();
    get_put(size);
    return 0;
}

void get_put(int i){
    int * array = new int[i];
    cout<<i*4<<"만큼의 바이트가 확보되었습니다."<<endl
        <<"아무키나 누르면 메모리를 해제합니다"<<endl;
    cin.get();
    delete [] array;
    cout<<"메모리가 해제되었습니다"<<endl;
}


위 소스야말로 정말 올바른 소스가 되겠다.  

'C# .NET' 카테고리의 다른 글

깡통 개발자의 C# 익히기 -제 1강- (C#의 특징)  (0) 2008.11.14
메모리 관리와 동적 할당.. C  (0) 2008.11.13
클래스 기초 & 속성  (0) 2008.11.07
클래스 기초 & 메서드  (0) 2008.11.07
클래스 기초 & 필드  (0) 2008.11.07