Study52 데이터의 처리에 따른 분류를 하는 CQRS 패턴 Pattern CQRS Pattern??명령(Command)과 질의(Qurey)의 책임(Responsebility)을 분리(Segregation)한다는 뜻의 약자를 따서 만든 패턴입니다.쓰기를 위한 데이터 모델(Write Model)과 읽기를 위한 데이터 모델(Read Model)을 분리하는 패턴이라고 할 수 있는 것이지요.그러면 명령(Command)과 질의(Qurey)란 무엇을 뜻하는 걸까요??간단하게 말하게 표현해 보겠습니다.Command : 시스템의 상태를 변경(Create, Update, Delete)하는 작업Query : 시스템의 상태를 조회(Read)하는 작업CQRS는 왜 사용할까??데이터를 쓰는 빈도보다 데이터를 읽는 빈도가 훨씬 높은 경우 쓰기를 위한 데이터 모델을 데이터 조회에 그대로 사용하는 경우 정.. Study/디자인패턴 2024. 9. 25. Kubernetes에서 NFS와 PV,PVC,를 이용한 데이터 관리하기 Why??Kubernetes 환경에서는 우리가 사용하고 싶은 application을 이미지화해서 쉽게 배포하고 관리할 수 있습니다. 하지만, Storage에 대한 문제가 있는데요. 우리 컨테이너화해서 사용하고 있는 Pod에 쇼핑몰 홈페이지가 있다고 가정해봅시다.우리는 쇼핑몰 홈페이지에서 등록하는 상품을 100개 등록했고, 해당 상품마다 이미지가 20개씩 들어있다고 해봅시다.분산화한 개발이 아닐 경우, 우리는 해당 프로젝트가 있는 host의 어딘가에 저장을 하게됩니다. 예를 들면 /project/image라는 폴더에 저장을 하겠죠. 하지만, 분산화시켜 사용 중 해당 Pod이 알 수 없는 이유 때문에 깨져 Pod이 내려갔다가 다시 생성되었다고 가정해 봅시다.그러면 우리가 처음에 배포한 이미지를 바탕으로 쇼핑.. Study/Kubernetes 2024. 6. 27. kubernetes Control-plane(Master Node)도 일을 시켜보자!! Taint 설정 해제 하기처음 Kubernetes를 설치하여 Master Node(Leader Node)휘하에 Worker Node를 붙였다면, 기본적으로 Pod 들은 Worker Node에만 올라가도록 설정되어 있습니다. Master Node(Leader Node)에도 Pod을 올리고 싶다면 Taint설정을 해제해야 하는데요.우선 Taint설정이 어떻게 되어 있길래 안올라가는지 확인해 봅시다.kubectl describe nodes ${node_name} |grep Taints 저의 경우에는 다음과 같이 입력합니다.kubectl describe nodes k8s-master.example.com |grep Taints 이리하면 결과는 다음과 같이 나오게 됩니다.Taints: nod.. Study/Kubernetes 2024. 6. 23. kubernetes 환경 구성하기(feat. cri-o, Utuntu 22.04, calico) 사전 준비Virtual Machine ProgramUbuntu 22.04.x server(.iso)Ubuntu 기본 설정Ubuntu 설치 후 설치해야 하는 것들Ubuntu 22.04.x LTS를 설치하면 minimized로 설치하지 않는이상 Ubuntu에서 자동으로 설치해주는 툴들이 있다. 하지만, 설치가 되지 않는 것들도 존재하는데 이것들을 설치해주자. 1) vim* 어떠한 에디터를 사용하던 상관은 없지만, 이미 vim에 노예이기에 vim을 설치하자.* Ubuntu 22.04에서 기본적으로 vim-tiny가 설치되어 있다. 우리는 vim이랑 똑같이 동작하지만, 하이라이트 적용을 위해 새로운 vim을 설치하자.sudo apt update# vim-tiny 삭제sudo apt remove vim-tiny#.. Study/Kubernetes 2024. 6. 23. Kubernetes 구성중 Swap Memory를 Off 해야하는 이유!! 왜 이런걸 궁금해 했을까??Kubernetes를 설치하는 과정에서 swap memory를 off 시키는 과정이 필수적!!공식문서에서도 off를 시키라는 문구가 적혀있다.그냥 off하라니까 하지뭐~~~해도 되겠지만!!왜!!!!! off 하라는지 궁금증을 참지못하고 찾아보게 되었다...Swap Memory우선 그... 스왑 메모리라는 녀석이 무엇인지를 알아야 했다.Swap이 녀석은 물리 메모리(RAM)의 용량이 부족할 대 하드의 일부 공간을 메모리 처럼 사용하는 것을 뜻한다.Swap in과 Swap out으로 나누어 지는데 아래의 예시를 생각해보자.현재 나의 메모리에는 50개의 프로세스가 올라갈 수 있다. 하지만 51번째의 프로세스를 추가로 올려야 하는 상황에 봉착했다!!!이러한 상황에서 50개 프로세스 중.. Study/Kubernetes 2024. 6. 23. 19. 보안 HTTP HTTP 안전하게 만들기서버 인증클라이언트는 자신이 위조된 서버가 아닌 진짜 서버와 이야기하고 있음을 알 수 있어야 함.클라이언트 인증서버는 자신이 가짜가 아닌 진짜 사용자와 이야기 하고 있음을 알 수 있어야 함.무결성클라이언트와 서버는 그들의 데이터가 위조되는 것으로부터 안전해야 함.암호화클라이언트와 서버는 도청에 대한 걱정 없이 서로 대화할 수 있어야 함.효율저렴한 클라이언트나 서버도 이용할 수 있도록 알고리즘은 충분히 빨라야 함.편재성(Ubiquity)프로토콜은 거의 모든 클라이언트와 서버에서 지원되어야 한다.관리자 확장성누구든 어디서든 즉각적인 보안 통신을 할 수 있어야 한다.적응성현재 알려진 최선의 보안 방법을 지원해야 한다.사회적 생존성사회의 문화적, 정치적 요구를 만족시켜야 한다.HTTPS모.. Study/HTTP 2024. 6. 9. 18. 다이제스트 인증 다이제스트 인증다이제스트 인증은 기본인증과 호환되는 더 안전한 대체재로서 개발되었다.널리 쓰이지는 않지만, 해당 개념은 보안 트랜잭션을 구현하고자 하는 이들에게 여전히 유용하다.현재는 잘 사용되어지고 있지는 않다.다이제스트 인증의 특징기본인증과 달리 해당 정보를 평문으로 보내지 않는다.인증 체결을 가로채서 재현하려는 행위를 차단한다.구현하기에 따라 메시지 내용의 위조를 막는 것도 가능하다.몇몇 알려진 공격들에 대해 방어한다.비밀번호를 안전하게 지키기위해 요약 사용하기다이제스트 인증은 비밀번호를 절대 네트워크를 통해 보내지 않는다.서버와 클라이언트 모두 비밀번호를 가지고 있고, 해당 비밀번호의 요약문을 전송한다.이 때, 세상에 모든 비밀번호를 시도해보지 않는이상 원래 비밀번호를 알기 힘들다.동작원리클라이언.. Study/HTTP 2024. 6. 9. 17. 기본 인증 인증HTTP의 인증요구/응답 프레임워크“요청 - 인증요구 - 인가 - 성공”의 과정을 거쳐 인증을 한다.사용자가 다시 요청을 보낼 때는 인증 정보(사용자 이름과 비밀번호)를 첨부해야 한다.인증 프로토콜과 헤더WWW-Authenticate HTTP/1.0 401 Authorization Required WWW-Authenticate: Basic realm="Family"→ 서버는 사용자에게 401 Authorization Required 응답코드를 함께 보낸다.Authorization GET /family/jeff.jpg HTTP/1.0 Authrization: Basic YnJpYW4tdG90dHk6T3ch→ 서버로 인증시 인코딩된 비밀번호와 그 외 인증 파라미터를 담아 요청을 다시 보내야 한다... Study/HTTP 2024. 6. 9. 16. 클라이언트 식별과 쿠키 16. 클라이언트 식별과 쿠키(~ing)개별 접촉HTTP는 익명으로 사용되며, 상태가 없고 요청과 응답으로 통신하는 프로토콜이다.현대의 웹사이트들은 개인화된 서비스를 제공하고 싶어한다.사용자 별 개별인사, 맞춤 추천, 정보, 세션 추적 등으로 사용자를 식별하여 정보를 제공 할 수 있다.사용자 식별 기술사용자 식별 관련 정보를 전달하는 HTTP 헤더들클라이언트 IP주소 추적으로 알아낸 IP주소로 사용자를 식별사용자 로그인 인증을 통한 사용자 식별URL에 식별자를 포함하는 기술인 뚱뚱한(fat) URL식별 정보를 지속적으로 유지하는 강력하면서도 효율적인 기술인 CookieHTTP 헤더FromType : 요청사용자의 이메일 주소악의적으로 정보를 뽑아 스팸메일을 보낼 수 있으므로, 해당 헤더를 보내는 브라우저는.. Study/HTTP 2024. 5. 21. 15. Web Robot Web Robot?사람과의 상호작용 없이 연속된 웹 트랜잭션들을 자동으로 수행하는 소프트웨어 프로그램방식에 따라 “크롤러” “웜” “스파이더” “봇” 등 다양하다. ex) 검색엔진, 주식 그래프 로봇 등크롤러와 크롤링웹 크롤러의 작동 방식 (crawl : 기어다니기)페이지를 방문한다.방문한 페이지의 하위 페이지를 방문한다.하위 페이지의 하위페이지를 방문한다.위의 행동을 재귀적으로 반복한다. ex) 검색엔진 → 크롤링을 하면서 만나는 모든 문서를 끌어와 나중에 검색 가능한 데이터베이스로 만들어진다.루트 집합크롤링을 시작하는 출발지점몇 몇 페이지들은 성격상 찾아가지 못 할 수 있다. 때문에 신중히 골라야 한다.인기가 많거나 새로 생성된 페이지들의 목록, 자주 링크되지 않는 잘 알려지져 있지 않은 페이지.. Study/HTTP 2024. 5. 21. 14. 통합점 게이트웨이, 터널, 릴레이 14. 통합점: 게이트웨이, 터널, 릴레이게이트웨이서로 다른 프로토콜과 애플리케이션 간의 HTTP 인터페이스인터프리터와 같이 리소스를 받기 위한 경로를 안내하는 역할요청을 받고 응답을 보내는 포털 같이 동작동적인 컨텐츠를 생성하거나 데이터 베이스에 쿼리를 날릴 수 있다. ex) HTTP 클라이언트 ↔ 게이트웨이 ↔ FTP Server ex) HTTP 클라이언트 ↔ 게이트웨이(클라이언트 측 보안) ↔ Web Server ex) HTTP 클라이언트 ↔ Application Server 게이트웨이 API (App Server ↔ Program)클라이언트 측 게이트웨이, 서버 측 게이트웨이게이트웨이는 클라이언트 측 protocol과 서버 측 protocol을 ‘ / ‘(빗금)으로 구분한다. ex) 게이트.. Study/HTTP 2024. 5. 21. 13. Cache 13. CacheCache??Web Cache란 자주쓰는 문서의 사본으로 자동으로 보관하는 HTTP 장치이다.불필요한 데이터 전송을 줄여, Cost를 줄여준다.네트워크의 병목을 줄여준다.병목 → 전체 시스템의 성능이나 용량이 하나의 구성 요소로 인해 제한을 받는 것대역폭을 늘리지 않아도 페이지를 빠르게 불러 올수 있게 된다.Origin Sever에 대한 요청을 줄여 Server의 부하를 줄여준다.Flash Crowds에 대응 할 수 있다.Flash Crowds → 갑작스런 요청 쇄도Server와의 물리적 거리에 따라 지연시간이 발생하는데 이러한 현상을 줄여준다.대역폭이 네트워크 속도와 문서 크기에 따라 전송시간에 미치는 영향(단위 : sec)큰 HTML(15KB)JPEG(40KB)큰 JPEG(150K.. Study/HTTP 2024. 5. 21. 이전 1 2 3 4 5 다음 💲 추천 글 728x90 반응형