F.R.I.D.A.Y.

[TIPS 20TH] 01 : 2018.12.28. (목) 본문

외부활동/TIPS 20th

[TIPS 20TH] 01 : 2018.12.28. (목)

F.R.I.D.A.Y. 2018. 12. 28. 02:00
반응형

begin

 스탭으로 활동하며 다시한번 리마인드 하기 위해 20기 수강생들 외에 개별적으로 작성하는 내용이기 때문에 수강생으로 있던 19기에 비해 좀 더 편하게 작성하는 편으로 갈 생각. 따라서 타인이 보기에 힘들 수도 있다고 생각함.

1. 변수, 자료형이 만들어진 이유

 일반적으로 프로그램은 [명령, 주소, 값의 크기, 값]으로 작성이 되나, 프로그래머가 프로그램을 작성할 때 메모리의 주소와 값의 크기 등을 모두 인지하고 있을 수도 없을 뿐더러 인지하고 있더라도 비효율적이기 때문에 자료형으로 값의 크기를, 변수로 메모리의 주소를 대체하여 메모리 주소와 값의 크기를 숫자고 작성할 때 발생 가능한 예기치 못한 문제를 사전에 해결하기 위해 변수와 자료형이 도입되었다.

 데이터는 비트(bit)가 가장 작은 단위이지만, 운영체제의 기본 연산은 바이트로 처리가 된다. 이유는 컴퓨터를 연구하는 학자들과 여태 나온 실험들을 통계적으로 보았을 때 바이트 단위로 했을 때 가장 효율적이라고 판단이 섰기 때문이라고.



2. 문장 서술

 문장 서술 형식

 단일 서술문

>> a = a + 1; 등과 같이 논리적으로 최소 명령 실행단위를 말한다. 세미콜론으로 끝맺음을 짓는다.

 복합 서술문

>> 단일 서술문이 {중괄호}로 묶인 것을 말한다. 이 때 중괄호 } 뒤에는 세미콜론( ; )을 작성할 필요가 없다.


※ C언어는 문장 종결자 개념이 아니라 문장 분리자 개념을 가지고 있기 때문에 한 줄에 여러 줄의 단일 서술문이 붙는다고 하더라도 상관이 없다.


 주석

// comment 한 줄 주석

>> 더블 슬래시( // ) 를 기준으로 우측의 모든 문자열은 프로그램에 영향을 미치지 않는 코드에 대한 설명문이 된다.

/* comment */ 여러 줄 주석

>> 여는 주석( /* )과 닫는 주석( */ ) 사이의 모든 문자열이 프로그램에 영향을 미치지 않는 코드에 대한 설명문이 된다.

>> 이 형식의 주석은 한 줄 주석과 달리 주석 안에 여러 줄 주석을 다시 작성할 수 없다. 중복해 작성할 경우 주석이 비정상적으로 작동해 프로그램에 영향을 준다.


 예약어(키워드)

 언어의 문법으로 사용되는 단어들로 이름을 짓는 문법에서 예약어 사용이 불가능하다. 대표적인 예로 변수 선언과 함수 선언 등에서 사용이 불가능하다.

 타 언어(Java 등)에서는 예약어와 키워드가 분리되어있으나, C에서는 예약어와 키워드는 같은 것으로 본다.



3. 프로그램 & 소스코드

 C 프로그래밍에서 관련된 파일들

 소스파일 ( *.c )

>> C 문법으로 작성한 텍스트 문서.

 목적파일 ( *.obj )

>> 컴파일러가 소스파일을 컴파일한 결과로 생성되는 파일.

 실행파일 ( *.exe )

>> 컴퓨터에서 실행 가능한 파일. 하나 이상의 목적 파일을 링커(연결자)가 링킹을 통해 생성함.


 흔히 컴파일이라고 말하는 것은 소스코드가 목적파일로 변화하는 과정을 컴파일이라고 하나, 대부분 소스파일이 실행파일이 되는 과정 전체를 뭉뚱그려 "컴파일"이라고 부른다. 흔히 부르는 컴파일은 정확한 정의가 아니니 참고할 것.

 이 전체 과정을 메이크라 불렀으나, 현재에 들어서 MS가 밀고 있는 빌드로 명칭이 변경되고 있다고.


 소스파일을 나누는 이유

 컴파일을 진행할 때 컴파일하는 파일이 조금이라도 수정이 이루어진 경우 모든 코드를 컴파일시키는데, 이 과정에서 소스코드를 여러 파일에 나누어 작성하게 되면 수정이 이루어진 파일들만 컴파일을 진행하고 수정되지 않은 파일은 기존에 생성된 목적파일을 그대로 이용해 프로그램을 완성하기 때문에 컴파일 시간이 줄어들게 된다. 대규모 프로젝트의 경우 컴파일에만 몇 시간 이상 소요되기 때문에 이러한 문제를 줄이기 위해 소스코드를 여러 파일에 나누어 작성하게 된다.

 유지/보수 측면에서도 비슷한 기능의 코드를 한 파일에 묶음으로써 이득이 될 것으로 보임.



4. 자료형

 데이터의 저장 단위는 bit, Byte, KB(Byte), MB, GB, ... 로 있다.


 빌트인 자료형

 char, short, int, long, long long, float, double, long double 이 빌트인 자료형이며 이러한 자료형은 부호가 있는 signed(기본), 부호가 없이 양수로만 이루어진 unsigned로 나뉘게 된다.

 이러한 빌트인 자료형을 이용해 User-defined data type(사용자 정의 자료형)을 작성할 수 있다.


 ASCII

>> 미국정보교환표준부호로, 영문 알파벳을 사용하는 대표적인 문자 인코딩으로, 대부분의 문자 인코딩이 ASCII에 기반을 두고 있다. 웹 생태계의 표준 문자 인코딩인 UTF-8의 경우 ASCII의 표현범위를 완벽히 호환한다. 즉, ASCII의 n번째 위치와 UTF-8의 n번째 위치의 문자가 1:1 대응이 이루어진다.



Question

 Q1. 부호 비트는 왜 MSB에 있을까?

 Q2. C언어는 왜 1Byte의 자료형 이름을 Byte가 아니라 char로 작성했을까?


 (TIPS 대표님께서 언급하신 의문점들 작성)

728x90
반응형

'외부활동 > TIPS 20th' 카테고리의 다른 글

[TIPS 20TH] 03 : 2019.01.04. (목)  (0) 2019.01.04
[TIPS 20TH] 02 : 2018.12.31. (월)  (0) 2019.01.04
TIPS 20기 모집  (0) 2018.11.28
Comments