컴퓨터 비젼 공학은 '미군'에서 군사목적으로 도입되었다가 현재는 많은 곳에서 사용되고 있다.
사람 얼굴인식, AR, 3D 모델링, OCR, Digital puppetry, Recognition, Self-driving cars등등 여러 곳에서 사용하고 있다.
이러한 비젼 공학의 제일 기본은 image pixel 로 부터 의미있는 데이터를 추출해내는 과정이다.
즉, 중간에 어떤 과정을 거치던 적절한 알고리즘을 통하여 pixel→output 을 해내는게 비젼 공학의 목표라고 할 수 있다.
그러면 이 이미지로부터 뽑아낼 수 있는 가장 기본적인 정보가 무엇일까?
Semantic Information : 이미지에 대한 환경적 정보를 뽑아낼 수 있다.
Geometric Information : 이미지의 거리, depth 등에 대한 기하 정보를 뽑아낼 수 있다.
여튼 이러한 로직을 통해 많은 회사들이 존재하고 있다고 해서, 비전 공학이 쉽다고 보면 안된다.
특히, 100% 의 정확도를 가진 output 을 뽑아내는 것은 매우매우 힘들다. 왜냐? 이미지를 다루는 데에 있어서 default로 생기는 몇가지 문제들이 있기 때문이다.
Viewpoint variation : 첫 번째로 viewpoint variation 문제이다.
같은 물체임에도 보이는 각도에 따라서 다른 pixel 값을 가지게 된다. 이를 해결하기 위해서는 pixel 데이터 뿐 아니라 각도 데이터까지 포함하여 계산을 해야 하는데 요즘은 big-data 학습을 통해 이 문제를 어느 정도 해결할 수 있다고 한다.
illumination : 두 번째 문제로 illumination 문제가 있다. 이미지가 명암으로부터 받는 영향을 뜻한다.
밝고 어두운 정도에 따라 같은 이미지인데도 pixel 값이 달라져서 output 이 이상해질 수 있다.
scale : 세 번째 문제로 scale 문제가 있다.
이미지의 scale 을 맞추는 거에 대한 어려움이 있을 수 있다.
deformation : 네 번째 문제로 모양이 다른 경우에 이미지를 다루는 데에 문제가 생길 수 있다.
그림의 말 발굽을 보면 그때그때 모양이 다르기 때문에 같은 물체인지 확인하기 힘들 수 있다.
object intra-class variation : 같은 물체인데 디자인에 따라 다르게 생겨 확인하기 힘들 수 있는 문제이다. 다음 그림을 보면 바로 어떤 문제인지 알아챌 수 있다.
Occlusion, clutter : 6번째 문제이다. 특이하게 생긴 이미지의 경우 인식에 문제가 생길 수 있다. 마치 머신러닝의 outlier 라고 생각하면 편할 듯하다.
Motion : 7번째 문제이다. 물체가 움직이는 동안에 이미지 pixel 데이터를 다루기가 힘들다. 다음 그림을 보면 어떤 경우인지 바로 확인 가능하다.
Ambiguity : 인식의 모호함에 대한 문제가 있을 수 있다.
호박의 경우 원근감으로 매우 커보이는 문제가 생길 수 있고, 오른쪽의 나비의 경우 착시효과떄문에 나비처럼 보이는 데 실제로는 단지 땅바닥의 그림이라는 문제가 있을 수 있다.
또한 blur 처리 된 경우 역시 인식이 애매할 수 있는데 이 경우에는 일전에 말한 이미지의 환경 정보, semantic information 을 동원하여 어떤 물체인지, 같은 물체인지 확인할 수도 있다.
Semantic context : 인식에 있어 상황 맥락이 필요한 경우가 있다. 바로 위에서 해결책으로 잠깐 언급한 방식이다.
즉 이러한 문제들 때문에 비전 공학은 하는 사람마다 다른 방법으로 연구를 한다. 따라서 사용하는 키워드, 정석 문제 풀이 같은 것들이 타 공학에 비해 애매하기 때문에 말만 잘한다면 어떤 방법을 사용해도 상관없는 학문이다. 즉, 자신이 보기에 어? 이거 답에 도움이 될거같은데? 하는 단서들을 다 끌어와 정확도만 좋다면 장땡인 듯하다.
참고할 수 있는 단서들
Depth cues
Linear perspective : range information, depth information
프로토콜의 체계화 필요성을 이해하고, 간단한 프로토콜 예제를 통해 프로토콜의 기능을 이해한다. 또한 TCP/IP 프로토콜의 기본 개념을 이해해보자
◆ Need for a Protocol Architecture
프로토콜이 왜 필요할까? 이 질문에 답하기 위해선 계층화 구조에 대해 알아야 한다.
Data를 전송하는 과정에 대해 생각해보자.
일단 source는 dest 까지의 path를 설정 하고 보내야 하고 , 해당 대상이 온라인이냐 아니냐를 감지할 수 있어야 하며, data로써 전송하는 file 을 다룰 수 있고 받고 처리할 수 있어야 하고, 포맷 변화를 해서 데이터를 잘 보낼 수 있어야 한다.
즉 기능이 너무 많다는 단점과도 같은 특징이 있다. 이를 잘 처리하기 위해 전문가들은 해당 과정을 계층화 해서 각 기능들을 모듈화하여 처리하도록 구현하였고, 이 과정에서 프로토콜의 개념이 생겨 각각의 계층들이 해당
정해진
기능을 수행하도록 설정하였다.
◆ Functions of Protocol Architecture
프로토콜의 구조는 수직적 구조로 특정 layer의 각 primitive function 이 바뀌어도 다른 layer에 큰 영향이 없으며, 각 계층 마다 상위 하위 계층과의 관계를 user & provider로써 바라보는 구조이다.
수직적인 구조 때문에 프로토콜은 기능들을 체계화 할 수 있고 인터페이스가 쉬워진다는 특징을 가질 수 있게 되었다.
OSI 는 계층을 7개로 나누어 관리하였다. OSI 좀 primitive 한 규정으로써 하위 계층과의 연결에서 다 동일한 전송구조를 가지도록 통일 시켜논 것이다.
허나 TCP/IP는 4 layer (3layer) 로 나누어 관리하였다. 이 두 표준 중에 OSI가 더 완벽하지만 간단한 TCP/IP 를 실제로 더 많이 사용한다는 거 기억해두자.
◆ Key Features of a Protocol
프로토콜은 3가지의 핵심을 가지고 있다. 즉, 이 3가지 핵심을 가지고 바라보아야 한다.
Syntax : 데이터의 포멧을 어떻게 정의할 것인가
Semantics : 어떤식으로 정보를 제어하고 에러를 처리할 것인지
Timing : 데이터의 order를 어떻게 할 것인지, 상대방의 입장을 어떻게 반영해 데이터를 전송할 것인지
◆ Communication Layers
보통 TCP/IP는 3개의 agent (Application, Computers, Networks) 를 각각의 layer로 쪼갰다.
Network access layer ( 망 ) : 유선으로 보낼까, 무선으로 보낼까?
Transport layer ( 단말 ) : 전송에 대해 공통된 포맷으로 묶어버리자
Application layer ( 단말 안에 있는 app )
일단 Network access layer는 Network 라는 망 agent 기능을 담당하는 계층으로 단말 구분, 주소를 가지고routing, forwarding 등의 기능들을 담당하는 계층이다.
두 번째 Transport layer는 단말-단말 사이의 data를 잘 전송하도록 신뢰성있게 전송하도록 하는 계층이다.
세 번째 Application layer는 어떠한 정보를 보낼 것인가에 대한 담당을 하는 계층이다.
말로만 들으면 더 헷갈릴 수 있으니 다음의 그림으로 이해해보자.
각각의 computer(단말)은 3개의 계층으로 되어있고 application 은 port 를 가지고 있으며 각각의 계층끼리의 통신 규약인 프로토콜이 존재한다는 점을 그림을 보고 이해할 수 있다. 또한 추가적으로 address 는 모든 layer마다 가지고 있다.
이를 OSI에서는 SAP(service access point) 라고 한다. 그치만 TCP/IP에서는 IP, HWA(하드웨어 주소) 를 사용한다. 때문에 TCP/IP 에서는 이 주소를 변환해주는 변환 프로토콜이 필요하다. 따라서 NAT, ARP, RARP 같은 프로토콜들을 두어 사용하고 있다.
이 그림을 봐 보자. 좀 더 상세하게 전체 계층을 나눈 것이다. 일단 IP 계층에는 IP/ICMP/IGMP 같은 프로토콜들이 쓰인다. ICMP는 IP layer를 control 하고 management 하는 프로토콜이며, IGMP는 Group 통신할 때 사용되는 프로토콜이다.
네트워크 계층의 주 기능을 2가지가 있다. Routing, Forwarding 이다. Routing 알고리즘은 크게 distance vector 방법, path vector 방법, link-state 방법으로 나뉜다. 추가적으로 IPv6 가 생기고 나서 QoS 를 위한 RSVP 가 생겨 resource 를 네트워크 계층 레벨에서 처리하는 프로토콜도 생기게 되었다.
◆ Physical Layer
Physical layer 는 전송매체에 대한 계층으로써 크게 2가지를 확인하면 된다.
Interface definition
Cable, connector
Signal definition
Modulation, rate, encoding
즉 어떠한 전송 매체를 쓸 것 인가에 대한 interface, 어떤 신호로 보낼 것 인가에 대한 signal 이렇게 2가지 확인하면 된다.
◆ Network Access/Data Link Layer & Internet Layer
참고로 network layer의 큰 기능 중 하나가 routing 이라고 했었다.
이 때 헷갈리면 안되는 것은 단말은 data가 뭔지 알고 그걸 만들어 내는 놈을 이야기하고 router는 data 내용엔 관심 없고 전달만 해주는 놈을 이야기 한다. 이것을 헷갈리면 안된다. 다만 요즘은 이 두 가지 기능이 다 같이 장착되어있다는 것을 알아두자.
여튼 단말을 구분해주는 globally 하게 unique 한 값이 IP 주소이고 이를 Router 가 경로를 추적해주는 layer 가 Internet Layer이고, 같은 LAN 상에 있는 두 단말 사이에 routing 해주는 layer 가 Network Access/Data Link Layer 이다.
Network Access Layer 에 대해 추가 설명을 하자면 다음과 같다. 각 네트워크 마다 다른 protocol을 사용할 수도 있기 때문에 각 network 별로 별도의 NAP 를 쓸 수 있게 할 수 있게끔 해주는 layer이다.
추가로 한 단말 내에서 application 들을 식별하는 주소 개념이 port number 라는 걸 알아두자.
또한 네트워크에서 배웠듯이 다음과 키워드들을 알아두자.
다음 그림을 잘 알아두어야 한다. 각 계층에서 data에 헤더를 붙여가며 하위 계층으로 보내는데 이 떄 불리는 데이터의 이름이 층마다 다르다.
◆ Host-to-Host Layer
일명 peer to peer layer로써 data 손실 없이 전송하는 특징을 가지는 놈으로 Transmission Control Protocol 이라고 불리는 TCP가 대표적이다. 쉽게 생각해 택배회사를 떠올리면 되는데 Transport layer에서 해당 과정이 일어나니 알아두자.
TCP는 connection을 열고 데이터를 송수신하기 떄문에 reliable하다는 특징이 있고, TCP segment 가 기본 데이터 단위이다. 또한 헤더의 구조가 정해져 있는데 이는 넘어가겠다.
TCP와 반대되는 프로토콜로 UDP가 존재한다. 이 UDP는 connection 연결 없이 일단 데이터를 보내고 보기 때문에 데이터 손실 위험도가 있는 프로토콜이다.
◎ 학습목차 - 2
프로토콜의 표준화 방식
인터넷 기반 응용 서비스의 전형
멀티미디어
소켓 프로그래밍
이제 프로토콜의 표준화를 위한 계층 구조 도입의 필요성을 이해하고, 인터넷 기반 서버-클라이언트 응용 서비스의 체계화를 이해한다. 멀티미디어 데이터 수용을 위해 통신망의 구조 변화가 필요하다는 사실을 이해한다. 기본적인 통신 프로그래밍 수단인 Socket 프로그램의 개념을 이해한다.
◆ Servie Primitives and Parameters
인접한 계층 사이의 서비스를 이야기 한다. Primitive는 기능의 이름을 명시한 것을 의미하고, Parameter는 입력 값을 의미한다.
Service Primitive는 다음과 같이 4개의 종류가 있다.
Request
Indication
Response
Confirm
이 4가지 타입은 2가지 service에 따라 다르게 사용된다. 다음 그림을 보자.
일단 2가지 service 는 Confirmed Service , Nonconfirmed Service 이렇게 이다. 그림을 보면 알 수 있듯이 Response가 있냐, 없냐 에 따라 2가지로 나누었고, 전자인 confirmed Service 같은 경우가 Response 를 해주는 서비스로써 현재 대다수의 servie 가 confimed service 이다.
해당 service 방식을 사용하는 대표적인 프로토콜 방식이 TCP이 있으며 해당 TCP 방식을 사용하는 Application layer이 SMTP, FTP, SSH 등 여러가지가 있다.
현재 인터넷의 발달 방향은 대역폭, 실시간 (속도) 이고 이 발달 정도가 커질수록 새로운 app이 많이 생기게 된다. 왜냐 데이터를 보낼 수 있는 수단이 많아지기 때문이다. 때문에 현재 오디오, 비디오 등등 여러 미디어 데이터가 많이 잘 사용되고 있다.
◆ Multimedia
위에서 말했듯이 통신 기술의 발달에 따라 멀티미디어 데이터가 많이 사용되고 있다. 여러 사람들은 멀티미디어를 여러 도메인으로 쪼개 관리했고, 각각의 조각들을 발전시킴으로써 전체적인 멀티미디어를 발달 시키고자 하였다. 이 때 발달한 여러 기능들은 RTP, SIP, 망 최적화 기술, QoS 등 여러가지 기술들이 있다.
이 때 모든 기술에서 공통적으로 중요한 기술은 얼마나 빨리 (delay X), 데이터 손실이 적게 (loss X)
크게 2가지를 가지고 service 의 quality를 측정하며 이를 위해 사용하는 flow기술이다.
◆ Socket Programming
통신용 프로그래밍으로 Client와 Server 사이의 communication을 할 수 있게 해주는 일들을 Socket Programming을 통해 구현하는 통신 기술의 기반이 되는 코딩 방법이다.
시스템 프로그래밍과 약간의 차이가 있다. 프로그램과 OS간의 통신을 담당하는 시스템 프로그래밍과는 달리 멀리 떨어져 있는 장비와의 통신을 지원하는 프로그래밍 방법이 network programming이다.
즉, network layer의 기능이 OS에 들어가는 것이다. 이 기능을 라이브러리 화해서 call 할 수 있도록 해 놓았는데 AT&T 는 해당 라이브러리를 TLI, Bucklye는 Socket이라고 명명했고 현재 많이 쓰고 있는 라이브러리가 Socket이다.
Socket은 통신용 시스템 라이브러리를 호출해서 쓸 수 있게 끔 정의해 놓은 것 이다.
파일 I/O 하는 것과 거의 비슷하다. Open, f.read/write, close, socket, send, receive, close 가 거의 비슷해 파일 입출력과 거의 비슷하다.
참고로 소켓 프로그래밍을 하면서 나오는 키워드 중 client는 port 개수가 하나인 app을 의미하고, server는 port를 여러 개 쓰는 app 이라고 생각하면 된다.
소켓 프로그래밍에서는 다음과 같은 시스템 콜을 사용할 수 있다. 그리고 위 시스템 콜의 작동 방식은 오른쪽 그림과 같다.
데이터 통신과 통신망의 개념을 익히고 현대 기업망의 추세와 요구사항을 알아본다. 또한 정보전달의 표준화와 통신모델을 이해하고 통신 서비스의 융합을 이해한다.
현대 통신의 큰 특징 2가지는 고속화, 광대역화이다. 즉, 기술이 발전하고 새로운 서비스들이 무수하게 나오면서 그에 따른 통신의 속도, 대역이 늘어나고 있다는 점이 큰 특징이다.
5G를 살펴보면 바로 알 수 있다.
5G는 최신 통신 기술로써 19년도에 생긴 따끈따끈한 통신 기술이다. 5G의 특징에 대해서 간단하게나마 알아보자.
→ 1. Enhanced Mobile BroadBand
: eMBB로 불리우는 확장된 광대역의 기술이다.
→ 2. Ultra reliable Low Latency
: uRLLC 로 불리우는데 속도가 매우 빠르기 때문에 지연이 없다는 특징이 있어 신뢰성이 높다는 특징으로 볼 수 있다. 즉, 자율 주행차와 같은 경우에 사고를 줄일 수 있는 신뢰성을 가지고 있다고 할 수 있다
→ 3. Massive Machine Type Communication
: mMTC 로 불리우는 것으로 IOT를 이야기하는 것이다. 일종의 사물 통신으로써 엄청나게 많은 센서의 개수를 지원하는 특징이 있다.
현재 화웨이가 5G기술에 많은 투자를 하고 있다. 5G는 3.5 G 정도 속도의 4G 기술과는 다르게 27G~37G 정도의 높은 주파수 대역을 사용해 높은 속도를 가지는 통신기술이다. 하지만 그만큼 파장이 짧아져 간섭이 심해지는 단점이 있을 뿐더러 아까 말했듯이 센서의 개수를 많이 지원하게 되어 그만큼 보안문제가 생겨 미국에서 난리 부르스를 치고 있기도 한다. ( 결국 헌법으로 화웨이가 웃긴했지만.. )
여튼 간섭이 심하다는 특징 때문에 요즈음 통신사들은 멀리보낼 땐 4G, 가까이 보낼 땐 5G 식으로 섞어서 통신기술을 쓰고 있기도 한다.
그러면 5G의 특징을 알아봤으니 어떤 기술들을 쓰는지 3가지만 알아보자.
⇒ 1번 기술 : Beanforming
: 안테나 여러 개를 사용해서 전파가 쏟아붇는 범위를 전방향이 아닌 특정(여러)방향으로 줄여 device 와 기지국 사이의 연결을 줄이겠다는 의미의 기술이다. 그만큼 안정성을 높이고 주파수 대역을 높였다고 할 수 있다.
⇒ 2번 기술 : Massive MIMO
: input, output을 여러 개 쓰는 기술로써, 안테나를 하나가 아닌 여러 개 쓰겠다는 의미이다. 4G에서 쓰는 MIMO는 linear MIMO이다. 배치를 일차원적으로 하여 여러 개 안테나를 사용했었다. 허나 5G에서는 2차원으로 배치를 해서 다양하게 기능들을 사용하고 앞서 말한 beamforming도 잘 사용하고 있다.
⇒ 3번 기술 : Network slice
: 자원을 특정 포멧에 집중한다. 일종의 QoS 로 data보다 voice에 지원할당을 많이 한 것이 4G였다면 5G는 영상 data 등등 여러 포멧에 고도화 시킨 기술이라고 할 수 있다.
이러한 5G의 특징과 기술들은 현대 통신의 기본 개념들을 잘 포용하고 있는 좋은 예제라고 할 수 있다. 허나 핵심은 2가지이다.
(1) Mobility를 어떻게 지원하는가
(2) 고속 광대역화를 어떻게 지원하는가
통신이라는 것은 결국 ‘망’ 의 개념에서 벗어날 수 없다. 망은 switch, router의 집합으로써 이동통신에서는 core라고도 불릴 수 있고, 유선에서는 backbone이라고도 불릴 수 있다.
허나 이러한 망에 500억개 이상의 단말이 있는게 요즘이기 때문에 망과 단말들 사이의 interaction 인 ‘통신’ 이 중요해질 수 밖에 없다.
이 때 성능을 높이기 위해 망을 만진 network는 intelligence network라고 불리우며 단말을 만진 network는 smart~device network 라고 불리운다. 참고로 단말이 smart 한 network 가 압도적으로 많아지고 있다.
여튼 아까 말했듯이 현재의 network는 고속화, 광대역화를 핵심으로 발전하고 있으며, mobility(이동성) 또한 중요시 되고 있다. 이 두가지 핵심 기술의 바탕은 Internet 이므로 all IP network 를 바탕으로 여러 기술들의 핵심을 바라보는 것이 좋다.
인터넷 분류 기준
크기 : 망의 크기에 따라 BAN, PAN, LAN, MAN, WAN 등등의 네트워크들이 있다.
기능별 : CPN 은 가입자 망으로써 집안 내부의 망이라고 볼 수 있고 BN은 BackBone network 로써 유선에서의 전체 망이라고 볼 수 있다. 이 중간에서 사용되는 network는 SAN으로 subscriber access network 즉, 접속할 떄 사용하는 network 가 있다
기업망 : 추가적으로 기업에서 쓰는 internet에도 용어가 붙었는데 intranet, extranet, internet 등등이 있다.
다시 말하지만 현재 시대에서는 단말이 압도적으로 smart해지고 빨라지고 있다. 따라서 어쩔 수 없이 거기에 맞춰 망역시 빨라지고 있다.
#Convergence
통신에서의 융합은 3 layer로 설명이 된다.
일단 applications 는 여러가지 app 들이 공통으로 필요한 기능을 제공해주는 layer로써 service layer 라고도 불리운다. 그리고 이러한 service 들에 공통적으로 제공되는 요소, 보안 등등을 제공하는 것이 Enterprise services 이며 이것들의 전송하는 틀, 기반이 Infrastructure 이다.
즉, 통신을 솔직히 Applications – enterprise service – infrastructure 3가지가 융합된 상태라고 할 수 있는 것이다. 제일 대표적인 Convergence 로 data + voice 가 있다. (Voip)
통신의 흐름을 그림으로 나타낸 것이다. 각각의 화살표는 전기 또는 광케이블로 연결된 것이라고 보면된다.
또한 source, destination 은 데이터를 비트로써 다루기 떄문에 중간 통신용 장비들이 이러한 비트들을 설정된 프로토콜에 맞춰서 읽어가면서 전송해주는 망 역할을 해준다고 보면 된다.
일종의 변조 복조 장치로써 생각하면 편하다.
그리고 컴퓨터 네트워크에서 배웠겟지만 통신에는 여러 기능들이 있지만 비슷한 기능들을 얼추 묶으면 7개 정도로 나타낼 수 있다. 이게 OSI 7 layer라는 걸 기억하자.
#Transmission Lines
전송선, 광케이블 등을 의미한다. 이 lines은 몇 가지만 고려하면 된다.
Capacity, Reliability, Const
이 3가지이다. 딱 보면 이해하기 쉽다. 참고로 reliability는 무선일 경우 유선에 비해 낮다는 특징이 있다.
#Transmission Services
어떻게 하면 망 통신 효율이 좋아질까? 는 큰 과제일 것이다. 한 라인에서 여러 통신을 동시에 하는 방식에 대한 Multiplexing을 어떻게 잘할 것인지, 전송할 데이터를 어떻게 압축을 시킬지에 대한 Compression 을 어떻게 잘 할 것인지에 대한 고민을 계속 해야 될 것이다.
Chapter 1(2)
학습 목차
통신망의 정의와 분류
인터넷
망 구성의 예
통신망의 개념을 익히고, 인터넷의 의미를 기원, 주 구성요소 일반적인 인터넷 구성 형태와 용어를 알아보며 익혀보자.
#Networks
단말이 여러 개 있음에 자연스레 스위치, 라우터로 구성된 망이 출현하게 되었다.
현재 200억개 이상의 단말로 수가 증가하게 되어 이 망의 역할이 매우 중요해졌다. 엄청난 traffic을 적절하게 관리하며 capacity, simultaneously 하게 고속화 광대역화를 잘 이루어야 하며 이것을 기준으로 통신이 발달하고 있다.
시대의 유행 data에 맞춰서 network가 발전해왔다. 허나 결국에는 all-ip network로써 하나의 network 로 발전하게 될 것이라고 생각한다.
#WAN
넓은 범위의 망으로써 여러 switching node의 집합이다. 또한 KT, SKT 같은 통신사업자들이 사용하는 망으로 보통 장거리 통신을 위해 깔리는 통신 인프라라고 생각하면 편하다.
#망
전화망 (circuit switching): 일종의 음성망으로써 전화국에서 자구 사용하는 직접 source들을 연결해주는 망이다. 돈 벌이가 안되는 망이다. 즉, 전화를 할 때, 상대방과 나의 음성 메시지가 원할히 오고 갈 수 잇는 길을 일일이 만들어주는 방식의 망이다.
Virtual circuit switching (가상회선망)
packet switching 조각들로 mix 시켜서 destination 까지 쫙 보내는 기술을 의미한다. 대표적으로 TCP/IP 가 있다. 즉 data를 packet 단위로 쪼개서 보내는 것으로 router를 통해 dest 로 데이터가 전송되는 특징을 가진 망이다.
허나 다음과 같은 문제가 생길 수도 있다. A 에서 100Mb/s 로 데이터를 보낸 경우 Multiplexing line 은 1.5Mb/s 이므로 1.5개만 보내지고 나머지 98.5 개는 packet queue 에 쌓였다가 drop 된다. 이를 해결하기 위해 Flow control 를 도입하기도 하였다.
message s/w 초창기 데이터 전송 기술로 alpha net 이 있다. 교환기 사이의 data 단위가 message (file) 로써 공용으로 쓰기엔 단위가 커서 시간이 좀 걸린다는 단점이 있었다.
Frame relay (fast packet switching)Mbps 로 성능이 향상되었다. Frame relay 기능을 사용함으로써 error control, flow control 기능을 기반으로 속도를 향상시켰다. 망보다 단말 기능을 올린 것으로 망을 단순화 시킨 망이라고 할 수 있다.
Frame 이란 link 계층에서 데이터를 부르는 단위이다. 위에서 packet은 network 계층에서 데이터를 부르는 단위이다. 일단 frame relay는 link layer의 기술을 단말에 부담시키며 망을 단순화한 기술이다. 2Mbps 의 속도로 업데이트 되었는데 이 단위는 화상 data를 보낼 수 있는 범위를 나타낸다. ⇒ 이 역시 현재는 안쓴다.
cell switching (ATM) : Asynchronous Transfer Mode2000년 초 속도를 Gbps 까지 향상시킨 기술이다.때문에 Gbps 정도의 속도가 나오게 되어 동영상 데이터를 송수신하는데 부담이 없게 되었다. ⇒ 허나 요즘에도 좀 느린 거라고 생각할 수 있다.
ATM은 비동기 전송방식을 의미하는데 이 전송 방식은 cell 단위로 data를 보낸다. 즉 쪼개진 단위가 일정해 HW의 영향을 많이 받는데 요즈음 HW의 성능이 좋아 그만큼 속도가 잘나오게 된다. → circuit switching 과 packet switching 2개를 합친거라고 봐도 된다.
label switching (MPLS)
#LAN
초창기 LAN은 Star LAN 구조였다. 중심에 hub가 있고 그 가지로 terminal 노드들이 있었다. 주로 회사에서 사용하는 망이 전부였다. 허나 이러한 망이 점점 발전하면서 WAN 구조로 발전되었고 home 영역까지 확장되었다.
#The Internet
Internet의 고유명사형이다. 보통 인터넷이라고 하면 packet switching 기술을 사용하는 TCP/IP 프로토콜을 의미한다.
전세계의 보편적인 공용 네트워크로써 TCP/IP 가 전세계 표준으로 자리를 잡았다는 것을 알아두자.
#Key Elements of the Internet (Router, Ethernet switch)
여기서 몇 가지 집고 넘어가자. 일단 Router 는 왜 layer 3 로 했을까? 일단 전세계 주소 체계를 어디로 보낼지 알기 위해서는 체계가 있어야 한다. 이 때 IP 는 잘 체계화 되어있지만 그에 반해 Mac address 는 제조업체에서 막 찍는대로 생기기 떄문에 일련번호의 체계가 없다.
즉, IP에 반해 MAC address 는 routing table 에서 관리하기가 힘들다. 이 이유로 IP 주소를 관리하는 layer 3 에 Router 를 두었고 MAC Address 는 따로 layer2 에 Ethernet switch 를 두어 관리하도록 하였다.
#ISP
Internet Service Provider 를 의미한다. 주로 SKT, KT 같은 서비스 제공업자들을 의미한다. 이러한 망을 이용해 돈을 버는 사업자들을 NSP 로 부른다.
#Internet Terminology
POPPoints of presence 로 서비스가 존재하는 점들을 의미한다.
NAPNetwork Access Point로 2개의 network가 만나는 지점을 의미한다.
COCentral Office 로 전화 교환국을 의미한다.
CPECustormer Premises Equipment 로 사용자가 내돈내산한 장비를 의미한다.
true || 'head' || 'body' || false Inject all assets into the given template or templateContent. When passing true or 'body' all javascript resources will be placed at the bottom of the body element. 'head' will place the scripts in the head element - see the inject:false example
웹사이트를 만들다 보면 js, css, 등등 여러 수많은 파일들이 생겨난다. 때문에 웹을 로딩해보면 정말많은 파일들이 로딩되는 것을 볼 수 있다. 이는 서버와의 통신이 그만큼 늘어나 좋지 않은 결과가 생기며 서로 독립적인 js 파일이 동일한 의미의 식별자를 사용하게 되어 원치 않은 결과가 생기기도 한다.
이를 위해 등장한 도구를 Bundler 라고 한다. 묶는 다는 뜻의 도구이다. Webpack, Broserify, Parcel 등등 여러가지 종류가 잇는데 이 중 가장 인기있는 도구인 Webpack 에 대해 알아보자.
이 번들러를 이용해 웹 개발하며 다양한 확장 파일들과 이것들을 쉽게 관리할 수 있게 되어 큰 이점을 가져갈 수 있다. 이는 계속 검색해보자.
일단 배우기 전에 웹팩 없이 웹 사이트를 만들어 보고 이 떄의 단점을 알아보는 것이 이해하기 좋다.
// World.js var word = 'World'; export default word;
// Hello.js var word = 'Hello'; export default word;
이런식으로 type='module' 선언해주고 js 파일을 import 하여 사용해주면 충돌이 나지 않게 된다. 또한 이런식으로 선언시 콘솔창에서 word 에 접근하려고 하면 에러가 생기게 된다.
export default word; 으로 word 를 선언해주게 되면 해당 식별자는 해당 파일 내에서 사용할 수 있기 때문이다.
허나 이런식으로 모든 js 파일을 일일이 불러오게 된다면 오만가지 파일들을 다운받게 되어 connection 이 엄청나게 많아지게 된다. 이러면 사용자나 서비스제공자 입장에서 더 많은 컴퓨팅 파워를 사용함이 필요해진다. 즉, 서비스 속도가 느려지게 되어 그만큼의 경쟁력이 사라지게 되는 것이다.
그래서 많은 사람들이 예전부터 웹에서도 모듈의 개념을 사용하고 싶다는 생각과 여러개 파일을 하나로 묶어서 제공하고 싶다는 생각을 한 사람들이 만든 도구가 번들러 라는 도구이다.
Uploaded by Notion2Tistory v1.0.0