본문 바로가기

반응형

기타

(29)
[Web] html form 태그에서 PUT, DELETE 사용 1. client - html form 태그 REST API 를 설계하다보면 필요에 따라 GET, POST 뿐만 아니라 PUT 과 DELETE 메서드를 사용해야 하는 경우가 있다. 그러나 form 태그에서는 기본적으로 GET, POST 방식만 지원한다. 그렇기 때문에 PUT, DELETE 메서드를 사용하기 위해서는 다음과 같이 hidden input 라인을 추가해주어야 한다. 이 방법은 약간의 꼼수인데, 위와 같이 hidden input 의 value 에 사용하고자 하는 메서드를 입력하여 form 태그 내부에 숨겨서 전송을 하는 것이다. thymeleaf 템플릿을 사용하는 경우에는 다음과 같이 구현할 수 있다. ... thymeleaf 는 따로 hidden input 태그를 추가하지 안하도 자동으로 추가..
[Web] Rest URI 네이밍 1. What is a Resource? REST 방식에서는 주요 데이터 표현, 개념을 리소스라고 한다. REST 방식에서 얻을 수 있는 정보들, 문서나 이미지, 특정 서비스 또는 다른 리소스들의 컬렉션 등을 리소스라고 한다. 리소스는 어떤 특정한 엔티티라기보다는 엔티티들의 집합과 개념적으로 매핑되어 있다고 이해할 수 있다. 1) Singleton and Collection Resources 리소스는 singleton 이 될 수도, collection 이 될 수도 있다. 예를 들어 customer 라는 엔티티가 있을 때, customer 는 싱글 리소스, customers 는 컬렉션 리소스가 된다. customers 는 '/customers' 로 customer 에 대해서는 '/customers/{cus..
[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 기능 등을 사용하여서 작업을 분..

반응형