Kong이란? Kong 은 API Gateway 이며 Nginx 기반의 Gateway 로 Plugin 을 add 하면서 부가 기능을 사용할 수 있다. 1.3 버전부터 gRPC 를 지원하기 시작했고 grpc-gateway Plugin도 지원하여 Restful 등록도 가능하다. gRPC 프로토콜을 지원하기 위한 API Gateway 가 필요하여 Kong을 설치하고 사용해보려고 한다. Kong Gateway 설치 DB-less 버전도 있는데, 서비스 관리를 admin api를 사용하여 할 것이기 때문에 DB 있는 버전으로 설치하려고 한다. 0. Docker Network 생성 따로 쓰는 docker network가 없으면 생성해놓는다. docker network create kong-ee-net 1. DB 설..
Rest 테스트를 위한 커맨드용 Client로 cURL 이 있듯이, gRPC 테스트를 위한 툴은 grpcurl 이 있다. 1. 아래 Tool 다운 받아서 압축 해제 gRPC용 Client Tool https://github.com/fullstorydev/grpcurl/releases/download/v1.8.1/grpcurl_1.8.1_windows_x86_64.zip 2. 시스템 환경 변수 설정 시스템 속성 → 환경 변수 사용자 변수 → Path 변수 → 편집 새로 만들기 → 압축 해제한 directory 추가 3. 설치 테스트 >grpcurl -version grpcurl v1.8.0 Reference https://github.com/fullstorydev/grpcurl fullstorydev/gr..
서버가 여러대 늘어날 것을 대비해서 모니터링을 간편화 하기 위해 EFK 스택을 설치해서 테스트 해보려고 했다. (Elastic Search + Filebeat + Kibana) 현재는 로그가 다양하지 않아서 Logstash 까지는 설치하지 않았고, 일단 Filebeat만 설치하여 바로 Elastic Search에 보내는 구조까지만 했음 일단. [ElasticSearch] Installation tar -xzvf elasticsearch-7.3.2-linux-x86_64.tar.gz cd elasticsearch-7.3.2 ./bin/elasticsearch Make sure Elasticsearch is up and running [testserver:/home/test] curl http://127.0..
윈도우 로컬에 Docker for Windows 설치 후 kubernetes 활성화를 한 후 Helm 설치 테스트를 해봤다. 구성은 아래와 같이 했다. 서비스로 배포하고 일단 NodePort로 30123을 지정해 외부에서 쓸 수 있게 구성함 (Helm 배포 테스트용이라 Ingress 설정 등 따로 신경쓰지 않음) Docker 컨테이너 이미지 배포 후에 아래와 같이 Helm을 구성함 파일 디렉토리 구조는 아래와 같다. └─Chart │ .helmignore │ Chart.yaml │ values.yaml │ └─templates deployment.yaml service.yaml Chart.yaml apiVersion: v1 name: test description: A Helm chart for Serv..
Q. How many ReplicaSets exist on the system? A. kubectl get replicaset 결과 Q. How many PODs are DESIRED in the new-replica-set A. kubectl get replicaset -> 4 Q. What is the image used to create the pods in the new-replica-set? A. kubectl describe replicaset Q. How many PODs are READY in the new-replica-set A. kubectl get replicaset Q. Why do you think the PODs are not ready A. kubectl describe po..
Q. Create a new pod with the NGINX image A. kubectl run nginx --image=nginx 결과 Q. How many pods are created now? A. kubectl get pods 결과 Q. What is the image used to create the new pods? A. kubectl get pods -o wide A. kubectl describe pod newpods Q. Which nodes are these pods placed on? A. kubectl describe pod newpods Q. What images are used in the new 'webapp' pod? A. kubectl describe pod webapp..
Nginx의 응답 코드 중 497(HTTP to HTTPS, Nginx) 에러가 발생하는 이슈가 있다. ssl on 이 적용되어 있는 서버 포트에 접근할 때 http로 요청을 하면 에러가 나는 현상. HTTPS 적용 시 아래 설정을 추가한다. 497 에러 발생 시 아래와 같이 https 로 다시 요청하도록 설정한다. http { ... error_page 497 https://$host:$server_port$request_uri; ... } 이럼 자동으로 http 요청 시 https로 redirect 되도록 해준다. 끝
개발에도 단계가 있는 듯 하다. 돌아가는 코드 -> 성능을 생각한 코드 -> 확장성을 고려한 코드 물론, 변경용이성을 고려한 설계들 중 검증된 솔루션들이 디자인 패턴이라 이것만 공부해도 어느정도 커버가 된다. 하지만 디자인 패턴을 적용하기 전 이런 생각을 가져야 한다. 가장 많이 사용되는 Strategy Pattern에 대해서 잠깐 얘기를 해본다. 변하는 것이 무엇인지 예상! 위처럼 결제 서비스를 담당하는 Class가 있다고 해보자. 근데 여기서 결제 방식이 늘어난다면 어떻게 할까? NFC 결제에서 QR 결제로 바뀐다면 어떻게 할까? 이처럼 다른 의존성에 따라서 PayService의 pay는 계속 바뀌게 될 것이다. public void pay(String type) { if ("NFC".equals(t..
아키텍처 설계는 사실 완전 새로운 시스템을 도입하지 않는 이상, 기존 구조에 영향을 많이 받게 된다. 먼저 설계 전 구조에 영향을 받을수밖에 없는 제약사항을 검토한다. 제약사항으로 발생할 수 있는 이슈를 정리해보고 이를 고려해서 설계를 진행한다. 가장 중요한 건 시스템에서 가장 중요한 품질사항이 무엇이고, 이를 만족시키기 위한 설계가 진행되어야 한다는 것이다. 예전에 했던 프로젝트를 예로 들자면, 시스템 정의는 대충 아래와 같다. ※ 참고로, 회사 내에서 했던 내용이라 부서 간의 협의 문제도 있고 억지스럽게 구조가 잡힌 점도 좀 있다는 점을 감안 해주시길..프로젝트에 대한 내용을 설명하는게 아니고 어떤 품질로 어떤 고민을 했는지가 포커스 이런 프로젝트를 진행했었고 그 중 API Server를 담당했었다...
Base64 는 기본적인 인코딩 방식중 하나라고 볼 수 있다. 바이너리 데이터들을 인코딩할 때도 많이 쓰이는데 보통 메일에서 이미지나 실행파일들을 Base64 형태로 보내기도 한다. 여기서 64는 64진법을 사용한다는 뜻인데 위키백과 기준으로 아래와 같은 값들과 매칭된다 아래에서 0~61 까지 (A-Z, a-z, 0-9) 는 동일하고 그 뒤에 두개의 기호는 구현하는데에 따라 다를수 있음. Base64의 인코딩 원리는 1. 문자열을 bit 형태로 변형한다. 2. 6개의 bit씩 나눈다 3. 각각 위 테이블에 매칭되는 값으로 바꾼다 6개 bit로 자르는 이유는 6개의 비트면 조합이 64개이므로 (2^6) GODD 를 Base64 로 인코딩 한다고 하면 아래와 같이 나온다. 1. 문자열을 bit 형태로 변형한..
- Total
- Today
- Yesterday
- kubernetes
- 알고리즘
- 스프링
- 스프링 시큐리티
- DP
- leetcode
- 사토시 나가모토
- Java
- k8s
- 비트코인
- CARDANO
- SpringBoot
- 아키텍처
- Nealford
- Spring
- excel parsing
- 블록체인
- gRPC
- 암호화폐
- Vue.js
- vuejs
- architecture
- 동적계획법
- Blockchain
- white paper
- Bitcoin
- 카르다노
- 백준
- Redis
- Bruteforce
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |