Computer Science
[OS] 컴퓨터는 현재시간을 어떻게 알까?
[OS] 컴퓨터는 현재시간을 어떻게 알까?
2024.07.31컴퓨터의 시계를 보면 꽤 정확하게 시간을 측정하는 시계를 볼 수 있다.그런데 컴퓨터는 이 시간을 어떻게 매번 정확하게 측정할 수 있는걸까? 이를 알기 전에 고등학교 물리 시간으로 돌아가 시간 측정 방법에 대해서 먼저 알아보자. 협정 시계시(UTC)협정 시계시는 국제적인 표준 시간의 기준으로 쓰이는 시각으로, 원자시계와 윤초 보정을 기반으로 표준화 한 시각이다.이 시각은 학교에서 배웠듯이 영국 그리니치 천문대가 기준(UTC+0)이다. 대한민국의 시간은 UTC+9로, 영국이 12시라면 한국은 21시가 된다. 원자시계협정 시계시는 위에서 말했듯, 원자시계를 통해 측정한다.원자시계는 세슘 원자를 이용해 정의하며, 세슘 원자가 절대영도 조건에서 방출하는 특정한 파장의 빛이 9,192,631,770번 진동하는 시..
[Network] 루핑(Looping)
[Network] 루핑(Looping)
2023.04.20루핑(Looping)? 루핑은 그 단어에서도 유추할 수 있듯이, 프레임이 목적지에 도달하지 못하고 계속 순환하는 현상을 의미한다. 원인 그럼 루핑 현상은 왜 발생하는 것일까? 먼저 위에 있던 그림을 다시 한 번 간단히 살펴보자. 위 그림에서 Host A와 Host B가 통신하는 상황이라고 생각해보자. 두 Host 사이에는 2개의 경로가 구성되어 있어 하나의 경로에 장애가 생겨도 다른 하나의 경로로 통신할 수 있도록 설계를 했다. 단순히 이렇게 보면 잘 구성된 네트워크 같이 보인다. 그런데 여기서 바로 위에서 말한 루핑 문제가 생긴다. 루핑 현상이 발생하는 시나리오를 한 번 살펴보자. 먼저 Host A가 다음과 같이 브로드캐스트를 보내면 스위치는 이를 받아 들어온 포트를 제외한 다른 모든 곳에 Floodi..
[Design Pattern] 싱글톤 패턴
[Design Pattern] 싱글톤 패턴
2023.04.16싱글톤 패턴? 싱글톤 패턴은 애플리케이션이 시작될 때, 어떤 클래스가 최초 한 번만 메모리를 할당(static)하고 해당 메모리에 인스턴스를 만들어 사용하는 패턴이다. 즉, 생성자가 여러 번 호출되어도, 실제로 생성되는 객체는 하나이고, 최초로 생성된 이후에 호출된 생성자는 이미 생성한 객체를 반환시키도록 만드는 것이다. 시스템 런타임, 환경 세팅에 대한 정보 등, 인스턴스가 여러 개일 때 문제가 생길 수 있는 경우가 있다. 따라서 인스턴스를 오직 한 개만 만들어 제공하는 클래스가 필요하다. 구현 먼저 다음은 싱글톤 패턴을 구현한 코드이다. 한 번 살펴보자. class Settings { private static Settings instance; private Settings() { } public s..
[Network] 스위치
[Network] 스위치
2023.04.05스위치? 이전에 스위치에 대해 잠깐 살펴본 적이 있다. 스위치는 Collision Domain을 나누어, 허브가 모든 영역에 영향을 미치는 문제점을 보완할 수 있다고 했다. 잠시 뒤 설명할 브리지도 이와 같은 역할을 한다. 브리지 보통 사용되는 스위치 이외에도 브리지라는 장비가 있다. 브리지도 스위치와 같이 콜리전 도메인을 나누는 역할을 한다. 이렇게 보면 스위치와 많은 차이가 없어보이지만, 여러가지 차이가 있다. 먼저 브리지와 스위치의 공통된 대표적인 기능은 다음과 같다. 브리지 & 스위치 기능 Learning 한 PC가 데이터를 보내면 브리지가 다리를 건너 보낼 것인지 판단하는데, 이때 데이터를 보낸 PC의 맥 어드레스를 자신의 브리지테이블이라는 곳에 저장한다. 이는 다음에 누가 테이블에 저장한 PC..
[Network] IP 주소
[Network] IP 주소
2023.04.04IP? IP는 인터넷 프로토콜(Internet Protocol)의 약자로, 인터넷이 통하는 네트워크에서 어떤 정보를 수신하고 송신하는 통신에 대한 규약을 의미한다. IP는 OSI 7 Layer에서 3계층에 해당하는 프로토콜이다. 즉, 호스트에서 호스트까지의 통신을 책임진다. IP 주소 IP 주소는 IP 통신에 필요한 고유 주소를 말한다. 현재 IPv4와 IPv6 두 가지 체계가 있으며, 우리가 흔히 쓰고 있는 IP 주소는 대부분 IPv4이다. IPv4 32비트의 값을 가지며, 보통 8비트씩 끊어 이를 0과 255 사이의 10진수 숫자로 표현한다. 각 비트 사이에는 점(.)을 찍어 구분한다. 총 32비트의 정보를 가지므로 최대 2^32개, 약 43억개의 고유한 주소를 부여할 수 있다. Class IPv4 ..
[Network] 서브넷 마스크(Subnet Mask)
[Network] 서브넷 마스크(Subnet Mask)
2023.03.30서브넷 마스크(Subnet Mask)? 흔히 사용되는 IPv4 주소 체계는 클래스를 나누어 IP를 할당한다. 예를 들어, 어떤 기관에 B 클래스를 할당한다고 하면 65,536개의 호스트를 할당할 수 있게 된다. 그런데, 기관에서 10,000개의 호스트만 할당한다고 했을 때 나머지 55,536개의 호스트가 낭비되게 된다. 이렇듯 이 방식은 매우 비효율적이기 때문에, 서브넷을 사용하여 네트워크 영역을 부분적으로 나눌 필요가 있다. 이 역할을 수행하는 것을 서브넷 마스크라고 한다. 서브넷(Subnet) 서브넷은 IP 주소에서 네트워크 영역을 부분적으로 나눈 부분 네트워크를 뜻한다. 이러한 서브넷을 만들 때 사용되는 것이 바로 서브넷 마스크이다. 즉, 서브넷 마스크는 IP 주소 체계의 Network ID와 Ho..
[Network] 라우터
[Network] 라우터
2023.03.29라우터(Router)? 라우터는 서로 다른 네트워크를 연결해주는 장치로써, 현재의 네트워크에서 다른 네트워크로 패킷을 전송하는 기능을 제공한다. 스위치가 데이터링크 계층에서 동작하는 것과 달리, 라우터는 네트워크 계층에서 동작한다. 스위치는 브로드캐스트 도메인을 나눌 수 없기 때문에, 대역폭을 낭비할 우려가 있다. 반면, 라우터는 브로드캐스트 도메인을 나누어 이를 방지할 수 있다. 특징 라우터는 라우팅 테이블을 이용하여 경로 정보를 등록하고 관리하며 라우팅 테이블을 기반으로 가장 효율적인 경로를 설정한다. 그 외에 다음과 같은 기능들이 있다. 패킷 필터링 기능 로드 분배 기능 QoS(Quality of Service) 기능: 프로토콜, 데이터 크기, 중요도 등을 따져 트래픽의 전송 순서를 조정하는 기능 ..
[Network] 허브 & 스위치
[Network] 허브 & 스위치
2023.03.28허브? 허브는 전기적인 신호를 증폭시켜 LAN의 전송거리를 연장시키고, 여러 대의 디바이스를 연결해 네트워크를 만들어주는 장비이다. 허브는 크게 더미 허브와 스위치 허브로 나뉘는데, 우리는 보통 더미 허브를 허브라 부르고, 스위치 허브를 스위치라 부른다. 허브 (L1 더미 허브) 허브는 다음과 같이 두 가지 기능으로 많이 사용된다. 멀티포트: 한 번에 많은 장치를 연결할 수 있는 기능 리피터: 전기적인 신호를 증폭시켜 들어온 데이터를 재전송하는 기능 LAN의 최대 전송거리가 연장되고 접속할 수 있는 장비의 수도 많아진다. 하지만 허브는 단순한 분배 중계기에 불과하여 IP를 할당할 수 없고 디바이스 수에 따라 데이터 전송 대역을 분리하는 역할만 한다. 예를 들어, 10Mbps를 제공하는 이더넷에 8포트 허..
[Network] DHCP(Dynamic Host Configuration Protocol)
[Network] DHCP(Dynamic Host Configuration Protocol)
2023.03.27DHCP(Dynamic Host Configuration Protocol)? DHCP란 호스트의 IP 주소와 각종 TCP/IP 프로토콜의 기본 설정을 클라이언트에게 자동적으로 제공해주는 프로토콜을 말한다. DHCP에 대한 표준은 RFC 문서에 정의되어 있다. DHCP는 네트워크에 사용되는 IP 주소를 DHCP 서버가 중앙집중식으로 관리하는 클라이언트/서버 모델을 사용하게 된다. DHCP지원 클라이언트는 네트워크 부팅과정에서 DHCP서버에 IP주소를 요청하고 이를 얻을 수 있다. 장단점 장점 DHCP를 사용하면 IP 주소가 자동 할당되므로 사용자가 일일히 IP에 대한 정보를 설정할 필요가 없어지고, IP 주소가 중복되어 사용이 불가능하게 되는 상황을 방지할 수 있다. 단점 IP 주소 할당을 DHCP 서버에..
[Network] TCP/UDP
[Network] TCP/UDP
2023.03.22TCP/UDP? TCP와 UDP는 OSI 표준모델과 TCP/IP 모델의 전송 계층에서 사용되는 프로토콜이다. 전송 계층은 송신자와 수신자를 연결하는 통신 서비스를 제공하고 IP에 의해 전달되는 패킷의 오류를 검사하며 재전송 요구 제어 등을 담당하는 계층이다. TCP와 UDP는 같은 계층의 프로토콜이지만, 신뢰적인(정확한) 전송이 우선인가, 속도가 우선인가에 따라 서로 차이점이 있다. 그럼 각 프로토콜의 특징을 자세히 살펴보자. TCP TCP는 신뢰성 있는 데이터 전송을 지원하는 연결지향형 프로토콜이다. 일반적으로 IP와 같이 사용되는데 IP는 패킷 전달 여부를 보증하지 않기 때문에, 데이터 전송을 담당하고 TCP는 패킷을 추적하고 관리하는 역할을 한다. TCP는 연결지향형 프로토콜이기 때문에 3-way ..
[Network] TCP/IP
[Network] TCP/IP
2023.03.19TCP/IP? 먼저 TCP/IP에 대해 살펴보기 전 다음을 보자 Internet Protocol Suite 인터넷 프로토콜 스위트(Internet Protocol Suite)는 인터넷에서 컴퓨터들이 서로 정보를 주고받는 데 쓰이는 프로토콜의 모음이다. Internet Protocol Suite 중 TCP와 IP가 가장 많이 쓰이기 때문에 TCP/IP Protocol Suite 라고도 불린다. 이전 OSI 7 Layer 포스팅을 봤다면 TCP와 IP가 무엇인지 대략적으로 파악했을 것이다. 그렇다. TCP/IP는 하나의 프로토콜이 아닌 TCP와 IP를 합쳐서 부르는 말이다. 즉, TCP/IP란 IP의 주소 체계를 따라 통신하면서 TCP의 특성을 이용해 송신자와 수신자의 논리적 연결을 생성하여 신뢰성을 유지할..
[Network] OSI 7 Layer
[Network] OSI 7 Layer
2023.03.19OSI 7 Layer? OSI 7 Layer는 네트워크 프로토콜이 통신하는 구조를 7개의 계층으로 분리하여 각 계층 간 상호 작동하는 방식을 정해놓은 것이다. 이는 ISO(국제표준화기구)에서 개발한 모델이다. 이렇게 계층을 나눈 이유는 통신이 일어나는 과정을 단계별로 한눈에 파악할 수 있기 때문이다. 또한, 7단계 중 특정한 곳에 이상이 생기면 다른 단계의 장비 및 소프트웨어를 건들이지 않고도 이상이 생긴 단계만 고칠 수 있다. 각 계층은 다음과 같다. 계층 이름 단위 예시 프로토콜(Protocol) 7 응용 계층 (Application Layer) Data 텔넷(Telnet), 크롬, 이메일, 데이터베이스 관리 HTTP, SMTP, SSH, FTP, Telnet, DNS 등 6 표현 계층 (Presen..