
저는 개발자 입장에서 사용하기 편한 키보드를 만들고 싶습니다. 그래서 KOEY 키보드 배열을 고안했었습니다. 해당 배열은 다음과 같습니다. 그런데 생각해보니 개발자 입장에서 조금 불편할 것 같은 부분이 있음을 발견했습니다. 먼저 세미콜론(;)과 P키가 바뀌어 있는 것이 그렇습니다. 일반 키보드 사용자라면 세미콜론의 사용빈도가 매우 적을 것이기에 P키의 위치를 더 가까운 위치에 두었습니다. 하지만 개발자라면 얘기가 조금 다릅니다. 개발자는 세미콜론을 마침표처럼 자주 사용하기 때문에 굳이 P키와 위치를 바꾸는 것은 더 불편할 수 있죠. 개발자가 아니라도 해도 P키의 위치를 바꾼다는 것은 한글 자판에서 'ㅔ'의 위치만 바뀌는 것이므로 좀 거슬릴 수 있다고 생각했습니다. 다음으로는 대괄호/중괄호 키와 플러스/마..

저는 요즘 키보드에 관심을 가지고 있습니다. 코드 작성하랴, 블로그에 공부 일지 작성하랴 타자 치는 시간이 전에 비해 크게 증가했습니다. 그리고 코드를 작성할 때 사용하면 좋은, 효율적이고 빠르고 멋진 키보드를 가지고 싶었습니다. 그렇게 키보드에 대해 여럿 찾아봤는데 제가 원하는 키보드는 아직 없는 것 같았습니다. 저는 우선 왼손과 오른손 영역이 분리되는 스플릿 키보드를 사용하고 싶습니다. 그리고 인체공학적으로 디자인되어 있으면 좋겠고, 자판 배열도 효율적으로 되어 있는 키보드를 찾고 있었습니다. 하지만 대부분의 스플릿 키보드는 B키가 왼쪽에 배치되어 있습니다. 그리고 거의 모든 키보드의 자판 배열이 조금 비효율적입니다. 한글 자판은 두벌식이나 세벌식이나 꽤 효율적으로 배치되어 있지만, 대표적 영어 자판..
※ 주의 사항 ※ 이 글의 목적은 '지식의 전달'이 아닌 '학습의 기록'입니다. 따라서 제가 이해하는 그대로의 내용이 포함됩니다. 따라서 이 글은 사실과는 다른 내용이 포함될 수 있습니다. 앞서 const와 explicit 키워드를 배웠습니다. 이 둘은 나름의 의미가 있으며, 또 유용하게 사용되는 키워드들입니다. 그런데 이번에 설명하는 mutable이라는 키워드는 가급적 사용하지 말아야 할 키워드입니다. 키워드 mutable은 다음과 같은 의미를 가집니다. 'const 함수 내에서의 값의 변경을 예외적으로 허용한다' 이 의미만 들어도 왜 가급적 사용하지 말아야 하는지 이해가 갈 듯합니다. 다음 예제를 보겠습니다. #include using namespace std; class Simple { privat..
※ 주의 사항 ※ 이 글의 목적은 '지식의 전달'이 아닌 '학습의 기록'입니다. 따라서 제가 이해하는 그대로의 내용이 포함됩니다. 따라서 이 글은 사실과는 다른 내용이 포함될 수 있습니다. 상수 표현식, inline 함수, 상수 표현식 비교 C++11부터 constexpr 키워드로 상수 표현식을 사용할 수 있습니다. 상수 표현식은 inline 함수와 상당히 비슷합니다. 먼저 피보나치수열을 상수 표현식으로 구현한 예제를 보겠습니다. #include constexpr unsigned long fibonacci(unsigned long i) { return (i
※ 주의 사항 ※ 이 글의 목적은 '지식의 전달'이 아닌 '학습의 기록'입니다. 따라서 제가 이해하는 그대로의 내용이 포함됩니다. 따라서 이 글은 사실과는 다른 내용이 포함될 수 있습니다. C++에서 사용하는 데이터 타입은 C언어에서 사용하는 기본 데이터 타입과 객체 지향 언어로부터 도입한 클래스가 공존합니다. 그로 인해 C++에는 객체 지향 언어와 절차 지향 언어 등의 이질적인 문법으로 인해 변수를 선언하고 동시에 초기화시키는 다양한 방법이 존재합니다. 그러나 초기화 방법이 많다는 것인 변수 선언과 함께 클래스나 템플릿을 작성하는 데 에 어려움이 많다는 것을 의미합니다. 개발자가 예상하지 못한 에러가 발생할 확률이 많다는 의미입니다. 우선 정수 타입을 기준으로 기본 타입의 변수를 초기화시키는 방법들을 ..