Computer Science
-
[컴퓨터 구조] 고정소수점 VS 부동소수점Computer Science/Computer Architecture 2023. 1. 17. 00:07
들어가기 전 : 이진기수법 컴퓨터는 0과 1로 이루어진 기계어를 사용 ➡️ 이진기수법은 2가 나올 차례가 되면 2를 쓰는 대신 자릿수를 늘려주는 방식 [ 정수부 ] 정수부에서는 10진수를 2로 나눠가면서 1이나 0을 뽑아냄 - 10진수 4 : 2진수 100 - 10진수 8 : 2진수 1000 - 10진수 16 : 2진수 10000 [ 소수부 ] 소수부는 10진수에 2를 곱해가며 1이나 0을 뽑아냄 ※ 0.625의 변환 과정 - 0.625 * 2 = 1.25 ➡️ 1 (나머지 0.25) - 0.25 * 2 = 0.5 ➡️ 0 (나머지 0.5) - 0.5 * 2 = 1.0 ➡️ 1 (나머지 0) ➡️ 최종 0.101 고정소수점 방식 (Fixed Point) - 소수점이 찍힐 위치를 미리 정해놓고 소수를 표현..
-
[컴퓨터 구조] 컴퓨터 하드웨어 기본 구조 (CPU, 메모리)Computer Science/Computer Architecture 2023. 1. 9. 21:59
디지털 컴퓨터란? 정의 - 이진 시스템(0과 1)을 사용하여 계산을 수행하는 디지털 시스템 - 비트의 그룹을 사용하여 숫자, 문자 및 기타 정보를 표시하거나 처리 구성 요소 - 하드웨어: 컴퓨터를 구성하는 기계적 장치 - 소프트웨어: 하드웨어의 동작을 지시하고 제어하는 명령어 집합 구분 이름 설명 하드웨어 CPU 중앙처리장치, 컴퓨터 그 자체로 정의. 산술 논리 처리와 데이터의 저장, 제어 기능 수행 주변장치 메모리(RAM/ROM), 저장 장치(Storage, HDD, SSD), 입출력 장치(IO devices) 소프트웨어 운영체제 OS, Operating System (Windows, macOS 등) 시스템 프로그램 유틸리티, 데이터베이스, Editor(윈도우-멀티패드), OS에 포함되거나 연결되어 시..
-
[네트워크] DNS와 CDNComputer Science/Network 2023. 1. 3. 23:32
DNS (Domain Name Service) 란? URL을 숫자로 된 IP 주소로 해석해주는 Network Service - "www.tistory.com" => 도메인 이름 (www는 호스트 이름(서버 이름)) - 특정 URL로 접속했을 때 DNS 서버가 해당 웹 사이트 서버의 IP 주소를 알려줌 (이름 해석) DNS Server : DNS Service를 제공하는 서버 - IP에 대한 도메인을 저장하고 있음(일종의 전화번호부) - DNS Server가 모여 DNS(Domain Name System)을 구성 (분산형 데이터베이스 시스템) - 보통 UDP 프로토콜을 이용(많은 요청을 받아들이기 때문에 TCP 사용시 부하가 생길 수 있음, 데이터의 신뢰성이 중요할 경우에 사용) 주소 변환 과정 1. 컴퓨..
-
[네트워크] 서브넷과 서브넷 마스크Computer Science/Network 2022. 12. 28. 15:00
등장 배경 - IPv4는 초기에 IP클래스로 나누어 할당하였고, 자원의 비효율 발생 (ex. 어떤 기업이 필요한 아이피는 10,000개 정도인데 클래스 B는 65,000개 클래스 C는 256개로 B를 부여, 50,000개 의 아이피는 사용이 되지 않은채로 해당 기업에게 점유만 됨) - IP를 사용하는 네트워크 장치 수에 따라 효율적으로 사용 가능한 서브넷 등장 서브넷, 서브넷 마스크 서브넷: IP 주소에서 네트워크 영역을 부분적으로 나눈 부분망, 부분 네트워크 서브넷 마스크: IP주소를 네트워크 주소와 호스트 주소로 분리하는 역할(32비트 숫자로 '0' 비트는 호스트, '1'비트는 네트워크 의미) - IP 주소는 IP 클래스에 의해 분리되는 Network Prefix와 나머지 Host Number로 분리..
-
[네트워크] HTTP와 HTTPSComputer Science/Network 2022. 12. 20. 20:44
HTTP란? - WWW 상에서 정보를 주고 받을 수 있는 프로토콜로, 클라이언트와 서버 사이에 이루어지는 요청/응담 프로토콜 - 주로 HTML 문서를 주고 받는데 사용되며, TCP(HTTP/1, HTTP/2)와 UDP(HTTP/3)를 사용 - 클라이언트(웹브라우저)가 HTTP를 통해 서버에게 정보 요청 → 서버가 해당 정보를 전달 → 웹 브라우저를 통해 출력 구분 설명 HTTP/1.0 - 한 연결당 하나의 요청을 처리하도록 설계 - 서버로부터 파일을 가져올때마다 TCP의 3웨이 핸드셰이크를 계속 열어야해서 RTT 증가하는 단점 (RTT: 패킷이 목적지에 도달하고나서 다시 출발지로 돌아오기까지 걸리는 시간) HTTP/1.1 - 매번 TCP에 연결하지 않고, 한 번 TCP를 초기화한 후 keep-alive ..
-
[네트워크] OSI 7 계층 (OSI 7 Layers)Computer Science/Network 2022. 12. 20. 01:37
OSI 7 계층이란? (Open Systems Interconnection Reference Model) - 개방형 시스템 상호 연결을 위한 기초 참조 모델로서, 현재 네트워크 시스템의 기반이 된 모델 - 컴퓨터 네트워크 프로토콜 디자인과 통신을 계층으로 나누어 설명한 것으로, 프로토콜을 기능별로 나누어 설명 - 각 계층은 하위 계층의 기능만을 이용하고, 상위 계층에게 기능을 제공 - '프로토콜 스택' 혹은 '스택'은 이러한 계층으로 구성된 프로토콜 시스템이 구현된 시스템을 말하며, 프로토콜 스택은 하드웨어나 소프트웨어 혹은 둘의 혼합으로 구현 - 일반적으로 하위 계층은 하드웨어, 상위 계층은 소프트웨어로 구현됨 ➡️ 통신이 일어나는 과정을 계층화함으로써, 계층별로 제공하는 서비스의 구현 변경을 쉽게 함..
-
[디자인 패턴] 이터레이터 패턴 (Iterator Pattern)Computer Science/Design Pattern 2022. 12. 14. 00:55
이터레이터 패턴이란? : 이터레이터를 사용하여 컬렉션의 요소들에 접근하는 디자인 패턴 - 컬렉션 구현을 노출시키지 않으면서도 그 안에 있는 모든 항목에 접근할 수 있게 함 - 집합체 내에서 어떤 식으로 일이 처리되는지 몰라도 안에 있는 항목에 대해 반복작업 수행 가능 [ 장점 ] - 집합체 클래스의 응집도 증가 - 모든 항목에 일일이 접근하는 작업을 이터레이터 객체에서 진행함으로써, 집합체에서는 반복 작업이 아닌 원래 자신의 역할에 전념할 수 있음 [ 단점 ] - 단순 순회만을 구현할 경우 클래스만 많아져 복잡도가 증가함 참조: [Design Pattern] 이터레이터 패턴 (iterator pattern)
-
[디자인 패턴] 프록시 패턴 (Proxy Pattern)Computer Science/Design Pattern 2022. 12. 13. 17:24
프록시 패턴이란? : 대상 객체에 접근하기 전 그 접근에 대한 흐름을 가로채 대상 객체 앞단의 인터페이스 역할을 하는 디자인 패턴 - 이를 통해 객체의 속성, 변환 등을 보완 - 보안, 데이터 검증, 캐싱, 로깅에 사용 - 흐름제어만 할 뿐 결과값을 조작하거나 변경하지 않음 [ 종류 ] 1. Virtual Proxy : 주체 클래스가 리소스 집약적인 경우 - 해상도가 높은 이미지를 처리해야 할 경우, 인스턴스화시 많은 메모리를 사용하게 됨. - 프록시 클래스에서 자잘한 작업을 처리하고 리소스가 많이 요구되는 작업이 필요할 때만 주체 클래스를 사용하도록 구현 2. Protection Proxy : 주체 클래스에 대한 접근을 제어하기 위한 경우 - 프록시 클래스에서 클라이언트가 주체 클래스에 대해 접근을 허..