2008년 2월 27일 수요일

내가 이번 행사에 참가하려는 이유는





위와 같이 ↑ 블로거 컨퍼런스가 열린단다.


군대에 있을 때 조차 좋은 컨퍼런스가 열리면
휴가 땡겨서라도 갔는데
오히려 일을 하다 보니 소홀해 지는 것 같다.


IT는 정보전쟁인데
난 총알 조차 없이 웹에 뛰어드는 것은 아닐까 하는 생각이 든다.


저기서 좋은 경험을 했음 좋겠다 ^^

2008년 2월 17일 일요일

권씨의 신기한 C 이야기 2. 조금씩 더 해봐요

두번째.


어느 순간 두번째 시간이 왔습니다.

저번에 많이 부족했던 내용을 좀더 써내려가 보도록 하겠습니다.

그리고 사실 아마 Part.10정도 까진 그냥 이론, 설명 쪽이 주가

될 것 같습니다. 그냥 가볍게 훝어지나가셔도 될 꺼에요

굳이 지금 이해를 못하신다 해도 나중에 하다가

이해를 하시게 되는 내용도 많고 실제로 그런 경우가 많거든요

어려운 걸 띄면 쉬운 것들은 알아서 눈에 들어오기 마련아닌가요? ^^  

다음회엔 커리큘럼을 제대로 작성해서 쓰겠습니다.


하루가 늦었네요 ^^;;

제 자신과의 약속을 못지키다니..ㅠㅠ


그리고 다음주와 다담주는 셤기간인 관계로 작성을 못하구요

그 후에 찾아 뵐께요 ㅎㅎ



 

4) C언어는 다양한 자료 형을 제공한다.

5) C언어는 전 처리기를 이용해 언어를 확장한다.

6) C언어는 문자열과 입출력을 라이브러리 함수로 제공한다.

 

저번에 했던 내용의 일부입니다. 1~3번은 저번 내용에 포함되었으므로

제외하고 4번 부터 다시 내려가 볼께요 ^^

  

4) C언어는 다양한 자료 형을 제공한다.

 

C 언어는 다양한 자료형을 제공합니다.

 

이게 무슨말인가 하면요 int 아시죠? 뭐 char, float 같은 자료형이 많다는 소리입니다 하하;;;

 

자 좀더 깊게 들어가면요

프로그램을 짜면서 변수라는게 있습니다. 나중에 좀더 자세히 설명을 해 드리겠지만요

이 변수가 많아지면 그만큼 바이트가 늘어납니다.

 

가볍게 잠깐 설명을 해드리면 C언어에는

 

일반 변수 타입

-----------------------------------------------

int : 정수형 : 2바이트

float : 실수형 : 4바이트

double : 실수형의 확장 : 8바이트

char : 문자형 : 8바이트

-----------------------------------------------

 

그외에 특수 타입

-----------------------------------------------

변수[] : 배열형

struct : 구조형

* : 포인터형

-----------------------------------------------

 

그외 앞에 붙일수 있는

long, short, unsigned,

 

등이 있습니다. ('등' 입니다; 앞으로 더 나올수도 있어요 ㅋ)

 

저기서 주목 하셔야 할 것은 우선은 일반 변수 타입입니다.

특수 타입은 지금 보셔봐야 아무 소용없고 해깔리기만 하니

신경 쓰지 마세요 ㅋ

 

자 옆에 바이트라고 써져 있는 부분 있죠?

그 바이트가 늘어나면 마찬가지로 역시 프로그램의 크기역시 비대해집니다.

쓸대없는 용량도 늘어나고 부하도 심하게 걸리죠

솔직히 이 부분에 대해서는 제가 어떻게 자세하게 설명하기가

좀 그렇습니다

 

왜냐하면 요즘엔 컴퓨터의 클럭과 성능이 너무 좋아서

사실 이런거 하나하나때문에 큰 차이는 안난다고 하거든요

물론 프로그램이 커지면 이야기가 달라지겠지만,

어쨋든, 뭐 세세한 차이가 심하지 않다고 합니다 그러므로

패스~

 

그리고 특수 타입은.......... 어떻게 보면 저것들 때문에

C가 어렵다고 하는 것일지도...-_-....

저건 나중에 설명해 드릴께요 호호

 

아! 이걸 넘길뻔 했네요 ㅋ


아무튼 그래서 여러가지의 자료형을 제시하기 때문에 이것들을 이용해서

좀더 프로그램 사이즈를 줄이고, 부하를 줄이는 등의 질 좋은

프로그램을 만들수 있는게 C의 장점이랍니다 ㅋ

 

 

5) C언어는 전 처리기를 이용해 언어를 확장한다.

 

C언어에는 전처리기 라는게 있습니다. 바로

 

#include <stdio.h>

#define

 

이 밑줄 친 부분인데요 저 include와 define 둘다 나중에 기능을 배우겠지만

저것들을 이용해서 많은 헤더 파일 <stdio.h> <- 이부분을 불러와서

많은 함수를 추가 하기도 하고 define은 정의 전처리기 입니다.

그외에도 #IF, #ELSE 등 많은 종류의 전처리기를 이용해서

일반 함수로 구현하기 힘든 부분도 잘 해결하곤 하죠 ㅋ

 

 

6) C언어는 문자열과 입출력을 라이브러리 함수로 제공한다.

 

6번은 패스 하겠습니다. ㅋㅋㅋㅋㅋㅋ

 

 

 

 

자 앞에서 2가지를 살펴 봤는데요

 

아직은 이론일 뿐입니다.

이해가 안되도 상관없고 모르셔도 됩니다.

그냥 아 이렇구나 하고 넘어가면 되시구요 ㅋ

 

이번 겨울 방학을 기점으로 쭉쭉 써볼려고 합니다. 많은 도움을 주세요 ㅠㅠ

보시는 분 구독신청도 좀 해주시고 ㅋㅋㅋ

 

 

너무 성의 없게 했네요 ㅠㅠ 이번장은.......

 

3장부턴 좀더 알차게!!!

 

자 그럼 같이 달려보아효 ㅋㅋ


권씨의 신기한 C이야기 1. 시작

첫번째.


음..... 안녕하세요? 호호;

뻘쭘하군요


제 소개는 제 미니홈피가 대신해서 할겁니다.

이미 페이퍼를 3개나 운영하고 있으니

거두절미 하고 본론으로 넘어가도록 하죠


자...C 란 뭘까요? 어렵죠? 저도 어렵답니다 ㅋㅋ

언제나 배워야 하고 포인터...함수... 논리연산.. 등등

어우 생각만 해도 머리에 쥐가 나고 짜증나죠 ㅎ


저도 지금 그렇답니다.


역시 저도 아직 초보자구요.


아 말씀드리지만 이건 강의가 아니에요

스터디 같은거죠 저 혼자하는 스터디

어떤 분이 보실지는 모르겠지만.......



 

자 그렇담 이 C는 무엇인가?

 

(1) 세계의 공용어는 영어입니다. 수 많은 서적, 매체들이 영어로 만들어지고 있고

앞으로 미국을 이길만한 나라가 생기지 않는 이상, 영어는 언제나 공용어로 남을 것입니다.

 

좀 짜증나고 아쉬워도 솔직히 무역이니 뭘 하기 위해선 공용어를 외워야 하죠

그래서 토익이니 토플이니 있지 않겠습니까?

 

이와 마찬가지로 C는 컴퓨터와 사람 사이의 공용어라고 생각하면 편합니다.

컴퓨터와 대화할 수 있는 언어죠

(엄밀히 말하면 다르지만 여기선 쉽게 나가죠^^:)

 

그렇기 때문에 지금 우리가 구동하는 윈도우, 그리고 익스플로러,

이 모두가 이 공용어로 만들어집니다. 이 웹 페이지는 C가 아닌 HTML이라는

공용어를 사용해서 만드는 것이구요

 

C가 왜 C가 됐느냐에 따라서는 미국의 톰슨이란 자가 만든 B라는 언어를

모체로 만들어졌기 때문에 C가 됐답니다 ㅋ

 

그럼 이 C는 왜 많이 쓰이는가?

 

(2) 자 이 C는 여러 가지 장점이 있습니다.

첫 번째 효율성이 높다,

두 번째 이식성이 좋다.

그리고 지명도가 높다...-_-;;; 에고..

 

저도 잘 몰라요 ㅋㅋ 이 어려운 게 왜 많이 쓰이는지 ㅋㅋ

장점? ... 이식성은 아시는 분은 알겠지만 JAVA가 더 좋지 않나요? 하하

그러나 이 C는 모든 언어의 베이스 랍니다. 즉 기본이란 소리죠

C를 배우게 되면 모든 언어의 기본을 알게 됩니다. 기본적인 구동 원리와

구조를 알게 되죠. 이래서 C를 꼭 배우는 것이죠

 

그래서... 다시 특징으로 넘어가면 이 C언어에는 여러 특징이 있습니다.

 

1) C MAIN()을 포함한 함수로 구성된다.

2) 각 함수는 변수의 선언과, 수행될 문장으로 구성된다.

3) C 45개의 연산자를 제공한다.

4) C언어는 다양한 자료 형을 제공한다.

5) C언어는 전 처리기를 이용해 언어를 확장한다.

6) C언어는 문자열과 입출력을 라이브러리 함수로 제공한다.

 

 

자 처음은 이정도. ... 여기서 중요한 건 1, 2, 3번 입니다. (제 생각에....^^;;)

 

그럼 하나하나 짚어보고 가죠

 

1) MAIN() 을 포함한 함수로 구성된다..

 

사람에겐 몸이 있습니다. 사실 사람에겐 몸과 머리만 있다면 살수 있습니다.

그렇죠? 다만, 살기가 매우 불편하기 때문에 팔과 다리를 같이 사용하는 것이죠

 

C도 마찬가지입니다. MAIN함수만으로는 많은 기능을 수행하기가 힘들어서

(가능하긴 합니다)여러 가지 함수로 기능을 분산시켜서 좀더 효율성을 높이는 것이죠.

그림으로 표현하면 이렇습니다.

 


 

 

MAIN 함수를 중심으로 F() G() H() 함수가 팔과 다리처럼 엮어져서 기능을 수행하게 됩니다.

이런식으로 여러가지 효율을 늘리면서 작동을 하게 됩니다.

C에서 이 함수의 개념은 정말 중요합니다!!! 꼭 알아두셔야 해요 ^^

 

 

2) 두 번째로 C는 선언과 문장으로 구성됩니다.

 

또다시 예를 들도록 해보면

 

#include <stdio.h>

 

void main(void) // 이부분이 선언입니다.

 

{   // 문장 시작

     int a;

     a=1; 

     printf("%d", a);

}  // 문장의 끝

 

라는 프로그램이 있다고 하면 void main() 부분은 선언입니다.

바로 main 함수를 선언하고 이 선언을 뒷받침, 즉 이 선언은 이러한 구조로 되어있다.

"팔이 있습니다!!!<-선언 이 팔을 몇 개의 뼈와 근육이 있어서 근육이 수축되면 오므라들고

팽창되면 펴진다(맞는 표현인가요?)<- 문장" 이라는 식의 구조를 띄게 되는 거죠

 

여기서 잠시 포인트를 집고 넘어가면 후에 배우겠지만

"void" 는 리턴형(return type)입니다.

"main(void)" 이름(변수형)을 뜻합니다.

다른 함수의 이름은 맘대로 지어도 되지만 꼭 main은 있어야 합니다. 

그리고 C는 문장의 엔터부분을 구분하지 못합니다. 다시 말하면

1) 저는 권만진이구요.나이는23.학생입니다   

2) 저는 권만진이구요.

    나이는 23.

    학생입니다. 를 구분하지 못합니다.

 

그래서 ; (세미콜론) 으로 구분을 줍니다. 한 문장이 끝나면 .(마침표)를 찍듯이

C ;을 꼭!!! 찍어줍니다.

 

 

3) 세 번째로 C 45개의 다양한 연산자로 구성이 됩니다.

 

이것들로 모든 게 표현이 가능하다니...신기하죠? 아래의 표는 연산자의

종류와 그 우선순위 입니다. 참고하세요~

각각의 쓰임은 나중에 다루도록 하겠습니다. ^^

 

1

( ) [ ] -> .

왼쪽 우선

2

! ~ ++ -- + -(부호) *(포인터) & sizeof 캐스트

오른쪽 우선

3

*(곱셈) / %

왼쪽 우선

4

+ -(덧셈, 뺄셈)

왼쪽 우선

5

<< >>

왼쪽 우선

6

< <= > >=

왼쪽 우선

7

== !=

왼쪽 우선

8

&

왼쪽 우선

9

^

왼쪽 우선

10

|

왼쪽 우선

11

&&

왼쪽 우선

12

||

왼쪽 우선

13

? :

오른쪽 우선

14

= 복합대입

오른쪽 우선

15

,

왼쪽 우선

 

.

.

.

.

.

 

4번째부터는 다음에 다루도록 하죠

 

 

===333 생각보다 어렵진 않은데

앞으로 그림이 많이 들어갈 거 같아 걱정이 좀 되네요 ^^

 

저와 같은 초심자들이 조금이라도 도움이 될만한 글을 작성하고 싶습니다.

많은 부족함이 있으리라 생각됩니다만 (당현히!!!!)

댓 글로 써주시면 2화 부터 적극 반영하겠습니다.

 

 

 

그리고 마지막으로 중요한걸 말씀드릴께요.

 

 

C를 하다가 수 많은 코드와 함수들을 보면 초심자들은 누구보다

두렵고 머리가 아프기 마련입니다. 그럴 때 조금은 두려움을 업에고

천천히 한줄한줄 읽어나가 보세요 조금은 안보이던 것들이 보이면서

코드가 읽히기 시작할 것입니다.

그런 두려움을 없애는 것,

 

그것이 C를 공부하기 전 가장 먼저 해 야할 것입니다.

가장 중요한 것이기도 하구요 ^^

 

자 앞으로 잘 해나가도록 해요~ 매주 수요일에 연재하도록 하겠습니다!! ^^