본문 바로가기

전체 글

(64)
Mac 에서 한/영 키 변경하기 최신 애플 기기들의 기본 키보드 설정에서 한/영 변환은 `Caps Lock`입니다. 물론 향후에도 계속 애플 기기들을 이용한다면, 변경된 키에 적응해야겠죠. 하지만 우리나라에서 Windows를 아예 이용하지 않을 수 없어서 듀얼 부팅을 하거나, 패러렐즈와 같은 버츄얼 머신을 이용합니다. 그래서 저의 경우에는 'Shift + Space'로 한/영 키를 통일시켜서 이용합니다. 이 글은 해마다 계속되는 ( OS 버전업으로 인한 클린 설치 ) 저의 삽질을 줄이기 위한 한/영 키 설정 방법입니다. 1. Caps Lock 해제 'Caps Lock' 해제는 위의 4 스텝을 따라 해 주시면 됩니다. 2. 한/영 키 변경 `Shortcuts`에서 변경이 되는 경우 맥 OS의 일반적인 키 변경은 `Shortcuts`에서 ..
Gate 설치하기 (version 9.1 Ubuntu 20.04LTS) 원래 Gate의 설치 매뉴얼은 Ubuntu의 LTS 버전에 업데이트되는 2년 간격으로 하려고 생각했었습니다. 그런데 Gate가 버전업 되었더라고요. 원래 생각 대로면 Ubuntu22.04가 나오고, 안정화 기간을 조금 가진 후 설치 매뉴얼을 만들겠지만, 개인적으로 Gate의 멀티 스래드 적용 여부가 궁금해서 설치해 봤습니다. 그러면서 자연스럽게 매뉴얼이 업데이트되었고요. 먼저 주의 사항부터 언급하겠습니다. 1. Root의 버전 Root의 버전은 6.22로 합니다. 이 글을 쓰고 있는 현재 Root의 최신 버전은 6.24이더군요. 그런데 6.24를 이용하면 Gate설치 시 문제가 발생합니다. Gate의 설치시 표준 라이브러리의 버전은 C++11입니다. 그런데 Root 6.24의 표준라이브러리 버전은 C++..
소프트웨어 엔지니어에게 수학이 중요한 이유 (부제 : C++로 만드는 소수 판별 알고리듬 + 에라토스테네스의 체 ) "소프트웨어 엔지니어가 되는데 수학이 꼭 필수인 가요?" 라는 질문을 가끔 받아왔습니다. 그럴 때마다 제 답변은 같았어요. "꼭 필수는 아니지만, 고생을 줄이고 싶다면, 필수가 됩니다. 그리고 지금 굳이 안 해도 나중엔 자연스럽게 수학을 하고 있을 거예요." 였습니다. 소수 판별 이번에 소수 판별 알고리듬을 설명하려다 보니, 자연스럽게 위의 문답이 생각나더군요. 제목으로 쓴 "소프트웨어 엔지니어에게 수학이 중요한 가?"라는 질문에 정석적인 답변을 알고 싶으시면, 이 글 보다 컴퓨터 공학이나 수학과 교수님께 문의하세요. 이 글에서는 소수 판별 알고리즘을 점진적으로 설명함으로써 상기 질문에 대한 경험적인 지식을 담으려고 합니다. 그럼 처음에 소수 판별 프로그램을 만드는 대표적인 간단한 예시를 보죠. #inc..
Vi 사용법 3 (Tip과 플러그인) 이전 글들에서는 명령 모드와 ex모드를 다루었으니 입력 모드를 다루어야겠죠. 하지만 입력 모드는 일반 텍스트 에디터와 동일하게 동작하는 모드입니다. 그러니 딱히 설명할 부분이 없습니다. 그래서 이번 글에서는 입력 모드를 간단히 설명한 후, Vi를 이용하면서 유용한 팁들과 플러그인의 설정 및 사용에 대해서 작성했습니다. 먼저 이전 글들에 대한 링크를 남겨 두고 시작하겠습니다. 2021.04.13 - [Linux & Mac] - Vi 사용법 1 (명령 모드) Vi 사용법 1 (명령 모드) Vi의 사용법에 대한 글은 10여 년 전에 이미 올렸었습니다. 그 후 계속 다양한 환경에서 Vi를 사용하면서 꾸준히 사용하는 기능과 사용하지 않는 기능, 그리고 여러 가지 팁들도 생겨서 업데이트 sbinroom.tistor..
Vi 사용법 2 (ex 모드 : 검색과 치환) 먼저 기본 설명과 명령 모드에 대한 설명은 이전 글을 참조해 주시기 바랍니다. 2021.04.13 - [Linux & Mac] - Vi 사용법 1 (명령 모드) Vi 사용법 1 (명령 모드) Vi의 사용법에 대한 글은 10여 년 전에 이미 올렸었습니다. 그 후 계속 다양한 환경에서 Vi를 사용하면서 꾸준히 사용하는 기능과 사용하지 않는 기능, 그리고 여러 가지 팁들도 생겨서 업데이트 sbinroom.tistory.com ex 모드는 명령 모드에서 ':', '/', '?' 로 이용합니다. 도움말 사실 노하우를 남기기 위한 글로서 열기, 닫기 부터 해야 하겠지만, 중요도를 생각해서 도움말로 시작 합니다. 명령모드에서 ":help" 를 입력하면 터미널 화면이 분할 되며, 도움말이 나오게 됩니다. 아래 스냅숏은..
Vi 사용법 1 (명령 모드) Vi의 사용법에 대한 글은 10여 년 전에 이미 올렸었습니다. 그 후 계속 다양한 환경에서 Vi를 사용하면서 꾸준히 사용하는 기능과 사용하지 않는 기능, 그리고 여러 가지 팁들도 생겨서 업데이트하는 글을 게재합니다. 이 글은 vi의 모든 기능을 담지 않습니다. 10년 넘게 vi를 이용하면서 항상 이용하고 있는 것들 위주의 노하우 형식으로만 설명 하겠습니다. 혹시 그 이상의 정보를 원하시면 다른 분들의 글이나 서적을 찾아보시기 바랍니다. Vi의 장점 (주관적인 의견임) 가볍다 : 대용량 파일과 같이 다른 에디터가 열지 못하는 파일도 쉽게 확인 할수 있다. 빠르다 : 키보드만 이용해서 모든 편집이 가능 하며, 심지어 표준 키보드의 60% 규격의 키보드(Ex 해피해킹 등) 영역만을 이용한다. 확장성 : 다양한..
C++로 만드는 숫자 야구게임 (소프트웨어 끼리 싸우기 : Inter Process Communication) C++로 만드는 숫자 야구 게임의 마지막 글 입니다. 이전 글에서 문제를 내는 알고리즘과 문제를 푸는 알고리즘을 만들었습니다. 2021.03.29 - [Program Language and Algorithm] - C++로 만드는 숫자 야구 게임 : 문제를 내는 알고리즘 C++로 만드는 숫자 야구 게임 : 문제를 내는 알고리즘 숫자 야구 게임은 소프트웨어 엔지니어링에 대해 배우다 보면 한 번씩은 보게 되고, 또 만들게 되는 간단한 숫자 게임입니다. 문제를 내는 알고리듬은 반복문이나 조건문, 입출력 등의 기본 기 sbinroom.tistory.com 2021.03.30 - [Program Language and Algorithm] - C++로 만드는 숫자 야구 게임 : 문제를 푸는 알고리듬 C++로 만드는 ..
Inter Process Communication : Message Queue 사용법 다양한 소프트웨어를 만들다 보면, 소프트웨어 간 통신이 필요한 경우가 생기기도 합니다. 이때 이용하는 소프트웨어 공학 기술이 Inter Process Communication(IPC)입니다. 이 글에서는 IPC 기법 중 하나인 Message Queue를 이용하는 방법을 다루겠습니다. 데이터 구조 메시지 큐는 미리 협약된 key값을 공유하여 운영체제가 관리하는 저장 위치를 이용해 소프트웨어 간 통신을 하는 IPC 기법 입니다. 메시지 큐를 이용할 때는 아래와 같이 협의된 데이터 구조를 활용합니다. struct myStruct{ // 반드시 0 이상 이어야 함. long myType; // 아래 데이터 형식과 크기는 변경 가능. char data[1]; }; 구조체를 이용하며, long 형식의 메시지 타입과..