콘텐츠로 건너뛰기

스페이스 키를 두 번 연타하여 엔터키로 만들기

작가와 같이 일반인들과 비교도 할 수 없을만큼 많은 글을 타이핑하는 분들은 흔히 오른쪽 새끼 손가락의 통증을 호소하는 분들이 많습니다. 아무래도 한글의 경우, 오른쪽 쉬프트 키의 사용이 잦은데다 엔터키도 많이 누르게 되니 오른손 새끼 손가락을 그만큼 많이 혹사하게 되는 것이죠. 그래서 스페이스 바를 두 번 연타하면 엔터로 작동하면 좋겠다는 생각을 하시는 분들이 종종 있는 것 같습니다. 그래서 오늘은 오토핫키를 사용해서 스페이스 키를 두 번 연타하여 엔터키로 만드는 방법에 대해서 알아보도록 하겠습니다.

더 보기 »스페이스 키를 두 번 연타하여 엔터키로 만들기

엑셀 수식 사용법

엑셀은 기본적으로 표 형식의 데이터를 관리하는 프로그램입니다. 입력된 데이터를 가공하여 원하는 정보를 추출하거나 계산해내는 것부터 특정한 기준으로 데이터를 분류, 분석하고 다양한 차트를 통해 시각화하는 기능까지 일상적인 사무 업무에서 데이터를 다루는 일에는 (너무 대용량의 데이터만 아니라면) 거의 모든 분야에서 사용될 수 있습니다. 그 덕분에 많은 직장인들의 필수적인 도구로 자리잡고 있습니다.

엑셀을 활용하는 여러 가지 스킬이 있지만, 그 중에서도 수식을 사용하는 것이 가장 기본적인 능력입니다. 우스개처럼 말하는 ‘엑셀 팡션’은 결국 수식을 통해 사용됩니다. 오늘은 엑셀에서 수식을 입력하는 방법에 대해서 살펴보겠습니다.

더 보기 »엑셀 수식 사용법

ASCIIMATICS TUI – 샘플 앱 예제

지금까지 우리는 몇 개의 글을 통해 asciimatics의 기본적인 사용법과 이 라이브러리를 사용하여 TUI를 구성하는 방법에 대해서 살펴보았습니다. 그리고 여기에 데이터 모델을 연결하기 위한 기초작업은 어떻게 준비하는지도 알아보았습니다. 오늘은 이러한 내용들을 바탕으로 간단한 앱을 만들어 보겠습니다. TODO 앱 우선 간단한 할일의 목록과 완료여부를 표시할 수 있는 Todo 앱을 만들어봅시다. 기본적으로 등록된 작업의 목록과, 새 목록을 등록할 수 있는 UI를 하나의 화면에 추가합니다. 작업 목록에서 하이라이트된 항목을 선택(Enter 키 누름)하면 완료 여부가 반전되어 표시되도록 하고, 목록에 아래에는 텍스트 필드와 추가 버튼을 두어… 더 보기 »ASCIIMATICS TUI – 샘플 앱 예제

파이썬 3.12에서 GIL 없는 병렬처리 도입 계획

최근 발표된 파이썬 3.11은 이전 버전 대비 10~60% 이상의 성능 향상을 보여 화제가 되었습니다. 뭐 파이썬이 원래 느려 먹어서 그정도는 쉽게 되는 거 아니냐는 사람들도 있는데, 파이썬3는 이미 파이썬 3.8부터 파이썬2보다 빠르다고 평가를 받아왔고, 계속해서 10% 가량의 성능을 개선해오다가 3.11에서 향상 폭이 커진 것입니다. 표준 파이썬 구현체의 비약적인 성능 개선을 위해 Faster CPypthon이라는 별도의 프로젝트가 기획되었고, 3.10부터 결과물이 나오고 있는 것입니다. 이 프로젝트의 3.12 버전에 대한 이 프로젝트의 목표 중 하나에 관심이 가는데, 그것은 진정한 멀티 스레드 병렬작업을 가능하게 하겠다는… 더 보기 »파이썬 3.12에서 GIL 없는 병렬처리 도입 계획

ASCIIMATICS TUI – 데이터 다루기

입력필드나 드롭다운 메뉴 같은 UI들은 실제로는 어떤 값을 화면에 표시하기 위해 사용됩니다. 지금까지 asciimatics를 사용하여 UI를 구성하는 방법을 살펴보았는데, 앱이 다루는 실제 데이터와 UI가 어떻게 연결되고, 어떤 식으로 사용해야 하는지에 대한 내용은 아직 이야기 하지 않았습니다. 이제서야 이 이야기를 할 순서가 된 것 같습니다. 오늘은 asciimatics로 TUI를 구현할 때, 데이터를 연동하는 방법에 대해서 살펴보겠습니다. asciimatics의 애니메이션 기능을 설명하면서, 이 라이브러리는 애니메이션 구축 측면에서는 실제 애니메이션 영화를 제작할 때 사용하는 스토리보드 기법을 차용했다고 했습니다. 그리고 UI를 구성하는 측면에서는 모델과 뷰를 구분합니다.… 더 보기 »ASCIIMATICS TUI – 데이터 다루기

컴퓨터에서의 반올림 규칙

대부분의 프로그래밍 언어에서는 사칙연산을 포함한 기본적인 산술 기능이나 고급 수학 함수들을 제공합니다. 그리고 여기에 올림이나 내림, 반올림 같은 정밀도와 관련된 기능도 포함됩니다. 숫자를 포맷팅하는 기능을 제공하는 언어는 어떤 숫자값을 소수점 아래 몇 자리까지 표현하는 포맷을 적용할 때 기본적으로 반올림 기능을 사용합니다. 그런데 컴퓨터에서 사용하는 반올림 기능와 우리가 학교에서 배워서 알고있는 반올림이 좀 다른 규칙이라는 건 알고 있나요? 아니, 반올림이 동네마다 다른 규칙을 쓴다니, 그건 어느 동네 수학이죠? 암튼, 컴퓨터에서 부동소수점 소수값을 정수로 변환하는 규칙에 관한 국제 표준이 있습니다. 우리가 학교에서… 더 보기 »컴퓨터에서의 반올림 규칙

Python 101 – 클래스

이 글을 읽으시는 파이썬을 공부하는 여러분은 아마도 들어보셨겠지만, 파이썬은 객체 지향 언어입니다. 객체 지향 언어는 객체 지향 프로그래밍이라는 패러다임을 따르는 방식으로 설계된 언어입니다. 그리고 클래스는 어떤 객체를 정의해놓은 청사진과 같다고들 합니다. 그래서 클래스가 무엇인지를 이해하려면 먼저 객체가 무엇인지를 알아야겠네요. 위키 백과에서 객체에 대해 찾아보면 다음과 같은 설명을 찾을 수 있습니다.

컴퓨터 과학에서 객체 또는 오브젝트(object)는 클래스에서 정의한 것을 토대로 메모리에 할당된 것으로 프로그램에서 사용되는 데이터 또는 식별자에 의해 참조되는 공간을 의미하며, 변수, 자료 구조, 함수 또는 메소드가 될 수 있다.

여러 편집자들이 고민하여 작성한 설명이겠지만, 이 설명만 들어서는 객체가 무엇인지 알기가 어렵습니다. 사실 객체의 개념은 워낙 추상적이라 일상의 언어로 정확하게 설명하기란 어렵습니다. 그래서 대략의 어설픈 이해를 바탕으로 접근해서, 객체가 어떤 식으로 사용되고 또 어떻게 만들 수 있는지를 받아들이는 편이 좋을 듯 합니다. 사실 학문적으로 엄밀하고 정확한 이해보다는 어떻게 만들고 사용할 수 있는지를 아는 것이 더 중요하니까요.

더 보기 »Python 101 – 클래스

ASCIIMATICS로 UI를 구성하는 방법

지난 글에서 asciimatics를 사용하여 간단한 애니메이션을 만드는 예를 보면서, 애니메이션을 구성하는 요소들에 대해 알아보았습니다. 그리고 이 애니메이션을 구성하는 요소들이 UI에서는 어떤 식으로 대응하는지를 간략하게 언급했습니다. 이를 다시 정리해보면 다음과 같은 원리들이 보입니다. 애니메이션처럼 UI를 갖춘 앱도 여러 개의 화면을 가질 수 있습니다. 메모앱이나 연락처와 같은 앱을 생각하면 목록화면과 내용 편집 화면의 두 개의 화면이 필요할 것입니다. 이러한 화면들은 각 화면이 하나의 장면(Scene)에 대응합니다. 각 화면은 적어도 1개 이상의 창을 포함할 것입니다. 각각의 창은 프레임(Frame)이라는 클래스를 서브클래싱하여 구현합니다. 이 Frame은 다시… 더 보기 »ASCIIMATICS로 UI를 구성하는 방법

파이썬 추상 클래스로 Comparable 타입 선언하기

파이썬에서 타입 어노테이션을 붙일 때, 제네릭 타입에 대해서는 typing.TypeVar 를 사용하면 일반적인 타입 T를 가정하고 정의할 수 있습니다. 그런데 이러한 타입 T에 대해서 특정한 성질을 만족하게끔 하는 조건을 넣고 싶은 경우가 있습니다. 예를 들어 리스트에 대한 버블 정렬 기능을 함수로 구현한다고 하면, 인자의 타입은 list[T] 와 같이 타입 T를 원소로 하는 리스트라고 명시할 수 있는데, 이 때 정렬을 위해서는 순서나 대소를 비교할 수 있어야 하므로, 타입 T 는 x > y 와 같이 대소를 비교할 수 있는 타입이어야 합니다. 파이썬에서는… 더 보기 »파이썬 추상 클래스로 Comparable 타입 선언하기

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

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