본문 바로가기

느리게 변하는 지식41

lambda in computer programming 우선 우리는 표현식과 구문을 구분할 줄 알아야 한다. 구문(statement)은 이름에서 나타난다. 반복문, 조건문, 분기문, 선언문 등등 프로그램의 흐름 제어나 구조를 생성할 때 사용되는 문법이다. 표현식(expression) if, while, for문에서 사용되는 조건식이 있다. 이는 표현식이다. 이는 값으로 실행 시점에 값으로 표현되어 참 혹은 거짓의 값을 나타낸다. 이를 이해하면 프로그래밍 언어가 발전됨에 따라 늘어나는 간소화된 문법을 이해하는데 큰 도움이 된다. 이제 Wikipedia에서 lamba, Anonymous function을 검색해 보자. In computer programming, an anonymous function (function literal, lambda abstract.. 2023. 7. 14.
gRPC IPC ( 별도의 수단을 이용하여 프로세스 간 통신을 하는 방법론) Inter Process Communication Socket Application Layer에서 Transport Port의 TCP 또는 UDP를 이용하기 위한 수단 실질적으로 로컬 컴퓨터의 프로세스와 원격지 컴퓨터의 프로세스가 IPC 통신을 하는 것. 소켓은 대부분의 언어에서 API 형태로 제공하는 편리함 때문에 지금도 많이 사용됨. 다만 일련의 통신 과정을 직접 구현하므로 통신 관련 장애를 처리하는 것은 개발자 몫. 서비스가 고도화될 수록 수백 수천 가지 데이터를 formatting 하는 작업도 점점 어려워짐. RPC( Remote Procedure Call) Socket의 단점과 한계에서 RPC라는 기술이 등장한다. 네트워크로 연.. 2023. 3. 13.
Load Balancer... 서비스에 로드밸런서가 연결되어 있다. 그렇기에 어떠한 이점을 얻고 로드밸런서가 무엇이고 AWS 로드밸런서는 어떤 특징을 가지고 있는지 확인한다. 로드 밸런서는 부하 분산 장비 중 하나로 L4, L7 스위치 역할을 한다. 어느 계층까지 프로토콜을 이해하여 부하를 분산하느냐에 따라 Layer가 나누어지는데 보통 구분하지 않고 사용한다고 한다. 하지만 AWS의 로드밸런서는 L4, L7의 계층을 나누어 제공한다. 이는 Load balancer type에 기재된 정보를 가지고 구별할 수 있다. 이러한 L4, L7의 로드밸런서에 대한 설명은 AWS 문서를 참고해 보자. Load balancer types - Amazon Elastic Container Service Load balancer types - Amazo.. 2023. 2. 15.
DNS 주요 레코드 1. A (IPv4 호스트) A 레코드는 기본 레코드로 도메인 주소를 IP 주소로 변환하는 레코드입니다. 사용자가 DNS 서버에 질의한 도메인 주소를 A 레코드에 설정된 IP 주소로 응답합니다. A 레코드는 도메인 주소 한 개와 IP 주소 한 개가 1:1로 매핑됩니다. 2. AAAA(IPv6 호스트) AAAA 레코드는 IPv6 주소 체계에서 사용되는 레코드이며 역할은 A 레코드와 같습니다. 3. CNAME( Canonical Name) CNAME 레코드는 별칭 이름을 사용하게 해주는 레코드 입니다. A 레코드가 도메인과 IP 주소를 연결한 것과 달리 CNAME 레코드는 도메인 주소를 매핑합니다. 네임 서버가 CNAME 레코드에 대한 질의를 받으면 CNAME 레코드에 설정된 도메인 정보를 확인하고 그 도메.. 2023. 2. 12.
NAT 그리고 PAT NAT NAT(Network Address Transaction, 네트워크 주소변환)은 실생활에서 많이 사용하는 기술입니다. 집에서는 공유기를 통해 사용하고 통신사에 연결된 스마트폰은 통신사 장비를 통해 외부와 통신하게 됩니다. L3 장비에서도 사용되며 특히 방화벽과 로드 밸런서와 같이 세션을 다루는 L4이상의 장비에서는 매우 빈번히 사용되는 기술입니다. NAT은 기본적으로 하나의 네트워크 주소를 다른 하나의 네트워크 주소로 변환하는 1:1 변환이 기본이지만 이는 IP 주소가 고갈되는 문제를 해결하기 위해 1:N으로 사용합니다. 보통 네트워크 주소를 다른 네트워크로 변환하는 기술을 NAT라고 부릅니다. 하지만 실제 공식 용어는 NAPT(Network Address Port Translation)이며 NA.. 2023. 2. 11.
FTP Active, Passive 현대 웹에서 클라이언트와 통신을 위해서는 여러 세션을 유지하도록 하지 않는 이상 보통 하나의 세션을 가지고 통신합니다. 웹 같은 경우 HTTP 프로토콜로 서버와 웹으로 통신하나 세션에 대해서는 하위 계층인 TCP 프로토콜에서 세션 테이블을 통해 세션을 관리합니다. 이와 반대인 FTP( File Transfer Protocol)인 경우 프로토콜의 구조가 분리되어 있습니다. 바로 데이터 프로토콜과 컨트롤 프로토콜입니다. 데이터 프로토콜을 사용하여 서버와 클라이언트 간에 데이터 채널을 통해 데이터를 전송하는 것에 목적을 두었다면 컨트롤 프로토콜은 데이터의 전송을 위해 준비를 하고 신뢰성을 목적으로 둔 프로토콜입니다. 그렇기에 통신 방법이 다른 두 가지 모드를 가지고 있습니다. 우선 Active 모드를 간단히 .. 2023. 2. 11.
라우팅, 스위칭 2 계층의 스위치와는 다른 용어로 3 계층 장비인 라우터가 패킷 경로를 지정해서 보내는 작업을 말한다. 라우터가 패킷을 포워딩할 때 자신이 갖고 있는 라우팅 테이블에서 가장 좋은 항목을 찾는 알고리즘을 롱기스트 프리픽스 매치나 맥시멈 프리픽스 렝스 매치라고 한다. 목적지 패킷의 IP가 라우터 테이블에 정확하게 매칭되지 않을 경우 도작지 IP와 가장 가깝게 매치되는 정보를 찾는다. 이 경우 Longest Prefix Match 기법을 사용합니다. LPM이라는 용어는 다른 용어는 라우터나 스위치에서 관리할 수 있는 라우팅 테이블을 LPM 테이블이라고 부르며 도입해야 할 장비가 관리할 수 있는 테이블 양으로 대략적인 성능을 확인할 수 있습니다. 이런 내용은 장비 Datasheet에서 확인할 수 있습니다. Da.. 2023. 2. 9.
STP IT 환경에서는 SPoF로 인한 장애를 피하기 위해 노력한다. SPoF는 Single Point of Failure , 단일 장애점이라는 뜻으로 하나의 요소 때문에 전체 시스템에 장애가 발생하는 지점을 말한다. 네트워크에서도 하나의 장비 고장으로 전체 네트워크가 마비되는 것을 막기 위해 이중화, 다중화된 네트워크를 디자인하고 구성한다. 네트워크를 다음과 같이 라우터 하나로 구성했을 때 해당 라우터에 장애가 발생하면 전체 네트워크에 장애가 발생한다. 이런 SPoF를 피하기 위해 여러 장비로 네트워크를 디자인하지만 이는 네트워크 루프를 발생시킬 수 있다. 루프는 네트워크에 연결된 모양이 고리처럼 되돌아오는 형태로 구성된 상황을 말한다. 이는 인지하기 힘들지만 루프 상황이 발생했을 때 네트워크가 마비되고 통신.. 2023. 1. 15.
VLAN 서버, 스토리지 등 가상화는 IT 트렌드에서 많은 비중을 차지했다. 실제 네트워크에도 다양한 가상화 기술이 사용되고 있는데 스위치에서는 오래전부터 VLAN이라는 가상화 기술을 사용했다. 이는 하나의 물리 스위치에서 여러 개의 네트워크를 나누어 사용할 수 있는 Virtual Local Area Network 기술이다. VLAN은 물리적인 배치없이 LAN을 논리적으로 분할하고 구성하는 기술이다. 기업과 같이 여러 부서가 함께 근무하면서 각 부서별로 네트워크를 분할할 때는 네트워크를 여러 개 운영합니다. 단순히 컴퓨터뿐만 아니라 전화기, 복합기, 스마트폰과 같이 PC 외에도 다수의 단말이 네트워크에 연결되므로 네트워크 분할이 중요할 수 있습니다. 과도한 브로드캐스트로 인한 단말의 성능 저하, 보안 향상을 위한.. 2023. 1. 12.
MAC 주소 Media Access Control의 줄임말로 데이터 링크 계층에서 통신을 위해 네트워크 인터페이스에 할당된 고유 식별자이다. MAC 주소는 이더넷과 와이파이를 포함한 대부분의 IEEE 802 네트워크 기술에서 2계층의 주소로 사용된다. 따라서 네트워크에 접속하는 모든 장비는 MAC 주소라는 물리적인 주소가 있어야하고, 이 주소를 이용해 서로 통신하게 됩니다. MAC 주소는 변경할 수 없다. 왜냐하면 하드웨어에 고정되어 출하되기 때문이다. 모든 네트워크 장비 제조업체에서 장비가 출하될 때마다 MAC 주소를 할당하게 되는데, 매번 이 주소의 할당 여부를 확인할 수 없으므로 한 제조업체에 하나 이상의 주소 풀을 주고 그 풀 안에서 각 제조업체가 자체적으로 MAC 주소를 할당합니다. 이를 Vendor Cod.. 2023. 1. 10.