본문 바로가기

분류 전체보기61

'윈도우 11'에서 바탕화면 휴지통 없애기 Windows 11로 업그레이드를 하였다. 클린 설치를 하였더니 이전에 하였던 모든 설정들을 다시 해주어야 했다. 이 글은 그중 하나였던 '바탕화면의 휴지통 없애기'에 대한 글이다. 설정 > 개인설정 > 테마 > 바탕화면 아이콘 설정으로 들어가 준다. 그리고 휴지통을 '체크해제' 한 후 '적용'을 누르면 된다. 1. 설정 Window + x를 누르면 아래와 같은 모습을 볼 수 있는데, 여기서 '설정'을 선택하자. 2. 개인설정 > 테마 개인설정을 선택한 후 테마를 선택해준다. 3. 테마 > 바탕화면 아이콘 설정 바탕화면 아이콘 설정을 클릭해주자. 4. 휴지통 체크 해제 후 적용 위에서 바탕화면 아이콘 설정을 클릭하면 아래 창이 뜬다. 이 창에서 '휴지통'의 체크를 해제하고 '적용'을 눌러준다. 이후 바탕.. 2021. 11. 1.
wait, waitpid의 사용 Parent process는 wait, waitpid를 사용하여 자신이 생성한 child process들이 종료되기 전까지 기다려 줄 수 있다. 또, 자식들이 어떻게 종료되었는지와 child process가 종료 할 때의 반환한 값도 알 수 있다. wait wait의 사용법을 먼저 알아보자. wait는 아래와 같은 모습으로 사용할 수 있다. wait(int* status) 인자 status : 종료 상태를 담을 포인터이다. 받을 필요가 없다면 0을 입력한다. 반환 값 pid : 성공시 종료된 child process의 pid 값 -1 : 실패시 -1 wait는 child process가 종료될 때까지 기다렸다가 child process가 종료되면 종료된 child process의 값을 반환한다. 만약 실.. 2021. 10. 19.
fork 사용하기 fork를 사용하여 새로운 프로세스를 만들 수 있다. fork() 시스템 콜에 대해 알아보자. fork fork를 사용하면 현재 프로세스와 거의 같은 프로세스를 하나 더 생성할 수 있다. 생성된 자식 프로세스의 메모리 영역은 parent process의 메모리 영역을 복사한 것이기 때문에 fork() 이전에 parent process에서 존재하던 어떤 변수를 fork() 이후 child process에서 값을 변화시킨다 하더라도 값이 변하지 않는다. 아래는 fork 시스템 콜에 대한 사용법이다. fork() 인자 : 없음 반환 값 0 : fork()가 성공하면 child process에 반환된다. pid 값 > 0 : fork()가 성공하면 parent process에 생성된 child process의 .. 2021. 10. 17.
sigprocmask을 사용하여 signal block 하기 리눅스에서는 프로세스에 Signal을 전달할 수 있다. 그리고 프로세스는 이 Signal에 의한 처리를 막기 위해 원하는 Signal을 Block 할 수 있다. 이를 가능하게 하는 것이 sigprocmask이다. sigset_t 우리는 원하는 Signal을 block 하기 위하여 특정 구조체를 사용하여야 한다. 그 구조체는 sigset_t이다. 사실 sigset_t의 구조는 그리 복잡하지 않다. 정수형 자료형의 배열이라고 생각해도 무관하다. 비트마스크를 사용하기 때문에 사용되는 Signal의 종류 수만큼의 비트 수가 필요하다. kill -l 명령어를 통해 어떤 signal이 몇번인지 볼 수 있다. $ kill -l 1) SIGHUP 2) SIGINT 3) SIGQUIT 4) SIGILL 5) SIGTRA.. 2021. 10. 16.
Merge Sort (합병 정렬) Merge Sort는 배열의 값을 정렬하는 여러 가지 방법 중에 하나이다. Merge Sort는 정렬이 된 부분 배열들을 합쳐가면서 정렬을 수행한다. 정렬이 된 배열들을 합친다는 것이 Merge Sort의 핵심 아이디어이다. 이 아이디어를 이용하여 어떻게 전체 배열에 대해 정렬을 수행할 수 있을까? Merge Sort (합병 정렬)로 배열을 정렬하는 방법에 대해 알아보자. 참고로 이 글에서는 오름차순으로 정렬할 것이다. Merge 정렬에 대해 생각하기 전에, 정렬이 된 두 배열을 합치는 작업에 대해 생각해보자. 함수 merge가 이 작업을 수행한다고 해보자. merge의 입력으로 들어오는 두 배열은 이미 정렬이 되어 있어야 하고 반환하는 결과물도 정렬이 되어 있어야 한다. 사실, 두 배열이 정렬이 되어있.. 2021. 9. 17.
컴퓨터와 가위바위보 하기 1 컴퓨터와 '가위 바위 보' 게임을 해보기로 했다. 컴퓨터와 게임을 하기 위해 프로그램을 만들어본다. 간단하게 한판 하는 프로그램 간단하게 '가위 바위 보' 게임을 한판만 하는 프로그램을 제작해보자. 이 경우 게임의 진행순서는 대략 다음과 같을 것이다. 사용자에게 '가위, 바위, 보' 중 하나의 입력을 받는다. 컴퓨터도 세 개의 값 중 하나를 고른다. 사용자가 고른 값과 컴퓨터가 고른 값을 비교하여 승, 패 여부를 확인한다. 사용자에게 결과를 출력한다. 사용자로부터 입력받기 사용자에게 가위, 바위, 보를 선택하게 하는 방법은 여러 가지가 있다. 버튼을 만들어 하나를 선택하게 할 수도 있고, 키보드로 입력을 받을 수도 있으며, 음성 혹은 카메라로 입력을 받는 방법도.. 2021. 8. 12.
python argparse를 사용하여 커맨드 라인 인자 처리하기 python을 notebook형식이 아닌 .py 파이썬 파일 형식으로 커맨드상에서 실행하는 경우들이 존재한다. 이 경우 프로그램 실행 시에 커맨드 라인상에서 인자를 전달해야 하는 경우가 있다. 예를 들어 아래와 같이 커맨드에서 실행하도록 한다고 해보자. python train.py resnet 또는 더 많은 인자를 주어서 아래 처럼 실행하는 것도 가능하다고 하자. python train.py resnet --epochs 777 --batch-size 64 --epoches, --batch-size는 타이핑하기 길기 때문에 -e, -b로 짧게 인자를 넘기는 것도 가능하게 하고 싶다. python train.py resnet -e 777 -b 64 위처럼 작동하게 하고 싶다면, 커맨드 라인 (command .. 2021. 8. 4.
python functools.partial 사용 partial을 사용하여 인자가 여러 개인 함수에 몇 개의 인자가 이미 설정되어있는 새로운 함수를 생성할 수 있다. 그런데 언제 필요할까? multiprocessing.Pool의 map()은 함수를 인자로 받는다. 그 함수는 인자가 하나여야 한다. 하필 내가 사용해야 하는 함수는 인자를 여러 개를 받는데, map()에서 실행하는 경우 인자 중 하나를 제외하고 계속 동일한 값이 들어가는 경우라면? partial을 이용하면 그 하나의 인자를 제외한 나머지 인자들을 고정한 함수를 만들 수 있다. 이 방법으로 새로운 함수는 인자를 하나만 받게 하여 map()에서 사용할 수 있도록 한다. partial의 간단한 사용법 사용법이 매우 간단하다. from functools import partial 아래 두 수를 곱.. 2021. 7. 22.
Matplotlib로 subplot을 생성하고, 겹치지 않게 하기 matplotlib를 사용하면서 subplot을 만들어야 하는 상황이 생긴다. subplot(), add_subplot(), subplots() 이 세 개의 함수은 subplot을 만드는데 쓰인다. 사용법의 차이를 알아보기 위하여 아래 x로부터 생성된 y1, y2, y3를 각기 다른 방법으로 subplot에 그려보았다. import numpy as np import matplotlib.pyplot as plt x = np.arange(0,5,0.1) y1 = np.cos(x) y2 = np.exp(x) y3 = y1 * y2 plt.plot(x,y1) plt.show() plt.plot(x,y2) plt.show() plt.plot(x,y3) plt.show() Subplot 만들기 pyplot.subp.. 2021. 7. 17.
공공 데이터 포털에서 "공휴일" 정보 받기 공휴일을 모아놓은 데이터가 필요할 때가 있다. 어떤 데이터에 날짜가 포함되어있는데 우리가 예측하려는 값이 휴일과 관계가 있을지도 모르기 때문이다. 공공 데이터 포털에서는 공휴일 정보를 받을 수 있는 api도 제공하고 있다. 이 api를 사용해 보자. API 사용 전 준비 회원가입 Api를 사용하기 전, 공공데이터 포털에서 회원가입을 하여야 한다. 공공데이터 포털 우측 상단에 회원가입 버튼을 눌러 회원가입부터 진행해 주자. 활용신청 Api 활용신청을 해주자. 우리가 사용할 데이터는 한국 천문연구원의 특일정보 데이터이다. 데이터 검색화면에 특일로 검색하여 특일정보 데이터의 활용신청을 해주자. 검색 검색결과 활용신청 활용 신청 후 승인이 되었다면 마이페이지 > 개발계정에서 다음과 같은 화면을 볼 수 있다. 여.. 2021. 7. 15.