• C와 C++ - IT 컬럼 - 문제 해결 일반 - 소프트웨어 공학 - 웹프로그래밍 - 프로그래밍

    프로그래밍 기초 - 코드 이해 진입에 난국이 있다면 참고해보세요

    보통 프로그램은 프로그래밍 언어에 의해 만들어집니다. 프로그래밍 언어로 소스코드를 만들고 실행하게 처리하면 프로그램이 실행됩니다. 소스코드가 중요한 개념인데요. 프로그램의 설계도면이라고 비유할 수 있는 일련의 텍스트 파일을 의미합니다. 소스코드에는 프로그램 실행에 관여하는 코드가 기재되어 있구요. 프로그래밍 언어에 따라 컴파일을 거치거나, 인터프리터가 해석해서 실행이 됩니다. 즉 프로그래밍을 잘 하려면 소스코드를 이해하고 응용하는 능력이…

  • C와 C++ - 소프트웨어 공학 - 프로그래밍

    전산학에서 추상화 기술의 역할

    전산학은 나날이 발전해서 1990년대의 멀티미디어가 주목받던 시절에 32 poly 출력이 가능한 사운드카드 기능은 이제는 9만원되는 메인보드에 내장된 형태로 공급이 됩니다. 이제는 4K를 처리하는 영상 인코더나 기본으로 16GB램을 요구하는 CG 처리 소프트웨어, 수백와트의 전력을 소모하는 그래픽 카드까지 아주 높은 성능의 멀티미디어 기술이 개발되어 일반화된지 오래입니다. 이들 작동은 물리적인 수준에서 들여다보면 아주…

  • C와 C++ - 프로그래밍 - 하드웨어 - 하드웨어 이론

    C 언어의 함수 실행과 메모리에서 있는 일들 1

    프로그램이 실행되면 메인 메모리에서 코드 세그먼트, 데이터 세그먼트, 스택, 빈 공간, 힙 메모리로 로드된다. 함수를 실행하면 스택에서 작동이 이루어진다. 스택은 LIFO(Last In First Out) 구조로 나중에 집어넣어진 것이 제일 먼저 빼내어지는 구조다. 이 구조가 필요한 이유는 함수 실행시 호출 순서에 따라 먼저 실행된 함수가 대기상태에 있고 나중에 실행된 함수가 먼저…

  • C와 C++ - 프로그래밍 - 하드웨어 - 하드웨어 이론

    변수 원리와 메모리에서 있는 일들 3 - 값 호출, 참조 호출

    함수 호출시 매개변수로 원본을 넘겨주는 방식을 참조 호출( call by reference)라고 하고 사본을 넘겨주는 방식을 값 호출(call by value)라고 한다. C에서는 함수 호출시 매개변수로 변수를 넘기면, 그 변수 자체가 아니라 그 변수의 값이 복사되어 피호출 함수로 전달된다. 그래서 피호출 함수가 작동을 마치면, 호출을 실행한 함수의 변수는 값이 그대로 유지된다. 이…

  • C와 C++ - 프로그래밍 - 하드웨어 - 하드웨어 이론

    변수 원리와 메모리에서 있는 일들 2

    변수의 영역 또는 변수 스코프는 변수가 영향을 주는 유효 범위를 말한다. 지역 변수의 예를 들면 그 변수를 선언한 블록 내에서만 영향을 준다. 위 코드에서 add() 함수는 main() 함수의 c에 접근할 수 없다. 이는 스택 프레임의 구조상 c에 접근하지 못하기 떄문이다. 아래와 같은 경우에도 마찬가지다. main()과 add()에서 쓰이는 a와 b라는 변수는…

  • C와 C++ - 소프트웨어 공학 - 프로그래밍 - 하드웨어 - 하드웨어 이론

    변수 원리와 메모리에서 있는 일들 1

    C 언어의 변수 처리에 대해 알려면 컴퓨터의 메모리에서 있는 일들을 알면 좋다. 현대적인 디지털 컴퓨터는 폰 노이만 구조를 따른다. 폰 노이만 구조에서 핵심적인 부분은 CPU와 메모리다. CPU는 컴퓨터의 두뇌 역할을 하고 메모리는 해마와 같은 기억에 관련된 역할을 한다. 모든 데이터는 CPU가 처리에 관여하고 메모리에 불러져와서 그에 맞는 기능을 수행한다. 프로그램은…

  • C와 C++ - 문제 해결 일반 - 프로그래밍

    C 언어에서 변수와 상수에 대하여 1

    프로그래밍 언어에서 제일 중요하고 기초적인 요소가 변수와 상수일 것입니다. 프로그램이 작동하려면 데이터를 처리해야 하고 데이터를 처리하려면 데이터를 메모리 상에 적재해야 합니다. 변수와 상수는 데이터를 메모리에 적재하는 방법을 정의하는 문법 요소로 이들이 반드시 지정되어 있어야 처리가 됩니다. 변수란 값을 담는 그릇이라고 비유될 수 있습니다. 그릇 종류가 정해져 있고 요리사는 이들 그릇의…

  • C와 C++ - IT 컬럼 - 문제 해결 일반 - 소프트웨어 공학 - 프로그래밍

    컴퓨터에서 숫자 표현 2

    메모리에 정수를 표현하는 방법은 (1) 부호절대값 (2) 1의 보수 (2) 2의 보수와 같은 개념 체제 하에서 한다. 컴퓨터가 표현가능한 비트수는 아키텍처에 따르고, 컴파일러에도 조건되어진다. 우선 8비트라면 최상위 비트(MSB)가 부호 비트가 되고 나머지 7비트는 숫자를 이진법으로 표현하는 것인데, 부호 비트가 0이면 양수를 1이면 음수를 표현한다. 부호를 달아 표현하면 음수 표현이 되고,…

  • C와 C++ - IT 컬럼 - 문제 해결 일반 - 소프트웨어 공학 - 프로그래밍

    컴퓨터에서 숫자 표현 1

    우리가 보는 컴퓨터 화면에서는 숫자가 표시될때 특별한 신경도 안쓰고 그냥 당연하게 바라봅니다. 보통 10진수로 표시되는 경우도 있고, 이진파일을 뷰어로 본다든지, 16진수로 표현되는 경우도 봅니다. 이 화면에 표시되는 숫자들은 그 의미상으로 여러 형태로 우리에게 보여지지만, 컴퓨터 내부적으로는 무조건 0아니면 1로 처리가 되는 것이 컴퓨터의 숫자 표현법입니다. 숫자뿐아니라, 모든 데이터가 0이나 1로…

  • C와 C++ - 프로그래밍

    C 언어의 소스코드 구성

    C 언어는 고유의 소스코드 구성 요소로 구성된다. 입문 단계에서 흔히들 제시하는 Hello, world! 출력 예제를 보자. /* Hello, world! 라는 문자열을 화면에 표시하는 코드다 */ #include int main(){printf("Hello, world!\n");return 0;} 이 예제에서 /* Hello, world! 라는 문자열을 화면에 표시하는 코드다 */ 는 주석으로 프로그램 코드에 대한 해설을 붙이는 요소다.#nclude 는…