GitHub Action을 이용하여 작업중인 PR의 Merge 방지하기.

GitHub에서 개발을 하다 보면 아직 완료되지 않은 PR(Pull Request)이 누군가의 선의 혹은 실수로 Merge 되는 경우가 종종 발생합니다. 이런 불상사를 막기 위해 여러 시도들을 해봤는데요, 제목에 WIP를 표시해서 작업 중이라고 표시하기, 리뷰가 완료되지 않은 PR은 메인스트림으로 머지되지 않게 설정하기 등등을 해보지만, 물리적으로 이런 불상사를 막지 못합니다. ( GitLab에는 이런 것을 막는 기능이 있네요. ) GitHub에서 GitHub Action을 이용해서 이런 작업중인 PR이 머지되지 않도록 하는 방법을 알아봤습니다. 1. GitHub Action이란? GitHub 에서 제공하는 CI/CD를 관리할 수 있는 Workflow를 정의할 수 있는 기능이라고 할 수 있습니다. 즉 빌..

뽀대나는 커밋 만들기 ( Signed Commit )

GitHub에서 소스코드를 보다 보면 종종 아래 그림과 같은 Verified라는 배지가 붙은 커밋을 볼 수 있습니다. 작성자가 커밋에 본인이 직접 작성한 것이라고 서명(Sign)한 커밋을 나타 냅니다. 이러한 서명은 gpg 인증을 통해서 할 수 있는데, 커밋을 어떻게 하여야 하며, GitHub에서는 어떻게 하는지 설명합니다. 왜 커밋에 사인을 해야 하는가? Git을 처음 접했을 때, 가졌던 의문 중 하나가 왜? 커밋의 작성자에 대한 검증을 하지 않는가? 였습니다. 좀 더 설명해 보자면 git을 처음 설치하게 되면 대부분 다음과 같은 설정을 하게 됩니다. git config --global user.email bitlog@tistory.com git config --gloabl user.name bitlo..

(내가) 자주 쓰는 tmux 명령어 모음

tmux 란? tmux는 터미널 멀티플렉서입니다. 멀티플렉서는 여러 개의 입력 중 하나를 선택하여 출력되도록 하는 회로를 말하는데, 줄여서 mux라고 부릅니다. 그래서 tmux는 바로 위에 스크린샷처럼 여러 터미널을 동시에 띄워두고 사용할 수 있는 애플리케이션입니다. 리눅스나 MacOS에서 사용할 수 있으며, 아쉽지만 윈도우에서는 사용할 수 없습니다. ( ConEmu가 비슷하다고 합니다만, 사용해보지는 않았습니다. ) tmux/tmux tmux source code. Contribute to tmux/tmux development by creating an account on GitHub. github.com 기본 개념. tmux사용법을 알기 위해서는 다음 4가지는 알고 있어야 합니다. 1. 세션 ( s..

다양한 크기의 테스트 파일 만들기.

최근에 서비스 중인 시스템의 성능을 개선하기 위한 일을 했고, 개선된 시스템의 성능을 점검하기 위해 다양한 크기의 테스트용 더미 파일을 만들어 부하 테스트를 진행했었습니다. 하드디스크를 뒤져서 적당한 파일을 찾아 테스트를 진행할 수도 있었지만 뭔가 1Mb, 10Mb, 100Mb와 같이 규격화된 파일로 테스트하면 결과를 분석하기 더 용이하지 않을까 하는 생각에 일정한 크기의 파일을 만들 방법을 찾아봤습니다. 실제로 했던 방법(ubuntu - dd) 성능 테스트용 agent 앱이 ubuntu 였기 때문에 dd 명령을 이용해서 테스트용 파일을 만들었습니다. dd를 이용하여 파일을 만들면 bs * count 크기의 파일이 만들어집니다. (How To Quickly Generate A Large File On T..

1분 만에 우분투 개발환경 만들기.

회사에서는 우분투, 윈도우즈 OS를 가진 두 개의 노트북을 사용하지만, 집에서는 그렇지 못합니다. 윈도우도 개발환경으로 사용하는데 충분하지만, 그래도 우분투 터미널에 익숙해져 있기도 하고, 오픈 소스 중 일부는 우분투 같은 리눅스에서만 실행할 수 있기에, 종종 ubuntu를 개발환경으로 사용 합니다. 최근에 집에서 사용하는 데스크탑 컴퓨터를 업그레이드하면서, OS도 새로 설치하는 바람에 우분투 개발환경도 새로 만들었습니다. 이 전에는 VirtualBox를 사용했었지만, 윈도우10에서 Docker를 이용해서 개발환경을 만들었고 그 과정 중 일부를 정리해봤습니다. 아 개발환경도 어떤 걸 개발하느냐에 따라 많이 다를 수 있겠네요. 저는 주로 백엔드 애플리케이션을 개발하고 간혹 ML을 하기도 합니다. 프로그래밍..