어느 웹사이트의 게시판에 '스터디장, 미리 합격을 축하드려요'라는 제목의 게시글을 작성하고, 동일한 내용의 ㅈㄱㄴ 게시글을 작성한뒤,
게시판으로 돌아가 해당 게시글을 조회한다고 가정해 보자.
웹 브라우저(클라이언트)에서 글을 쓰고 저장 버튼을 클릭하면
POST 요청이 웹 서버로 전달되고, 웹 서버가 해당 데이터를 DB에 저장한다.
제목을 클릭하면 서버로 GET 요청이 발송되고, 서버가 요청을 처리한다.
데이터베이스에서 해당 게시글의 ID를 기준으로 조회하여
게시물의 제목과 내용을 반환한다.

프론트엔드에서 저장 버튼이 한 번 눌리고 요청이 한번 간 뒤에도 버튼 클릭을 막지 않으면 사용자가 저장 버튼을 여러번 클릭해 post 요청을 여러번 보낼 수 있다.
이는 서버 부하 혹은 게시물 중복 저장을 야기한다.
모든 문자열이 일치하는 게시물을 읽는 것은 시간적으로 비효율적이므로
게시물에 고유 ID를 부여하고, 데이터베이스의 인덱스(Index)를 이용하면
인덱스를 기준으로 게시물을 조회할 수 있다.
게시판을 만들 때는 댓글, 좋아요, 대댓글 등의 데이터를 저장하기 위해
주로 관계형 데이터베이스(RDBMS)를 사용하는데,
MySQL, PostgreSQL 등 대표적인 관계형 데이터베이스의 인덱스는
내부적으로 B+Tree 자료구조로 구현되어 있어
정렬된 상태를 유지하면서 빠른 탐색이 가능하다.
Q. 다음 주 면접 질문은
성능을 쓰기와 읽기 관점으로 구분해서 설명해주세요.
입니다.
여러분의 지망 도메인에 맞게 준비하시면 됩니다.
A .웹 도메인에서 쓰기와 읽기 관점의 성능은
클라이언트에서 전달된 데이터를 효율적으로 적재하고
빠른 시간내에 탐색할 수 있는가 입니다.
성능이란, 기능성의 정도이며, 즉, 구현한 기능이 얼마나 잘 작동하는가를 의미합니다.
웹도메인의 핵심역할은 언제나 유저의 사용을 위하여 있으므로 웹도메인에서 쓰기와 읽기관점의 성능을 측정하기 위해서는 유저의 편의를 위한 쓰기와 읽기가 잘 되고 있는 지를 측정해야합니다.
따라서 쓰기와 읽기 성능을 높인다는 것은 곧 사용자가 데이터를 저장하고 조회하는 과정에서 불편함을 느끼지 않도록 하는 것이며,
이것이 웹 도메인에서 성능 최적화의 궁극적인 목표라고 할 수 있을것입니다.