관리 메뉴

Dev Blog

7. Network 본문

Learn then Key points/Tech Interview Questions

7. Network

Nomad Kim 2021. 3. 29. 14:41

1. OSI 7, 5 layer 네트워크 에 대해서 들어보셨다면 설명해 주시겠어요

7 layer: shlee0882.tistory.com/110

5 layer: dad-rock.tistory.com/193

 

 

참고: www.forcepoint.com/cyber-edu/osi-model

2. CDN의 장점과 단점에 대해 알고 계신가요

Content Delivery Network (CDN)은 웹 호스팅에서 사용하는 기술이다. 대부분의 CDN은 이미지, 동영상, 미디어, CSS, JavaScript 같은 정적 파일을 호스팅 한다. 그래서 여러 공공 및 사설 CDN에서는 유명한 JavaScript 라이브러리, CSS, 글꼴 등을 서비스하고 있다.

 

CDN 장점

Different domains

웹 브라우저는 도메인당 동시에 다운로드할 수 있는 파일의 개수를 제한하고 있다. 일반적으로 동시에 네 개의 파일을 다운로드할 수 있게 하며, 5번째 파일의 다운로드는 먼저 받고 있는 파일 중 하나가 완료되기 전엔 시작되지 않는다. 그런데 CDN 파일은 다른 도메인에서 호스팅 되고 있다. 즉, CDN 서비스를 사용하면 브라우저가 동시에 4개의 추가 파일 다운로드를 할 수 있게 된다.

Files may be pre-cached

JQuery 같은 경우, 거의 모든 웹 사이트에서 사용된다고 볼 수 있다. 자신의 사이트를 방문하는 사용자는 이미 CDN 서비스를 사용하는 다른 사이트에 방문했을 가능성이 크며, 그렇다면 파일은 이미 브라우저에 캐시 되어 다시 다운로드할 필요가 없다.

High-capacity infrastructures

큰 돈을 들여서 좋은 호스팅 인프라를 구축한다고 해도 구글이나 마이크로소프트만큼의 용량이나 확장성이 있다고 할 수 없다. 그래서 CDN을 사용하면 높은 가용성, 낮은 네트워크 대기시간 및 낮은 패킷 손실을 보장할 수 있다.

Distributed data centers

웹 서버가 서울을 기반으로 하는 경우, 유럽이나 북미 사용자는 파일에 접근하기 위해 꽤나 긴 네트워크 통신을 해야 한다. 그러나 CDN은 각 대륙이나 대도시에 데이터 센터를 만들어 사용자의 지역에 맞춰 빠른 다운로드 속도를 지원한다.

Built-in version control

일반적으로는 특정 버전의 CSS, JavaScript 라이브러리를 CDN에서 가져올 수 있으며, 원한다면 최신 버전을 가져오게 할 수도 있다.

Usage analytics

많은 상용 CDN은 일반적으로 바이트 당 요금을 부과하기 때문에 파일 사용 보고서를 제공한다. 이런 보고서는자체 웹 사이트 분석에 도움이 될 수 있으며, 동영상 조회 수 및 다운로드 수를 더 잘 나타낼 수 있다.

Boosts performance and saves money

트래픽이 급증하여 서버가 다운되어 손실을 보고, 이를 막기 위해 인프라 구축에 막대한 돈을 투자하는 것보다 CDN을 사용하는 것이 부하를 분산하고 대역폭을 절약하며 성능을 향상시키고 기존 호스팅 비용을 절감할 수 있다.

Helps improve SEO

구글은 2010년에 웹 사이트 속도가 검색 엔진 순위에 영향을 줄 것이라고 발표했다. 결국 CDN을 사용하면 웹 사이트 속도가 빨라질 것이고 SEO (검색 엔진 최적화)에 도움이 될 것이다.

DDoS protection

많은 상용 CDN은 대시 보드에서 설정하거나 또는 기본적으로 DDoS 공격을 완화할 수 있다.

Better user experience

속도가 빠르다는 것은 사용자 경험에 정말 중요하다. 이는 방문자의 이탈률을 낮추고 클릭률을 높인다.

 

CDN 단점

Additional complexity

오프라인으로 작동하지 않으므로 인터넷 연결 없이는 개발할 수 없다. 그리고 라이브 서버에 배포할 때, 수작업이 필요할 수 있다.

Blocked access

간단히 말해서 구글에서 제공하는 무료 CDN 서비스가 중국에서 될까? 글로벌 서비스를 지향한다면 이런 부분을 고려해야 한다.

Security

무료 CDN을 사용하면 파일 호출에 자신의 사이트 정보도 함께 전송된다. 이게 싫으면 무료 CDN을 사용하면 안된다. 또한, JavaScript 라이브러리에 자신의 사이트 정보를 수집하는 코드가 삽입되어 있을 수도 있다.

Disaster for testing

CDN이 호스팅 된 파일을 자동으로 변경하거나 신뢰할 수 없는 것으로 판단하면, 이를 디버깅하기 어려울 수 있다.

Built-in version control

일반적으로는 특정 버전의 CSS, JavaScript 라이브러리를 CDN에서 가져올 수 있으며, 원한다면 최신 버전을 가져오게 할 수도 있다. 무턱대고 최신 버전을 가져오게 설정했다가 이전 버전과 호환되지 않아 오류가 발생할 수 있다.

 

참고: ohjongsung.io/2017/07/31/content-delivery-network%EC%9D%98-%EC%9E%A5%EC%A0%90%EA%B3%BC-%EB%8B%A8%EC%A0%90

3. forward proxy vs reverse proxy?

 

Proxy

프록시 서버는 클라이언트가 자신을 통해서 다른 네트워크 서비스에 간접적으로 접속할 수 있게 해 주는 컴퓨터 시스템이나 응용 프로그램을 가리킨다.

서버와 클라이언트 사이에 중계기로서 대리로 통신을 수행하는 것을 가리켜 '프록시', 그 중계 기능을 하는 것을 프록시 서버라고 부른다.

프록시 서버 중 일부는 프록시 서버에 요청된 내용들을 캐시를 이용하여 저장해 둔다.

프록시는 크게 Forward Proxy 와 Reverse Proxy 로 나뉜다.

 

Forward Proxy

클라이언트(사용자)가 인터넷에 직접 접근하는게 아니라 포워드 프록시 서버가 요청을 받고 인터넷에 연결하여 결과를 클라이언트에 전달 (forward) 해준다.

프록시 서버는 Cache 를 사용하여 자주 사용하는 데이터라면 요청을 보내지 않고 캐시에서 가져올 수 있기 때문에 성능 향상이 가능하다.

 

Reverse Proxy

클라리언트가 인터넷에 데이터를 요청하면 리버스 프록시가 이 요청을 받아 내부 서버에서 데이터를 받은 후 클라이언트에 전달한다.

클라이언트는 내부 서버에 대한 정보를 알 필요 없이 리버스 프록시에만 요청하면 된다.

내부 서버 (WAS) 에 직접적으로 접근한다면 DB 에 접근이 가능하기 때문에 중간에 리버스 프록시를 두고 클라이언트와 내부 서버 사이의 통신을 담당한다.

또한 내부 서버에 대한 설정으로 로드 밸런싱(Load Balancing) 이나 서버 확장 등에 유리하다.

 

차이점

1. End Point

Forward Proxy 는 클라이언트가 요청하는 End Point 가 실제 서버 도메인이고 프록시는 둘 사이의 통신을 담당해준다.

Reverse Proxy 는 클라이언트가 요청하는 End Point 가 프록시 서버의 도메인이고 실제 서버의 정보는 알 수 없다.

 

2. 감춰지는 대상

Forward Proxy 는 클라이언트가 감춰진다.

요청 받는 서버는 포워드 프록시 서버를 통해서 요청을 받기 때문에 클라이언트의 정보를 알 수 없다.

Reverse Proxy 는 반대로 서버가 감춰진다.

클라이언트는 리버스 프록시 서버에게 요청하기 때문에 실제 서버의 정보를 알 수가 없다.

 

출처: bcp0109.tistory.com/entry/Forward-Proxy-Reverse-Proxy

'Learn then Key points > Tech Interview Questions' 카테고리의 다른 글

10. Backend  (0) 2021.03.29
8. Cloud Infra  (0) 2021.03.29
6. HTTP  (0) 2021.03.29
5. Data Structure  (0) 2021.03.29
4. Node.js  (0) 2021.03.29
Comments