sooop

sooop

css

Textual 강좌 3 - 위젯과 DOM 쿼리

위젯은 화면의 일정 영역을 관리하는 역할을 담당하는 구성 요소라고 정의된다. 위젯은 앱이 하는 것과 똑같은 방식으로 이벤트에 응답하고, 하위 위젯을 포함하여 계층 구조를 이룰 수도 있으므로 일종의 미니앱이라고 생각할 수 있다. DOM 쿼리 Textual에서 위젯의 UI 스타일은 CSS를 통해서 설정하게 된다. 해석한 CSS 내의 특정한 스타일을 위젯에 적용하기 위해서는 CSS

By sooop

downloader

Textual - 프로그레스 바 추가하기

Textual에서 시간이 오래 걸리는 작업을 처리하면 UI의 반응성이 떨어지는 상황이 발생한다. 이 때 취할 수 있는 UI 적인 개선으로는 몇 가지 방법이 있는데, 그 중 가장 직관적인 것이 진행률을 보여주는 것이다. 진행률을 보여주는 프로그레스 바는 원래 Rich에도 포함되어 있는데, 그 중 기본적인 유형을 Textual에도 사용할 수 있게 되었다. ProgressBar 위젯을

By sooop

action

Textual 강좌 2 - 이벤트

사용자가 앱에서 키보드의 키를 누르거나, 마우스로 버튼등의 UI 위젯을 클릭하는 등의 조작을 앱은 그에 따른 어떤 동작을 수행하여 사용자 입력에 반응해야 한다. Textual에서 사용자 조작은 이벤트로 취급되어 해당 이벤트를 처리하는 이벤트 핸들러에 의해 미리 지정된 동작이 수행된다. 이벤트의 처리는 메시지 시스템이라는 매커니즘을 통해 처리된다. 이 방식은 웹에서 자바스크립트로 이벤트를 처리하는

By sooop

python

Textual 강좌 1 - App 구성하기

Textual은 터미널 환경에서 복잡한 UI를 가진 TUI앱을 빠르게 개발할 수 있는 애플리케이션 개발 프레임워크이다. 다른 의존성은 거의 필요하지 않으며, 모든 플랫폼의 터미널에서 작동한다. TUI앱의 가장 큰 장점은 SSH와 같은 원격 터미널에서도 UI를 갖춘 앱을 실행할 수 있다는 것이다. 파이썬에서 GUI를 구현하기 위한 여러 라이브러리나 프레임워크를 몇 년간 찾아 보았지만, 이

By sooop

python-311

소프트 키워드(Soft Keyword)

키워드는 예약어(reserved word)라고도 하며, 문법적으로 특별한 의미를 지니기 때문에 변수나 함수의 이름으로 사용하는 것이 제한되는 단어들을 말합니다. 예를 들어 if, for, while 과 같은 단어들은 특정한 구문을 표현하기 위해 문법적으로 특별한 의미를 지니도록 지정되어 있으며, 이러한 단어를 변수명으로 사용하려는 경우, Syntax Error가 발생하면서 정상적으로 처리되지 않습니다. 그런데 문법을

By sooop

project_euler

오일러 프로젝트 63

n자리 수이면서 n제곱도 되는 양의 정수는 모두 몇 개? 다섯 자리 수인 16807은 75으로 5제곱수입니다. 또, 아홉자리 수인 134217728은 89으로 9제곱수입니다. n자리 수이면서 n 제곱수도 되는 양의 정수는 모두 몇 개나 있습니까? https://euler.synap.co.kr/problem=63 접근 자리 수는 상용로그를 통해서 구할 수 있다. 상용로그값의 정수부에 1을

By sooop

__new__

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

싱글톤은 어떤 클래스의 인스턴스가 하나만 만들어지도록 강제하는 디자인 패턴의 한 종류입니다. 싱글톤은 시스템 전체에 걸쳐 단 하나의 객체 인스턴스만 있으면 될 때 사용할 수 있으며, 전역 변수를 사용하지 않고도 특정한 객체를 어디서나 참조할 수 있게 되는 장점이 있습니다. 싱글톤을 구현하는 일반적인 방법으로는 1) 생성자를 private하게 만들어서 다른 객체가 직접적으로 호출할

By sooop

배열

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

엑셀에서 SUM()이나 COUNT() 같은 함수를 사용하면 특정한 사각형 범위 영역에 대해서 합계나 개수를 구하게 되는데, 이것은 “여러 값을 한 번에 계산”하는 기능으로 볼 수 있습니다. 우리는 이미 이러한 함수를 사용하는 것에 대해서는 큰 어려움 없이 받아들이는데, 이 함수들은 여러 개의 값을 하나의 값으로 압축하는 형식으로 볼 수 있습니다.

By sooop

Path

파이썬 pathlib 사용법

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

By sooop

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

Why A Protocol Type Doesn’t Conform to The Protocol Itself? 프로토콜은 사실 타입은 아니고, 실제 타입이 구현해야 할 어떤 ‘요구사항’을 정의한 것입니다. 그리고 실제 타입을 정의할 때 프로토콜이 요구하는 메소드와 멤버를 구현하면 해당 타입이 프로토콜을 준수한다(혹은 프로토콜을 채택한다)고 표현하죠. 프로토콜은 타입이 아니지만, 특정 객체에 대해서 프로토콜이

By sooop