반응형

전체 글 2934

9. 기본 형식(Type)

9. 기본 형식(Type) 프로그래밍 언어에서는 데이터를 표현하는 문법으로 형식과 변수를 제공해요. 형식은 데이터의 종류와 표현 범위에 따라 메모리 크기와 범위를 약속하고 있어요. 실제 메모리가 필요할 때 형식을 지정하여 변수를 선언하면 약속한 메모리를 할당받아 사용할 수 있어요. C 언에에서 제공하는 형식에는 문자, 정수, 실수를 표현할 때 사용하는 기본 형식이 있어요. 그리고 여러개의 원소를 연속적인 메모리에 할당받아 사용하는 배열과 프로그램의 메모리 주소를 기억하는 포인터도 있죠. 이 외에 개발자가 프로그램에 필요한 형식을 정의하는 문법을 제공합니다. 컴퓨터에 데이터를 저장하는 장치인 메모리의 양은 유한한 자원이죠. 이러한 이유로 정수를 표현하기 위한 형식도 특정 범위에서 표현할 수 있어요. C언어..

8. 정리하기 [C언어 개요]

8. 정리하기 [C언어 소개와 역사, 첫 번째 프로그램] 다루었던 내용 1. 들어가기에 앞서 2. 컴퓨터 프로그램 3. 프로그래밍 언어 역사 4. C언어 표준 5. C언어 문법 요소 6. 첫 번째 프로그램 만들기 7. 첫 번째 프로그램 설명 문제 1. C언어는 Bell 연구소에서 운영체제(O/S)를 만드는 과정에서 사용한 B언어을 발전한 프로그래밍 언어입니다. B언어는 어떠한 운영체제를 만드는 과정에서 사용했나요? 2. 프로그래밍 언어에서 데이터 종류에 따라 필요한 메모리 사이즈와 표현 방법을 약속하는 것은 무엇입니까? 3. 콘솔 프로그램의 진입점 함수 이름은 무엇입니까? 4. 표준 입출력을 사용하기 위해 포함시켜야 하는 헤더 파일 이름은 무엇입니까? 5. 표준 출력 파일에 포멧에 맞게 출력하는 함수 이..

7. 첫 번째 프로그램 설명

7. 첫 번째 프로그램 설명 ◈ Program.c /* Hello, World 프로그램 콘솔 화면에 Hello, World를 출력 */ #include //표준 입출력 헤더 파일 포함문 int main() //프로그램 진입점 {//블록 시작문 printf("Hello, World\n"); //함수 호출문 return 0; //결과 반환문 }//블록 종료문 첫 번째 프로그램은 C언어로 프로그램을 만드는 과정을 소개하기 위한 것이예요. 여기에서는 간단하게 설명하고 앞으로 하나 하나 자세히 다루기로 할게요. 1. 주석 /* Hello, World 프로그램 콘솔 화면에 Hello, World를 출력 */ C언어에서는 동작하는 코드는 아니지만 개발자가 어떠한 의미로 작성한 것인지 이해하기 쉽게 주석을 사용할 수 ..

6. 첫 번째 프로그램 만들기

6. 첫 번째 프로그램 만들기 이제 처음으로 간단한 프로그램을 만들어 봐요. 프로그램 언어를 공부할 때는 머리로 이해하는 것도 필요하지만 받드시 개발 도구에서 만들어 보는 것이 필요해요. 책의 내용을 머리로 이해했다고 만족하지 마시고 개발도구로 만들어 보세요. 이번에 만들 프로그램은 콘솔 화면에 "Hello, World"를 출력하는 프로그램이예요. 여러분은 이 과정을 통해 개발 도구에서 C언어로 프로그램을 만드는 과정을 익힐 수 있어요. 그리고 C언어의 문법 요소도 간단히 살펴볼 수 있답니다. 여기에서는 Microsoft Visual Studio 2015 개발 도구를 사용할게요. 개발 도구 버전에 따라 다소 차이가 있지만 학습하는데 큰 영향을 주지는 않아요. 먼저 [파일 메뉴]에서 [새로만들기]를 선택하..

5. C언어 문법 요소

5. C언어 문법 요소 프로그래밍 언어의 문법에는 데이터를 표현하는 문법과 해야 할 일을 표현하는 문법이 있어요. C언어는 이러한 문법과 매크로 문법을 제공하고 있죠. 데이터를 표현하기 위한 문법에는 형식과 변수가 있어요. 컴퓨터의 메모리는 데이터를 기억하는 장치예요. 그리고 컴퓨터 메모리의 최소 단위인 비트는 0과 1을 표현할 수 있죠. 프로그램에서는 메모리의 주소를 부여하는데 8비트인 바이트 단위로 부여한답니다. 그런데 컴퓨터 메모리는 무한 자원이 아니예요. 유한 자원인 메모리에 모든 데이터를 기억하는 것은 불가능하겠죠. 이러한 이유로 프로그래밍 언어에서는 표현할 데이터의 종류와 표현 범위를 정해요. 이렇게 약속한 것을 형식(Type)이라 부르죠. 실제 데이터를 기억하기 위해 메모리를 할당받고 원하는..

4. C언어 표준

4. C언어 표준 1969년 Bell 연구에서는 서버 시스템을 운영하는 UNIX에서 동작하는 B언어를 만들기 시작했어요. 참고) 서버는 다른 컴퓨터 프로그램에게 서비스를 제공하는 프로그램이나 시스템을 말해요. 그리고 이를 발전시켜 1972년에 C언어가 탄생하였죠. 1983년에는 미국 국가 표준 협회인 ANSI에서 ANSI C표준을 출간합니다. 이 후에 미국 뿐만 아니라 많은 나라의 프로그래머들이 C언어를 사용하는 언어로 발전했어요. 1999년에 국제 표준 기구인 ISO에서는 ISO/IEC 9899:1999를 출간하여 자신의 나라의 문자를 사용할 수 있게 했어요. 2005년도에는 ANSI에서도 이를 표준으로 채택하였으며 C99라고 부르고 있어요. 2011년도에는 버그가 발생할 수 있는 함수들을 개선하여 I..

3. 프로그래밍 언어 역사

3. 프로그래밍 언어 역사 컴퓨터 프로그램은 컴퓨터 프로그래밍 언어로 만들어지죠. 앞으로 이 책에서는 컴퓨터 프로그래밍 언어를 프로그래밍 언어라 부를게요. 프로그래밍 언어는 1800년대 후반에 미국의 홀라리스가 기차표를 개찰하는 것에서 착안하였습니다. 홀라리스는 카드에 규칙에 맞게 구멍을 뚫어 천공 카드를 만들었어요. 이를 이용하여 정보를 0과 1로 부호화를 한 것이죠. 최초의 컴퓨터로 알려진 애니악은 1943년에 개발을 시작하여 1946년에 만들어져 10년간 활용하였어요. 하지만 이미 아타나소프 회사에서 1937년에 개발을 시작하여 1942년에 만들어진 ABC(아타나소프 베리 컴퓨터)가 있었요. 결국 소송을 통해 최초의 컴퓨터로 인정받았죠. 하지만 여전히 많은 사람들은 여전히 애니악이 최초의 컴퓨터라고..

2. 컴퓨터 프로그램

2. 컴퓨터 프로그램 컴퓨터 프로그램은 소프트웨어(Software)라고 부르죠. 그리고 키보드나 모니터처럼 소프트웨어가 동작하기 위한 물체를 하드웨어라고 불러요. 컴퓨터 하드웨어에는 모니터나 키보드, 마우스, 메모리 장치와 실제 연산을 수행하는 CPU등이 있어요. 실제 컴퓨터 하드웨어는 전기 흐름에 의해 동작하죠. 컴퓨터 프로그램은 컴퓨터 내부 전기의 흐름에 따라 해야 할 일을 정한 논리 집합이예요. 전산(컴퓨터와 프로그램을 다루는 분야)에서는 전기가 흐르는 정도에 따라서 0과 1로 구분하고 있어요. 이러한 이유로 컴퓨터 프로그램은 0과 1로 구성한 논리 집합이며 이진 코드라고 부르고 있죠. 또한 '컴퓨터를 동작하게 하는 코드'라는 의미로 기계어 코드라고도 불러요. 컴퓨터 프로그램에는 메모장, 그림판, ..

1. 들어가기에 앞서

1. 들어가기에 앞서 이 책은 컴퓨터 프로그래머를 꿈꾸는 이들을 위해 만들었어요. 컴퓨터 프로그래머가 하는 작업 중에 가장 기본은 원하는 작업을 컴퓨터가 수행할 수 있게 논리를 전개하는 것이죠. 그리고 컴퓨터가 수행할 수 있는 프로그램을 작성하기 위해 프로그래밍 언어와 개발 도구를 이용하는 것입니다. 많은 이들은 컴퓨터 프로그래밍을 학습하는 것은 책을 보고 머리로 이해하는 것이라 생각하는 것 같요. 하지만 실제 컴퓨터 프로그래밍을 효과적으로 학습하려면 머리를 이용하는 것 외에도 자신의 논리를 종이에 적고 그림을 그리고 자료를 검색하고 아는 이들에게 물어보는 등의 사용할 수 있는 모든 자원을 활용하는 것이 좋습니다. 사실 머리만 쓰는 것은 매우 소극적이며 효율이 떨어지는 프로그래밍 학습이예요. 손과 종이 ..

DNS(Domain Name System, RFC 1034)

DNS(Domain Name System, RFC 1034) 참고: RFC 1034, http://tools.ietf.org/html/rfc1034 DNS는 호스트 이름을 망 계층에서 IP 주소로 매핑하는 응용 계층 서비스이다. 도메인 이름 공간 도메인 이름 공간은 계층적인 트리 구조이다. 트리 구조의 각 노드는 63개의 문자로 구성한 문자열 레이블을 갖는데 루트 노드의 레이블은 빈 문자열이다. 같은 부모 노드의 자식 노드들은 서로 다른 레이블을 가질 수 있으며 이는 도메인 이름이 유일함을 보장한다. 그리고 도메인 이름은 자신의 이름에서 점(.)을 추가하여 부모 노드로 이동하며 완성한다. 위 그림에서 ehclub 노드의 완성한 이름(FQDN, Fully Qualified Domain Name)은 ehcl..

반응형