본문 바로가기

전체 글

(655)
[자바스크립트] 브라우저 렌더링 브라우저에서 렌더링 성능은 중요한 요소 가운데 하나입니다. 렌더링 성능을 향상시키면 사용자가 느끼는 체감 속도를 개선할 수 있습니다. 자바스크립트로 동적인 작업을 실행할 때의 렌더링 문제를 최소화하여 성능을 높일 수 있습니다. 렌더링 과정렌더링이란 논리적인 문서의 표현식을 그래픽 표현식으로 변형시키는 과정입니다. 이 과정은 다음과 같이 크게 2단계를 거쳐 이뤄집니다. 1) DOM 요소와 스타일에 기반을 둔 레이아웃 계산2) 계산된 요소의 화면 표현 일반적인 전체 흐름은 브라우저에 문서가 로딩됨에 따라 DOM 트리의 구성이 진행되면 레이아웃을 계산한 후 문서에 요소를 그립니다. 렌더링이 진행되는 과정다음은 HTTP 요청 후 응답을 통해 구현되는 전체적인 브라우저의 처리 과정입니다. 1) DOM 트리 생성 ..
[서버관리] 서버 세팅시 팁 설정에 대한 튜닝은 반드시 해야 합니다. 대체로 기본값으로 최대한의 성능을 낼 수 있는 것은 없습니다. 웹 개반 시스템도 정상적으로 작동하게 하려면 세팅이 대단히 중요합니다. 프로그램에 문제가 없는데 세팅값 하나 때문에 애플리케이션의 성능이 안 좋아지는 경우가 굉장히 많기 때문입니다. DB서버를 제외한 서버 세팅에 대해 알아보겠습니다. 세팅해야 하는 대상개발하는 것만큼 중요한 것이 서버의 세팅입니다. 개발된 프로그램이 0.1초 걸린다고 해도 서버 세팅을 잘못하면 1초가 걸릴 수도 있고, 10초가 걸릴 수 있습니다. 이러한 문제를 진단하는 가장 좋은 방법은 성능 테스트를 통해서 병목 지점을 미리 파악하는 것입니다. 무조건 애플리케이션 위주로 병목을 찾는 것보다, 일단 문제가 될 만한 세팅값을 먼저 진단하는..
[Real MySQL] B-Tree 인덱스 인덱스는 데이터베이스 쿼리의 성능을 언급하면서 빼놓을 수 없는 부분입니다. MySQL에서 사용 가능한 인덱스의 종류 및 특성에서 각 특성의 차이는 상당히 중요하며, 물리 수준의 모델링을 할 때도 중요한 요소가 될 것입니다. 다른 RDBMS에서 제공하는 모든 기능을 제공하지는 않지만, MySQL에서는 인덱싱이나 검색 방식에 따라 다른 스토리지 엔진을 선택해야 할 수도 있기 때문에 여전히 인덱스에 대한 기본 지식은 중요하며, 쿼리 튜닝의 기본이 될 것입니다. 또한 인덱스에만 의존적인 용어는 아니지만, 자주 언급되는 "랜덤(Random) I/O"와 "순차(Sequential) I/O"와 같은 디스크 읽기 방식도 알아두는 것이 좋습니다. 디스크 읽기 방식 컴퓨터의 CPU나 메모리와 같은 전기적 특성을 띤 장치의..
[대규모데이터] 대규모 데이터를 다루기 위한 기초지식 프로그래머를 위한 대규모 데이터 기초지금까지 살펴본 바와 같이 대규모 데이터는 메모리에서 처리하기 어렵고 디스크는 느립니다. 또한 분산하기도 곤란하다는 어려움도 있습니다. 그렇지만 힘들다고 해서 숟가락을 내던질 수는 없습니다. 대규모 데이터를 다루는 방법은 두가지 관점에서 바라볼 수 있습니다. [1] 프로그램을 작성할 때의 요령[2] 프로그램 개발의 근간이 되는 기초라는 점에서 전제로서 알아두었으면 하는 것 대규모 데이터를 다루는 세 가지 급소대규모 시스템을 고민하게 만드는 대규모 데이터를 다루는 포인트는 '어떻게 하면 메모리에서 처리를 마칠 수 있을까?'라는 점입니다. 메모리에서 처리를 마쳐야 하는 이유는 앞서 설명한 대로 디스크 seek 횟수가 확장성, 성능에 크게 영향을 주기 때문입니다. 디스크 s..
[대규모데이터] 규모조정의 요소 데이터가 커지면 그 속도차에 기인하는 문제가 복잡해지기 쉽습니다. 이런 사항들이 시스템 전체의 확장성 전략에 어떤 영향을 주게 됩니다. 대규모 환경이라고 하면 서버를 여러 대 나열해놓고 그 서버로 부하를 분산하게 됩니다. 웹 서비스에서 자주 거론되는 규모조정(scaling), 확장성(scalability)은 그런 종류의 이야기입니다. 웹 서비스에서는 고가의 빠른 하드웨어를 사서 성능을 높이는 '스케일업(scale-up)' 전략보다도 저가이면서 일반적인 성능의 하드웨어를 많이 나열해서 시스템 전체 성능을 올리는 '스케일아웃(scale-out)' 전략이 주류입니다. 개별적인 이유는 다양하겠지만, 스케일아웃 전략이 더 나은 이유는 웹 서비스에 적합한 형태이고 비용이 저렴하다는 점과 시스템 구성에 유연성이 있다..