본문 바로가기

분류

(1202)
JSON 데이터 사용 FrontEnd (HTML, React) 계획JSON 데이터를 가져온다.JSON 데이터를 JavaScript 객체로 변환한다.HTML 요소를 사용하여 데이터를 화면에 표시한다.React 없이 React 사용import React from 'react';import ReactDOM from 'react-dom';const App = () => { // 1. JSON 데이터를 가져옵니다. const jsonData = '{"name": "John Doe", "age": 30, "city": "New York"}'; // 2. JSON 데이터를 JavaScript 객체로 변환합니다. const data = JSON.parse(jsonData); // 3. JSX를 사용하여 데이터를 화면에 표시합니다. re..
트러블 슈팅을 해보자 (TCP/IP, NLB, EKS, pod) 상황은 아래와 같다.EKS에 AA라는 pod가 생성 되어 있다. 이 pod는 TCP/IP를 통해 BB라는 기관과 커넥션을 맺고 데이터를 송 수신 한다.그리고 해당 pod는 TCP/IP 연결을 해야하기 때문에 고정 IP를 할당해야 했으므로, NLB를 통해서 트래픽이 전달된다.그리고 클라이언트는 NLB의 a리전의 IP를 통해서 커넥션 연결을 시도한다.여기서 문제는 NLB를 구성하기 위해서는 최소 2개의 리전을 설정하여 생성해야 한다. 하지만 해당 pod는 TCP/IP 연결 특성상 멀티 리전에 pod를 배포하지 못하고, a와 c리전 중 a리전에만 pod를 배포 하고 있다.첫번째 질문pod가 생성이 될때, EKS 특성상 A리전과 C리전중 랜덤으로 생성이 될 수 있다.이를 방지하기 위해서는 nodeSelector..
느슨한 결합과 강한 결합 그림으로 느슨한 결합과 강한 결합을 설명하기 위해, 두 가지 다이어그램을 그릴 수 있다.느슨한 결합 (Loose Coupling)다이어그램: 인터페이스를 통해 구현체를 분리하여 의존성을 줄이는 구조+----------------+ +----------------+| ShoppingCart | | PaymentProcessor|| |강한 결합 (Tight Coupling)다이어그램: 클래스가 다른 클래스의 구체적인 구현에 직접 의존하는 구조+----------------+ +----------------+| ShoppingCart |------>| PayPalProcessor|| | | ..
MSA에서 비동기 통신을 해야 하는 이유? 질문. 왜 비동기 통신을 통해서 의존성을 줄여야 하는가? 동기 통신 으로으로는 의존성을 줄일수 없나?비동기 통신을 통해 의존성을 줄이는 이유는 다음과 같다.성능 향상: 비동기 통신은 서비스가 응답을 기다리지 않고 다른 작업을 계속 수행할 수 있게 한다.이는 시스템의 전체 처리량을 증가시킨다.확장성: 비동기 통신은 서비스 간의 결합도를 낮추어 각 서비스가 독립적으로 확장될 수 있게 한다.내결함성: 비동기 메시징 시스템을 사용하면 한 서비스가 다운되더라도 메시지가 큐에 남아 있어 나중에 처리될 수 있다.유연성: 비동기 통신은 서비스 간의 직접적인 호출을 줄여, 서비스의 변경이 다른 서비스에 미치는 영향을 최소화 한다.동기 통신은 서비스 간의 강한 결합을 초래할 수 있으며, 한 서비스의 지연이 다른 서비스의 ..
etcd etcd: etcd는 분산 키-밸류 저장소로, Kubernetes의 모든 클러스터 데이터를 저장하는 데 사용된다. etcd는 클러스터 상태, 구성 정보, 시크릿, 서비스 디스커버리 데이터를 저장하며, 고가용성과 일관성을 보장한다.etcd는 Kubernetes의 키-밸류 저장소로 주로 사용되지만, 다른 용도로도 사용할 수 있습니다. 예를 들어, etcd를 캐싱, 서비스 디스커버리, 분산 설정 저장소 등으로 활용할 수 있다.쿠버네티스에서 etcd를 사용하는 이유는 ?etcd는 고가용성과 일관성을 제공하는 분산 키-밸류 저장소로 설계되었지만, 다른 키-밸류 저장소에 비해 상대적으로 가볍다고 할 수는 없다. etcd는 주로 분산 시스템에서의 일관성과 가용성을 보장하기 위해 설계되었기 때문에, 이러한 특성으로 인..
TOAST(The Oversized-Attribute Storage Technique) 메커니즘 TOAST(The Oversized-Attribute Storage Technique) 메커니즘은 PostgreSQL에서 큰 데이터를 효율적으로 저장하기 위해 사용되는 기술이다. TOAST는 다음과 같은 방식으로 작동한다.큰 데이터 분할: 테이블의 특정 컬럼에 큰 데이터가 저장될 때, TOAST는 이 데이터를 여러 조각으로 분할한다.외부 저장: 분할된 데이터 조각은 TOAST 테이블이라는 별도의 저장소에 저장된다.압축: 분할된 데이터 조각은 저장되기 전에 압축될 수 있다.참조: 원래 테이블의 컬럼에는 TOAST 테이블의 데이터를 참조하는 포인터가 저장된다.이 메커니즘을 통해 PostgreSQL은 큰 데이터를 효율적으로 관리하고, 저장 공간을 절약하며, 성능을 향상시킬 수 있다. - 끝 -
OLTP에서 기본키(PK)와 외래키(FK)의 의미 기본키와 외래키는 OLTP(Online Transaction Processing) 시스템에서 데이터 무결성을 유지하는 데 중요한 역할을 한다.기본키 (Primary Key): 테이블 내에서 각 행을 고유하게 식별하는 하나 이상의 열이다. 기본키는 중복될 수 없으며, NULL 값을 가질 수 없다.외래키 (Foreign Key): 한 테이블의 열이 다른 테이블의 기본키를 참조하는 키이다. 외래키는 두 테이블 간의 관계를 정의하며, 참조 무결성을 유지하는 데 사용된다.기본키와 외래키의 예기본키와 외래키의 사례를 간단한 SQL 테이블로 설명하면 아래와 같다.기본키와 외래키 예제users 테이블id 열이 기본키이다.CREATE TABLE users ( id INT PRIMARY KEY, username..
A/B 테스트에서 p value와 귀무가설 A/B 테스트에서 p-value는 귀무가설(null hypothesis)을 기각할지 여부를 결정하는 데 사용된다. 귀무가설은 일반적으로 "두 그룹 간에 차이가 없다"는 가정을 의미한다. 예를 들어, 웹사이트의 두 가지 버전(A와 B)을 테스트할 때, 귀무가설은 "버전 A와 버전 B의 전환율에 차이가 없다"는 것이다.예제귀무가설 (H0): 버전 A와 버전 B의 전환율에 차이가 없다.대립가설 (H1): 버전 A와 버전 B의 전환율에 차이가 있다.p-value 해석p-value : 귀무가설을 기각한다. 즉, 두 버전 간에 통계적으로 유의미한 차이가 있다고 결론짓는다.p-value >= 0.05: 귀무가설을 기각하지 않는다. 즉, 두 버전 간에 통계적으로 유의미한 차이가 없다고 결론짓는다.Python 코드 예제..