Home
Hyeonsu Lim
Cancel

4장 인프라를 지탱하는 기본 이론

4.1 직렬/병렬 4.1.1 직렬 병렬이란? 대규모 웹 서비스는 방대한 수의 사용자 요청을 처리해야 하므로 수많은 서버를 배치해서 병렬로 처리하고 있음을 알 수 있다. 주변에 병렬로 처리하는 경우가 많지만 무조건 병렬로 처리한다고 해서 성능이 향상되는 것은 아니다. 예) 여러 개의 물건이 일직선으로 나열돼 있는 것을 직렬, 두 줄 이상으로 나열돼 있...

3장 3계층형 시스템을 살펴보자

3.1 3계층형 시스템의 구성도 가장 아래에 서버가 배열되어 있고 서버끼리는 스위치를 경유해 연결되어 있다. 각각의 서버 안에는 CPU, 메모리, 디스크 등의 하드웨어 부품이 나열돼 있다. 그리고 그림에서 논리 구성에 해당하는 부분은 OS 영역을 보여주고 있다. 3.2 주요 개념 설명 3.2.1 프로세스와 스레드 예) 인터넷에서 다운 받은 프로그...

2장 서버를 열어 보자

2.1 물리 서버 2.1.1 서버 외관과 설치 장소 서버는 Rack 이라는 것에 장착된다. 랙에는 서버 외에도 HDD가 가득 장착돼 있는 저장소나 인터넷 및 LAN을 연결하기 위한 네트워크 스위치 등도 탑재돼 있다. [랙 구성] [서버] 2.1.2 서버 내부 구성 컴포넌트를 연결하는 선을 Bus라고 한다. CPU 옆에 메모리가 배치...

1장 인프라 아키텍처를 살펴보자

1.1 인프라란 무엇일까? 인프라는 기반이라는 뜻으로 인프라 구조 자체는 복잡하지만 전문가에 의해 관리되고 있어서 사용자는 그 구조를 이해하지 않고도 간단히 이용할 수 있다는 특징이 있다. 인프라 아키텍처는 IT 인프라의 구조를 의미한다. 인터넷 검색 시스템이나 항공 회사 티켓 발권 시스템, 편의점 계산대 등 모두가 이용 방법이나 사용자가 다르지만 I...

15장 훌륭한 프로그래머가 되기 위한 팁과 경험담

가치 제안 다양한 기술을 잘 배워두면 자신에게 가치를 더할 수 있다. 경험을 쌓는 방법으로는 가외 프로젝트가 자주 쓰인다. 또 자신의 가치를 높이는 고전적인 방법은 도구를 만드는 것이다. 사람들은 자신에게 필요한 기능이 현재 사용중인 도구에 없다고 생각해서 새 도구를 만들어내곤 한다. 결국 서로 호환되지 않는 방식으로 비슷한 일을 수행하는 수많은 도...

14장 세상을 바꾸는 기계 지능

기계지능은 머신러닝, 인공지능, 빅데이터 등의 연관 분야가 포함된 고급 주제다. 오늘날 두 가지 경향으로 인해 머신러닝이 널리 성공하고 있다. 기술적 발전으로 인해 저장장치의 크기는 늘고 가격은 저렴해졌다. 그리고 기술 발전으로 인해 프로세서와 네트워크도 더 빨라졌다. 인터넷으로 인해 엄청난 양의 데이터를 쉽게 수집할 수 있게 됐다. 개요...

13장 컴퓨터 보안

컴퓨터 네트워크 발달은 작은 아파트 보안 문제에서 큰 성의 보안 문제로 변화시켰다. 큰 성은 지켜야할 출입구가 많고 성이 커질수록 더 많은 쓰레가 쌓이고 버그가 숨을 공간도 많아진다. 보안의 핵심은 우리가 정의한 안전함에 따라 유지하는 것이다. 그리고 안전함의 정의는 다른 사람들이 정한 정의와도 균형을 맞춰야 한다. 보안과 프라이버시 개요 1) 위협...

12장 병렬성과 비동기성

경합 조건이란 무엇인가 경합 조건은 2개의 프로그램이 같은 자원에 동시에 접근하고, 자원 사용 순서에 따라 결과가 달라지는 경우를 뜻한다. 예를 들어 은행 계좌에 돈을 입금하는 경우 공유자원은 계좌 잔고다. 공유 자원 메모리는 항상 공유 문제와 연관된다. 공유 대상이 메모리가 아닌 경우에도 메모리가 관련된 경우가 많다. I/O 장치를 서로 공유하는...

11장 성능 향상을 위한 알고리즘 기법

계산을 효율적으로 하는 것보다 더 나은 방법이 바로 계산을 전혀 하지 않는 것이다. 계산을 피하는 방법으로는 지름길(shortcut)와 근사값 계산 (approximating) 표 찾기 1) 변환 2) 텍스처 매핑 비디오 게임이나 영화 등에서 진짜처럼 보이는 이미지를 만들기 위해 사용하는 텍스처 매핑에서 표 찾기 기법이 중요한 역할을 한다. 텍스처...

9장 웹 브라우저

웹 브라우저는 그 자체가 가상 머신이다. 브라우저는 크고 복잡한 애플리케이션인 동시에 소프트웨어로 구현된 프로그래밍할 수 있는 컴퓨터이다. 마크업 언어 마크업은 텍스트와 구분할 수 있는 mark를 추가할 수 있는 시스템이다. 마크업 언어는 새로운 개념이 아니고 컴퓨터가 생기기 전부터 마크업 언어가 있어왔다. 많은 마크업 언어가 있고 웹 페이지는 이...