본문 바로가기

Software

Autohotkey - 윈도우를 내 마음대로 컨트롤할 수 있는 매크로 프로그램 Introduction Autohotkey는 윈도우에서 필요한 기능을 복잡한 Visual C++을 통해 구현하지 않아도 비교적 빠르고 쉽게 구현할 수 있는 매크로 프로그램이다. Autohotkey 전용 프로그래밍 언어를 지원하는데 이를 통해 윈도우 내부의 다양한 함수들을 조작할 수 있고 생각할 수 있는 거의 모든 기능들을 간단하게 구현할 수 있다. 필자는 윈도우 11에서 사용하고 있으며 윈도우 10에서도 정상적으로 작동하는 것을 확인하였다. 필자가 현재(24.01) 사용하고 있는 Autohotkey 버전은 1.1 버전이다. Autohotkey 2.x 버전은 전용 에디터인 Scite4Autohotkey를 사용하기 어렵기 때문에 1.x 버전을 사용하고 있다. Autohotkey 프로그램은 구글링을 통해서 설.. 더보기
GPTs - alida assistant ChatGPT에서 alida 블로그 관련하여 궁금한 내용을 물어보면 질문에 답해주는 GTPs를 만들었습니다. 포스팅의 내용이 너무 길고 어느 곳에 원하는 정보가 있는지 알기 어려울 때 사용하시면 좋을 것 같네요. 또한 블로그를 보면서 궁금한 점이 있으면 alida assistant에 물어보면 도움을 얻으실 수 있을 것 같습니다 :-) https://chat.openai.com/g/g-irky3iafE-alida-assistant 더보기
WMIC 명령어를 활용한 시스템 분석 - 여러가지 명령어들 1 WMIC 명령어 1.1 os 관련 정보 출력 (간략하게) wmic os list brief /format:list 정보를 html 형식으로 출력해서 확인한다 wmic /output:osinfo.html os get /format:hform 시스템을 종료하거나 리부팅한다 wmic os where "status='ok'" call shutdown wmic os where "status='ok'" call reboot OS의 속성을 확인할 수 있다 (컬럼) wmic os get /? 1.2 cpu 관련 정보 출력 (간략하게) wmic cpu list brief /format:list 1.3 logicaldist 관련 정보를 확인한다 wmic logicaldisk where drivetype=3 get na.. 더보기
Powershell 명령어를 활용한 시스템 분석 - 여러가지 명령어들 1 Powershell 명령어 본 포스팅에 사용한 파워쉘 버전은 5.1버전이다. 1.1 Get-… 1.1.1 Get-Process 프로세스 정보를 확인한다 (gps) get-process [s] 로 시작하는 모든 프로세스를 확인한다 get-process [s]* 어떤 프로세스가 700개 이상의 핸들을 점유하고 있는 지 확인한다 get-process | where handles -gt 700 | sort cpu -descending workingset 메모리가 100M 이상인 프로세스를 확인한다 get-process | where-object {$_.workingset -gt 100mb} | sort pm -descending 프로세스 중 마지막 10개만 정렬해서 htm 문서화한다 get-process |.. 더보기
cmd 명령어를 활용한 시스템 분석 - 여러가지 명령어들 1 cmd 명령어 모든 cmd 명령어는 Windows + R키나 cmd 명령창에서 실행하실 수 있다. 추가적으로 sysinternals 와 nirsoft 명령어 목록도 포스팅에 작성하였다. 1.1 .msc 1.1.1 eventvwr.msc(이벤트뷰어) 1.1.2 gpedit.msc(로컬 그룹 정책 설정) 1.1.3 secpol.msc(로컬 보안 설정) 1.1.4 wmimgmt.msc(WMI 관리자) 1.1.5 certlm.msc (인증서관리자 - 로컬컴퓨터) 1.1.6 certmgr.msc(인증서관리자 - 현재사용자) 1.1.7 fsmgmt.msc(공유폴더) 1.1.8 lusrmgr.msc(로컬 사용자 및 그룹) 1.1.9 printmanagement.msc(프린터 관리) 1.1.10 wf.msc(방화벽.. 더보기
Git 사용법 및 다양한 옵션 설명 1 Introduction 본 포스트에서는 Git의 사용법 및 다양한 옵션들에 대해 설명한다. Git은 코드의 추가/변경/삭제 내역을 추적을 위해 널리 사용되는 버전관리 프로그램이다. 본 포스트에서 설명하는 모든 내용은 우분투 18.04 LTS 버전에서 정상적으로 작동하였다. 2 Environment setup Ubuntu 18.04 LTS 환경에서 git는 다음 명령어를 통해 간단하게 설치할 수 있다. $ sudo apt install git 처음 git을 설치하였다면 commit을 수행했을 때 입력할 작성자의 이름 및 이메일 주소를 설정해야한다. 아래 명령을 터미널에 입력한다. $ git config --global user.email "your email" $ git config --global u.. 더보기
Docker 사용법 및 다양한 옵션 설명 1 Introduction 본 포스트에서는 Docker의 사용법 및 다양한 옵션들에 대해 설명한다. Docker는 컨테이너라는 가상의 이미지를 생성하여 호스트 컴퓨터와 리소스는 공유하지만 별도의 독립적인 프로그램을 돌릴 수 있는 가상화 프로그램이다. 리눅스를 사용하면서 버전 문제로 인해 빌드에 실패해 본 경험이 있는 사용자들에게 Docker를 추천한다. 본 포스트에서 설명하는 모든 내용은 우분투 18.04 LTS 버전에서 정상적으로 작동하였으며 사용한 docker의 버전은 19.03.06 버전이다. 2 Environment setup Ubuntu 18.04 LTS 환경에서 docker는 다음 명령어를 통해 간단하게 설치할 수 있다. $ sudo apt install docker* 2.1 Use docke.. 더보기
gdb 디버거 사용법 및 다양한 기능 설명 1 Introduction 본 포스트에서는 리눅스에서 사용하는 C/C++ 전용 디버거 gdb의 사용법 및 다양한 기능에 대해 설명한다. gdb에는 다양한 기능들이 많지만 본 포스트에서는 간단한 코드 디버깅에 초점을 맞춰서 필자가 주로 사용하는 옵션들에 대해서만 설명한다. 포스트에서 설명하는 모든 내용들은 우분투 18.04 LTS 환경에서 테스트하였다. gdb는 대부분의 경우 우분투에 미리 설치되어 있겠지만 만약 설치되어 있지 않은 경우 아래 명령어를 통해 설치한다. $ sudo apt install gdb 2 Debug with cmake gdb로 디버깅을 수행하기 위해서는 컴파일 당시 디버깅과 관련된 옵션을 설정해줘야 한다. 디버깅 옵션없이 컴파일하는 경우 디버깅 심볼들이 바이너리 파일에 저장되지 않으.. 더보기
tmux 다중터미널 프로그램 사용법 설명 및 환경설정 1 Introduction 본 포스트에서는 리눅스의 다중터미널 프로그램 tmux의 사용법에 대해 설명한다. 포스트에서 설명하는 모든 내용들은 우분투 18.04 LTS 환경에서 테스트하였다. 필자가 생각하는 tmux의 장점은 다음과 같다. 한 프로그램에 여러 개의 터미널을 동시에 띄워놓은 상태로 빠르게 네비게이션하면서 코딩이 가능하다 터미널 작업 도중 detatch하면 백그라운드에서 계속 프로그램이 실행되고 있기 때문에 내가 했던 작업 환경을 나중에 원할 때 attatch해서 그대로 사용할 수 있다 원격에서 리눅스로 ssh 접속을 한 상태로 작업을 할 때, tmux를 사용하면 접속이 끊어지더라도 백그라운드에서 원하는 작업을 계속 실행할 수 있다 원격에서 작업한 tmux 세션을 로컬에서도 접속할 수 있고 반.. 더보기
Emacs 에디터 사용법 설명 및 C++/Python 개발환경설정 1 Introduction 본 포스트에서는 리눅스에서 emacs 에디터를 통해 C++/Python 개발환경을 구축하는 방법에 대하여 설명한다. emacs는 40년이 넘는 오랜 역사를 가지고 있는 에디터이므로 매우 다양한 코드 네비게이션 방법들이 존재하지만 본 포스트에서는 lsp-mode 를 사용하여 코드 네비게이션하는 방법에 대해 설명한다. emacs는 매우 복잡하고 많은 키바인딩으로 유명하다. 이러한 복잡한 키바인딩을 단순화시켜서 편하게 사용하기 위해 필자는 evil 모드를 설치하여 vim 키바인딩을 사용하였으며 대부분의 키바인딩을 Space 키 기반으로 변경하여 손에 부담이 덜 가도록 설정하였다. spacemacs 같이 이미 많은 사람들이 사용하는 Space 키 기반의 emacs가 존재하지만 use-.. 더보기
Vim 에디터 사용법 설명 및 C++/Python 개발환경설정 1. Introduction본 포스트에서는 리눅스에서 vim 에디터를 통해 c++ 또는 python 개발환경을 구축하는 방법에 대하여 설명한다. 본 포스트에서 vim의 코드 네비게이션 플러그인은 youcompleteme 과 vim-lsp 를 사용하였는데 youcompleteme 의 경우 2016년에 등장한 vim-lsp 이전까지는 vim에서 독보적으로 강력한 코드 네비게이션 플러그인이었으나 다양한 프로그래밍 언어를 지원하는 vim-lsp 가 등장하면서 현재는 둘 다 많이 사용하고 있는 상황이 되었다.포스트를 작성하는 시점(2020.09)을 기준으로 youcompleteme 플러그인은 설치하는 과정은 간단하지만 실제로 사용할 때 약간의 세팅이 복잡한 반면, vim-lsp 플러그인은 vim, clang 버전.. 더보기
cmake 사용법 및 다양한 옵션 정리 1 소개 본 포스트에서는 cmake의 사용법 및 다양한 옵션들에 대해 설명한다. cmake는 리눅스, 윈도우, 맥 등 운영체제에 관계없이 하나의 코드만으로 실행 파일을 생성해주는 크로스 컴파일러 프로그램이다. 본 포스트에서는 리눅스 터미널에서 cmake를 사용하는 방법에 한정하여 설명한다. 포스트에서 설명하는 모든 내용들은 우분투 18.04 LTS 환경에서 테스트하였다. 2 환경 설정 터미널에서 아래 명령어를 입력하여 cmake를 설치한다 # Install cmake. $ sudo apt install cmake # Check cmake is installed successfully. $ cmake --help 3 CMakeLists.txt 사용법 해당 섹션에서는 cmake의 명령어와 변수의 의미에 대해.. 더보기
Problem Solving C++ 1 Introduction 본 포스트에서는 알고리즘 문제 풀이에 관련된 내용을 포스팅한다. 대부분의 문제들은 백준에서 풀었으며 검색창에 boj.kr/{#} 를 입력하여 검색할 수 있다. 이 때, # 부문에 문제 번호를 입력하면 된다. ex) boj.kr/2751 코드에서 사용한 #include 헤더는 모든 표준헤더를 포함하는 헤더로써 필자가 테스트한 Ubuntu 18.04 환경에서 정상적으로 컴파일되었다. ios_base::sync_with_stdio(false); cin.tie(0); 위 코드는 시간초과 구문을 피하기 위해 C++의 출력속도를 높이는 코드이다. 또한 속도를 높이기 위해 std::endl 대신 '\n' 를 통해 새 라인을 추가한다. 2 Basic 2.1 2751 수 정렬하기2 #inclu.. 더보기
x11vnc 원격 접속 서버 설치 및 사용법 정리 1 소개 x11vnc 는 원격에서 리눅스 환경으로 접속할 수 있게 해주는 VNC 서버 프로그램이다. Ubuntu 16.04 LTS 환경에서 쉽게 설치 및 사용할 수 있어서 vnc 서버 프로그램으로 주로 사용된다. 본 포스트에서는 설치 방법 및 다양한 옵션들에 대해 설명한다. 2 설치 x11vnc 는 터미널을 연 상태에서 아래의 명령어를 통해 쉽게 설치할 수 있다. sudo apt-get install x11vnc 3 daemon 서비스 등록 x11vnc 를 daemon 서비스로 등록하면 PC가 재부팅될 때도 프로그램이 자동으로 백그라운드에서 실행된다. 따라서 매번 부팅 때마다 서버 프로그램을 시작하지 않아도 된다. /lib/systemd/system 폴더에 x11vnc.service 파일을 아래와 같이 .. 더보기
TI-Nspire-CX-CAS 계산기 사용법 및 다양한 기능 설명 1 소개 TI-Nspire CX CAS 계산기는 단순한 사칙연산 연산 외에도 행렬 연산이나 미분, 적분, 삼각함수 등 공학에서 사용하는 대부분의 연산을 수행할 수 있는 강력한 공학용 계산기이다. TI-Nspire를 잘 활용한다면 MATLAB이나 기타 수학 소프트웨어 못지않은 강력한 기능을 사용할 수 있다. 안에는 거의 모든 수학에 대한 기능들과, 제어공학, 확률과 통계, 벡터, 행렬, 대수, 삼각함수, 미분과 적분, 경제수학 관련 함수 등등 엄청나게 많은 함수들이 내장되어 있다. 필요하다면 프로그래밍을 통해 새로운 기능을 이식할 수 있다. 해외 커뮤니티에서는 유저들이 직접 프로그래밍한 다양한 스크립트들을 공유하는 사이트 또한 존재한다. 2 기본 명령어 기본적인 단축키는 윈도우 단축키와 유사하다. ctrl.. 더보기