본문 바로가기

전체 글159

AWS API Gateway로 S3에 파일 직접 업로드/다운로드하는 API 만들기 Upload API 참고 자료 https://youtube.com/watch?v=7T5VbMEJStQ https://repost.aws/knowledge-center/api-gateway-upload-image-s3 버킷 생성 이름, 리전 지정 버저닝 허용 암호화 허용 다른 설정은 모두 default Role 생성 및 연결 Role 생성 Trust : AWS Service Use case : API Gateway Permission : AmazonAPIGatewayPushToCloudWatchLogs Role name : api-gateway-s3-role Role에 Policy 생성 및 연결 생성한 Role 콘솔 → Add Permissions → Create Inline Policy Service :.. 2023. 12. 24.
HTTP로 실시간 통신 흉내내기 : Polling, Long Polling, Streaming, Web Hook 참고한 자료 https://velog.io/@hahan/Polling-Long-Polling-Streaming https://grammy.dev/guide/deployment-types https://junhyunny.github.io/information/spring-boot/polling-long-polling-and-spring-example/ HTTP 통신에 트릭을 사용해 실시간인 것처럼 작동하게 하는 기술로 Polling, Long Polling, Streaming, Web Hook 기법을 알아보자. 이 통신의 목적은 서버의 변경 사항을 클라이언트가 알게되도록 하는 것이다. Polling 클라이언트가 일정 주기를 가지고 서버에 http request를 하는 방식이다. 서버의 변경사항 발생 여부와.. 2023. 11. 8.
API 스타일 : REST vs GraphQL REST + HTTP REST API는 URL을 기반으로 통신한다. URL은 Uniform Resource Locator의 약어로, 필요로 하는 리소스의 주소를 나타낸다. 가령 nomadmovies.co/api/movies/1 이렇게 URL을 작성하면 nomadmovies.co의 리소스인 movies 중 1번을 의미한다. 리소스에 대한 동작은 HTTP의 메소드로 정의하는데, GET, POST, PUT, DELETE 등 리소스로 어떤 작업을 할지 구체적으로 넘겨준다. POST나 PUT 등 추가적으로 넘겨줄 데이터가 필요하다면 HTTP 패킷의 메시지 바디를 사용한다. REST API 예시 GET domain/users POST domain/products {”name”:”생강”,”price”:3000} DE.. 2023. 11. 8.
설정값 전달 : ConfigMap, Secret 설정값을 파드에 전달하기 🌱 설정값 타입 Key Value 설정 파일 🌱 설정값이나 설정파일을 애플리케이션에 전달하는 다양한 방법 도커 이미지에 설정 정보를 정적으로 저장 → 유연하지 않음 yaml 파일에 설정값 하드 코딩 → 설정 환경마다 다른 yaml 파일 존재 yaml 파일과 설정값 분리 → 보안값은 시크릿, 일반 환경설정값은 컨피그맵에 저장 🌱 yaml 파일과 설정값을 분리하는 방식의 장점 설정값 변경에 유리 : 애플리케이션에 필요한 설정이 바뀌어도 설정값 파일만 관리하면 되기 때문에, 간단하고 실수 없이 변경할 수 있다. 환경에 따른 설정값 분리 : 운영, 개발, 테스트 환경에서 사용하는 설정값을 분리하면, 같은 yaml 파일에 설정값만 바꿔서 실행할 수 있다. 설정값 재사용 : 설정 값을 따로.. 2023. 10. 29.
NameSpace 관리 요약 네임스페이스는 쿠버네티스에서 리소스를 논리적으로 구분하기 위해 사용하는 오브젝트이다. 파드, 레플리카셋, 디플로이먼트, 서비스와 같은 쿠버네티스 리소스들이 묶여있는 하나의 가상 공간이다. 리소스를 논리적으로 묶어서 가상 클러스터처럼 사용할 수 있다. 대부분 모니터링, 로드 밸런싱 인그레스 등을 위한 용도로 사용한다. 한편 네임스페이스에 속하지 않는 오브젝트도 있는데, 보통 클러스터 전반에 걸쳐 사용되어 특정 네임스페이스에서 관리되지 않아야 하는 노드 등이 있다. 특정 네임스페이스에 속하는 리소스는 다른 네임스페이스에서 직접 접근할 수 없으며, 네임스페이스의 이름을 통해서만 접근 가능하다. 네임스페이스의 사용 목적 네임스페이스는 쿠버네티스의 리소스를 논리적으로 구분하기 위해 사용한다. 다음과 같이 활.. 2023. 10. 29.
Service 서비스 서비스 외부와 접하는 단일 엔드포인트 뒤에 있는 클러스터에서 실행되는 애플리케이션을 노출시키며, 이는 워크로드가 여러 백엔드로 나뉘어 있는 경우에도 가능하다. kubernetes.io 서비스 소개 🌱 서비스란? 디플로이먼트의 파드를 연결하고 포트를 외부에 노출하는 오브젝트 파드의 논리적 집합과 그것들에 접근할 수 있는 정책을 정의하는 추상적 개념 서비스 추상화의 Decoupling : 백엔드 세트를 구성하는 파드가 프론트엔드 세트를 구성하는 파드에 기능을 제공하는 상황을 가정해보자. 백엔드 세트를 구성하는 실제 파드는 변경될 수 있지만, 프론트엔드 클라이언트는 이를 인식할 필요 없이 의존성을 유지할 수 있다. (이거 의존성주입 아녀~) 🌱 서비스의 기능 여러개의 파드에 쉽게 접근할 수 있도록 고유.. 2023. 10. 29.