2023/06

· DEV/Backend
커버링 인덱스 커버링 인덱스는 페이지네이션을 최적화하기 위한 기법입니다. 커버링 인덱스의 기본 아이디어는 검색 조건이 인덱스에 부합하다면, 테이블에 바로 접근하는 것보다 인덱스를 통해 접근하는 것이 빠르지 않을까?입니다 즉 테이블에 접근하지 않고 바로, 인덱스로만 데이터 응답을 내려주는 것입니다 인덱스에 필요한 모든 정보를 포함하여 데이터에 대한 접근과 검색 속도를 향상시키는거죠. 커버링 인덱스는 인덱스에 모든 필요한 컬럼이 포함되어 있기 때문에 데이터 테이블에 직접 접근하지 않고도 필요한 정보를 인덱스에서만 가져올 수 있습니다 흐름 설명 위의 테이블에 SELECT 나이 FROM 회원 WHERE 나이 < 30 쿼리를 날리는 상황을 가정해 봅시다 조회가 끝나면, 19와 27이 조회 되었고, 인덱스를 따라 ..
· DEV/Backend
커서 기반 페이지네이션 커서 기반 페이지네이션은 오프셋 기반 페이지네이션의 한계를 극복하기 위한 방법으로, 마지막으로 읽은 위치를 나타내는 커서 또는 마커를 사용하여 데이터의 연속된 페이지를 효율적으로 검색하는 방식입니다. 커서 기반 페이지네이션은 오프셋 기반 페이지네이션의 한계를 극복하기 위해 커서 또는 마커를 사용하여 마지막으로 읽은 위치를 추적합니다. 커서 기반 페이지네이션에서는 다음과 같은 방식으로 작동합니다. 커서는 마지막으로 읽은 키 또는 마커를 받아옵니다. 이는 데이터셋 내에서 특정 위치를 나타냅니다. 고유 식별자, 타임스탬프 또는 데이터셋 내 위치를 정의하는 다른 값을 사용할 수 있습니다. 오프셋 값 대신 커서를 기반으로 다음 데이터 세트를 검색합니다. 이를 통해 스캔하고 폐기할 필요 없이..
· DEV/Backend
오프셋 기반 페이지네이션 오프셋 기반의 페이지네이션은 페이지를 조회하기 위해 오프셋(offset)과 크기(size)를 사용하는 방식입니다. 이 방식은 특정 페이지의 데이터를 요청할 때, 이전 페이지까지의 데이터를 스캔해야 하는 단점이 있습니다. 이에 따라 성능 이슈가 발생할 수 있습니다. 오프셋 기반의 페이지네이션 구현 레포지터리 구성 먼저 오프셋 기반의 페이지 구성을 사용하도록 레포지터리를 구성해야 합니다. 레포지터리 인터페이스에서 findAllBy 메서드를 정의합니다. public Page findAllByMemberId(Long memberId, Pageable pageRequest) { var params = new MapSqlParameterSource() .addValue("memberId",..
· DEV/Backend
페이지네이션 페이지네이션은 웹 사이트에서 데이터를 한 페이지에 특정 수만큼 표시하도록 하는 기능입니다. 사용자가 다음 페이지를 클릭하면 다음 데이터 세트가 표시되는 것이죠 일반적으로 흔하게 대용량 데이터를 유저에게 제공할 때 쉽게 접할 수 있는 방식입니다. 오프셋 기반 페이지네이션 오프셋 기반 페이지네이션은 가장 일반적인 페이지네이션 방식으로, 데이터의 시작 위치(오프셋)와 한 페이지에 표시할 데이터의 수(리미트)를 지정합니다 예를 들어, 다음과 같이 SQL 쿼리에서 사용할 수 있습니다. public Page getPosts(Long memberId, Pageable pageable) { var posts = findAllBy(memberId, pageable); var count = getCount(m..
IPsec(인터넷 프로토콜 보안) IPSec은 통신 세션의 각 IP 패킷을 인증하고 암호화하여 인터넷 프로토콜(IP) 통신을 보호하기 위한 프로토콜 제품군입니다. IPSEC은 LAN, 사설 및 공공 WAN 그리고 인터넷을 통과하는 통신을 안전하게 하는 기능을 가지고 있다. 인터넷을 통한 안전한 지사 연결: 인터넷 또는 공용 WAN(Wide Area Network)을 사용하여 안전한 VPN(가상 사설망)을 구축하여 비용과 네트워크 관리 부담을 줄이는 데 도움이 됩니다. 인터넷을 통한 안전한 원격 액세스: IPsec 프로토콜을 갖춘 최종 사용자는 인터넷 서비스 공급자(ISP)를 통해 네트워크에 쉽게 액세스할 수 있으므로 재택 근무자와 출장자의 통신 비용을 절감할 수 있습니다. 파트너와 함께 인트라넷 및 엑스..
도메인 - 기반 메시지 인증 보고 및 준수(DMARC) 이메일 송신자는 어떻게 메일이 처리되어야 하는지와 수신자가 응답하는 레코드 유형, 얼마나 자주 이런 보고를 해야 하는지에 대한 정책을 설정한다. 그렇다면, DMARC는 뭘까 일단 DMARC는 송신자 정책 프레임워크 (SPF)와 도메인 키 확인 메일과 같이 동작한다. SPF와 DKIM은 각각 송신 서버와 메일 내용의 신뢰성을 검증하는 역할을 합니다. SPF는 메일을 보낼 수 있는 서버의 목록을 관리하여 메일이 해당 목록에 있는 서버에서 발송되었는지 검사합니다. DKIM은 메일의 내용이 중간에 변조되지 않았는지 확인하기 위해 암호화된 서명을 사용합니다. 그러나 SPF와 DKIM 자체만으로는 이들 기술이 사용되고 있는지, 또는 안티스팸 기술이 효과적으로 ..
도메인키 확인 메일(DKIM: DomainKeys Identified Mail) 도메인키 확인 메일은 암호학적 서명 전자우편 메시지를 위한 명세입니다. 이 명세는 서명 도메인(signing domain)이 메일 스트림에서 메시지에 대한 책임을 주장할 수 있게 합니다. 메시지 수신자는 적절한 공개키 검색을 위해 서명자 도메인에 직접 질의하여 서명을 검증할 수 있습니다. 이 방법을 통해, 서명 도메인에 대한 개인키를 소유한 개체에 의해서 메시지가 인증되었다는 것을 확인할 수 있습니다. DKIM 배치의 예시 이메일 위협 잠재적 공격자의 특징, 능력, 위치 관점에서 DKIM에 의해 다루어져야 하는 위협을 의미한다 공격자의 특징 가장 낮은 수준은 수신자가 원하지 않는 전자 우편을 전송하길 원하는 공격자이다 중간 ..
송신자 정책 프레임워크 (SPF) 송신자 정책 프레임워크(SPF)는 메일 송신자의 도메인을 식별하고 확인하기 위해 도메인 이름을 전송하는 표준화된 방법입니다. 이는 스팸과 같은 원하지 않는 대량 이메일을 줄이고, 메일 핸들러가 알려진 출처를 기반으로 이메일을 필터링하는 것을 가능하게 합니다. SPF의 문제점 현재의 이메일 구조는 모든 호스트가 메일 헤더에 있는 다양한 식별자의 모든 도메인 이름을 사용할 수 있게 하지만, 호스트가 위치한 도메인 이름은 사용할 수 없습니다. 이런 구조는 스팸과 같은 원하지 않는 벌크 이메일(UBE) 발생을 증가시키는 원인이 됩니다. ADMD(관리 도메인)는 다른 개체가 자신들의 도메인 이름을 마음대로 사용하는 것을 우려하며, 특히 악의적인 사용을 우려하고 있습니다. SPF ..
DNS-기반 네임 개체 인증(DANE) DNS-기반 네임 개체인증은 일반적으로 TLS(전송 계층 보안)에서 쓰고 있는 X.509 인증서를 사용하기 위한 프로토콜이다. DNSSEC을 이용해 DNS 네임에 붙인다. 글로벌 PKI 시스템의 CA 사용 취약점 해소 방안으로 제시 되었다. CA 시스템 보안에 종속 되는걸 탈피하고 DNSSEC가 제공하는 보안으로 대체 되었다 TLSA 레코드 DANE에서는 새로운 DNS 레코드 유형인 TLSA를 정의 하였다. 이는 SSL/TLS(전송 계층 보안) 인증서를 안전하게 인증할 수 있다. 목적 어떤 CA가 인증서를 보증하는지 어떤 특정 PKIX 종단-개체 인증서가 유효한지에 대한 제약 사항을 구체화한다 서비스 인증서나 CA가 DNS 자체에서 직접 인증 될 수 있는지 구체화 ..
DNS 보안 확장(DNSSEC : DNS Security Extensions) DNS 보안 확장(DNSSEC)는 DNS 프로토콜의 보안 강화를 목적으로 만들어진 확장 기능입니다. 1. DNSSEC 개요 종단-대-종단 보호에 사용 대응 지역 관리자가 생성하고 수신자의 리졸버 소프트웨어로 검증하는 디지털 서명으로 보호 DNS 레코드가 쿼리의 출발지에 도달하기 전에 대응 영역 관리자로부터 온 DNS 레코드를 캐시하거나 라우팅하는 중간 네임 서버나 리졸버를 신뢰할 필요가 없음 새 자원 레코드 유형 집합과 기존 DNS 프로토콜의 수정 부분으로 구성 2. DNSSEC 운영 데이터 출처 인증(Data origin authentication): 정확한 출처에서 데이터가 왔는지를 확인 데이터 무결성 검증(Data int..
berom
'2023/06 글 목록 (5 Page)