본문 바로가기

cs51

URI, URL, URN란? 0. 개요 살면서 URL이라는 단어는 많이 들어봤을 것이다. 하지만 URI, URN?은 좀 생소한 단어이다. 이번 게시물에서는 URI, URL, URN에 대해서 적어보도록 하겠다. 사실 각각의 개념들은 하나하나 깊게 살펴봐야할 내용들이지만, 추후에 더 깊은 공부를 하여 작성할 예정이다. 1. URI URI는 Uniform Resource Identifier의 줄임말이다. 각 단어를 하나씩 살펴보자면, - Uniform: 리소스를 식별하는 통일된 방식 - Resource: 자원, URI로 식별할 수 있는 모든 것 - Identifier: 다른 항목과 구분하는데 필요한 정보 즉, URI는 리소스를 구분할 수 있는 식별자라고 할 수 있다. 이 URI를 통해 우리가 접근해야 하는 리소스가 어디있는지를 판별할 수.. 2023. 1. 11.
IP, TCP, UDP, 포트, DNS 정리 0. 개요 이 게시물에서는 제목에 적힌대로 웹 개발에 필수적인 지식들인 IP, TCP, UDP, 포트, DNS에 대해 간단한 개념과 내용을 정리할 것이다. 사실 각각의 개념들은 하나하나 깊게 살펴봐야할 내용들이지만, 추후에 더 깊은 공부를 하여 작성할 예정이다. 1. 프로토콜 계층 클라이언트에서 서버로 통신을 할때, 데이터를 바로 전달하지 않고 감싸서 보내게 된다. 데이터 생성 -> TCP 세그먼트 생성 -> IP 패킷 생성 -> 이더넷 프레임 생성 -> 전송 2. IP(Internet Protocol) IP란, 인터넷에 연결되어 있는 장비들(컴퓨터, 스마트폰 등등..)을 식별하기 위해 각각의 장비들에게 부여되는 주소를 뜻한다. 따라서 각 기기의 IP 주소를 이용하여 수많은 노드들로 이루어져 있는 인터넷.. 2023. 1. 11.
[Hash]36. Hashing 구현 목차 1. class Hashtable 2. __main__ 3. 예상 출력값 1. class Hashtable 사실 python에서는 이미 hashing에 의해 작동되는 함수들이 많지만, cs를 공부하는 의미로 제작해 보도록 하겠습니다. class Hashtable: def __init__(self): self.table = [None for _ in range(13)] def full(self)-> bool: tmp = True for i in self.table: if i==None: tmp = False break return tmp def put(self, key: int, value: str): if not(self.full()): while True: if self.table[key%13]=.. 2021. 3. 10.
[Hash]35. Hashing 목차 1. Hashing 정의, 기본 개념 2. Hashing 충돌 관리 3. Separate Chaning 4. Linear Probing 5. Double Hashing 1. Hashing 정의, 기본 개념 Hashing은 데이터를 (key, value)화 시켜서 빠르게 저장하고, 빠르게 불러오는 방식을 말합니다. 사실 제가 활용하는 파이썬에서는 이미 딕셔너리가 hashing으로 구현되어 있지만, 그래도 한번 개념을 정리해보고 구현해보도록 하겠습니다. Hashing의 최종 목표는 골고루, 공평하게 데이터가 펼져디고록 배분하는 것이 최종 목표 입니다. 만일 정해진 규칙에 의하여 배분하였을 시 뒤에 서술하겠지만 충돌이 발생할 경우, 이를 해결하기 위한 방법을 마련해야 하기 때문입니다. Hashing의 기.. 2021. 3. 10.
[컴퓨터 구조]1. Computer Architecture 목차 1. Three Basic Components 2. Main Memory 구성 요소 1. Three Basic Components 컴퓨터를 구성하는 요소는 크게 3가지로 나눌 수 있습니다. 1) CPU - CPU는 계산하는 곳(일을 하는 곳)으로, 여러 논리연산들을 포함하고 있다. : +, -, *, /, AND, OR, ... 와 같은 논리 연산들 2) I/O - 프린터, 키보드, 마우스, 모니터 등 입력과 출력을 담당하는 여러 장치들을 말한다. 3) Memory - 저장 공간으로, Main Memory라고 부른다. - ROM을 제외하면 모두 변동성이 있으며, 여러 일처리를 이 공간에서 진행한다. 4) Second Storage - CPU와 연결은 되지 않는 추가적인 저장공간 - 우리가 흔히 아는.. 2021. 3. 7.
[OS]2. Resource Manager, RMA, Interrupt 목차 1. OS, resource manager(자원 관리) 2. 4가지 기본 규칙들 3. I/O operation, structure 4. DMA Operation 5. Interrupt 1. OS, resource manager(자원 관리) OS는 결국 컴퓨터의 자원을 관리하는 역할을 수행합니다. 우선 프로그램을 실행하려면, memory에서 수행을 하게 됩니다. 하지만 memory는 한정되어 있고, 이는 CPU와 다양한 I/O device들과 연결되어 있습니다. 따라서, 동작을 하기 위해서는 CPU와 I/O device끼리 memory를 차지하기 위해 서로 경쟁하게 되며, 이를 원활하게 관리할 수 있는 수단들 중 RMA와 Interrupt가 있습니다. 2. 4가지 기본 규칙들 컴퓨터 내용을 관리할 때.. 2021. 3. 7.
[OS]1. OS란? 목차 1. OS란? 2. OS의 역할 3. OS의 위치 4. OS의 목적 5. OS 재정의 1. OS란? OS(오퍼레이팅 시스템)는 사실 이것이 '무엇'이라고 정의하기 쉽지 않습니다. 그 이유는, 하는 일과 역할이 너무 다양하기 때문입니다. 하지만, OS의 역할들에 대해 살펴본다면, 대략적으로 OS에 대해 정의할 수 있을 것입니다. 후에 정리할 OS의 역할을 토대로 대략적으로 정리해 보자면, 1) OS는 프로그램이다! 2) 컴퓨터 하드웨어(CPU, 메모리, ...)를 관리하는 3) 다른 응용 프로그램의 수행을 제어하는 참고로 OS가 다루는 응용 프로그램을 확인하기 위해서는, 작업관리자를 켜보면 됩니다. 이때 앱과 백그라운드 프로세스에 뜨는 프로그램들 모두가, OS에서 현재 수행을 제어하는 응용 프로그램의.. 2021. 3. 7.
[DB]1. 데이터베이스란? 목차 1. 데이터베이스란? 2. 앞으로 정리할 것 1. 데이터베이스란? 데이터베이스(database)는 대용량의 구조화된 데이터의 모음을 의미합니다. 쉽게 말해서, 다량의 데이터를 저장하는 공간이라고 생각하면 됩니다. 데이터베이스 서비스를 제공해주는 회사는 다양하며, 대표적으로 MySQL, PostgreSQL, ORACLE 등이 있습니다. 이런 데이터베이스 서비스들을 DBMS이라고 하며, 사용자와 SQL문법을 활용하여 서로 소통하게 됩니다. 이 외에도 대용량 데이터들(빅데이터)를 관리하기 위해 사용하는 Spark, Hadoop 등이 있습니다. 2. 앞으로 정리할 것 앞으로의 게시물에서는 데이터베이스과 관련된 모델을, SQL문, db구성에서 시작하여 그 후에는 DB가 어떻게 동작하는지에 대해 정리할 예정입.. 2021. 3. 7.