본문 바로가기

반응형

기타

(27)
[vscode] vscode 파이썬 디버깅 VS Code 는 .vscode/launch.json 파일에 저장되어있는 설정을 바탕으로 디버깅 기능을 수행할 수 있도록 되어있다. launch.json 에 다양한 디버깅 설정을 지정할 수 있는데, 파이썬 프로그램을 디버깅시의 설정과 사용법 등에 대해서 알아본다. 1. Python Debugger 기본적으로 파이썬을 디버깅하기 위해서는 launch.json 에 파이썬 디버깅을 위한 설정을 저장해야한다. 아무런 디버깅 설정이 되어있지 않은 vscode 에서 디버깅을 수행하려고 하면 어떤 설정으로 디버깅할 것인지 선택하도록 한다. 이때 Python file 을 선택하면 기본 python 설정 내용을 포함한 launch.json 파일이 열리게 된다. 이 파일에 설정을 통해서 파이썬을 디버깅할 수 있다. 기본 ..
[git] git stash git 을 사용하여 작업을 하던 중 branch 를 바꾸기 위해서 git check 을 시도하면 때로 변경사항이 있어서 브랜치를 변경할 수 없다며 commit 또는 stash 를 통해서 변경 사항을 저장하라고 한다. commit 은 변경사항을 local repository 에 저장하는 명령어인데 stash 는 어떤 명령어인지 몰라서 이번에 알아보려 한다. 1. git stash git stash 란 워킹 디렉토리에서 수정한 파일들을 저장하는 명령어이다. stash 는 modified 이면서 tracked 상태인 파일과 staging area 에 있는 파일들을 스택에 잠시 저장했다가 나중에 다시 저장할 수 있도록 해준다. 이를 통해서 아직 마무리 되지 않은 작업을 잠시 저장해두었다가 다른 브랜치에서 작업을..
[git] squash로 commit 합치기 1. squash 때로는 하나의 기능을 구현하는데 있어서 프론트, 서버 또는 여러번의 수정으로 인해 커밋의 개수가 여러개가 될 때가 있다. 이럴 때 커밋 이력 등을 정리하기 위해서 git squash 를 사용하여 커밋 이력을 합치면 된다. git의 squash 기능은 여러개의 커밋 이력을 하나의 커밋 이력으로 만들 때 사용한다. 정확히 말하면 git rebase 를 통해서 이전 commit log 등을 되돌릴 수 있는데, 이 때 squash 옵션을 사용하여 되돌리는 커밋들을 하나의 커밋으로 만들 수 있다. # git commit log 를 확인한다. git log # log를 통해서 확인하여 rebase 명령어를 통해 해당 commit 으로 원복을 수행한다. # 이때 -i 옵션(interactive)을 ..
[git] git submodule / subtree git 저장소 안에 또 다른 저장소가 필요한 경우 submodule 또는 subtree를 사용한다. 실제로는 여러 개의 개별 저장소이지만 개발자의 로컬에서는 하나의 저장소로 관리할 수 있도록 한다. 이 둘을 비교해보고 자신의 프로젝트에 맞는 방식으로 프로젝트를 관리하면 된다. 1. submodule git 저장소 안에 다른 저장소가 들어가 있는 개념이다. 상위 저장소에서 서브 모듈을 SHA 값, 하나의 바이너리처럼 취급하기 때문에 병합에 있어 복잡하다. 저장소가 병합되는 것이 아닌 최신 커밋의 내용으로 교체된다. 직접 서브모듈을 업데이트한 뒤 병합 후 푸쉬해야한다. .gitmodules를 통해 메인 프로젝트에서 sub 프로젝트를 관리할 수 있다. .gitmodules에는 submodule로 사용할 프로젝..
[NATS] NATS 개념 정리 NATS 란? NATS 란 오픈소스 메세지 큐 서비스의 한 종류로 메인 서버는 Go 언어로 구현되어 있고, 클라이언트들은 다양한 언어에 대한 라이브러리들을 지원해주고 있다. 기본적으로 Publisher와 Subscriber로 구성되어 있으며 인코딩 된 메세지를 publisher가 송신하면 하나 또는 여러 개의 subscriber에 의해서 수신되고 디코딩 되어진다. NATS는 환경, 언어, cloud / on-premise 시스템 등 프로그램 간의 서로 다른 환경에 상관없이 쉽게 통신할 수 있도록 구현되어 있다. Client들은 URL을 통해서 서버에 접속하고, subject를 통해 메세지를 전송한다. NATS 서버는 at most once의 QoS를 제공한다. 만약 특정 subject에 대한 subscr..
[MQ] Message Queue란? Message Queue란? MOM (Message Oriented Middleware)를 구현하여 서버와 클라이언트 사이의 통신을 비동기 메시지 처리 방식으로 처리하는 시스템이다. 서버와 클라이언트 사이의 통신에서 이미지 처리, 비디오 인코딩, 대용량 데이터 처리 등과 같이 리소스의 소모가 큰 데이터 통신을 진행해야 하는 경우 처리할 수 있는 양이 한정되어있기 때문에 요청의 지연이나 손실, 서버의 다운 등이 발생할 수 있는데, MQ 서비스는 서버와 클라이언트 사이의 미들웨어로 비동기 메시지를 사용하여서 이런 통신들을 처리하는데 사용합니다. 기존에 분산되어있던 데이터 처리를 MQ의 Message Broker 한 곳에서 처리하도록 두어서 로드밸런싱과 MQ clustering 기능 등을 사용하여서 작업을 분..
[git] git add, commit, push 취소하는 방법 git을 통해서 프로젝트 버전 관리를 하는 도중에 실수로 push를 진행해서 remote repository (github)에 업데이트 되었다. 이를 취소하기 위해서 git push 등을 통해 repository에 업데이트 된 내용들을 취소하는 방법을 찾아보았다. 1. git add 취소하기 git add [file name] 명령어를 사용하는 경우 파일의 변경사항이 local의 index에 staging 상태로 올라가게 된다. 이때 reset 명령어를 사용해서 unstaging 상태로 원복할 수 있다. $ git reset HEAD [file name] 입력된 file name에 대해서 staging 되어있는 변경사항이 unstaging 된다. file name을 따로 입력하지 않는 경우에는 현재 st..
테스트 주도 개발 TDD와 BDD, DDD TDD (Test-Driven Development) ■ TDD 방법론이란? TDD 방법론은 짧은 개발 서클을 반복하는 소프트웨어 개발 프로세스로 프로그램의 소스코드를 작성하기 전에 테스트 케이스를 먼저 작성하는 순서로 개발을 진행하도록 한다. 요구사항에 해당하는 테스트 케이스를 작성하고 이를 통과할 수 있는 짧은 코드를 작성한다. 그리고 이 코드를 리팩토링하는 과정을 반복하여 프로그래밍을 진행한다. TDD 방법론은 개발자가 새로운 기능에 대한 테스트 케이스를 먼저 작성하는 것이 더 좋은 소프트웨어를 만들어내고 프로젝트를 보다 빠르게 완료할 수 있지 않을까라는 생각에서 생각에서 비롯되었다. 이는 기존의 product 코드를 먼저 작성하는 이를 테스트 했던 것과는 다른 접근이다. 기존에는 새로운 기능을 추..

반응형