처리량과 응답시간 클라이언트→ 서버 데이터 요청 과정 서버에 연결 : TCP를 이용해서 서버에 연결한다. 데이터 전송: 정해진 규칙(프로토콜) 에 따라 데이터를 서버에 전송한다. 응답시간 응답 시간의 측정 방법 TTFB : 응답 데이터 중 첫번째 바이트가 도착할 때까지 걸린 시간 TTLB : 응답 데이터 중 마지막 바이트가 도착할 때까...
테이블의 모든 데이터를 순차적으로 읽는 것을 풀스캔이라고 한다.보통 데이터가 많을 때에 풀스캔이 발생하면 조회가 느려지므로 인덱싱을 잘 해둬야한다.일반적인 시스템의 경우에는 조회 기능의 실행 비율이 높다.(그러므로) 조회 패턴을 기준으로 인덱스를 설계하는 것이 중요하다
외부 연동 문제 설정법 1. 타임아웃 설정을 하자 다음과 같은 상황이 있다고 생각해보자. A 서비스가 있고 이 서비스가 호출하는 B 서비스가 있다. A 서비스의 스레드 풀은 100개이다. B 서비스에 성능 문제가 생겨 응답 대기 시간이 60초를 넘기기 시작한다. A 서비스에 100명의 사용자가 요청을 보내면 톰캣은 A 서비스의 요청을 처리하기 위해 ...
5장. 비동기 연동: 동기 방식의 문제점과 5가지 구현 방법 정리 1. 동기 연동 (Synchronous Integration) 방식 동기 방식은 코드가 순차적으로 실행되며, 한 작업이 끝날 때까지 다음 작업이 진행되지 않는 방식입니다. 이는 코드의 흐름을 직관적으로 이해하고 디버깅하기 쉽다는 장점이 있습니다. 동기 방식 연동의 문제점 그러나 외부 서...
6장 동시성, 데이터가 꼬이기 전에 잡아야 한다. 서버와 동시실행 서버가 동시에 여러 클라이언트의 요청을 처리하는 방식에는 크게 두가지가 있다. 클라이언트 요청마다 스레드를 할당해서 처리 이 경우에는 경쟁 상태 등 여러 동시성 문제가 발생 할 수 있다. 비동기 IO ( 또는 논블로킹 IO) 를 사용해서 처리 해당 방법을 사용하더라도 단일...
블로킹 블로킹이란 작업이 완료될때까지 스레드가 대기하는 것을 의미한다. 주로 데이터의 입출력 과정에서 블로킹이 발생하기 때문에 블로킹 IO 라고도 한다. 컨텍스트 스위칭 운영체제는 여러 스레드를 번갈아 가면서 CPU에 할당한다. CPU가 스레드를 전환하려면 현재 실행중인 스레드의 상태를 기록하고 다음에 실행할 스레드의 상태 정보를 불러와야 한다. 트...