Multi tenancy 

하나의 소프트웨어 인스턴스로 여러고객에게 서비스를 제공하기 위한 아키텍처다. 각 고객을 테넌트(tenant)라고 부른다. 생소한 용어이지만 소프트웨어에서는 일반적으로 사용하고 있다. 애플리케이션들은 하나의 코드로 유저마다 서로 다른 UI와 비지니스 룰을 서비스 할 수 있게 개발하고 있다. 예를 들어 웹 애플리케이션의 경우 하나의 웹 애플리케이션으로 유저마다...

예제로 살펴보는 Go : Stateful Goroutines 

앞의 예제에서는 뮤텍스를 이용해서, 여러 개의 고루틴이 공유하는 영역을 보호했다. 영역 보호는 잠금의 형식으로 이루어지기 때문에, 뮤텍스 잠금이라고 부르기도 한다. 다음 예제 ...

NginX로 Reverse-Proxy 서버 만들기 

Proxy 서버는 클라이언트가 자신을 통해서 다른 네트워크 서비스에 연결하게 중계해주는 소프트웨어다.웹 서비스를 예로 들어보자. 클라이언트(웹 브라우저)는 웹 서버에 직접 연결하는 대신에 프락시 서버에 연결해서 웹 페이지를 요청한다. 이 요청을 읽은 프락시 서버는 웹 서버에 요청을 전달하고, 응답을 받아서 클라이언트에 전송한다. 인터넷 서비스의 규모가 커지...

Linux IP forwarding 

IP Forwarding은 routing와 같은 말이다. 리눅스 운영체제에서 말하는 IP 포워딩은 커널 기반의 라우팅 포워딩을 의미한다. 라우터는 여러 개의 네트워크 인터페이스를 가지고 있다. 라우터는 하나의 인터페이스로 들어온 패킷을 읽어서 일치하는 서브넷을 가지는 다른 네트워크 인터페이스를 패킷을 포워딩(forwarding)하는 일을 한다. 리눅스 시스...

portmap - RPC 프로그램을 포트에 맵핑시킨다. 

portmap - RPC 프로그램을 포트에 맵핑시킨다.portmap Portmap는 RPC(RPC 서버가 시작되면 portmap는 해당 rpc 서버가 어떤 포트에 listen(2)하고 있어야하는 지를 알려준다. 그러면 RPC 서버는 해당 포트에서 데이터를 기다리게 된다. -d portmap 를 daemon( -t dir chroot(2)를 이용해서 루트디...

Linux man page 7 : ICMP 

Linux man page 7 리눅스의 커널 프로토콜 모듈은 RFC792 에 정의되어 있는 Internet Control Message Protocol 의 구현이다. 이 모듈은 에러 상태의 진단을 목적으로 사용된다. 일반유저는 이 모듈을 직접 제어할 수 없다. 커널 ICMP 모듈은 ICMP 요청에 응답하는 일도 한다. 유저는 raw socket의 IPPR...

loopback 주소 

loopback 주소loop-back 이라도 불리는 loopback 주소는 호스트 자신을 가리키는 IP(서버/클라이언트 프로그램을 만들었을 경우, 루프백주소로 네트워크에 직접 연결하지 않은 상태에서 빠르게 프로그램의 테스트 및 디버깅을 할 수 있다. 예를 들어 웹서버와 웹페이지들이 제대로 설정되었는지 미리 루프백 주소로 확인할수 있다. 이경우 httplo...

링크 

링크유명한 퀘니히스베르크의 다리건너기 문제를 알고 있을 것이다. 독일의 철학자 칸트가 말년을 보내기도 했던 퀘니히스베르크는 아래처럼 강이 가로지르고 있었고, 마을과 마을은 7개의 다리로 연결이 되어 있었다. 문제는 각 다리를 한번에 한번씩만 건너면서 모든 마을을 방분하는 방법을 찾아내는 거였다. 이 문제를 수학적으로 연구한 사람이 오일러였다. 이 문제를 ...

커널 

커널커널은 운영체제(커널은 컴퓨터 시스템을 제어하는 일을 한다. 여기에는 메모리, 사운드카드, 키보드, 마우스, 모니터와 같은 시스템자원을 포함한다. 이러한 시스템자원을 사용하는 것은 보통 응용 프로그램의 요청을 통해서 이루어지게 되므로 커널은 응용 프로그램을 관리하는 일도 한다. 응용 프로그램의 실행되는 순서라든지 응용 프로그램이 요구하는 시스템자원에 ...

hostname 

hostname컴퓨터 네트워킹 분야에서 사용하는 언어로 nodename이라고 부르기도 한다. Hostname은 네트워크에 접속된 컴퓨터에 할당되는 "라벨"이다. 이 라벨은 전체 네트워크에서 유일해야 하며, 웹 서버, 이메일 서버등의 장치를 식별하는데 사용한다. Hostname은 하나의 단어로 구성될 수 있고, 두 개 이상의 단어를 이용해서 구조적으로 구성...