콘텐츠로 건너뛰기

소프트 키워드(Soft Keyword)

키워드는 예약어(reserved word)라고도 하며, 문법적으로 특별한 의미를 지니기 때문에 변수나 함수의 이름으로 사용하는 것이 제한되는 단어들을 말합니다. 예를 들어 if, for, while 과 같은 단어들은 특정한 구문을 표현하기 위해 사용하는 단어들이고, 이들 단어는 변수명으로 사용하려는 경우, Syntax Error가 발생하면서 정상적으로 처리되지 않습니다. 키워드들은 보통 아주 일상적인 단어로 표현되는 경우가 많으며, 어떤 경우에는 흔히 자기도 모르게 변수명으로 사용하려고 시도하는 경우가 생길 수 있습니다. 게다가 언어의 역사가 진행되는 과정에서 새로운 기능이 추가되고 이를 지원하기 위한 문법이 추가될 수 있습니다. 이 경우에는 새로운… 더 보기 »소프트 키워드(Soft Keyword)

파이썬에서 싱글톤 구현하기

싱글톤은 어떤 클래스의 인스턴스가 하나만 만들어지도록 강제하는 디자인 패턴의 한 종류입니다. 싱글톤은 시스템 전체에 걸쳐 단 하나의 객체 인스턴스만 있으면 될 때 사용할 수 있으며, 전역 변수를 사용하지 않고도 특정한 객체를 어디서나 참조할 수 있게 되는 장점이 있습니다. 싱글톤을 구현하는 일반적인 방법으로는 1) 생성자를 private하게 만들어서 다른 객체가 직접적으로 호출할 수 없도록하고, 2) 별도의 정적 메소드를 제공하여 싱글톤 객체를 획득할 수 있게 합니다. 싱글톤 구현방법 파이썬에서는 생성자를 숨길 수 없기 때문에, 생성자 그 자체가 싱글톤 객체를 반환하도록 하면 됩니다. 이를… 더 보기 »파이썬에서 싱글톤 구현하기

엑셀에서 배열 수식 사용하기

엑셀에서 SUM()이나 COUNT() 같은 함수를 사용하면 특정한 사각형 범위 영역에 대해서 합계나 개수를 구하게 되는데, 이것은 “여러 값을 한 번에 계산”하는 기능으로 볼 수 있습니다. 우리는 이미 이러한 함수를 사용하는 것에 대해서는 큰 어려움 없이 받아들이는데, 이 함수들은 여러 개의 값을 하나의 값으로 압축하는 형식으로 볼 수 있습니다. 엑셀에서는 이렇게 여러 개의 값을 하나로 압축하는 기능외에도 여러 개의 값에 어떤 연산을 적용하고, 다시 여러 개의 값으로 만드는 수식도 작성할 수 있데, 이렇게 여러 값을 한 번에 계산해주는 수식을 ‘배열 수식’이라고 합니다. 간단히 말하면 배열 수식은 ‘배열’을 포함하는 수식입니다.

더 보기 »엑셀에서 배열 수식 사용하기

파이썬 pathlib 사용법

파이썬에서 파일 경로를 다루는 문제를 다루는 블로그 포스팅이나 지식iN 답변 같은 걸 종종 보게 되는데, 그 때마다 거의 os.path 모듈을 사용하는 코드를 소개하는 것이 많습니다. os.path 모듈은 파일 시스템에서 특정한 파일이나 디렉토리의 경로를 다루는데 특별히 부족한 점은 없지만, 그 자체로 너무 오래 되었고 경로 자체를 객체로 다루지 않고 단순 문자열로만 취급하다 보니 불편한 점이 있습니다.

파이썬 사용자들 사이에서는 파일 시스템의 경로를 좀 더 우아하게 다룰 수 있는 고수준 API에 대한 요구가 오래전부터 있어왔고, 이에 파이썬3.4에서 pathlib 이라는 모듈이 새롭게 추가되었습니다. pathlib은 파일 시스템 상의 경로를 객체로 정의하고 객체 지향적인 방법으로 경로를 다룰 수 있게 해주는 일련의 기능을 제공합니다.

더 보기 »파이썬 pathlib 사용법

왜 프로토콜 타입은 프로토콜을 따르지 않는가

Why A Protocol Type Doesn’t Conform to The Protocol Itself?

프로토콜은 사실 타입은 아니고, 실제 타입이 구현해야 할 어떤 ‘요구사항’을 정의한 것입니다. 그리고 실제 타입을 정의할 때 프로토콜이 요구하는 메소드와 멤버를 구현하면 해당 타입이 프로토콜을 준수한다(혹은 프로토콜을 채택한다)고 표현하죠. 프로토콜은 타입이 아니지만, 특정 객체에 대해서 프로토콜이 정의한 인터페이스를 사용하는 것에만 관심이 있는 상황을 가정해보겠습니다. 이 경우에 우리는 해당 객체에 대해서 이미 알고있는(프로토콜이 정의한) 메소드나 프로퍼티만 사용하고, 실제의 타입은 알 수 없거나 정해지지 않았다고 간주해야 합니다. 그렇다면 이러한 객체는 구체적인 타입을 확정할 수는 없지만 그 프로토콜을 준수하고 있다는 것만 보장하기 때문에, 프로토콜을 변수의 타입처럼 사용하는 것이 가능합니다.

더 보기 »왜 프로토콜 타입은 프로토콜을 따르지 않는가

메타 클래스와 추상 클래스

사실 ‘객체 지향’이라는 단어는 프로그래밍 관련 커뮤니티나 여러 글에서 어렵지 않게 접하게 되지만, 객체 지향 프로그래밍에서 가장 중요하다고 하는 ‘클래스’의 개념을 명확하게 이해하기는 쉽지 않습니다. 애초에 추상적인 개념이니 명확하게 이해하는 것이 이상한 거라고 봐야 할까요? 그런데 파이썬이나 다른 객체 지향 언어를 공부하다보면 ‘메타 클래스’니, ‘추상 클래스’니 하는 용어들이 눈에 띄곤 합니다. 아니, 클래스도 뭔지 감이 잘 안오는데 추상 클래스는 뭐고 또 메타 클래스는 뭐란 말일까요? 일단 파이썬에서 출발해보죠. 클래스에 대해서 간단히 짚고 넘어가겠습니다. 우선 클래스가 무엇인지를 이해하기 위해서는 클래스를 설명하기위해… 더 보기 »메타 클래스와 추상 클래스

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

키보드를 선택할 때, 숫자 키패드 영역이 있는 풀배열 키보드를 선택하는 사람은 “숫자를 입력할 일이 많은” 사람일 것입니다. 주로 엑셀이나 계산기를 사용할 일이 많은 경우에 숫자 키배드를 사용하는 것은 분명 편리함이 있습니다. 하지만 숫자를 입력할 일이 많다고 해서 항상 숫자 키패드가 유용한 것은 아닙니다. 1, 2, 3,.. 과 같이 숫자와 함께 콤마를 입력해야 하는 경우라면 이야기가 달라지죠. , 키 역시 오른손으로 눌러야 하는 영역에 있기 때문에, 숫자 키패드를 사용해야 한다면 오히려 손이 왔다 갔다 하면서 입력이 불편해집니다.

더 보기 »숫자키패드를 활용하는 오토핫키 팁

한/영키와 한자키

흔히 ‘풀배열’이라고 하는 키보드 배열은 미국의 키보드 배열 표준으로 101키/104키를 사용하는 배열이 있다. 우리 나라의 키보드 배열은 여기에 ‘한/영’키와 ‘한자’키를 더한 103키/106키가 표준으로 제정되어 있다. 추가된 두 개의 키는 스페이스 바의 오른쪽에 있기 때문에, 한국 표준 배열에서는 스페이스 바가 짧거나, 오른쪽 ctrl, alt 키가 작은 사이즈로 되어 있는 경우가 많다. 이러한 차이 외에도 미국 표준 배열은 일자로된 엔터키를 사용하고, 역슬래쉬 키가 엔터키 위에 있는데 비해, 한국 표준 배열은 역방향의 ㄴ자 모양 엔터키를 사용하고, 역슬래쉬가 백스페이스의 왼쪽에 위치한다.

한/영키와 한자키가 없는 101/103키의 키보드 배열을 사용하여 한국어 버전 윈도를 사용할 수 있게 하기 위해 윈도에서는 키보드 드라이버 수준에서 이 오른쪽 ctrl, alt 키를 한/영키나 한자키로 배치하거나, shift + 스페이스바를 사용하여 한/영 전환을 하게 하는 기능을 제공한다. 한국에서 생산되는 대부분의 노트북 키보드에서는 실제로는 한/영키와 한자키가 없고 ctrl, alt 키로 들어가 있는데 (물론 키 캡에는 ‘한/영’, ‘한자’로 표기한다.) 드라이버에 의해서 그 입력이 한/영, 한자키로 작동하게끔 되어 있다.

더 보기 »한/영키와 한자키