분류 (1202) 썸네일형 리스트형 PostgreSQL DB에 INDEX를 적용 했을 때 여전히 느린 경우 SI 프로젝트 수행 중 대량 데이터가 저장되어 있는 테이블의 조회 속도가 너무 느려서 Index를 설정했었다.그런데 Index를 설정 해도 여전히 느렸는데 이유를 알고 보니 중복 값이 너무 많았었다.PK이지만 중복값이 많을때에는 아무리 인덱스를 걸어도 제 속도가 안 나오는 거 같았다.그래서 다른 컬럼에 인덱스를 걸어서 다중 칼럼 인덱스로 인덱스를 설정 후 보다 나은 검색속도를 보였던 것을 기억한다. 그래서 아래의 내용을 정리해 보고자 한다. PostgreSQL에서 특정 컬럼에 중복값이 많으면 검색 속도가 느려질 수 있다. 인덱스는 중복값이 적을 때 더 효율적으로 작동한다. 중복값이 많으면 인덱스의 선택성이 낮아져서 검색 성능이 저하될 수 있다. 이를 해결하기 위해 다음과 같은 방법을 고려할 수 있다:다중.. CentOS와 UbuntuOS 선정 하기 SI 프로젝트에서 Docker 이미지로 빌드할 OS를 선택할 때, Ubuntu 하고 CentOS 중에 나는 Ubuntu를 선택했었다. 나는 우분투가 훨씬 편했고, 훨씬 빨랐고, 레퍼런스도 많아서 사용하기가 편했었다. 선택지는 CentOS와 UbuntuOS 즉 2가지의 선택지가 존재했다. 둘 중 하나는 무조건 선택을 했어야 했다. 관련 내용을 정리해 보면 아래와 같다. 먼저 CentOS와 Ubuntu의 장단점을 살펴보자.CentOS의 장점:안정성: CentOS는 Red Hat Enterprise Linux(RHEL)를 기반으로 하여 매우 안정적이다. 이는 주로 서버 환경에서 중요한 요소중 한 가지 이므로 매우 중요하다. (CentOS의 LTS(Long Term Support) 기간은 10년이다.) 우.. NoSQL관련 PoC 사례 정리 이전 회사에서 PoC로 NoSQL 관련 내용을 정리한게 있다. 관련 내용을 시간 있을때 정리 해놓자. NoSQL 데이터베이스를 적용하려고 고민중에 실제로 구현해볼 기회가 생겼다. 조건은 JSON 형태의 저장과 REST API를 기반으로 하는 트랜잭션 처리가 조건 이었다.그래서 적합한 NoSQL 데이터베이스를 찾고 있었는데 종류로는 아래와 같다. 먼저, NoSQL 데이터베이스의 주요 유형을 보면 몇가지로 분류 할 수 있다.1. 문서 지향형 데이터베이스 : MongoDB, CouchDB 2. 키-값 저장소 : Redis, DynamoDB 3. 열 지향형 데이터베이스 : Cassandra 4. 그래프 데이터베이스 : Neo4j 각각의 데이터베이스는 고유한 장점과 단점을 가지고 있다. 첫번째로, 문서 지향형 .. 프로젝트에서 쿠키(Cookie)와 세션(Session)을 적용한 사례 정리 최근 수행한 SI 프로젝트에서 보안을 강화하기 위해 쿠키와 세션을 활용한 사례가 있다. 이 프로젝트에서는 사용자 인증과 세션 관리를 통해 보안성을 높였고, 구현 사례는 아래와 같다. 먼저, 사용자가 로그인하면 서버는 사용자에게 고유한 세션 ID를 생성하여 쿠키에 저장한다. 이 쿠키는 클라이언트 측에 저장되며, 이후 요청 시마다 서버로 전송된다. 서버는 이 세션 ID를 통해 사용자를 식별하고, 세션 정보를 조회한다. 조회 후 정상적인 요청이면 로그인을 수행하고, 비정상적인 요청이라면 거부한다. 특히, 세션 정보는 AWS Elasticache에 저장하여 관리했는데, AWS Elasticache는 인메모리 데이터 저장소로, 빠른 속도로 세션 데이터를 읽고 쓸 수 있어 성능을 향상시킨다. 또한, 분산 환경에.. 프로젝트에서 TCP와 UDP 적용관련 비교 내용 뭐 당연히 TCP겠지만 그래도 비교했던 내용을 공유 SI 프로젝트에서 기관과 소켓 통신을 구현해야 하는 상황이 있었다. 우리는 TCP와 UDP 중 어떤 프로토콜을 사용할지 고민하고 있었는데, TCP와 UDP의 장단점을 알아보고 결정 하기로 했다. 주로 소켓 통신을 하는 프로토콜에는 2가지가 대표적이다. 하나는 TCP, 다른 하나는 UDP. TCP는 신뢰성을 보장하는 프로토콜 이다. 데이터가 손실되거나 손상되면 재전송을 통해 복구할 수 있다. 또한, 데이터가 전송된 순서대로 도착하도록 보장하고, 에러 검출 및 수정 기능도 갖추고 있다. 통신을 시작하기 전에 연결을 설정하고, 통신이 끝나면 연결을 종료하는 연결 지향적 프로토콜이기도 하다. 하지만 이러한 기능들 때문에 오버헤드가 발생하고, 속도가 느릴 수 있.. TCP/IP 4계층 모델 목적목적 : TCP/IP 4계층 모델의 목적은 네트워크 통신을 계층화하여 데이터 전송의 효율성과 신뢰성을 높이는 것. 계층화TCP/IP 4계층 모델을 그림으로 표현한 예시는 다음과 같습니다:+-------------------+| Application ||-------------------|| Transport ||-------------------|| Internet ||-------------------|| Network Access |+-------------------+각 계층의 역할은 다음과 같습니다:Application: 사용자와 직접 상호작용하는 응용 프로그램 계층 (예: HTTP, FTP)Transport: 데이터 전송을 담당하는 계층 (예: .. 방화벽 (Firewall) 방화벽(Firewall)은 네트워크 보안을 위해 사용되는 시스템으로, 내부 네트워크와 외부 네트워크 간의 트래픽을 모니터링하고 제어하는 역할을 한다. 방화벽의 주요 특징과 역할은 다음과 같다.특징트래픽 필터링: 방화벽은 허용된 트래픽과 차단된 트래픽을 구분하여 네트워크를 보호한다.정책 기반 관리: 관리자가 설정한 보안 정책에 따라 트래픽을 허용하거나 차단한다.상태 기반 검사: 패킷의 상태를 추적하여 합법적인 연결만을 허용한다.애플리케이션 레벨 필터링: 특정 애플리케이션의 트래픽을 필터링할 수 있다.로깅 및 모니터링: 트래픽 로그를 기록하고 모니터링하여 보안 이벤트를 분석할 수 있다.역할네트워크 보호: 외부의 불법적인 접근으로부터 내부 네트워크를 보호한다.트래픽 제어: 네트워크 트래픽을 제어하여 불필요한 .. API (Application Programming Interface) with JSON API 리턴값 통일 JSON모든 API의 타입이 JSON이면 프론트엔드에서 동일하게 활용 가능하다. JSON은 JavaScript Object Notation의 약자로, 데이터 교환 형식으로 널리 사용된다. 한마디로 프론트 엔드와 백엔드간의 표준 인터페이스 라고 생각하면 쉽다. 프론트엔드에서 JSON 형식의 데이터를 처리하는 것은 매우 일반적이며, 다양한 언어와 프레임워크에서 쉽게 파싱하고 생성할 수 있다.프론트엔드에서 JSON 데이터를 활용하는 일반적인 방법은 다음과 같다.API 호출을 통해 JSON 데이터를 가져온다.JSON 데이터를 파싱하여 JavaScript 객체로 변환한다.변환된 데이터를 프론트엔드 애플리케이션에서 사용한다.예를 들어, JavaScript에서 fetch API를 사용하여 JSON.. 이전 1 ··· 3 4 5 6 7 8 9 ··· 151 다음