분류 (1201) 썸네일형 리스트형 DBMS 인덱스 적용 사례 RDBMS 인덱스 적용 사례 (PostgreSQL)상황: 항공 운항정보를 저장한 테이블로 수십억 건의 데이터가 존재. 주로 항공편 번호와 출발 시간, 도착시간 기준으로 검색이 많이 이루어진다. 적용 방법:인덱스 생성: 항공편 번호와 출발 시간에 인덱스를 생성하여 검색 속도를 높인다.인덱스 유형 선택: 기본적으로 B-tree 인덱스를 사용했다. (대부분의 DB의 경우 B-tree 인덱스가 기본값으로 설정되어 있다.)인덱스 생성 코드:-- 항공편 번호에 인덱스 생성CREATE INDEX idx_flight_number ON flight_info(flight_number);-- 출발 시간에 인덱스 생성CREATE INDEX idx_departure_time ON flight_info(departure_time.. 데드락(Dead Lock)과 레이스컨디션(Race Condition)을 해결한 사례 SI 프로젝트 수행 중 TCP/IP 소켓 통신을 구현하다가 데드락(Dead Lock)과 레이스 컨디션(Race Condition)이 발생했었다. 관련 내용을 아래에 정리해 보자. TCP/IP 소켓 연결에서 데드락과 레이스 컨디션 문제를 해결하기 위해서는 프로세스와 스레드의 동작 방식을 이해하고 적절한 동기화 메커니즘을 사용하는 것이 중요하다. 먼저, 데드락(교착 상태)은 두 개 이상의 프로세스나 스레드가 서로의 자원을 기다리며 무한히 대기하는 상황을 말한다. 이를 해결하기 위해서는 자원 할당 순서를 정하고, 자원을 요청할 때 타임아웃을 설정하여 일정 시간 내에 자원을 얻지 못하면 요청을 취소하고 나중에 다시 시도하는 방법을 사용할 수 있다. 레이스 컨디션은 두 개 이상의 스레드가 공유 자원에 동시에 .. RAID 구현 연구 사례 (AWS EC2, RAID 1+0) 사례: EC2 인스턴스에서 RAID 구성예전에 TF에서 AWS EC2 인스턴스를 사용하여 고가용성과 성능을 높이기 위해 RAID 구성에 대한 POC를 한적이 있다. 프로젝트의 요구사항은 데이터의 신뢰성과 빠른 읽기/쓰기 속도를 보장하는 것이었다.RAID 구성 과정요구사항 분석: 프로젝트의 요구사항을 분석한 결과, 데이터의 신뢰성을 높이기 위해 RAID 1(미러링)과 성능을 높이기 위해 RAID 0(스트라이핑)을 결합한 RAID 10 구성이 적합하다고 판단했다.EC2 인스턴스 선택: RAID 구성을 위해 충분한 I/O 성능을 제공하는 EC2 인스턴스를 선택했다. m5.large 인스턴스를 사용하기로 결정했는데 가성비 및 성능을 고려한 결과 해당 인스턴스가 가장 적합하다고 판단 하였다.EBS 볼륨 생성: R.. Scalable Distributed Systems 구축 사례 정리 이번 SI 프로젝트에서 관련 서비스를 Distributed and Scalable Systems으로 설계 후 구축을 진행했다. 나는 TA 역할로 참여했으며, Distributed and Scalable Systems을 구성하고 아키텍처를 설계 하는데 있어 여러 요소들을 고려해야 했다. 관련 이야기를 하자면 아래와 같다.프로젝트 수행 이야기프로젝트 초기 단계에서 나는 시스템의 Scalability(확장성)를 최우선으로 고려했다. 일단 이전의 AS-IS기반의 사용자를 대비하여 시스템 확장을 고려하면 되지 않을까 하였지만 이번 프로젝트는 여러개의 시스템을 하나의 시스템으로 통합시키는거라 Scalability를 어느정도로 잡아야 할지 고민이 되었다. 그나마 다행인건 EKS의 pod로 올라가고 Fargate 형태.. OSI 7 Layer와 AWS 인프라 예전부터 궁금했던 건데 누가 정리를 이렇게 잘해 놓았네. ㅋㅋ 이번 플젝하면서 구현된 서비스를 AWS와 OSI7 Layer를 기반으로 정리를 해보았다. 위의 그림과는 좀 다른 거 같은데...모든 계층은 하위 계층에서 상위 계층으로의 연계 후 서비스가 동작 한다고 보면 된다. 예를들어 TCP/IP를 통해 소켓 통신을 맺는다면 1 - 2 - 3 -4 계층으로 순차적으로 실행 후 4계층에서 TCP/IP 소켓을 클라이언트와 서버간에 뙇 맺는다고 보면 된다. 상암동 데이터 센터와 AWS를 연결하여 수행한 SI 프로젝트를 OSI 7 계층 모델과 AWS 서비스에 적용하여 설명하면 다음과 같다.물리 계층 (Physical Layer):상암동 데이터 센터와 AWS 간의 물리적 연결은 AWS Direct Connect를 .. 공공기관과 TCP/IP 연계 내용 정리 플젝을 하면서 공공기관과 TCP/IP로 연계를 했었다.관련 내용을 정리하면 아래와 같다. 참고로 여기서 ME는 우리쪽이고 OG가 공공기관 이었다. 보통은 SYN과 ACK 플래그 값에 특정 값을 같이 보내서 서로 해당 값을 확인후 연결을 맺고 끊는다.3 Way Handshake (연결 설정)SYN (Synchronize)ME가 OG에 연결 요청을 보낸다. 이 요청은 SYN 플래그가 설정된 패킷으로 이루어진다.ME: "안녕하세요, OG님! 연결을 맺고 싶어요. (SYN=1, Seq=x)"SYN-ACK (Synchronize-Acknowledge)OG는 ME의 요청을 받고, 연결 요청을 수락한다. 이때 OG는 SYN과 ACK 플래그가 설정된 패킷을 보낸다.OG: "안녕하세요, ME님! 연결 요청을 수락합니다.. TCP/IP 4계층 모델로 AWS 인프라를 구현 TCP/IP 4계층 모델과 AWS 서비스 적용네트워크 인터페이스 계층 (Network Interface Layer)AWS Direct Connect: 상암동 데이터 센터와 AWS 간의 물리적 연결을 통해 안정적이고 고속의 네트워크 연결을 확보.데이터 링크 계층: AWS Direct Connect를 통해 상암동 데이터 센터와 AWS 간의 전용 네트워크 연결을 설정하여 데이터 전송의 안정성과 보안을 강화.인터넷 계층 (Internet Layer)Amazon VPC: AWS 내에서 가상 네트워크를 생성하고 관리하여 상암동 데이터 센터와 AWS 간의 네트워크 트래픽을 효율적으로 관리.Elastic IP: 고정된 공인 IP 주소를 할당하고, 공공기관과의 연계를 위해 네트워크 설정을 최적화.전송 계층 (Transp.. PostgreSQL DB에 INDEX를 적용 했을 때 여전히 느린 경우 SI 프로젝트 수행 중 대량 데이터가 저장되어 있는 테이블의 조회 속도가 너무 느려서 Index를 설정했었다.그런데 Index를 설정 해도 여전히 느렸는데 이유를 알고 보니 중복 값이 너무 많았었다.PK이지만 중복값이 많을때에는 아무리 인덱스를 걸어도 제 속도가 안 나오는 거 같았다.그래서 다른 컬럼에 인덱스를 걸어서 다중 칼럼 인덱스로 인덱스를 설정 후 보다 나은 검색속도를 보였던 것을 기억한다. 그래서 아래의 내용을 정리해 보고자 한다. PostgreSQL에서 특정 컬럼에 중복값이 많으면 검색 속도가 느려질 수 있다. 인덱스는 중복값이 적을 때 더 효율적으로 작동한다. 중복값이 많으면 인덱스의 선택성이 낮아져서 검색 성능이 저하될 수 있다. 이를 해결하기 위해 다음과 같은 방법을 고려할 수 있다:다중.. 이전 1 2 3 4 5 6 7 8 ··· 151 다음