infra & network6 [Lecture] 스프링부트로 직접 만들면서 배우는 대규모 시스템 설계 - (2) 📑 페이징처리와 무한스크롤📌 대규모 게시글 목록 조회는 왜 복잡할까?모든 게시글 데이터를 한 번에 조회해서 보여줄 수는 없다.메모리, 네트워크, 시스템 성능 등의 제약 때문이다.따라서 대용량 데이터를 효율적으로 보여주기 위해 페이징 처리가 필요하다.✅ 페이징을 왜 꼭 해야 하나?서버에서 모든 게시글 데이터를 한꺼번에 불러와 메모리에 올리는 것은 비효율적이다.디스크에 저장된 데이터를 메모리로 전부 불러오는 건 느리고, 디스크 I/O 비용도 크다.메모리 한계를 초과하면 OutOfMemoryError(OOM)가 발생할 수 있다.따라서 DB에서 특정 페이지만 추출하는 방식이 필요하다.이를 위해 페이징 쿼리가 사용된다. (LIMIT, OFFSET, WHERE id 🔄 페이징 방식의 종류페이징 방식은 클라이언.. infra & network 2025. 4. 20. [Lecture] 스프링부트로 직접 만들면서 배우는 대규모 시스템 설계 - (1) 📌 대규모 시스템 서버 인프라 기초Scale Up (수직적 확장) : 하드웨어 성능 향상 (ex. RAM 16 → 64GB)Scale Out (수평적 확장) : 서버 여러대, 로드 밸런서로 요청 분산Load Balancer : 트래픽을 라우팅 및 분산하기 위한 도구 (Client는 Load Balancer 로 요청을 보내면 , Load Balancer는 요청을 적절히 분산하여 서버로 전달)Cache : 서버가 요청을 처리하는 과정이 길어질 수록 응답은 느려진다. 그래서 자주 요청되는 결과를 미리 저장해두고, 다음에 또 요청이 오면 빠르게 응답해주는 저장소를 둔다.📝 캐시 종류브라우저 캐시 (프론트)서버 캐시 (Spring에서 @Cacheable)Redis같은 인메모리 캐시 서버CDN 캐시 (정적 리소.. infra & network 2025. 4. 12. HTTPS란 (SSL / TLS) 📝 HTTPSHTTPS는 HTTP가 전송하는 데이터가 암호화되지 않은 부분을 보완한 프로토콜이다.TLS 계층을 거치는 방식으로 HTTP를 운영하여 HTTP의 전송 메시지 바디(전송되는 데이터가 있는 부분)를 암호화시키는 것이다. HTTPS는 HTTP에 TLS 계층을 더하여 보안을 적용한 것(SSL/TLS 프로토콜과 CA 인증 메커니즘을 통해 보안 : HTTP는 SSL/TLS 인증서를 사용 ❌ HTTPS는 SSL/TLS 인증서를 사용 🙆♀️) 📝 SSL / TLS 프로토콜은 데이터의 암호화처리와 관련이 있다.전송되는 데이터가 민감한 정보일 경우 (ex. 로그인 정보, 개인 식별 정보, 결제 정보, 의료 정보, 금융 정보, 개인 메세지 및 통신 내용, 지리적 위치 정보, 비즈니스 기밀 등등) 그 데이.. infra & network 2024. 8. 11. SOP & CORS란? 📒 동일 출처 정책 (Same-Origin Policy, SOP)브라우저는 기본적으로 SOP 정책을 따르고 있다.SOP는 2011년 RFC 6454에서 등장한 보안 정책으로 "같은 출처에서만 리소스를 공유할 수 있다"라는 규칙을 가진 정책. SOP의 등장배경은 다음과 같다. 1. 보안 강화:XSS (Cross-Site Scripting) 방지: 동일 출처 정책은 악성 스크립트가 사용자 브라우저에서 실행되어 다른 사이트의 데이터를 훔치거나 조작하는 것을 방지.CSRF (Cross-Site Request Forgery) 방지: 동일 출처 정책은 공격자가 사용자의 인증 정보를 이용해 다른 사이트에 무단으로 요청을 보내는 것을 막는다.2. 데이터 보호:웹 애플리케이션은 종종 민감한 데이터를 다룬다. 동일 출처.. infra & network 2024. 7. 31. [Network] 만약 DNS가 요청한 도메인 정보를 가지고 있지 않다면? 📒 기본적인 DNS(Domain Name System) 동작브라우저에 URL을 입력하면 URL에 포함된 도메인으로 부터 IP 주소를 알아야 한다. 브라우저가 OS에 패킷 전송을 의뢰할 때는 URL이 아니라 IP 주소를 전달해야 하기 때문인데, IP 주소를 알아내기 위해 브라우저는 가장 가까운 DNS 서버에게 IP를 조회한다. DNS 서버는 마치 맵처럼 자신이 관리하는 {key : 도메인명, value : IP 주소} 대응표를 조사하여 정보가 있을 경우 IP 주소를 응답한다. 📒 만약 DNS가 해당 정보를 가지고 있지 않다면 어떻게 동작할까?인터넷에는 엄청난 수의 서버가 있으므로 모든 도메인의 IP를 한 대의 DNS 서버에 등록하는 것은 불가능하다.따라서 문의한 도메인이 DNS 서버에 등록되지 않은 경.. infra & network 2024. 6. 9. [Network] 웹 브라우저에 URL을 입력한다면 일어나는 일 📝 웹 브라우저에 URL을 입력한다면 일어나는 일1. 사용자가 입력한 URL을 파싱한다.입력한 URL에서 프로토콜, 호스트명, 포트번호, 경로, 쿼리 스트링, 프레그먼트 등을 파싱한다.브라우저에서는 HSTS 목록 조회를 통해 해당 요청을 HTTPS로 보낼지 판단해 HSTS 목록에 해당 URL이 존재한다면 명시적으로 HTTP를 통해 요청한다 해도 브라우저가 이를 HTTPS로 요청하게 된다. 📘 HSTSHSTS(HTTP Strict transport security) : HTTP를 허용하지 않고 HTTPS를 사용하는 연결만을 허용하게 하는 기능만약 HTTP로 요청이 왔다면 HTTP 응답 헤더에 "Strict Transport Security" 필드를 포함하여 응답하고 이를 확인한 브라우저는 해당 서버에 .. infra & network 2024. 5. 19. 이전 1 다음