콘텐츠로 건너뛰기
Home » 21세기소년

21세기소년

21세기소년 / IT / 정보기술 / 인터넷 / 프로그래밍 / 미래 / 과학 / 과학지식 / 물리 / 화학 / 천문 / 생물학 / 이과생이나 관심가질 법한 자질구레한 이야기들

AHK – 탐색기 파일 확장자 숨김/표시 전환

윈도 탐색기에서 파일 확장자를 표시하거나 숨기는 설정은 레지스트리의 값에 저장된다. 이 값을 변경한 후 F5키를 눌러서 탐색기의 화면을 새로 고침하면 변경 사항은 즉시 적용된다. 해당 키는 HKEY_CURRENT_USER\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Advanced 아래에 있는 HideFileExt 로 REG_DWORD 타입의 값으로 이 값이 1이면 숨김, 0이면 표시이다. 탐색기에서 Win + Y 키를 눌러서 이 설정을 즉시 변경할 수 있는 기능을 AutoHotKey를 통해서 만들어 보자. 아래 스크립트는 AHK v2용이다. 위 스크립트를 실행한 상태에서 탐색기 화면에서 Win+Y 키를 누르면 파일 확장자가 보였다/숨겨졌다 하는 것을 확인할 수 있다. 비슷하게 탐색기에서… 더 보기 »AHK – 탐색기 파일 확장자 숨김/표시 전환

윈도 재설치에 대한 기록

코로나로 인해 본격적으로 재택근무를 시작하게 된 재작년에 8년정도 사용한 아이맥이 맛이갔던 관계로 급히 데스크탑 PC를 따로 주문했다. 당시에는 PC 수요가 많아서 한참 PC가격이 오르고 있던 때라, 원격 데스크톱만 구동이 되면 상관없다고 생각해서 가장 저렴한 견적으로 조립했었다. 이때 256MB 용량의 SATA 방식 SSD를 구매했는데, 이것 저것 설치하고 만들고 하다보니 어느덧 70% 정도 용량을 사용했다. 게다가 습관적으로 이걸 다시 5 : 2 정도의 비율로 드라이브 2개로 나눠서 사용하다보니 C드라이브 용량의 압박이 점점 심해졌다.

하여, SSD 증설을 해야겠다고 마음먹고 케이스를 열어보니 NVMe 방식 SSD를 설치할 수 있는 M.2 슬롯이 하나 있는게 아닌가? SATA 드라이브를 하나 더 다는 것 보다는 NVMe 드라이브를 연결하는 것이 더 빠르다는 이야기가 있으니까 이것은 단순히 새 SATA 드라이브를 하나 더 다는 대신 더 빠른 새 디스크에 윈도를 재설치하라는 계시로 받아들일만 했다.(그리고 지금 설치된 윈도는 윈도10으로 설치해서 윈도11으로 업그레이드를 한 것이라, 깔끔하게 새로 설치하고 싶었다. 물론 기존 OS에서 업그레이드했다고 해서 별 문제가 되지는 않는다. 늘 그렇듯이 이런 결정은 그냥 기분 문제이다.)

사실 PC를 포맷하고 재설치하는 일련의 작업들은 컴퓨터를 사용해온 시간이 오래된 만큼, 어느 정도는 익숙한 일이기는 하다. 그래도 또 최근 몇년간은 맥만 사용하다보니 살짝 헤맨 부분도 있고 당시에 뭔가를 선택하면서도 잘 모르겠지만 일단(?) 진행해서 운좋게 성공한 것들이 좀 있어서, 그런 점들을 확인하고 기록해두고 싶어서 재설치 과정을 정리해둔다.

더 보기 »윈도 재설치에 대한 기록

정적/공유 라이브러리 만드는 법

정적 라이브러리 정적 라이브러리는 컴파일된 코드, 즉 오브젝트들의 모음이라고 이해할 수 있다. 컴파일러로 생성한 오브젝트 파일을 ar 명령을 사용해서 하나의 파일로 아카이브를 만들면 정적 라이브러리를 생성할 수 있다. 정적 라이브러리를 사용할 때에는 -L ./ -lmylib 과 같은 식으로 -L, -l 스위치를 사용해서 라이브러리 경로와 파일을 지정하여 컴파일하면 된다. 이렇게 컴파일한 프로그램에는 라이브러리가 실행파일에 통째로 포함되기 때문에 라이브러를 함께 배포할 필요가 없다. (대신 그만큼 실행파일의 크기가 그만큼 커진다.) sqlite3 소스를 받아서 아래와 같은 식으로 정적 라이브러리를 만든 후 실행파일을 만들 수… 더 보기 »정적/공유 라이브러리 만드는 법

텔레그램 API로 채널에 메시지 보내기

파이썬에서 텔레그램 API를 사용하여, 특정 채널에 메시지를 보내는 방법을 알아봅시다. API를 통해서 메시지를 게시하려는 채널이 있다면, 텔레그램에서 새로 봇 하나를 만들고, 이 텔레그램 봇을 해당 채널의 관리자로 추가해줍니다. 이렇게 해 두었다면 API를 사용하여 봇으로 하여금 채널에 메시지를 보낼 수 있게 됩니다. 채널 뿐만 아니라 대화 ID만 알고 있다면,1:1 대화나 그룹대화에도 메시지를 보낼 수 있습니다. 오늘은 이 과정을 하나씩 따라가면서 살펴보겠습니다. 봇 생성하기 봇의 생성은 텔레그램 앱에서 할 수 있습니다. 모바일 앱 외에 PC용 텔레그램에서도 똑같이 할 수 있습니다. 텔레그램에서 제작한… 더 보기 »텔레그램 API로 채널에 메시지 보내기

라이트세일 인스턴스 업그레이드 및 설정

월 5천원 정도 하던 국내 호스팅 서비스를 쓰다가, 저장 공간의 압박이 너무 커서 여기 저기로 옮겨 다니다 라이트세일에 정착한 것이 대략 2018년이다. (그 전에 해외 호스팅을 사용해봤는데, 얘들은 처음 1년 혹은 몇 달은 저렴하게 프로모션하지만, 그 이후로 요금은… 흠..) 처음 2년반 넘게 사용하는 동안에는 불편함이 없었는데, 워드프레스가 버전업이 되면서 무거워져서 그런지 점점 느려진다는 느낌이 들었다. 또, 번거롭게 설치하는 일 없이 사용하려고 bitnami 인스턴스를 사용했는데, 문제는 bitnami 스택에서 php만 업그레이드한다거나 하는 것이 어려웠다.

더 보기 »라이트세일 인스턴스 업그레이드 및 설정

텍스트 오브젝트

vim의 가장 독특한 기능 중 하나를 꼽으라면 “텍스트 오브젝트”를 취급하는 기능입니다. 예를 들어 di) 같은 명령으로 괄호 내부의 텍스트를 삭제하거나, dd 를 사용하여 한 줄 전체를 지우는 것 등이 있습니다. 이러한 동작을 커스텀 함수를 통해서 사용할 수 있을까요?

더 보기 »텍스트 오브젝트

브라우저에서 PDF 파일이 열리지 않을 때

PDF 문서가 어느 새 보편적으로 사용되면서 파이어폭스나 구글 크롬, 엣지와 같은 웹브라우저들도 자체적으로 PDF 파일을 렌더링할 수 있는 기능을 지원하고 있어서, 별도의 뷰어 프로그램이 없어도 이제 PDF 파일은 어디서든 쉽게 열 수 있는 문서 형식이 되었다. 그런데, 어느 날 갑자기 웹브라우저에서 잘 열리든 PDF 파일이 더 이상 열리지 않는 증상이 생기는 경우가 있다. 이 문제는 사실 같은 원인임에도 두 가지 증상으로 나타나는 것 같다. 디스크에 저장된 PDF 파일을 “다음으로 열기..” 를 통해서 브라우저로 열려고 하거나, PDF 파일을 브라우저로 끌어다 놓았을 때 파일이 열리지 않고 다음과 같이 작동하고 있었다.

  • 문서 내용을 표시하는 대신, 문서 파일을 다운로드 하는 것처럼 작동해서 파일의 복사본이 다운로드 폴더에 저장된다.
  • 다운로드를 하지 않으면서 브라우저에 빈 공간이 표시된다.

이 문제는 주로 구글 크롬 및 이와 동일한 엔진을 사용하는 마이크로소프트 엣지, 오페라에서도 공통으로 발견되며 나의 경우 파이어폭스에서는 여전히 정상적으로 PDF 파일이 열리고 있었다. 이 문제를 어떻게 해결할 수 있는지 살펴보자.

더 보기 »브라우저에서 PDF 파일이 열리지 않을 때

대용량 데이터와 엑셀 파일

엑셀과 같은 프로그램을 스프레드 시트라고 한다. 스프레드 시트는 개념상 무한히 큰 종이를 행과 열로 나누고 여기에 데이터와 수식을 넣어서 표를 계산하거나 데이터를 분석하는 프로그램을 말한다. 하지만 ‘무한히 큰 종이’는 말 그대로 개념적인 것이며, 실제로 컴퓨터의 메모리는 유한하기 때문에 스프레드 시트의 크기 역시 실제로는 유한한 크기를 갖는다.

더 보기 »대용량 데이터와 엑셀 파일

vim에서 scss 파일을 컴파일하기

typescript나 scss 처럼 다른 언어로 컴파일하는 스크립트를 작성하고, 이 결과를 별도의 창에서 확인하는 기능을 vim에서 구현하는 방법을 알아보자. 기본적으로 vim에서는 :r 명령을 사용하면 쉘을 통해 실행한 외부 명령의 출력을 현재 버퍼로 가져오는 것을 수행할 수 있다. 그 외에도 job을 이용한 비동기 방식의 처리도 가능하고 아예 vim 내에 터미널 창을 만들어서 실행하는 방법등 여러 방법이 있다. 오늘은 이러한 방법을 사용해서 vim에서 scss를 컴파일한 결과를 보여주는 방법에 대해서 살펴보겠다.

더 보기 »vim에서 scss 파일을 컴파일하기
Pages: 1 2

워드프레스에 jupyter notebook 삽입

워드프레스 포스트에 Jupyter notebook을 삽입하는 방법을 알아보겠습니다. 가장 손쉬운 방법은 Github Gist 에 정적 HTML로 변환한 파일을 업로드하고 해당 Gist를 포스트에 삽입하면 되는 것입니다. 로컬에서 작성한 ipynb 파일을 업로드해도 되지만, Google Colab을 사용하면 Gist로 저장하는 일을 좀 더 간편하게 할 수 있습니다.

더 보기 »워드프레스에 jupyter notebook 삽입