만족은 하되 안주하지는 말자

기록해야 기억한다

프로그래밍/ETC 8

[intelliJ] 단축키 알려주는 플러그인

강의 등을 보다보면 다른 분들이 단축키를 누를 때마다 하단에 어떤 단축키인지 알려주는 기능이 있었다. 깔아봐야지~ 하다가 그동안 잊고 살았고... 사내 클린코드 강의를 들으며 이게 떠올라서 이번 기회에 설치해보고자 했다. Key PromoterX 설치 intelliJ 에서 shift 2번 -> plugins.. -> 'key promoter' 검색 해당 플러그인을 설치하고 Restart IDE 를 눌러 재시작 해보자. 우클릭 -> generate 를 눌러보자. 오른쪽 하단처럼 해당 기능의 단축키인 'cmd+N' 을 사용하라고 안내해준다. 그런데, 뭔가 허전하다.. 저 안내문은 다른 인텔리제이 알림이랑 똑같아서 너무 반복되는 알림때문에 정작 중요한 알림이 뜨면 보지 않게 될 것 같다! 알림을 좀 더 아름답..

프로그래밍/ETC 2021.03.23

[hyperledger-fabric] hyperledger fabric 1.4 설치 및 실행 가이드

hyperledger - fabric 을 해보고자 하는 사람들에게 도움이 될 수 있길 바라는 맘에 쓴, 하이퍼레저 패브릭 설치 v1.4 가이드 입니다. AWS EC2 ubuntu 18.04 버전을 기준으로 하고 있습니다. 시작 sudo apt update -y sudo apt upgrade -y git --version # 없으면 설치 git clone -b release-1.4 --single-branch https://github.com/hyperledger/fabric-samples.git 위 명령어는 fabric-sample 의 여러 브랜치 중, 버전1.4 브랜치만 가져오는 명령어 입니다. 따라서 다른 버전을 하고싶다면 https 주소 앞에 부분은 지우면 됩니다. git 설치하는 법은 다른 곳을 ..

프로그래밍/ETC 2020.09.20

[UNIX] signal() 함수와 signal handler 를 사용해보자

SIGNAL? Signal 은 비동기적 이벤트에 대한 handling(처리) 를 가능하게 만든다. 모든 Signal 은 이름이 있다. 그리고 이 이름들은 모두 정수로 연결되어있다. signal(SIGNAL, sigHandlerFunc); 첫번째 인자로는 처리하고자하는 Signal 이름, 두번째는 해당 시그널이 들어왔을때 내가 하고자 하는 내용을 담은 함수를 넣어준다. 이 때 이 함수는 integer 변수 1개를 인자로 받는 void 함수이어야 한다. SIGFPE 를 처리하는 함수 예제 #include #include static void sig_fpe(int); int main(){ pid_t pid; int i; signal(SIGFPE, sig_fpe); i = i/0; } static void si..

프로그래밍/ETC 2020.06.04

[VScode] Putty 말고 VScode 로 ssh 서버 원격 접속하기

학교 리눅스 서버를 이용할때 항상 Putty 를 사용해왔는데, 이러면 GUI 기반이 아니라 CLI 기반으로 모든 작업을 해야하기 때문에 리눅스가 익숙치 않은 (특히 저학년) 대학생들에겐 코딩 이전에 커맨드 익히기부터가 힘들다. (물론 MobaXterm, FTP 프로그램 등을 이용하면 많이 편리해지긴 하지만) vi 에디터의 지옥같은 편집방법으로 맨날 과제 제출을 위해 :wq 를 누르던 나는 4학년이 되어서야 vscode를 이용한 ssh 접속을 사용하게 되었다... SSH 접속 방법 먼저 필요한 Extension 을 설치한다. 왼쪽의 숏컷 아이콘 중 Remote 아이콘을 누르고 원격탐색기를 SSH Target으로 변경. SSH target 탐색기에 커서를 갖다대면 +버튼이 생기는데 이를 누르면 아래와 같다...

프로그래밍/ETC 2020.04.26

[VScode] WSL VScode 에서 g++11 디버깅하기

WSL ubuntu 14.04 LTS 버전은 디폴트 디버깅 버전으로 g++99 를 지원한다. vector를 초기화할때 vector vec{1,2,3,4}; 와 같이 초기화하고싶지만 g++11 이하의 버전에서는 위같은 형식이 허락되지 않는다. 방법은 매우 간단하다. CLI 에서 치던 명령어를 tasks.json file에 그대로 집어넣으면된다. 이게 기본 tasks.json 이다. 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 { "tasks": [ { "type": "shell", "label": "g++ build active file", "command": "/usr/bin/g++", "args": [ "-g", "${file}", "-o", "${fileDir..

프로그래밍/ETC 2020.04.18

[파이썬] 숫자야구 만들기

게임 룰: 컴퓨터가 랜덤으로 정한 중복없는 3개의 연속된 수를 위치까지 정확히 맞춰야 함. (= 3스트라이크) 숫자가 존재하나 위치가 다를 시 : 볼 숫자가 같고 위치까지 동일 시 : 스트라이크 승리조건: 10회 안에 3 스트라이크를 달성 패배조건: 10회 안에 성공하지 못하는 경우. 3개의 숫자와 위치가 모두 다른 OUT이 3회 생길 경우. ## 입력에 예외 발생 시에도 시도 횟수가 그대로 증가함. 그걸 처리 못했다.

프로그래밍/ETC 2019.12.25

[운영체제] 프로그램과 프로세스의 차이, 프로세스와 스레드의 차이

프로세스와 쓰레드의 차이는 무엇인가. 혹은 프로세스는 무엇이고 쓰레드는 무엇인가. 동아리 면접 때도 물어본 질문인데 이번에 운영체제 공부를 하면서 희미했던 그 차이를 조금은 명확히 머릿속에 그릴 수 있었다. 프로그램? 디스크에 저장되어있는 일련의 명령어들의 집합 이 자체로는 프로세스라 할 수 없다. 그럼 프로세스란 무엇인가? 그러면 프로세스란? 그 '프로그램'이 메모리(DRAM) 에 적재되어 실행 중인 프로그램이 프로세스이다. 말하자면 프로그램은 실행중이지 않은, 동작되고 있지 않은 정적인 개체 프로세스는 실행중이기 때문에 동적인 개체라고 나누어 표현할 수 있다. 스레드란? 프로세스 내의 하나의 실행의 흐름 단위 멀티프로세싱(Processing) 과 멀티스레드(Thread) 멀티스레딩은 하나의 프로세스 ..

프로그래밍/ETC 2019.11.16