본문 바로가기

느리게 변하는 지식41

HTTP review HTTP의 간단한 복습이 목적이다. HTTP HyperText Transfer Protocol의 약자인 HTTP는 클라이언트 서버 구조에서 데이터를 주고받는 규약입니다. 과거에 HTTP는 html 문서와 text만을 전송하기 위한 목적이었다면 요즘에는 수많은 데이터를 HTTP를 통해 전송합니다. 이미지, 음성, 영상, 파일, JSON, XML 등등 거의 모든 형태의 데이터를 전송할 수 있습니다. 소수의 응용프로그램만 TCP/IP 연결을 통해 데이터를 주고 받습니다. (예를 들어 게임 서버와 데이터를 주고받을 때) HTTP 역사 HTTP는 1991년 부터 명세가 조금씩 발전했습니다. 하지만 가장 많이 사용하는 HTTP/1.1 명세와 최근 점차 사용량이 늘어가고 있는 HTTP/2, HTTP/3도 존재합니다... 2021. 12. 5.
Proxy 개념(1) 최근 궁금한 부분이 생겼다. 외부 API 서버로 데이터를 요청하는데, 중간에 Proxy 서버를 경우 해야 하는 경우이다. 외부 API 인터페이스에 맞게 요청하는데, 별도의 설정없이 프락시 서버에 요청하면 응답이 실제 오는지 아니면 별도의 데이터를 추가해서 전달해야 하는지 궁금증이 생겼다. 순서 Proxy의 서버에 대한 개념 정리 MS-Azure에 Proxy 서버 생성 Proxy 서버 생성 후 공공API 호출을 경유하여 테스트 진행 Proxy Proxy는 클라이언트와 서버 사이에 위치하여 HTTP 메세지의 중개인 역할을 한다. 웹 프락시 서버는 클라이언트의 입장 (요청 보내는 곳)에서 트랜잭션을 수행하는 중개인이다. 트랜잭션이란 하나의 비즈니스 로직을 말하다는데, 여기서는 요청을 보내고 경유한 후 응답을 .. 2021. 10. 31.
방화벽, DMZ, 내부망 [투덜거리기] 10시 퇴근 후 집으로 돌아가는 버스 안 강남역, 신사역의 10시 풍경을 보며 풍겨오는 술냄새가 부럽다. 그 생각도 잠시 업무에 다시 신경이쓰여 오늘 관련 이슈사항을 정리하기로 했다. [시작] 현재 고객사 내부망에서 외부 서버와 연계하는 업무를 맡아 진행하고 있다. 개발자로 외부 서비스를 연계하기 위해 네트워크 관련 지식이 많이 필요한 것 같다. 해당 업무를 위해서 인프라 담당자와 이야기 하면서, 뜬구름처럼 알고 있는 네트워크 지식으로 힘겹게 대화를 이어가니, 상당히 업무를 진행하기가 힘들었다. 외부사람에 질문에도 많은 답변과 자세히 알려주신 인프라 담당자님을 위해서라도, IT 업무용 지식을 조금 정리해야겠다. 오늘은 방화벽, DMZ, 내부망이다. 방화벽 방화벽 관련해서 가장 잘 정의한 곳.. 2021. 10. 28.
인코딩의 이해 with Java 과거 컴퓨터에게 문자를 표현하는 문제가 발생하였을 때 이기종 컴퓨터들이 문자 데이터를 교환하기 위해서는 표준이 필요했으며, 해당 표준은 ASCII 코드와 같은 표준 문자 인코딩이 나타났다. ASCII(American Standard Code for Information Interchange) 약자이며, 영어 알파벳 및 동일 형식의 유럽어를 포함한다. * 이기종 : 소프트웨어가 두 부품 CPU와 GPU의 컴퓨팅 자원을 자유롭게 활용하는 시스템 문자를 표현한다는 것은 문자의 집합이 정의되어 있다는 것이고, 문자 집합은 표현할 문자와 순서가 지정된 것이다. 영어로 예를 들면 A ~ Z까지 문자 집합의 문자와 순서가 존재한다. 숫자, 특수문자, 제어 문자도 문자 집합에 포함되어 야한다. 이러한 문자 집합을 코드.. 2021. 8. 11.
DHCP DHCP (Dynamix Host Configuration Protocol) DHCP란 호스트의 IP주소와 각종 TCP/IP 프로토콜의 기본 설정을 클라이언트에게 자동적으로 제공해주는 프로토콜을 말합니다. DHCP에 대한 표준은 RFC문서에 정의되어 있으며, DHCP는 네트워크에 사용되는 IP주소를 DHCP 서버가 중앙집중식으로 관리하는 클라이언트/서버 모델을 사용하게 됩니다. DHCP지원 클라이언트는 네트워크 부팅 과정에서 주소를 요청하고 이를 얻을 수 있습니다. 네트워크 안에 있는 컴퓨터에 자동으로 네임 서버 주소, IP주소, 게이트웨이 주소를 할당해주는 것을 의미하고, 해당 클라이언트에게 일정 기간 임대를 하는 동적 주소 할당 프로토콜입니다. 이때 사용하는 프로토콜이 BOOTP(Bootstrap P.. 2021. 7. 10.
REST API & URI 설계 원칙 (RFC-3986) REST ( Representational State Transfer : 자원의 상태 전달) - 네트워크 아키텍처이다. 1. Client와 Server가 서로 독립적으로 분리되어 있어야 합니다. 클라이언트와 서버가 한 곳에 구성되어있다던지, 서로의 정보가 서로 밀접하다면 Rest api를 잘 못 지켰다고 할 수 있습니다. 2. Stateless 해야 합니다. 즉 요청에 대해서 클라이언트의 상태를 서버에 저장하지 않습니다. 즉 서버는 상대를 알지 못해야 합니다. 3. Cache 클라이언트는 서버의 응답을 Cache 할 수 있어야 합니다. 클라이언트가 Cache를 통해서 응답을 재사용할 수 있어야 하며, 이를 통해서 서버의 부하를 낮출 수 있습니다. 4. Layed System 서버와 클라이언트 사이에 방화.. 2021. 4. 1.
프로세스 간의 통신 프로세스 간의 통신은 원칙적으로 2개의 상호 보완적인 통신 프로세스가 통신하는 기법에는 두 가지가 존재합니다. 첫 번째는 공유 기억장치 (shared memory) 기법과 메시지 시스템(message system) 기법입니다. 이 두 가지 방법은 상호 배타적이 아니라 단일 운영체제 내에서 동시에 사용됩니다. 1. 공유 기억장치 - 공유 기억장치는 통신하는 프로세스 간에 어떤 변수를 공유하도록 하여 프로세스가 이런 공유 변수를 이용하여 정보를 교환하도록 하는 것입니다. 이 방법은 고속의 통신을 할 수 있으며, 통신 기능을 제공하는 책임은 응용 프로그래머에게 달려 있고 운영체제는 단지 공유 기억 장소만을 제공합니다. 2. 메시지 시스템 - 메시지 교환 방식을 이용함으로써 프로세스가 공유 변수에 의존하지 않고.. 2021. 3. 20.
패킷 교환 : 데이터그램 방식 패킷 교환 방식엔 가상 회선을 이용한 방식과 데이터그램을 이용한 방식이 있다. 그중에 데이터그램 방식에 대해서 알아본다. 데이터그램 방식은 데이터 전송 전에 송/수진자 사이에 가상 회선이라 불리는 논리적 경로를 설정하지 않고, 패킷들이 각기 독립적으로 전송되는 방식이다. OSI 7 계층을 공부했던 사람이라면 네트워크 계층에서 주로 사용하는 방식임을 알 수 있다. 이 방식은 라우팅 정보로서 송신자와 주신자의 주소가 포함되어 있는 패킷들을 전송하려 할 때 송신자와 수신자 사이의 중간 노드들은 패킷을 수신할 때마다 네트워크 상태를 고려하여 최적의 전송경로를 선택한 후 다음 노드를 향해 패킷을 전송한다. 여기서 알 수 있는 성질은 비순 서성이다. 패킷들이 분할되어서 수신 측에 도착하기 때문에 원래의 전송 순서와.. 2021. 3. 12.
네트워크 장치 네트워크 장치로는 리피터, 허브, 브리지, 라우터 등이 사용되며, 2개 이상의 다른 종류의 네트워크를 연결하여 정보를 주고받을 수 있도록 하는 장치로는 게이트웨이가 사용된다. 리피터 리피터(repeater)는 다음 그림처럼 네트워크 케이블을 통해 전송되는 신호가 약해지거나 잡음 등의 이류로 원래의 신호가 훼손되는 것을 막기 위해 전송 신호를 원래의 신호로 재생하여 다음 구간으로 재전송하는 장치이다. 단순 증폭만 하게 되면 불필요한 잡음까지 증폭되기 때문에 리피터는 신호를 구분하여 재생하는 방법을 사용한다. 네트워크 구축 시 여러 대의 리피터를 사용하면 먼 거리까지 데이터를 전송할 수 있으나, 리피터 통과 비용이 발생하기 때문에 무한정 설치는 어렵다. 허브 허브는 단순히 하나의 노드에서 수신한 신호를 정확.. 2021. 3. 10.
TCP/IP 1.TCP/IP 전송 제어 프로토콜(Transmission Control Protocol, TCP, 문화어: 전송 조종 규약)은 인터넷 프로토콜 스위트(IP)의 핵심 프로토콜 중 하나로, IP와 함께 TCP/IP라는 명칭으로도 널리 불린다. TCP는 근거리 통신망이나 인트라넷, 인터넷에 연결된 컴퓨터에서 실행되는 프로그램 간에 일련의 옥텟을 안정적으로, 순서대로, 에러 없이 교환할 수 있게 한다. TCP는 전송 계층에 위치한다. 네트워크의 정보 전달을 통제하는 프로토콜이자 인터넷을 이루는 핵심 프로토콜의 하나로서 국제 인터넷 표준화 기구(IETF)의 RFC 793에 기술되어 있다. -위키백과- 인터넷 프로토콜(IP, Internet Protocol)은 송신 호스트와 수신 호스트가 패킷 교환 네트워크(패킷.. 2021. 3. 7.