본문 바로가기

분류 전체보기

[그림으로 공부하는 IT 인프라 구조] 제 3장. 3계층형 시스템을 살펴보자 목차 제 1장. 인프라 아키텍처를 살펴보자 제 2장. 서버를 열어 보자 제 3장. 3계층형 시스템을 살펴보자 3계층형 아키텍처를 주축으로, 시스템이 처리하는 데이터와 시스템상에서의 데이터 흐름을 구체적으로 살펴보자. 주요 개념 설명 프로세스와 스레드 프로세스와 스레드는 프로그램 실행 파일 자체가 아니라 OS상에서 실행돼서 어느정도 독립성을 가지고 동작하는 것 프로세스 및 스레드가 활동하려면 메모리 공간이 필요하다. 커널에 의해 메모리상에 확보된다. 메모리 공간은 프로세스 및 스레드가 자신을 위해 소유하는 공간으로 개인 공간이라 할 수 있다. 프로세스는 전용 메모리 공간을 이용해서 동작한다. 반면 스레드는 다른 스레드와 메모리 공간을 공유한다. 프로세스는 개별 처리 독립성이 높은 대신, 독자 메모리 공간을..
[웹을 지탱하는 기술] chapter 05. URI의 설계 [목차] chapter 01. 웹이란 무엇인가? chapter 02. 웹의 역사 chapter 03. REST 웹의 아키텍처 스타일 chapter 04. URI의 스펙 chapter 05. URI의 설계 이 장에서는 좋은 URI란 무엇인지 설명하고 좋은 URI를 설계하기 위한 방법과 힌트를 소개한다. 쿨(Cool)한 URI는 변하지 않는다 좋은 URI와 아름다운 URI를 가리켜 Cool URI라고 부른다. 이 용어의 기원은 웹의 발명자 팀 버너스-리가 1988년에 발표한 ‘Cool URIs don’t change’라는 웹 페이지다. 이 웹페이지가 발표된 당시에는 URI가 변경되는 것은 일상다반사였다. 북마크해둔 링크들이 시간이 지나면 유효하지 않게 되버렸다. 링크가 끊어져버린다는 것은 하이퍼미디어 시스템..
[모던 자바 인 액션] chapter 4. 스트림 소개 [목차] chapter 1. 자바 8, 9, 10, 11 : 무슨 일이 일어나고 있는가? chapter 2. 동작 파라미터화 코드 전달하기 chapter 3. 람다 표현식(1) chapter 3. 람다 표현식(2) chapter 4. 스트림 소개 SQL 질의 언어에서는 기대하는 필터링을 어떻게 구현해야 할지 명시할 필요가 없으며 구현은 자동으로 제공한다. 컬렉션으로도 이와 비슷한 기능을 만들 수 있지 않을까? 또한, 멀티코어 아키텍처에서 컬렉션을 병렬처리를 통해 성능을 높이는 방법을 쉽게 제공할 수는 없을까? → 이 질문의 답은 스트림이다. 스트림이란 무엇인가? 스트림은 자바 8 API에 새로 추가된 기능이다. 다음과 같은 특징을 갖는다. 선언형 스트림을 이용하면 선언형(데이터를 처리하는 임시 구현 코드..
[웹을 지탱하는 기술] chapter 04. URI의 스펙 [목차] chapter 01. 웹이란 무엇인가? chapter 02. 웹의 역사 chapter 03. REST 웹의 아키텍처 스타일 chapter 04. URI의 스펙 일반적으로 URI의 설계와 구현을 웹 애플리케이션 프레임워크에 전적으로 맡겨버리는 사람도 많지만, URI 스펙을 바르게 이해하는 것은 쓰기 편한 웹 서비스와 웹 API로 가는 첫걸음이다. URI의 중요성 URI(Uniform Resource identifier)는 ‘리소스를 통일적으로 식별하는 ID’를 말함. 통일적 : 같은 규칙을 따름을 의미 식별자 : 어떤 것을 그 밖에 다른 것과 구별하여 가리키키위한 이름/ID URI를 사용하면 웹상에 존재하는 모든 리소스를 한결같은 방식으로 간단하게 접속할 수 있다. URI의 구문 URI의 스펙은 ..
[운영체제] Blocking&Non-Blocking와 Sync&Async 블로킹&논블로킹과 동기&비동기라는 두 개념의 차이에 대해 정리해봤다. 사실 두 개념을 조합해서 사용되기 때문에 비교되는 것이지, 동기와 비동기는 프로세스 수행 순서 보장에 대한 매커니즘이고, 블록과 논블록킹은 프로세세의 유휴 상태에 대한 개념으로 완전한 별개의 개념으로 관련이 없다고 한다. 블록킹(Blocking)과 논블록킹(Non-Blocking) 제어권을 어떻게 처리하느냐에 따라 달라진다. 제어권이란 자신(함수)의 코드를 실행할 권리같은 것이다. 제어권을 가진 함수는 자신의 코드를 끝까지 실행한 후, 자신을 호출한 함수에게 돌려준다. Blocking 블로킹은 A함수가 B함수를 호출하면, 제어권을 A가 호출한 B 함수에게 넘겨주는 것이다. A는 B에게 제어권을 넘겨줬기 때문에 B함수의 실행이 끝날 때까..
[Spring MVC] HandlerMapping 핸들러 매핑은 HTTP 요청 정보를 이용해서 컨트롤러를 찾아주는 기능을 수행한다. DispatcherServlet이 등록된 HandlerMapping 전략들에게 HttpServletRequest를 전달하면서 매칭되는 오브젝트를 찾는다. public interface HadlerMapping { HandlerExecutionChain getHandler(HttpServletRequest request) throws Exception; } HandlerMapping은 DispatcherServlet에 의해 초기화된다. HandlerMapping은 항상 HandlerExecutionChain을 통해 실행된다. HandlerExecutionChain은 AbstractHandlerMapping 클래스에 의해 생성..
[그림으로 공부하는 IT 인프라 구조] 제 2장. 서버를 열어보자 아키텍처 전체를 구상할 때는 먼저 서버라는 단위로 생각해야 함. 이번 장에서는 물리 서버 내부 구조에 대해 더 자세히 살펴본다. 물리 서버 서버 외관과 설치 장소 서버는 랙(Rack)이라는 것에 장착됨. 랙에는 서버 외에도 HDD 등의 저장소나 인터넷 및 LAN을 연결하기 위한 네트워크 스위치 등도 탑재돼 있다. 랙은 규격이 있다. (폭 19인치, 높이 한 칸에 4.5cm로 40~46개) 이 한 칸을 1U라고 하고, 서버 높이는 이 단위를 따름 전원이나 네트워크 케이블 배선 등은 모두 랙 뒷면에서 연결됨 서버 설치 시에는 서버 크기(U), 소비 전력(A), 중량(Kg)를 고려해야 함. 서버 내부 구성 컴포넌트를 연결하는 선을 버스(Bus)라고 한다. CPU와 메모리는 물리적으로 직접 연결되어 있음 PCI..
[웹을 지탱하는 기술] chapter 03. REST 웹의 아키텍처 스타일 [목차] chapter 01. 웹이란 무엇인가? chapter 02. 웹의 역사 chapter 03. REST 웹의 아키텍처 스타일 01 아키텍처 스타일의 중요성 REST는 웹의 아키텍처 스타일. 아키텍처 스타일이 뭔데? (매크로) 아키텍처 패턴이라고도 함 복수의 아키텍처의 공통된 성질, 양식, 규정 혹은 독특한 방식을 가리키는 말 아키텍처를 설계할 때 참조할 수 있는 전형적 해결 방식 or 예제 MVC(Model-View-Controller), 파이프 앤 필터(Pipe and Filter), 이벤트 시스템(Event System) 등이 있음 [1과목-3장-021] 아키텍처 패턴 아키텍처를 설계할 때 참조할 수 있는 전형적 해결 방식 or 예제를 의미 - SW 시스템의 구조를 구성하기 위한 기본적 윤곽을..