전체 글(25)
-
Spring cloud gateway request body cache
Request body cache Spring cloud gateway를 도입하는 과정에서 backend 로의 routing 전에 request body를 열어보아야하는 요구사항이 있었습니다. 특별히 손을 대지 않는 다면, filter들을 통해서 라우팅을 하는 과정에서 body가 읽혀지게 됩니다. 하지만 rest call에서 body는 상대편에서 보내오는 data stream을 직접 읽어오는 식이다보니 버퍼에 있는 내용을 꺼내게 되면 비게 됩니다. 버퍼에서 두번 읽을 수 없기 때문에 두 곳에서 사용을 하려면 처음 읽은 데이터를 어떤 식으로든 보존해 두었다가 재사용을 해야합니다. Spring cloud gateway에는 이를 cache를 통해서 해결하게끔 filter가 만들어져있고, 실제 사용하는 방법을 ..
2023.01.24 -
자작나스 만들기 STEP 3 (transmission web https 설정)
HTTPS 인증서 Transmission 설정을 완료하고 실제로 사용할 사람들에게 공유하기에 앞서 해결해야할 문제가 하나 더 있었습니다. Transmission web의 경우 외부 네트워크를 이용해서 접속을 할 것이며, 접속에 ID, PW를 이용할 것이기 때문에 오픈된 네트워크 환경에서 누군가 패킷을 탈취할 경우 비밀번호가 그대로 노출될 위험이 있었습니다. 그래서 서버에 HTTPS 인증서를 설정해야 했습니다. 먼저 HTTPS를 이용하기 위해서 도메인이 필요로 했고, 도메인은 개인적으로 친숙한 AWS를 ROUTE53을 통해서 개인 도메인을 구매했으며, 인증서 발행은 Let's encrypt를 이용하기로 하였습니다. 무료이기도 하고, 자동 갱신을 설정할 수 있으며, 편하다! 실제로 이전에 사용하던 Synol..
2023.01.24 -
자작나스 만들기 STEP 2 (transmission 설정)
Transmission - torrent client Linux의 torrent client 중에서 가장 널리 알려지고 많이 쓰이는 게 Transmission이라고 합니다. 사용할 툴은 쉽게 정했지만, 실제로 필요한 아래와 같은 요구사항을 충족시키기 위해 셋팅이 필요했습니다. 여러 User가 하나의 Linux 머신에 접속해서 원하는 torrent 씨드를 등록한다. 각자가 등록하여 다운 받는 항목과 진도를 확인할 수 있어야 한다. 타인이 다운 받는 항목은 서로 알 수가 없어야 한다. 각 서비스마다 하나의 Web이 제공되기 때문에 각 유저의 리스트를 별개로 관리하기 위해서는 유저마다 서비스를 따로 돌릴 필요가 있었습니다. 서비스 설정파일 Transmission이 설치가 되면 아래와 같이 서비스 데몬 설정 파..
2023.01.24 -
자작나스 만들기 STEP 1 (sftp 설정)
SFTP vs WEBDAV 오랫동안 사용하던 Synology NAS를 정리하고 Linux 머신을 셋업해서 NAS에서 사용하던 필수 기능을 셋업하는 과정을 진행하려고 합니다. 제일 먼저 필요했던건 기존에 사용하던 Network storage를 여러 지인들 에게 제공하는 것이었고, 어느 프로토콜을 사용할지에 대한 고민을 했습니다. 후보로 고민했던 Protocal은 webdav, sftp 두가지였고 webdav는 친숙한데 반해 4GB용량 제한이 있다고하여 후보군에서 제외하고 sftp를 사용하게 되었습니다. SFTP setup SFTP는 기본적으로 ssh daemon에서 설정으로 그냥 활성화가 가능한 구조였습니다. 하나의 포트로 사용할 수도 있지만, 방화벽을 포트 단위로 분리하여 ssh는 외부에서 접속할 수 없..
2023.01.24 -
.gitconfig (Multi user)
Multi user for Git 새롭게 일하게된 환경에서 Public github을 사용할 경우 개인적으로 사용하는 계정과의 분리가 필요로해졌습니다. 이전 회사에서는 Enterprise github을 사용하다보니 domain 레벨에서의 분리가 가능하여 ssh config로 해결하였지만, 이번에는 도메인으로는 구분이 안되고 회사용 계정을 생성하여 함께 써야하는 상황이라 Multi user 셋팅을 진행하고 이를 정리해두려고 합니다. .gitconfig 만들기 [includeIf "gitdir:/Users/myaccount/"] path=.gitconfig-personal [includeIf "gitdir:/Users/myaccount/Project/work/"] path=.gitconfig-work 일반적..
2023.01.24 -
Server test용 General Mock server 만들기
Mock server Micro service architecture 에서는 내부 타 Service와 Interaction을 하는 경우가 많이있고, 새로운 Micro service를 개발할 때 외부 호출을 통해 동작을 테스트 해야하는 경우가 종종있어왔습니다. 이때 mock server를 이용했으면 하는 케이스가 많이 있어서, 좀 더 쉽게 셋업을 할 수 있는 Mock server에 대한 고민을 하다가 이번에 토이 프로젝트 삼아 서비스를 만들게 되었습니다. Github repo Repo : https://github.com/wen-ys/GeneralMock.git Config routingPolicies: - path: "/books/1" filters: - type: "DelayFilter" args: |..
2023.01.24