분류 전체보기 259

[C] C언어의 배열(array)

배열부터는 실질적으로 프로그램을 만들 때 없어서는 안 되는 타이틀입니다. 배열이란 서로 같은 타입의 변수 여러 개를 나란히 나열한 것입니다. [ 배열의 형식 ] 자료형 배열이름 [배열 길이] ex) int array [10]; 지금까지의 포스팅에서 int형 변수 a, b, c, d를 선언하려면 int a, b, c, d; 형식으로 선언하였습니다. 이를 그림으로 나타내면 아래와 같습니다. 하지만 배열은 위 사진처럼 각각 선언하지 않고 아래 사진처럼 한 번에 선언이 가능합니다. 배열 선언은 변수 선언과 비슷합니다. int형 변수 num을 선언하려면 int num;으로 선언하듯 int형 배열 arr을 선언하려면 int arr[ ];로 선언합니다. int a[4];처럼 선언을 하였다면 int형 변수 a가 4개가..

[C] C언어 기초 2022.04.03

[C] C언어의 반복문_do ~ while

[ while문과 do~while문의 비교 ] while문은 조건이 만족하지 않으면 반복할 내용을 실행하지 않습니다. 하지만 do~while문은 "최소한 한번"은 반복할 내용을 실행합니다. while문과 for문에 비해 사용 빈도는 적지만, 위의 차이점 때문에 필요한 상황이 있습니다. [ do~while문의 형식 ] do{ 반복할 내용 } while(조건식) [C] C언어의 반복문_while문 포스팅의 예문과 같은 기능을 하는 예문입니다. while문과 같이 i

[C] C언어 기초 2022.04.02

[C] C언어의 반복문_while문

이번 포스팅에서는 while문에 대해 다루겠습니다. [ while문의 형식 ] while(조건식) { 반복할 내용 } 초깃값, 조건값, 증감값이 모두 포함되는 for문과는 다르게 while문은 조건식만을 가지고 있습니다. 초깃값을 설정할 때 for문과 다르게 while문에서는 while문 밖에서 초깃값을 설정해줘야 합니다. 증감값 또한 반복할 내용에 포함시켜주지 않으면 무한루프가 생길 수 있습니다. [C] C언어의 반복문_for문 포스팅에서 다뤘던 예문과 같은 기능을 하는 예문을 가져왔습니다. i가 5보다 작거나 같을때까지 printf("%d번째 행\n", i); 와 i++; 를 반복합니다. while문의 조건식에 1이 들어가면 "참"을 의미합니다. 즉, while(1) { 반복할 내용 }이라면 조건식이..

[C] C언어 기초 2022.04.01

[C] C언어의 반복문_for문

반복문이란 어떤 행동을 반복적으로 수행하는 문장입니다. C언어에서의 반복문은 [while문], [for문], [do ~ while문]이 있습니다. 이번 포스팅에서는 for문에 대해 알아보겠습니다. for문의 형식은 아래와 같습니다. [ for문의 형식 ] for(초깃값; 조건값; 증감값) { 조건식이 참인 동안 반복할 내용 } 초깃값은 시작값, 조건값은 끝값이라고 생각하면 편합니다. for(A; B; C)는 A일때 B가 될 때까지 C를 반복 실행하는 것입니다. 아래 예시에서는 초깃값이 i = 1, 조건값이 i

[C] C언어 기초 2022.03.31

[C] C언어의 조건문_switch문

이번 포스팅에서는 C언어의 조건문 中 하나인 switch문(switch~case문)을 알아보겠습니다. switch문은 if~else문을 보다 간결하게 표현할 수 있어서 가독성이 좋습니다. 다만 if~else문에 비해서는 약간의 제약이 있습니다. switch문 안에서의 case문은 콜론( : )으로 구분합니다. 거두절미하고 예시부터 보겠습니다. 아래의 예시에서는 변수 a가 1일 경우, 2일 경우, 3일 경우, 4일 경우를 각각 case1, case2, case3, case4로 나누어 각 문장이 출력되도록 하였습니다. 하지만 아래의 예시는 잘못된 예시입니다. 아래의 사진은 위의 예시를 실행하여 4를 입력한 결과입니다. 멀쩡히 잘 실행됩니다. 하지만, 두 번째 예시에서 1을 입력했음에도 불구하고, 모든 문장이..

[C] C언어 기초 2022.03.30

[C] C언어의 조건문_if문

C언어에서 조건문이란, 조건을 판별하는 제어문입니다. 쉽게 말하자면 "분기점"을 만들어주는 구문이라고 볼 수 있습니다. 즉, 순차적으로만 흐르던 단순한 프로그램에서, 드디어 갈림길을 선택할 수 있습니다. 조건문은 크게 두 가지로 나뉩니다. 바로 [ if문 ]과 [ switch문 ]입니다. [ if문 ] if문은 수행할 내용이 한 문장인 경우, 중괄호를 생략할 수 있습니다. 하지만 저는 '중괄호를 생략할 수도 있다'라고만 생각하고 굳이 생략하지는 않겠습니다. if(조건문){ 참일 때 실행하는 구문; } if문의 형식은 위와 같습니다. 간단한 예문을 보여드리겠습니다. 위 예문에서 4행을 보면 먼저 정수(int)형 변수 num1을 선언과 동시에 10으로 초기화하였습니다. num1의 값은 10이기 때문에, 6행..

[C] C언어 기초 2022.03.29

[Network] 인터넷 제어 메시지 프로토콜(ICMP)_2

[ 질의 메시지 ] - 오류 보고 외에 ICMP는 네트워크 문제를 진단 가능 - 라우터나 목적지에게 질의를 하는 것. - 5개의 질의 메시지를 통하여 수행 가능 - 이 유형의 ICMP 메시지에서는 노드가 메시지를 보내면 목적지 노드가 특정한 형식에 따라 응답 - 현재는 2개만 사용 (에코 요청과 응답 / 타임스탬프 요청과 응답 메시지) [ 에코 요청과 응답 (ping 명령어) ] - Echo Request and Reply - 고장 진단 목적 - 네트워크 관리자와 사용자들은 이 메시지를 사용하여 네트워크 문제를 발견 가능 - 에코 요청과 에코 응답 메시지의 조합은 두 시스템(호스트나 라우터)이 서로 통신할 수 있는지 결정 가능 - 호스트나 라우터는 에코 요청 메시지를 다른 호스트나 라우터에게 전송 가능 ..

[Network] 인터넷 제어 메시지 프로토콜(ICMP)

ICMP? : Internet Control Message Protocol [ IP 프로토콜의 문제점 ] - 신뢰성이 없고 비연결형 데이터그램 전달 제공 - 최선의 노력 전달 서비스 - 오류 제어와 지원 메커니즘이 없음 - 오류 보고 및 오류 수정 기능이 없음 - 호스트와 관리 질의를 위한 메커니즘이 없음 - 호스트는 간혹 라우터나 다른 호스트가 동작하고 있는지 알 필요가 있다. - 네트워크 관리자는 다른 호스트나 라우터로부터 정보를 획득할 필요가 있다. ==> 이러한 문제점을 보완하기 위해 ICMP가 설계됨. ICMP는 네트워크층 프로토콜이지만, 이 프로토콜의 메시지는 직접 데이터 링크 층으로 전달되지 않음. 대신, 메시지는 데이터 링크층으로 가기 전에 전달을 위해 IP 데이터그램 내에 캡슐화됨. [ ..

[Network] 인터넷 프로토콜(IP)_2

[옵션] - 헤더는 고정 부분과 가변 부분 중 가변 부분은 옵션으로 구성 - 최대 길이는 40바이트 - 옵션은 네트워크를 시험하거나 디버그하기 위하여 사용((데이터를 전달할 때 필요한 게 아님) [옵션 형식] - 유형 필드와 길이 필드, 그리고 가변 길이의 값 필드로 구성 - 종종 TLV(Type-Length-Value)라고 함. [옵션 유형] - 2개는 1바이트 옵션, 길이나 데이터 필드를 필요로 하지 않음 - 4개는 다중 바이트 옵션, 길이와 데이터 필드를 필요로 함. [무연산(No Operation) 옵션] - 1바이트 옵션으로 옵션들 사이의 여백을 채워 줌 [옵션 종료(End of Option)] - 1바이트이고 옵션의 필드 끝에 패딩의 목적으로 사용 - 마지막 옵션으로만 사용 가능 - 오직 하나..

[Linux] VirtualBox에 리눅스 CentOS7 설치하기_4

[ CentOS7 (CentOS 7.9) 설정 과정 ] 이번 설정 과정은 [Linux] VMware에 리눅스 CentOS7 설치하기_2 포스팅과 같은 내용입니다. 다만, 이번 포스팅에서는 조금 다르게 설정하겠습니다. 1. 가상 머신을 실행하면 처음으로 언어 설정 창이 나옵니다. 영어로 설정하게 되면 설치 이후 한글 언어 팩이 설치되지 않기 때문에 한국어를 체크 후 계속 진행하도록 하겠습니다. 2. 원활한 실습을 위해 소프트웨어 선택을 클릭하여 개발 및 창조를 위한 워크스테이션을 클릭 후 추가 개발을 체크 하겠습니다. 3. 시스템의 설치 대상 클릭 후 직접 파티션을 설정하도록 하겠습니다. “파티션을 설정합니다” 선택 후 완료를 클릭합니다. 4. 표준 파티션을 선택 후 [ + ]를 클릭하여 마운트 지점을 생..