프로그래밍
[C언어 강좌-2] C언어 컴파일 과정
안녕하세요 피터입니다. 오늘은 지난시간에 이어 C언어의 컴파일 과정에 대해 설명드리겠습니다.앞서 여러분이 작성했던 Hello world 코드가 컴퓨터에서 실행이 되려면 우선 컴파일(Compile) 과정을 거쳐야 합니다. 컴파일은 예전에 언급드렸던 것처럼 사람이 이해할 수 있는 언어로 되어 있는 프로그램 코드를 컴퓨터가 이해할 수 있는 언어로 변환하는 작업입니다. 컴파일 과정은 프로그램을 만드는 데 있어서 반드시 알아야 하는 내용은 아니지만 이 과정을 머리속에 담고 있는 개발자는 앞으로 무수히 부딪히게 될 많은 문제나 오류들을 이해하는데 훨씬 큰 이점을 얻게 될 것입니다.조금 생소하고 어렵게 느껴지실 수도 있지만 컴퓨터를 이해하는데 한걸음 다가간다고 생각하고 차근차근 따라와주세요.이제부터 gcc를 통해 C..
![[C++] 포인터(Pointer)와 레퍼런스(Reference : 참조자)의 차이](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbYkBax%2Fbtqzt3uUsVf%2FM1lk9csZljtsM9uF3KxFP0%2Fimg.png)
[C++] 포인터(Pointer)와 레퍼런스(Reference : 참조자)의 차이
안녕하세요 피터입니다. 오늘은 C언어를 배운 후 C++을 공부하는데 있어서 굉장히 헷갈리는 개념인 포인터와 레퍼런스의 차이에 대해서 설명드리겠습니다. 개요 C++ 프로그래밍을 시작하면 레퍼런스(Reference : 참조자)라는 새로운 개념을 접하게 됩니다. 언뜻 보면 C언어를 공부할 때 여러분들을 굉장히 괴롭혔던 포인터(Pointer)와 유사해 보이는데 어떠한 대상을 가리킨다는 점에서는 같습니다. 하지만 포인터와 레퍼런스는 여러가지 차이점이 있습니다. 그 중에 여러분이 C++ 프로그래밍을 할 때 반드시 알아야 할 두 가지 중요한 차이점을 짚어드리겠습니다. 1. NULL 허용 여부 우선 NULL값을 허용하는 가에 대한 문제입니다. 포인터는 아시다시피 NULL을 허용하지만 레퍼런스는 NULL이 허용되지 않습..
[C언어 강좌-1] Welcome to Hello world
안녕하세요피터입니다. 오늘 강의에서는 C언어에 대해 차근차근 알려드리겠습니다. 현재 디바이스에 들어가는 펌웨어(firmware)나 임베디드(embedded) 분야에서 독자적인 영역을 구축하고 있으며, C언어는 현존하는 고급 언어중에 가장 컴퓨터를 잘 이해할 수 있는 언어입니다. C언어는 오래되서 별로 배울 가치가 없다고 생각하시는 분들이 계시다면 아직 C언어를 배워야 할 이유가 충분히 있다고 말씀드리고 싶습니다. C언어는 컴퓨터를 이해하는 데 있어서 굉장히 중요한 언어이기 때문입니다. C언어가 컴퓨터에 대해 가장 잘 이해할 수 있다는 점에 대해서는 강좌를 진행하면서 중간 중간 설명드리겠습니다. 자! 그럼 본격적으로 시작해볼까요~ 프로그래밍 공부에서는 역시 코딩이 빠질 수 없겠죠? 우선 세계에서 가장 유명..
쉽게 풀어보는 프로그래밍 주요 개념잡기
안녕하세요? 피터입니다. 오늘은 프로그래밍 세계에서 흔하게 사용되는 주요 용어들에 대한 개념을 쉽게 풀어보겠습니다. 흔히 컴퓨터는 0과 1밖에 모른다고 말하는 것을 들어봤을 겁니다. 이게 무슨 말일까요? 예를 들어서 설명해보겠습니다. 한국이라는 나라에서는 사람과 사람이 의사소통하는데 있어서 한국어라는 언어를 사용합니다. 한국어는 자음과 모음이 결합된 한글로 이루어져 있습니다. 컴퓨터의 세계에서는 사람과 기계가 의사소통하는데 있어서 기계어(machine language)라는 언어를 사용합니다. 기계어는 0과 1로 조합된 명령어(instruction)로 이루어져 있습니다. 한국인과 의사소통을 하려면 한국어를 알아야 합니다. 그렇다면 컴퓨터와 의사소통을 하려면 기계어를 알아야 할까요? 아주 오래 전에는 그랬었..
![[C++] map vs hash_map(unordered_map)](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FUxa1s%2Fbtqzs7xXWI0%2FfkZBD43KiGtslBKCRmecO0%2Fimg.png)
[C++] map vs hash_map(unordered_map)
개요 hash_map은 비표준 Container인데 반해(stdext namespace에 포함) unordered_map은 C++11에서 STL 표준 Container로 추가되었으며, (사실 TR1부터 추가되었지만 C++11에서 좀 더 최적화가 이루어졌다고 합니다) hash_map과 거의 동일한 기능을 제공합니다. MSDN의 hash_map 페이지에서도 표준인 unordered_map 사용을 권장하고 있으므로 이후에는 unordered_map 기준으로 이야기하겠습니다. 일반적으로 데이터 양이 많은 경우 map 보다 unordered_map은 성능이 더 좋습니다. 알고리즘의 차이로 데이터가 N 개일 때 map 은 O(logN)의 탐색 속도를, unordered_map은 O(1)의 탐색 속도를 각각 갖기 때..