Programmer
-
이맥스 멈춤 현상 해결로 알아보는 디버깅 기술Programmer/Emacs 2022. 9. 21. 00:49
이맥스에서 컴파일(M-x compile)이나 검색(M-x rgrep)을 하면 결과를 다른 버퍼(예를 들면, 컴파일 출력은 *compilation* 버퍼)에서 표시한다. 단순히 보여주기만 하는 것이 아니라 오류나 검색 위치로 바로 가기도 지원한다. 오류(또는 검색) 출력 위에 커서를 이동하고 엔터를 누르면 다른 윈도우에 커서가 가르키는 파일을 열고 해당 위치로 이동한다. 문제 없이 잘 동작하는 바로 가기 기능이 갑자기 수 분 동안 멈추는 현상이 발생했다. 이를 해결하지 못하면 개발 생산성에 급격한 저하가 발생할 수 밖에 없다. 따라서 무조껀 이것을 해결하고. 본연의 업무 중 하나인. 개발 업무를 진행해야 했다. 얼마간 멈추고 CPU를 과도하게 사용하는 상황이라면 CPU 프로파일링(profiling)으로 접..
-
poetry 1.2.0의 bash completion 오류와 대응 방법Programmer/Programming 2022. 9. 6. 12:09
poetry version 1.2.0 업그레이드 이후, 터미널을 열면 아래와 같은 오류가 뜬다. line 40: syntax error near unexpected token `clear' line 40: ` (cache clear)' 로그인쉘이 기동할 때, poetry의 bash의 자동 확장 기능 스크립트를 실행하면서 발생하는 오류이다. 문제의 원인부터 말하자면, /usr/local/Cellar/poetry//etc/bash_completion.d/poetry의 bash 자동 확장 스크립트의 case 패턴에 공백이 들어갔기 때문이다. 해결 방법은 이 공백을 처리해주면 된다. 두가지 방법을 제기할 수 있는데, 하나는 패턴을 쌍따옴표(”)로 감싸는 방법과 case "$com" in # ... skip ....
-
암호화 확장자, 인코딩, 표준 관계 정리Programmer/Etc 2022. 5. 26. 23:25
PKI 암호화의 일반적인 개념은 개발자라면 당연히 알고 있을 것이다. HTTPS 서버 설정에서 DRM 등 여러 분야에서 이 개념을 사용한다. 다만, 실무에서는 개념만으로는 충분하지 않다. 실제로 접하게 될 다양한 파일의 확장자와 형식, 내용을 알고 있어야 한다. 확장자와 형식, 내용에 대한 개별적이고 단편적인 정보는 검색하면 찾을 수 있다. 문제는 이렇게 공부하면 외워야 하는 정보의 양만 많아지고 쉽게 잊어버린다. 전체 목록과 각각의 관계를 알면 이해도 쉽고 잘 잊어버리지 않는다. 아쉽게도 한눈에 볼 수 있도록 설명한 문서를 찾지 못하였다. 그리하여 확장자, 인코딩, 표준을 한 눈에 볼 수 있도록 표 하나에 정리해서 공개한다. .DER .PEM .CRT .CER .KEY .P7B .P7C .PFX .P1..
-
이맥스 버퍼, 윈도우, 프레임 그리고 새로운 기능 탭Programmer/Emacs 2022. 5. 10. 21:04
이맥스 27.1의 다중 편집 UX에 새로운 기능인 탭이 포함되었다. 이 글에서는 이맥스의 기존 다중 편집 UX인 버퍼, 윈도우, 프레임에 대해서 간단하게 설명하고, 탭을 사용해 본 후기와 기존 방법과 비교, 개인적인 추천 방법까지 소개하겠다. 버퍼는 이맥스와 외부 I/O를 연결하는 인스턴스로 편집 중인 텍스트, 열려 있는 파일, 이맥스에서 구동한 프로세스 입출력 등과 연결되어 있다. 이 버퍼는 윈도우를 통해서 사용자에게 보여진다. 버퍼가 윈도우를 통해서 안보이더라도 후면에 여전히 존재하며 자신의 기능을 수행한다. 윈도우는 디스플레이 공간(프레임)을 전부 차지하여 하나만 보여질 수도 있고, 타일처럼 여러 개로 분할된 공간으로 표시될 수도 있다. 요즘 UI 개념으로 보자면 화면 분할과 같다. 프레임은 GUI..
-
깃털처럼 가벼운 Emacs인 mg의 키바인딩Programmer/Emacs 2021. 10. 25. 11:26
기본 키 바인딩 Category Key Binding Command Leaving Mg C-z suspend-emacs C-x C-c save-buffers-kill-emacs Files C-x C-f find-file C-x C-s save-buffer C-x s save-some-buffers C-x C-q toggle-read-only Getting Help C-h C-h help-help C-h a apropos C-h b describe-bindings C-h c describe-key-briefly Error Recovery C-g keyboard-quit C-x u undo C-_ undo C-l recenter Incremental Search C-s isearch-forward C-r i..
-
원자적(atomic) 연산과 순서(ordering) 제약Programmer/Computer Science 2021. 7. 12. 12:37
스푼라디오에 재직하던 시절 작성한 "원자적 연산과 순서 제약"에 관한 글을 소개한다. 멀티코어, 멀티쓰레드 환경의 고성능 병렬(parallel) 프로그래밍에는 여러가지 함정이 있다. 그중에 하나는 프로그래머의 의도와는 상관없는 시스템의 최적화이다. 이 글은 시스템 최적화에 프로그래머의 의도를 전달하는 두가지 기법, 원자적(atomic) 연산과 순서(ordering) 제약을 소개한다. https://medium.com/spoontech/원자적-atomic-연산과-순서-ordering-제약-ed25e39c4646 전체 내용은 원문으로 확인하자.
-
언어별 형식 출력 함수 비교Programmer/Programming 2021. 7. 9. 12:50
언어별 형식 출력 함수와 형식 변환 지정자 C Go C++ fmt Rust Python Javascript ES6 Template literals Common Lisp 표준출력 printf( "%d", 3) fmt.Printf( "%d", 3) fmt.print( "{}", 3) print!( "{}", 3) print( "{}".format(3)) let n = 3; console.log( `${n}`) (format t "~d" 3) 파일출력 fprintf( fh, "%d", 3) fmt.Fprintf( fh, "%d", 3) fmt.print( fh, "{}", 3) write!( fh, "{}", 3) print( "{}".format(3), file = fh) let n = 3; fs.write..
-
여러가지 데이터 표현 양식 비교Programmer/Computer Science 2020. 3. 11. 11:11
XML - 과거의 찬란했던 데이터 교환 양식(라떼는 말이야~). 지금은 JSON에 밀려... XML XML은 EXtensible Markup Language의 약어로써, 데이타를 저장하거나 주고받는데 사용하는 마크업(markup) 언어이다. 특징과 장단점 뛰어난 호환성을 제공한다. 많은 프로그램 언어와 웹, 소프트웨어에서 XML을.. unipro.tistory.com 유연함 시스템이 읽고/쓰기 쉬움 유효성 검증(Validation) 주석 IDE의 지원 사람이 읽고 쓰기 어려움 장황함 유연하고 시스템 친화적이며 데이터 검증에 매우 강력하다. 따라서, 엔터프라이즈에서는 여전히 강한 면모가 있다. 하지만, 개발과 디버깅은 사람이 한다. 사람이 읽고 쓰기 어려다는 것은 치명적인 단점이다. JSON - "왕위를 ..