watch가 연결된(pipe) 명령을 실행하지 못할 때.

사용하고 있는 배치 프로그램 중에 15,000개쯤 되는 항목을 검색하고, 각각의 결과를 파일로 남기는 게 있습니다. 보통은 밤 중에 돌아서 오전에 확인하곤 하는데, 오늘은 무슨 문제가 있었는지, 전체를 돌지 못하고 중간에서 멈춰있었습니다. 그래서 어쩔 수 없이 오전부터 다시 돌리는데, 진행상황을 확인하고 싶었습니다. 전체 항목 수는 알고 있고, 각각의 결과를 파일로 남겨두기 때문에, 결과 파일 수만 세보면 진행상황을 파악할 수 있겠다 싶었습니다. 그래서 다음과 같이 파일 갯수를 셌습니다. $ find ./ -name '*.log' | wc -l 그리고 저걸 계속해서 전송할 수는 없으니, 주기적으로 명령을 날려 결과를 확인할 수 있도록 "watch"를 추가했습니다. $ watch -n 10 find ./ ..

bat ( github.com/sharkdp/bat )

MacOS나 리눅스의 터미널에서 파일 내용을 보고 싶을 때, 편집기를 열 때도 있지만, 간단히 내용 확인만 하려고 할 때 많이 있는 명령어가 "cat"입니다. 내용이 빠르게 출력되기 때문에, 간편하게 쓰기는 좋은데 불편한 점이 몇 가지 있습니다. - 문법 강조가 되지 않는다던가... - 한번에 모든 내용을 출력하기 때문에, 화면을 넘어가는 길이의 파일은 스크롤을 해서 확인해야 한다던가... ( 이게 tmux를 쓰면 아주 불편한 점이 배가됩니다. ) 그래서인지 cat을 복제한 bat이 나타났습니다. 이름 하야, 날개 달린 고양이의 복제품, 박쥐입니다. 설명에 걸맞게 다양한 기능을 추가되었습니다. 문법 강조 Git 연동 (라인피드 글자 같은) 숨김 문자 출력 자동 페이징. 파일 병합. 위와 같은 기능을 제공..

Singleton Pattern

애플리케이션을 구동하면서 보통은 많은 인스턴스를 만들지만, 1개만 필요한 경우가 있습니다. 애플리케이션 전체에서 동일한 설정 값을 사용해야 한다던지, DB 스레드 풀, 캐시와 같이 애플리케이션 전체에서 공유하여 사용하는 리소스라던지, 로그를 기록하는 객체 같은 것들은 애플리케이션에서 1개의 인스턴스만 생성되어야 합니다. 이렇게 한 개의 인스턴스만 존재함을 보증하는 패턴을 Singleton 패턴이라고 부릅니다. 클래스 다이어그램 Singleton 패턴의 클래스 다이어그램은 다음과 같이 표현합니다. singleton 속성과 Singleton 생성자가 모두 private으로 정의되어 있습니다. 이는 생성된 객체를 직접 접근하거나 생성할 수 없도록 명시하는 것입니다. 생성된 인스턴스는 getInstance 메서..

Hello world(Chrome확장프로그램 ver)

한번쯤은 내가 만든 확장 프로그램을 사용해보고 싶다는 마음을 가지고 있었습니다. 그러다가, 크롬 앱 만들기 강좌를 찾았습니다. 따라 하다 보면 크롬 확장 프로그램은 만들 수 있겠다 싶어서 들어봤습니다. 수업 내용은 나름 괜찮았습니다. 몰랐던 자바스크립트 기능도 알게되고, 무엇보다 강사의 코딩 스타일이 유용해 보였습니다. 하지만, 끝까지 크롬 확장 프로그램 만드는 얘기는 하지 않더라고요. 그래서 시작한 김에 크롬 확장 프로그램 만드는 방법을 찾아봤습니다. 확장 프로그램 작성 hello world 크롬 확장프로그램을 만들기 위해서 필요한 것은 세 가지입니다. manifest.json icon image 확장프로그램에서 실행할 파일 ( 여기서는 html 파일 ) manifest.json manifest.jso..

WSL2 실제 위치는 어디일까?

윈도우10 2004 업데이트를 하고 나서, WSL2를 정말 잘 사용하고 있습니다. Docker도 잘 사용하고 있고, JetBrain IDE도 최근 업데이트로 WSL2 기반의 git을 사용할 수 있게 되어, 개발 환경이 한층 더 쾌적해짐을 느끼고 있습니다. git은 윈도우에서 쓸 때 느린 반응 때문에 항상 불편했었거든요. 그런데, 최근 궁금한게 생겼습니다. wsl2에서 윈도우에서 사용하는 드라이브를 직접 접근할 수 있는데, 이는 /mnt/에 마운트 되어있습니다. 그러면 / 아래의 /home, /etc, /var 같은 공간은 대체 어디에 있을지 궁금함이 생겼습니다. 좀 찾아보니, 설치되는 위치는 마이크로소프트 스토어에서 설치한 wsl distro에 따라서 다르며 ubuntu의 경우는 "C:\Users\{us..