정보 보안 서적 요약 14

c언어 기억 클래스(storage class)

기억클래스 기억 클래스(storage class)란 변수를 기억공간의 특정 영역에 할당하는 방법을 말한다.  c언어에서 사용되는 모든 변수는 자료형과 기억 클래스를 갖는다.  기억 클래스는 유효범위와 존속 기간을 결정한다. 사용 위치에 따라 지역변수와 전역 변수로 구별 하고 변수의 존속 기간에 따라 자동변수, 정적변수, 외부변수, 레지스터변수로 구별하는데 이를 변수의 기억클래스라고 한다. 모든 변수는 자신의 영역을 갖는 동시에 특정 기억 클래스에 속한다.   지역변수와 전역변수 지역변수(local variable)는 특정 범위 내에서만 통용되는 변수로 선언된 블록이나 함수 내에서만 사용 가능하다. 함수에서 사용하는 모든 매개변수도 지역변수에 해당한다.  전역변수(local variable)는 함수 밖이나..

c 언어 변수 선언

변수 변수(variable)는 프로그램 실행 도중 변할 수 있는 값이 저장되는 기억공간을 말한다. 예를 들어 i=10;이란 문장에서 i는 변수로서 10이란 값을 기억공간에 저장한다는 것을 의미하며, 이러한 변수 속에 들어가는 값들은 수시로 변경될 수 있다. 따라서 변수는 사용하기 전에 반드시 그 변수를 선언하여 컴파일러가 기억공간에서 일정 공간을 확보할 수 있도록 해야 한다.  (1) 변수의 특징모든 변수는 이름이 있다. 모든 변수는 정해진 자료형이 있다. 모든 변수는 할당된 값을 갖는다.  (2) 변수명의 정의 규칙모든 변수는 사용되기 전에 선언되어야 한다.변수명은 반드시 영문자나 밑줄(_)로 시작해야 한다.변수명은 중간에 숫자, 밑줄(_)을 섞어서 명명할 수 있다. 변수명은 중간에 밑줄(_) 이외의 ..

1.3 c 언어 에러와 경고

1.3 에러와 경고  소스 파일을 작성하여 컴파일하고 링킹하는 과정에서 발생하는 에러는 다음과 같이 크게 두 가지로 분류할 수 있다.  1.3.1 에러 컴파일러는 c 언어의 문법상 명백하게 잘못된 점이 있어 컴파일을 할 수 없는 경우 에러 메시지를 출력하고 컴파일을 거부하게 된다. 가장 흔한 경우는 오자와 탈자, C 언어의 문법에 맞지 않는 형식의 사용, 반드시 필요한 지정이 빠진 경우 등이다. 컴파일 시 소스 프로그램에 에러가 있는 경우에는 컴파일을 계속할 수 없으므로 에러 메시지를 확인하여 반드시 수정해야 한다.  1.3.2 경고 경고는 코드의 내용이 의심스러워 보이기는 하지만 일단 컴파일이 가능한 경우에 발생한다. 또 현재는 큰 문제가 없지만 이식성에 불리하거나 C 언어 문법에서 권장하지 않는 방법..

1.2.2 c 프로그램의 구성 요소

컴파일러는 프로그램을 구성하는 문자들을 기본 처리 단위인 토큰으로 분리하고 그것이 올바른 규칙을 따르는지 검사하여 올바르면 실행 코드를 생성한다. c프로그램을 구성하는 기본 토큰은 다음과 같다. 예약어 : int, char, if, for, ...명칭 : 변수, 배열, 함수, ... 등의 이름상수: 값이 불변인 자료연산자 : =, -, *, /, ++, ...설명문 : 프로그램에 대한 주석 (1) 예약어 c 언어에서 미리 정의되어 있는 의미 있는 단어를 예약어(reserved word)라고 하는데, 이 예약어는 프로그램에서 특정한 의미를 가지고 있기 때문에 함부로 사용해서는 안 된다. 자료형 관련 예약어: char, int, float, short, long, double, unsigned, union,..

1.2 c 프로그램의 기본 구조

1.2.1 C 프로그램의 기본 구조  c 프로그램은 일반적으로 아래와 같은 구조를 갖는다.프로그램 전체에 적용되는 사항을 기술한다.도입부main() 함수는 가장 먼저 호출되는 함수로 모든 프로그램에 반드시 존재해야 한다.void main() {선언문치환문제어문함수호출...} main() 함수에서 호출된 함수를 정의하는 부분이다.함수() {...} c 프로그램의 기본 구조  (1) 도입부 프로그램의 시작 부분으로 보통 다음과 같은 사항을 기술한다.프로그램 설명선행 처리를 위한 다른 파일 포함이나 매크로(macro) 정의프로그램 전체에 사용되는 전역변수 선언사용자 함수 원형 선언  (2) main() 함수 C 프로그램은 주어진 문제를 여러 개의 작은 단위의 문제로 분리하여 해결할 수 있도록 함수를 제공한다...

1.1 c 프로그래밍 작성 및 준비

목차 1.1.1 프로그램 개발 단계1.1.2 c 프로그램의 완성 과정1.1.3 c 프로그램의 작성과 실행 예    1.1.1 프로그램 개발 단계 프로그램 목적 정의요구 분석과 시스템 분석을 통하여 프로그램이 가져야 할 기능 정의프로그램 설계분석된 기능을 처리할 수 있도록 프로그램 구조를 설계소스 코드 작성작성된 프로그램 설계를 기반으로 에디터를 사용하여 작성컴파일 / 링킹소스 코드를 실행 가능한 코드로 변환하고 문법 검사프로그램 실행테스트와 디버깅에러를 검사하고 디버깅유지 보수사용 중 발생되는 에러나 추가적인 변경 사항을 처리    1.1.2 c프로그램을 작성하여 실행해 보는 과정 에디터는 소스 코드를 보다 쉽게 작성하여 기억장치에 저장할 수 있도록 도와주는 도구이며, 컴파일러는 에디터를 사용하여 작성한..

콜리전 도메인과 브로드캐스트 영역

브로드캐스팅은 하나의 네트워크 안에서 이루어진다. 한 네트워크는 브로드캐스팅 영역을 말한다. 그러나 콜리전 도메인 영역과 브로드캐스트 영역은 같은 의미가 아니다. 즉 콜리전 도메인 영역을 나누었다는 말은 하나의 네트워크 영역을 나누었다는 의미가 아닌 것이다. 콜리전 도메인 영역을 나누어도 네트워크는 그대로인 것이다. 네트워크가 나뉘는 것은 라우터에 의해서이다. 스위치는 들어온 포트를 제외한 모든 콜리전 도메인 영역으로 브로드캐스팅한다. 스위치는 하나의 네트워크 영역에만 브로드캐스팅하는 것이다. 다른 네트워크로 정보를 보낼 수 있는 것은 라우터만이 할 수 있는 일이다. 콜리전 도메인을 스위치로 나눈 것이 네트워크가 달라졌다는 의미라면 스위치는 다른 콜리전 도메인 영역에 있는 호스트에는 정보를 보낼 수가 없..

04-2. 루핑

1. 루핑 루핑(Looping)은 프레임이 네트워크상에서 무한정으로 뱅뱅 도는 현상을 말한다. 이더넷 통신 방식의 특성상 네트워크가 조용해야 데이터를 전송할 수 있기 때문에 다른 pc들이 통신을 할 수가 없게 된다. 아래의 그림처럼 두 호스트 사이에 스위치 두개를 설치하여 다른 호스트로 가는 경로를 2개 만들 때가 있다. 하나의 경로가 끊어져도 다른 경로를 쓰기 위해서 구성한 것인데, 이렇게 구성하면 루핑이 발생하는 문제가 있다. 이러한 구성이 틀린 것은 아니다. 루핑이 발생하는 것을 막아주는 스패닝 트리 알고리즘을 이용하면 되기 때문이다.  호스트 A가 브로드캐스트 패킷을 보낸다.양쪽 스위치로 전달이 된다.두 개의 스위치는 패킷을 분석하여 브로드캐스트 패킷인 것을 확인하고 플로딩한다.양쪽 스위치에서 모..

04. 랜카드, 허브, 스위치와 브리지

1. 랜카드  랜카드는 이더넷용, 토큰링용 .FDDI, ATM용 랜카드 등으로 구분한다. 대부분 이더넷용을 사용하고 있다.  부착하는 디바이스에 따라서 데스크톱용 랜카드와 노트북용 랜카드, 프린터 포트에 연결하는 외장형 랜카드, USB 포트에 연결하는 랜카드가 있다. pc의 버스 방식도 고려해야 한다. 버스는 데이터가 날아다니는 길을 말한다. PCI 방식이 가장 많이 사용하는 방식이다. ISA와 EISA (간혹 서버급 pc에서 볼 수 있다.)방식도 있다.  또 접속하는 케이블의 종류도 고려해야 한다. TP 포트를 가진 랜카드, BNC나 AUI포트를 가진 랜카드, 광케이블과 접속하는 랜카드 등의 종류로 나누어 볼 수 있다.  자신의 랜카드 정보를 알고 싶다면시작 -> 제어판 -> 시스템 및 보안 -> 시스..