목록CS (44)
공부하는 스누피
CDN이란? 엄청난 스트리밍 트래픽을 분배하는 문제를 해결하기 위해 주로 사용되는 네트워크인 콘텐츠 분배 네트워크(Contents Distribution Network, CDN)이다. CDN는 분산된 서버들을 운영해 데이터의 복사본을 분산 서버에 저장한다. 사용자는 최선의 서비스를 제공할 수 있는 지점의 CDN 서버로 연결된다. CDN 서버 위치 - Enter Deep: 서버 클러스터를 세계 곳곳의 접속 네트워크에 구축하는 방식. 서버를 사용자와 최대한 가까이 위치시킨다. 구글은 14개의 메가 데이터 센터를 세계 곳곳에 위치시켰다. 단점은 유지비용이 커진다는 것이다. - Bring Home: 적은 수의 핵심 지점에 큰 규모의 서버 클러스터를 구축하는 방식이다. 클러스터를 IXP에 배치시켜 사용자에게 데이..
DNS란? 인터넷은 호스트를 IP 주소로 구분하지만, 사람이 기억하기 어렵다는 단점이 있다. 그래서 사람이 기억하기 쉬운 알파뉴메릭 문자인 hostname으로 식별되도록 하였다. hostname만으로는 호스트의 주소를 직접적으로 알기 어려워 IP 주소로 변환하는 과정이 필요하다. 그래서 DNS(Domain Name System)은 host name을 IP 주소로 변환해 주는 디렉터리 서비스를 제공한다. 기능 - Host name을 IP 주소로 변환: 1) 브라우저가 URL로부터 hostname을 추출하고 DNS 애플리케이션의 클라이언트 측에 넘긴다. 2) DNS 클라이언트(사용자 컴퓨터)가 DNS 서버로 hostname을 포함하는 질의를 보낸다. 3) hostname에 대한 IP 주소를 가진 응답을 보낸..
웹 캐시(프록시 서버)는 웹 사용자에 의해 빈번히 요청되는 데이터를 사용자와 지리적으로 가까운 웹캐시 서버에 보관해 빠른 서비스를 가능하게 한다. 그래서 원래의 웹 서버를 대신하여 HTTP 요구를 충족시켜준다. 또한, 저장 디스크를 갖고 있어 최근 호출된 객체의 사본을 저장한다. 캐시에 있는 객체는 서버에서 변경될 수 있으므로 일관성 유지 기법을 필요로 한다. 1. 브라우저가 웹 캐시와 TCP 연결을 설정하고 웹 캐시에 있는 객체에 대한 HTTP 요청을 보낸다. 2. 웹 캐시는 객체의 사본이 캐시에 저장되어 있는지 확인한다. 저장되어 있다면 브라우저로 HTTP 응답 메세지와 함께 객체를 보낸다. 3. 저장되어 있지 않다면 origin 서버로 TCP 연결을 설정한다. 이 연결로 브라우저가 요청한 객체에 대..
OSI 7계층이란? ISO가 개발한 복잡한 통신 프로토콜을 7개의 계층구조로 나누어 표현한 모델이다. 1) 애플리케이션 계층 - HTTP, FTP 같은 프로토콜을 포함. - 여러 종단 시스템 간에 분산되어 있어 애플리케이션끼리 '메시지'라는 패킷을 교환한다. 2) 프레젠테이션 계층 - 통신하는 애플리케이션들이 교환되는 데이터의 의미를 해석하도록 하는 서비스를 제공한다. - 데이터 압축, 암호화를 포함한다. 3) 세션 계층 - 종단 시스템 간의 연결 유지를 담당한다. - 데이터 교환의 경계와 동기화, 회복 방법을 제공한다. 4) 트랜스포트 계층 - 클라이언트와 서버 간에 애플리케이션 계층 메세지를 전송하는 서비스를 제공. - TCP, UDP 같은 프로토콜. - TCP는 신뢰성, 흐름제어, 혼잡제어 기능을 ..
패킷이 송신측에서 출발해 수신측까지 도달하기까지의 과정에서 수많은 라우터를 거친다. 경로상의 각 노드에서 패킷은 다양한 지연(delay)를 겪게 되는데, 노드 처리 지연, 큐잉 지연, 전송 지연, 전파 지연이 대표적이다. 이 지연들이 쌓여 전체 노드 지연(total nodal delay)를 일으킨다. 1. 처리 지연(processing delay) 패킷 헤더를 조사하고 패킷을 어디로 보낼지 결정하는 시간. 노드 처리 이후에 라우터는 목적지 라우터로 향하는 링크의 큐에 보낸다. ex) 놀이공원에 갔는데 롤러코스터를 타려면 어디로 어떻게 갈지 결정하는 시간. 2. 큐잉 지연(queuing delay) 큐에 저장되어 링크로 전송되기를 기다리는 패킷의 수에 따라 결정된다. 큐가 비어 있다면 큐잉 지연은 0이다...
링크와 스위치를 통해 데이터를 이동시키는 방식에는 패킷 교환(packet switching)과 회선 교환(circuit switching)이 있다. 1. 패킷 교환 네트워크에서 종단 시스템들은 서로 메시지를 교환한다. 송신 측에서는 메시지를 보내기 위해 긴 메세지를 패킷(packet)이라고 하는 작은 데이터 블록으로 나눈다. 각 패킷은 통신 링크와 패킷 스위치(라우터/스위치)를 거친다. 패킷은 링크의 최대 전송 속도와 같은 속도로 각각의 링크를 통해 전송된다. store-and-forward transmission 대부분의 패킷 스위치는 저장-후-전달 전송(store-and-forward transmission) 방식을 이용한다. 스위치가 패킷을 전송하기 전에 전체 패킷을 받아야 하는 것을 의미한다. 큐..
시큐어코딩 가이드는 한국인터넷진흥원의 기술안내서 가이드로, 2020년 기준 한국인터넷진흥원에서는 JAVA, C, Android(JAVA) 가이드를 제공하고 있다. 정보처리기사에서는 인터페이스 개발 시 보안 취약점을 방지할 수 있는 JAVA 가이드라인으로 소개된다. 적용대상 보안약점 대응방안 입력데이터 검증 및 표현 입력값에 대한 검증 누락 입력 데이터에 대한 유효성 검증 체계 수립 보안 기능 보안 기능의 부적절한 구현 비밀번호 등 보안 정책이 적절하게 반영되도록 구현 시간 및 상태 병렬 시스템이나 멀티 프로세스 환경에서 시간/상태의 부적절한 관리 공유 자원의 접근 직렬화 에러 처리 에러 미처리 에러 상황 처리하도록 구현 코드 오류 개발자에 의한 코딩 오류 경고 순위의 최상향 조정 후 경고 메시지 코드 제..
SOA(Service Oriented Architecture) 대규모 컴퓨터 시스템을 구축할 때의 개념으로, 업무상의 일 처리에 해당하는 App 기능을 서비스로 판단하고, 그 서비스를 네트워크상에 연동하여 시스템 전체를 구축해 나가는 방법론이다 (Wikipedia). 간단히 말하자면, 회사 업무 App이 채팅 앱, 회계 프로그램, 일정 관리 프로그램 등 여러 가지가 있다고 하자. 이때 모든 App들을 컴포넌트 단위로 서비스화한 다음, 표준 인터페이스를 통해서 하나의 커다란 업무 관리 App을 만드는 것이다. - 소프트웨어의 재사용성이 강조된다. - 비즈니스 환경의 변화에 빠르게 대응할 수 있다. - 각 서비스는 의존성이 최소화(Loosely Coupled)되어 있어야 한다. - 아키텍처 모델에는 시스템 ..