56perc
56perc
Jukebox
290 posts
Don't wanna be here? Send us removal request.
56perc · 8 months ago
Text
띄어쓰기에 대한 생각
업무 메일을 쓸 때 가장 많이 쓰는 말 중에 하나가 메일 말미에 ‘업무에 참고 부탁 드립니다.‘인데요, 어느 날부터 아웃룩에서 이 ‘부탁 드립니다’가 틀렸다고 맞춤법 지적을 하기 시작했습니다. 맞는 말은 ‘부탁드립니다’라고 붙여 쓰는 거라고. 사실 아래아한글 시절부터 이전의 MS워드까지, 워드프로세서들의 한국어 맞춤법 검사 실력은 거의 있으나 마나 한 것이어서 그 말을 곧이 곧대로 믿기가 어려웠습니다. 그리고 ��낌상 ‘부탁드립니다’라는 말은 붙여 쓰기에는 너무 긴 것이 아닌가하는 생각도 들었구요. 그래서 한 번 찾아보기로 했습니다. 가장 상위에 표시된 결과에서는 띄어 써야 한다고 합니다. 하지만 출처가 네이버 블로그이기 때문에 곧이 곧대로 받아들일 수가 없습니다. 무조건 일단 틀렸다고 의심해봐야…
Tumblr media
View On WordPress
0 notes
56perc · 9 months ago
Text
구글 포토에서 아이클라우드로 탈출한 후기
한 때 구글 포토가 백업 용량을 무제한으로 제공해 주겠다고해서, 구글 포토를 사용해서 사��을 백업해왔습니다. 물론 이 이야기의 결말은 저나 이 글을 읽고 있는 여러분이나 모두 알고 있습니다. 사실 AI에게 학습 시킬 이미지 데이터를 모으기 위한 것일 뿐이라거나 하는 이야기는 그 당시에도 있었습니다만, 에이 그래도 구글인데 용량은 넉넉하게 주겠지…하는 순진한 생각을 했던 게 실수였습니다. 구글은 어느 틈엔가 구글 계정의 저장 공간을 하나로 통합했고, 구글 포토에 사진이 많이 올라가 있는 사람은 구글 원 서비스를 구독하지 않으면 메일 용량이 꽉차서 메일을 더 이상 수신할 수가 없었습니다. Continue reading 구글 포토에서 아이클라우드로 탈출한 후기
Tumblr media
View On WordPress
0 notes
56perc · 9 months ago
Text
Julia의 함수 사용팁
연산자의 함수적 표기 Julia의 연산자는 기본적으로 함수이며, 함수 호출 표기와 같은 방식으로 호출하는 것이 가능합니다. 또한 그 자체로 함수이기 때문에 filter(), map() 과 같이 함수를 인자로 받는 함수에도 연산자를 그대로 적용하는 것이 가능합니다. 특히 + 연산자는 sum() 함수와 같이 여러 인자를 받아 인자들의 합을 구할 수 있습니다. 2 + 3 # = 5 +(2, 3) # = 5 +(2, 3, 4) # = 9 >(3, 2) # = true 이 때, 비교 연산자들은 첫번째 인자만 전달된 경우에는 부분 적용된 함수를 생성합니다. 이는 특히 함수를 인자로 전달하는 함수에 사용될 때, 표현을 간결하게 하는데 유용합니다. >(10, 5) # = true >(10) # == x…
0 notes
56perc · 9 months ago
Text
git 사용자 선택 팝업 생략하기
git을 사용하다보면 언젠가부터 아래의 UI가 표시되면서 사용자 계정을 선택하라는 메시지가 표시되어 귀찮습니다. 처음에는 매번 인증을 하라는 건가?라고 생각했는데, 시스템에 git 사용자가 2개가 되면서 어떤 사용자로서 git 명령을 수행할 것인지를 묻는 내용이더군요. 매 번 이렇게 계정을 선택하라는 팝업이 뜨는 것은 git이라는 계정이 자동으로 등록되면서 시스템에 2개의 계정이 등록되어 있기 때문인데, 늘 같은 사용자 계정만 쓴다면 간단히 다음과 같은 명령으로 설정하여 이 귀찮은 계정 선택 팝업을 생략할 수 있습니다. > git config --global credential.https://github.com.username my_user_name 여기서 my_user_name 부분은 당연히 자신의…
Tumblr media
View On WordPress
0 notes
56perc · 11 months ago
Text
vim에서 패턴에 매칭되는 영역을 추출하기
지난 글에서 notepad++에서 특정 패턴에 매칭되는 영역만 추출하는 방법에 대해 소개하였는데요, 이번에는 vim에서 같은 기능을 어떻게 구현할 수 있는���에 대해서 알아보겠습니다. :s/{pattern}/\= 버퍼 내의 텍스트를 치환하는 :s 명령에서, 패턴 다음에 오는 치환할 문자열 부분이 \= 으로 시작하는 경우에는 이 영역이 표현식(expression)으로서 평가됩니다. 만약 표현식을 평가한 결과가 리스트 타입인 경우에는 최종 결과는 개행 문자로 결합된 형태가 됩니다. 이 표현식 내부에서는 submatch()함수가 매치된 텍스트를 얻는데 사용될 수 있습니다. 매치된 전체 영역은 submatch(0)으로 표현하며, 만약 매치 패턴에 그룹을 지정했다면, 괄호 안에는 그룹의 번호가 들어갈 수…
0 notes
56perc · 11 months ago
Text
Capslock 키의 활용도 높이기 (AutoHotkey)
여러분은 CapsLock키 많이 쓰시나요? 유용하게 잘 쓰시는 분들도 있겠지만, 저 같은 경우에는 거의 사용하지 않습니다. 심지어 어떤 분들은 이 커다란 키가 뭐하는 키인지 모르는 분들도 계실 것 같고요. CapsLock키에 대해 한 가지 아쉬운 점은, 그 쓰임새가 신통치 않은 것에 비해서는 너무 좋은 자리에 위치하고 있다는 점입니다. 이 낭비되는 키를 어떻게 더 효율적으로 활용할 수 있는 방법이 없을까요? CapsLock키를 다른 키로 변경하기 먼저 해야 할일은 키보드에서 CapsLock 키를 누르더라도 해당 키가 아닌 다른 키로 인식하도록 하는 것입니다. AHK에서도 CapsLock 키를 조합키의 일부로 사용할 수 있지만, 기본적으로는 윈도 레벨에서 이 키를 흔히 쓰지 않는(?) 키로 인식하도록…
Tumblr media
View On WordPress
0 notes
56perc · 11 months ago
Text
Notepad++ - 특정 패턴의 단어나 문구만 추출하여 정리하기
최근에 텍스트로 된 CSV, JSON 파일과 엑셀을 모두 사용하면서 지난한 작업을 많이 하고 있는데, 다시금 Notepad++의 덕을 많이 보고 있습니다. 단순히 데이터를 포맷팅하거나, 단순한 찾기/바꾸기 외에도 제품바코드 번호나 주문번호 같은 특정 규격의 정보를 큰 파일에서 추출한다거나, 엑셀 파일에서 칼럼을 복사해와서 컴마로 연결하거나 하는 일을 주로 하게 됩니다. 오늘은 이런 일들을 처리하면서 평소에 잘 쓰지 않다가 익숙해진 몇 가지 기능들을 소개하려고 합니다. Notepad++는 정규식을 사용하여 검색이나 치환을 할 수 있는 강력한 기능을 갖고 있습니다. 정규식은 보통 특정 패턴에 매치되는 부분을 찾거나 그 부분을 변경하는데 사용하는데요, 특정 패턴에 매치되는 부분만 남기고 나머지를 제거하려면…
Tumblr media
View On WordPress
0 notes
56perc · 11 months ago
Text
엑셀에서 주어진 생년월일로부터 만나이 구하기
엑셀에서 주어진 날짜를 생년월일로 하는 만나이를 계산하는 것은 상당히 귀찮고 번거로운 일입니다. 오늘의 연도에서 해당 날짜의 연도를 빼면 기본적으로 나이가 되지만, 아직 생일을 지나지 않았다면 1을 더 빼야 합니다. 생일이 지나지 않았다는 것은, 이번달이 해당 날짜의 월보다 크거나, 이번달이 해당 날짜의 월이면서 오늘 일자가 해당 날짜의 일자보다 큰 것을 의미합니다. 만약 생년월일이 A2 셀에 있다면, 그 날짜에 대한 오늘 기준의 만나이는 다음과 같이 계산합니다. =YEAR(TODAY()) - YEAR(A2) - IF( OR(MONTH(TODAY()) > MONTH(A2), AND(MONTH(TODAY()) = MONTH(A2), DAY(TODAY()) > DAY) ), 1, 0 ) 날짜를…
0 notes
56perc · 1 year ago
Text
Rust 기초 (1)
데이터의 변수와 메모리 관리 방식 Rust는 정적 타이핑 언어로, 컴파일 시점에 모든 변수의 타입이 결정됩니다. Rust는 다양한 데이터 타입을 가지고 있는데, 이러한 타입들은 메모리를 사용하는 특성에 따라 스칼라 타입과 복합형으로 구분됩니다. 스칼라 타입은 하나의 단일 값을 의미하는데, 불리언(bool), 정수, 실수, 문자(char) 타입등이 여기에 속합니다. 복합형은 한 가지 정보로만 구성되는 데이터가 아니며, 같은 타입이어도 크기가 다를 수 있는 유형입니다. 문자열(String) 같은 타입이 복합형에 해당합니다. 스칼라 타입은 단일 값이며, 항상 그 크기가 고정되어 있습니다. 따라서 이러한 타입들은 스택에 저장됩니다. 문자열과 같은 복합형은 데이터를 힙 영역에 저장합니다. 힙 영역에 데이터를…
0 notes
56perc · 1 year ago
Text
Python - 스도쿠 문제 풀이
예전에 LiveScript를 사용해서 스도쿠 문제를 푸는 코드를 소개한 적이 있었는데, 세상 쓸데없는 글이었습니다. LiveScript는 별로 알려지지도 않았고, 심지어 제가 처음 관심을 갖고 익혀본 그 즈음부터는 아예 개발도 중단된 상태로 방치되고 있는 언어거든요. 게다가 언어 자체가 함수형 언어식 표현을 적극적으로 도입하고 있고, 가독성하고는 크게 관련이 없다보니 코드 하나하나가 지금 읽어봐도 뭔지 도대체 알 수가 없더군요. (사실 알 수는 있습니다;) 그래서 다시 파이썬으로는 스도쿠를 푸는 프로그램을 어떻게 만드는지 소개하고자 합니다. 이번에는 최대한 간결하고 읽기 편한 코드를 만드는 것을 목표로, 가장 짧게(?) 작성하는 것을 목표로 하지 않습니다. 그러면 문제를 풀어보겠습니다. 스도쿠…
View On WordPress
0 notes
56perc · 1 year ago
Text
async for 구문의 작동 원리
비동기, 즉 작업이 완료되지 않더라도 리턴하는 함수는 프로그래밍에서 꽤 오랜 역사를 가지고 있는 아이디어입니다. . 비동기 함수는 ‘동시성’ 혹은 ‘병렬처리’를 위해 고안된 개념이기도 하고요. asyncio 가 비동기 처리에 관한 라이브러리라는 것은 그 이름부터 이미 알려주고 있습니다. 그런데 다시 말하지만 ‘비동기’는 동시성이나 병렬처리를 위해 고안된 개념이라는 것입니다. 컴퓨터 공학 분야에서 병렬처리나 분산처리에 대한 논의는 오래전부터 있었고, 지금 널리 사용되고 있는 다중 스레드의 개념도 이때 등장하여, 여러 상황이나 조건들에 의해 채택되고 지금까지 이어지고 있는 것입니다. 거꾸로 말하면 동시성 처리를 위해서 반드시 스레드만 사용해야 한다는 법이 아니라는 말이기도 합니다. 어쨌거나 (제법 오래된…
View On WordPress
0 notes
56perc · 1 year ago
Text
Textual 강좌 3 - 위젯과 DOM 쿼리
위젯은 화면의 일정 영역을 관리하는 역할을 담당하는 구성 요소라고 정의된다. 위젯은 앱이 하는 것과 똑같은 방식으로 이벤트에 응답하고, 하위 위젯을 포함하여 계층 구조를 이룰 수도 있으므로 일종의 미니앱이라고 생각할 수 있다. DOM 쿼리 Textual에서 위젯의 UI 스타일은 CSS를 통해서 설정하게 된다. 해석한 CSS 내의 특정한 스타일을 위젯에 적용하기 위해서는 CSS 셀렉터로부터 그에 매칭하는 위젯을 선택할 수 있어야 함을 의미한다. 따라서 Textual에는 웹브라우저와 마찬가지로 DOM 쿼리를 통해 요소를 찾는 기능을 기본적으로 제공한다. query_*로 시작하는 메소드들을 사용하는데, 가장 많이 사용하는 메소드는 query_one 일 것인데, 다음과 같이…
View On WordPress
0 notes
56perc · 1 year ago
Text
Textual - 프로그레스 바 추가하기
Textual에서 시간이 오래 걸리는 작업을 처리하면 UI의 반응성이 떨어지는 상황이 발생한다. 이 때 취할 수 있는 UI 적인 개선으로는 몇 가지 방법이 있는데, 그 중 가장 직관적인 것이 진행률을 보여주는 것이다. 진행률을 보여주는 프로그레스 바는 원래 Rich에도 포함되어 있는데, 그 중 기본적인 유형을 Textual에도 사용할 수 있게 되었다. ProgressBar 위젯을 생성하여 화면에 추가한 다음, total 속성을 전체 일의 양으로 지정하고, 매 작업을 처리할 때마다 update() 나 advance()를 사용하여 진행된 분량을 늘려주면 프로그레스바는 그에 따라 UI 내용을 자동으로 업데이트한다. 이러한 사용방법은 Rich의 ProgressBar와 사실상 동일하다. (Rich의 경우에는…
View On WordPress
0 notes
56perc · 1 year ago
Text
Textual 강좌 2 - 이벤트
사용자가 앱에서 키보드의 키를 누르거나, 마우스로 버튼등의 UI 위젯을 클릭하는 등의 조작을 앱은 그에 따른 어떤 동작을 수행하여 사용자 입력에 반응해야 한다. Textual에서 사용자 조작은 이벤트로 취급되어 해당 이벤트를 처리하는 이벤트 핸들러에 의해 미리 지정된 동작이 수행된다. 이벤트의 처리는 메시지 시스템이라는 매커니즘을 통해 처리된다. 이 방식은 웹에서 자바스크립트로 이벤트를 처리하는 것과 유사한 방식으로, 모든 이벤트는 메시지로 발행되고, 메시지를 수신할 수 있는 객체가 해당 메시지를 처리하게 된다. Textual이 내부적으로 미리 정의해놓은 메시지 외에도 커스텀 메시지를 정의하고 발행할 수 있으며, 이는 특정한 조건에서 이벤트를 발생시키는 방법으로 활용할 수 있다. 메시지 처리 모든…
View On WordPress
0 notes
56perc · 1 year ago
Text
Textual 강좌 1 - App 구성하기
Textual은 터미널 환경에서 복잡한 UI를 가진 TUI앱을 빠르게 개발할 수 있는 애플리케이션 개발 프레임워크이다. 다른 의존성은 거의 필요하지 않으며, 모든 플랫폼의 터미널에서 작동한다. TUI앱의 가장 큰 장점은 SSH와 같은 원격 터미널에서도 UI를 갖춘 앱을 실행할 수 있다는 것이다. 파이썬에서 GUI를 구현하기 위한 여러 라이브러리나 프레임워크를 몇 년간 찾아 보았지만, 이 만큼 사용하기 편리하고 멋진 도구는 만난적이 없었다. Textual 홈페이지의 가이드 중 일부를 가져와서 간단한 강좌의 형식으로 소개해보고자 한다. 앱 구성하기 Textual 앱을 구성하고 실행하는 방법은 다음과 같다. textual.app.App 클래스를 상속하여 커스텀 앱 클래스를 정의한다. 앱 클래스에…
View On WordPress
0 notes
56perc · 1 year ago
Text
프로젝트 오일러 92
어떤 자연수의 각 자리 숫자를 제곱하여 그 합을 구하는 계산을 반복하면 1이 되는 경우가 많다. 이런 숫자���은 happy number 라고 부른다. 행복하지 못한 숫자들은 계산을 반복하는 과정에서 89를 만나게 되고, 89는 다시 몇 단계의 과정을 거쳐 89가 되어 영원히 1이 될 수 없다. 각 자리 숫자의 제곱의 합은 간단히 구할 수 있기 때문에 간단한 코드로 어떤 숫자가 행복한지 여부를 알아내는 것은 쉽지만, 문제는 그 범위가 1천만 개나 된다는 점이다. 간단한 작업이지만 백만 번을 넘게 반복한다면 제법 오랜 시간이 걸릴 것이다. 이 문제에 대한 해법으로 전수검사를 통해 카운트하는 코드는 조금만 검색해보면 여러 블로그를 통해 쉽게 찾을 수 있지만, 더 빠른 시간 내에 답을 구하기 위한 방법을…
View On WordPress
0 notes
56perc · 1 year ago
Text
소프트 키워드(Soft Keyword)
키워드는 예약어(reserved word)라고도 하며, 문법적으로 특별한 의미를 지니기 때문에 변수나 함수의 이름으로 사용하는 것이 제한되는 단어들을 말합니다. 예를 들어 if, for, while 과 같이 특정한 구문을 표현하기 위해 사용하는 단어들이고, 이들 단어는 변수명으로 사용하���는 경우, Syntax Error가 발생하면서 정상적으로 처리되지 않습니다. 키워드들은 보통 아주 일상적인 단어로 표현되는 경우가 많으며, 어떤 경우에는 흔히 자기도 모르게 변수명으로 사용하려고 시도하는 경우가 생길 수 있습니다. 게다가 언어의 역사가 진행되는 과정에서 새로운 기능이 추가되고 이를 지원하기 위한 문법이 추가될 수 있습니다. 이 경우에는 새로운 예약어가 추가되는 경우도 있습니다. 파이썬은 초창기부터 예약어를…
View On WordPress
0 notes