[따배쿠] 쿠버네티스 시리즈 강의를 보고 배운 내용을 정리한 글입니다. https://www.youtube.com/playlist?list=PLApuRlvrZKohaBHvXAOhUD-RxD0uQ3z0c [따배쿠] 쿠버네티스 시리즈 www.youtube.com 쿠버네티스에서의 컨테이너 동작 흐름 1. docker push : 실행할 이미지를 도커 허브에 올립니다. 2. Image is pushed to Docker hub : 이미지가 도커 허브에 올라갑니다. 3. kubectl create deploy web --image=hub.example.com : deploy를 생성합니다. (위에서 올린 이미지 사용) 4. kubectl issues REST call 5. Pod created and schedul..
Spring Cloud Config 다루기 스프링 부트 프로젝트에서 설정 파일은 주로 application.yml에서 관리한다. MSA에서 여러 서비스들마다 각각 설정 파일들을 관리하려면 번거롭다 → 한 곳에 설정 파일만 관리한다면, 여러 서비스 서버에서 바꾸는 게 아니라 하나의 서버에서 변경할 수 있음 또한, 변경 사항이 생기면 설정 파일을 수정하고 서버를 재기동 해야하는 문제도 발생한다. Cloud Config 특징 spring cloud config서버는 분산 시스템에서 설정 정보를 제공해 주는 중앙 서버이다. 즉 설정파일들을 모아놓고 각 클라이언트에 맞는 설정 파일들을 제공한다. 재배포하지 않고 동적으로 설정 파일들을 변경할 수 있다. 여러 서비스들은 config-server에서 설정 파일들을 조..
웹 애플리케이션을 개발하면서 REST API를 이용해 다른 서비스를 호출할 때는, 다른 서비스에서는 호출하려는 인스턴스가 있는 곳의 네트워크 정보를 알아야 합니다. → 클라이언트나 API GateWay는 호출할 서비스를 찾는 메커니즘이 필요하고, 이것을 Service Discovery라고 합니다. Spirng Cloud Netflix Eureka가 Service Discovery 역할을 합니다. Spring Eureka Discovery Service Spring Eureka Discovery Service는 마이크로서비스 아키텍처(MSA)에서 핵심적인 역학을 합니다. 마이크로서비스들의 위치를 찾아주는 지도와 같은 역할을 합니다. MSA에서 마이크로서비스들의 위치를 동적으로 찾아오는 역할을 합니다. 클라..
[따배쿠] 쿠버네티스 시리즈 강의를 보고 배운 내용을 정리한 글입니다. https://www.youtube.com/playlist?list=PLApuRlvrZKohaBHvXAOhUD-RxD0uQ3z0c [따배쿠] 쿠버네티스 시리즈 www.youtube.com 기존 멀티 호스트 도커 플랫폼에 단점 하나의 컴퓨터에 여러 개의 컨테이너를 관리해야 하는데, 수 십 개, 수 백개가 될 수도 있는 마이크로 서비스 환경에서 해당 컨테이너들을 일일히 관리하는 것은 비효율적입니다. 그래서 각 컴퓨팅 환경에서 컨테이너를 생성 및 관리해 주는 컨테이너 오케스트레이션 기능을 해주는 쿠버네티스 기술을 사용할 수 있습니다. Container orchestration (컨테이너 오케스트레이션) 컨테이너 오케스트레이션 방법은 마스터..
인덱스란 ▶ DBMS가 데이터베이스 내의 특정 레코드들을 빠르게 찾을 수 있도록 하는 데이터 구조이며, 인덱스를 통하여 질의를 수행하면 응답 시간이 향상됩니다. 즉, 인덱스는 데이터베이스에서 원하는 데이터를 조회하는데 시간을 단축시켜 주는 또 하나의 파일 데이터라 할 수 있습니다. 인덱스는 보통 형태로 구성되어 있습니다. 디스크 접근 시간이 주기억 장치 접근 시간에 비해서 크며 대부분의 데이터베이스 응용에서 디스크 접근을 많이 요구하여, 탐색 시간을 단축해야 좋은 성능을 가질 수 있습니다. 인덱스 파일의 크기는 보통 데이터베이스 파일의 크기에 비해 훨씬 작습니다. 왜냐하면 인덱스는 여러 애트리뷰트 중에서 탐색 키에 해당하는 일부 애트리뷰트만 포함되기 때문입니다. (+ 포인터도 있음) 데이터베이스에서 인덱..
Merge 알아보기 git checkout feat/1 git merge develop 1. Fast-Forward 새로운 브랜치 ‘feat/1’가 develop 브랜치로부터 분기된 이후 develop 브랜치에 새로운 커밋이 올라오지 않았다면, ‘feat/1’ 브랜치가 develop 브랜치와 비교했을 때 최신의 브랜치라 할 수 있습니다. Git-flow 방식으로 develop 브랜치에서 새 브랜치로 분기하면서 개발하는 경우 이런 경우 ‘feat/1’의 변경 이력을 그대로 develop으로 합치는 것이 Fast-forward Merge입니다. 2. Recursive (재귀적) ‘feat/1’ 브랜치가 develop 브랜치에서 분기 되고 develop 브랜치에 새로운 커밋이 생겼다면, ‘feat/1’를 최신..
CORS(Cross-Origin Resource Sharing) 란 웹 애플리케이션에서 다른 출처(origin)의 리소스에 접근할 수 있는 규칙을 정의하는 메커니즘입니다. 웹 브라우저는 보안 상의 이유로 스크립트가 동일한 출처에서 실행될 때만 리소스에 접근을 허용합니다. 그러나 이로 인해 다른 출처의 리소스에 접근하는 요청이 차단되는 문제가 발생할 수 있습니다. 이를 해결하기 위해 CORS가 도입되었습니다. 개발하면서 마주치는 CORS 에러 분석하기 Warning! Access to fetch at ‘https://myhompage.com’ from origin ‘http://localhost:3000’ has been blocked by CORS policy: No ‘Access-Control-Allo..
웹 소켓 vs HTTP 양방향 통신을 가능하게 하는 통신 프로토콜입니다. HTTP 프로토콜의 한계를 극복하기 위해 등장했으며, 기존에도 자주 사용되는 HTTP 프로토콜은 클라리언트에서 서버로 요청을 보내고 서버는 그에 대한 응답을 보내는 단방향 통신 방식입니다. HTTP 방식은 실시간 통신이나 푸시 알림 등 양방향 통신에는 적합하지 않아, Socket을 사용하여 처리합니다. 주로 서버가 클라이언트에게 비동기 메시지를 보낼 때 널리 사용하는 기술입니다. 웹 소켓 연결은 처음에는 HTTP 연결이지만, 특정 핸드셰이크 절차를 거쳐 웹 소켓 연결로 업그레이드 됩니다. 웹 소켓의 특징 ✔️ 양방향 통신 간단히, 데이터 송수신을 동시에 할 수 있는 방법입니다. 일반 HTTP 통신은 Client가 요청을 보내는 경우..