목록프로그래밍 (47)
강께르의 개발일지
1. 객체 지향 프로그래밍(Object-Oriented Programming, OOP)이란? - 객체 지향 프로그래밍에 대해 여러 설명이 있다. 문제를 바라볼 때, 여러 개의 객체 단위로 나눠 작업하는 방식을 말하기도 한다. - 프로그램을 여러 개의 객체 모임으로 간주하여 개발하는 것이다. - 상태와 행동으로 이루어진 다수의 객체를 만들어, 서로 상호작용을 통해 프로그램을 만들어지는 방식이다. - 여러 객체 지향 프로그래밍의 정의를 보아하니 공통점은 프로그래밍을 할 때, 여러 개의 객체를 생성하여 그 객체들을 이용해서 프로그램을 만들어가는 개발 방식 정도로 해석된다. 2. OOP의 장/단점 - 객체로 구분하여 프로그래밍하기에 코드의 재사용을 높일 수 있다. - 잘 만들어진 클래스는 프로그램을 확장하기에 ..
이 글에서 서술한 열거형은 C 스타일로 enum, C++ 스타일로 enum class로 나눌 수 있다. 열거형이 무엇이며, enum과 enum class의 다른 점이 무엇인지 조사하며 정리해보려고 한다. 1. 열거형이란? - 열거형의 '열거'의 의미는 '여러 가지 예나 사실을 낱낱이 죽 늘어놓음'이라고 한다. 이와 같이 열거형 또한 정수형 집합을 고유한 이름을 붙여서 죽 늘어놓은 것을 의미한다. - 특정 정수값에 별명을 붙여 프로그래머가 봤을 때, 해당 정수가 사용된 의미에 대해 직관적으로 이해할 수 있게 돕는 도구와 같은 것이다. 2. enum - 열거형을 사용하기 위해서는 enum이나 enum class를 사용해야 한다. enum의 생김새는 다음과 같다 enum TagName { Body }; - 열..
1. void 포인터란? - void 포인터는 const, volatile를 사용하여 선언되지 않은 객체를 포함한 모든 자료형 변수를 가리킬 수 있는 있다. - 가리키고 있는 변수의 자료형의 크기, 길이를 알아올 수 없을 뿐이다. 시작 주소를 제공 받아 쓸 수 있는 것이다. - 함수를 가리키는 주소값을 저장하여 함수형 포인터로 사용할 수 있다. - 다른 이름으로 제네릭 포인터(generic pointer)라고 불린다. 2. 사용 시 유의사항 - void 포인터는 자신이 가리키는 변수가 어떤 자료형인지 알지 못하기 때문에 직접 역참조를 할 수 없다. - 그러므로 void 포인터의 역참조를 수행하기 위해서 가리키고 있는 변수의 자료형으로 형 변환을 해야만 한다. - void 포인터의 포인터 연산도 역참조와 ..
이 글에서 설명할 Call by value / address / reference는 '함수가 호출될 때, 매개변수를 어떤 방식으로 전달할 것이냐?'에 대한 방법들이다. 앞에서부터 차례대로 한글로 번역하자면 '값에 의한 호출', '주소에 의한 호출', 참조에 의한 호출'이라고 할 수 있다. 1. Call by value(값에 의한 호출) - Call by value는 함수를 호출하여 매개변수를 호출된 함수에게 전달할 때, 값의 복사로 전달을 하겠다는 방식이다. - 값이 복사되어 전달되어 그 값으로 초기화된 매개변수는 전달되기 이전의 변수와는 완전히 별개의 변수다. - 그래서 함수 내에서 아무리 매개변수를 조작해도 전달되기 이전의 그 변수하고 다르기 때문에 어떠한 변경이 없다. int num = 10; fu..
1. 함수는 무엇인가? - 반복적인 프로그래밍을 피하고 코드의 재사용과 유지보수에 용이함을 위해 함수를 사용하게 된다. - 함수란 하나의 특별한 목적의 작업을 수행하기 위한 독립적으로 설계된 코드의 집합 - 특정 작업을 수행하도록 만든 설계된 재사용 가능한 명령문이라고 한다. - 일정한 입력에 따라 미리 설계된 코드에 의해 일정한 출력을 반환하는 코드의 집합이라고 설명하고 싶다. 2. 함수의 모양 typeName valueName(parameter) { //function body; return value; } 함수의 모양은 네 가지 모습으로 구분할 수 있다. 1. 함수가 반환할 자료형 / 2. 함수를 지칭할 이름 / 3. 매개변수 / 4. 함수 몸체 2-1. 함수가 반환할 자료형 - 함수는 자신을 호출..
1. 메모리는 무엇인가? - Random Access Memory, RAM - 현재 실행 중인 프로그램이나 데이터가 저장되어 있으며 실시간으로 사용된다. - 컴퓨터 전원이 꺼지면 가지고 있는 데이터를 모두 날리는 휘발성이 특징 - 주기억 장치라고 부르며, 여기에 입력된 데이터는 중앙처리장치(Central Processing Unit, CPU)에 의해 처리되며 그에 대한 수행에 필요한 명령어나 데이터를 기억하고 있는 곳 - 데이터 처리 속도가 빠른 중앙처리장치와 그에 비해 한참 느린 보조 기억 장치 사이에 위치하여 메모리가 처리 속도를 보완하는 역할 2. 메모리 영역 메모리 영역은 크게 4가지로 구분이 되며, 이는 코드, 데이터, 스택, 힙으로 구분이 된다. 사용자는 운영체제에 요청을 해 프로그램을 실행한..
1. 기본 자료형 자료형, 데이터 타입이라고 내게 더 익숙하지만, MS Docs 기준의 명칭으로는 Bulit-in type으로, 기본 자료형이라고 명시되어있다. 이는 C++ 언어의 표준으로 지정되어 헤더파일에 저장되어 있는 게 아닌 컴파일러가 사용하는 이들에게 제공되는 것이다. 기본 자료형은 세 가지 범주로 나타낼 수 있으며, 이는 정수형, 부동 소수점형, void형이 있다. 각각의 자료형은 컴파일러에 의해서 그 자료형에 맞는 고유한 방식으로 처리하게 된다. 다음은 각각의 자료형과 그 자료형이 지니고 있는 값의 범위와 바이트의 크기, 조사하면서 알게 된 특징에 대해 적으려고 한다. 2. 정수형 모든 자료형의 범위는 해당 자료형의 바이트 크기의 영향을 받는다. 예를 들어서 int형 자료형은 바이트 크기가 ..