sooop

sooop

ABC

메타 클래스와 추상 클래스

사실 ‘객체 지향’이라는 단어는 프로그래밍 관련 커뮤니티나 여러 글에서 어렵지 않게 접하게 되지만, 객체 지향 프로그래밍에서 가장 중요하다고 하는 ‘클래스’의 개념을 명확하게 이해하기는 쉽지 않습니다. 애초에 추상적인 개념이니 명확하게 이해하는 것이 이상한 거라고 봐야 할까요? 그런데 파이썬이나 다른 객체 지향 언어를 공부하다보면 ‘메타 클래스’니, ‘추상 클래스’니

By sooop

숫자키패드

숫자키패드를 활용하는 오토핫키 팁

키보드를 선택할 때, 숫자 키패드 영역이 있는 풀배열 키보드를 선택하는 사람은 “숫자를 입력할 일이 많은” 사람일 것입니다. 주로 엑셀이나 계산기를 사용할 일이 많은 경우에 숫자 키배드를 사용하는 것은 분명 편리함이 있습니다. 하지만 숫자를 입력할 일이 많다고 해서 항상 숫자 키패드가 유용한 것은 아닙니다. 1, 2, 3,.. 과 같이 숫자와 함께

By sooop

기계식 키보드

한/영키와 한자키

흔히 ‘풀배열’이라고 하는 키보드 배열은 미국의 키보드 배열 표준으로 101키/104키를 사용하는 배열이 있다. 우리 나라의 키보드 배열은 여기에 ‘한/영’키와 ‘한자’키를 더한 103키/106키가 표준으로 제정되어 있다. 추가된 두 개의 키는 스페이스 바의 오른쪽에 있기 때문에, 한국 표준 배열에서는 스페이스 바가 짧거나, 오른쪽 ctrl, alt 키가

By sooop

autohotkey

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

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

By sooop

상대참조

엑셀 수식 사용법

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

By sooop

asciimatics

ASCIIMATICS TUI - 샘플 앱 예제

지금까지 우리는 몇 개의 글을 통해 asciimatics의 기본적인 사용법과 이 라이브러리를 사용하여 TUI를 구성하는 방법에 대해서 살펴보았습니다. 그리고 여기에 데이터 모델을 연결하기 위한 기초작업은 어떻게 준비하는지도 알아보았습니다. 오늘은 이러한 내용들을 바탕으로 간단한 앱을 만들어 보겠습니다. TODO 앱 우선 간단한 할일의 목록과 완료여부를 표시할 수 있는 Todo 앱을 만들어봅시다. 기본적으로 등록된

By sooop

3.12

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

최근 발표된 파이썬 3.11은 이전 버전 대비 10~60% 이상의 성능 향상을 보여 화제가 되었습니다. 뭐 파이썬이 원래 느려 먹어서 그정도는 쉽게 되는 거 아니냐는 사람들도 있는데, 파이썬3는 이미 파이썬 3.8부터 파이썬2보다 빠르다고 평가를 받아왔고, 계속해서 10% 가량의 성능을 개선해오다가 3.11에서 향상 폭이 커진 것입니다. 표준 파이썬

By sooop

ABC

ASCIIMATICS TUI - 데이터 다루기

입력필드나 드롭다운 메뉴 같은 UI들은 실제로는 어떤 값을 화면에 표시하기 위해 사용됩니다. 지금까지 asciimatics를 사용하여 UI를 구성하는 방법을 살펴보았는데, 앱이 다루는 실제 데이터와 UI가 어떻게 연결되고, 어떤 식으로 사용해야 하는지에 대한 내용은 아직 이야기 하지 않았습니다. 이제서야 이 이야기를 할 순서가 된 것 같습니다. 오늘은 asciimatics로 TUI를 구현할 때, 데이터를

By sooop

IEEE 754

컴퓨터에서의 반올림 규칙

대부분의 프로그래밍 언어에서는 사칙연산을 포함한 기본적인 산술 기능이나 고급 수학 함수들을 제공합니다. 그리고 여기에 올림이나 내림, 반올림 같은 정밀도와 관련된 기능도 포함됩니다. 숫자를 포맷팅하는 기능을 제공하는 언어는 어떤 숫자값을 소수점 아래 몇 자리까지 표현하는 포맷을 적용할 때 기본적으로 반올림 기능을 사용합니다. 그런데 컴퓨터에서 사용하는 반올림 기능와 우리가 학교에서 배워서 알고있는

By sooop

Class

Python 101 - 클래스

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

By sooop

asciimatics

ASCIIMATICS로 UI를 구성하는 방법

지난 글에서 asciimatics를 사용하여 간단한 애니메이션을 만드는 예를 보면서, 애니메이션을 구성하는 요소들에 대해 알아보았습니다. 그리고 이 애니메이션을 구성하는 요소들이 UI에서는 어떤 식으로 대응하는지를 간략하게 언급했습니다. 이를 다시 정리해보면 다음과 같은 원리들이 보입니다. * 애니메이션처럼 UI를 갖춘 앱도 여러 개의 화면을 가질 수 있습니다. 메모앱이나 연락처와 같은 앱을 생각하면 목록화면과 내용 편집

By sooop

ABCMeta

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

파이썬에서 타입 어노테이션을 붙일 때, 제네릭 타입에 대해서는 typing.TypeVar 를 사용하면 일반적인 타입 T를 가정하고 정의할 수 있습니다. 그런데 이러한 타입 T에 대해서 특정한 성질을 만족하게끔 하는 조건을 넣고 싶은 경우가 있습니다. 예를 들어 리스트에 대한 버블 정렬 기능을 함수로 구현한다고 하면, 인자의 타입은 list[T] 와 같이 타입

By sooop