Computer Science
HTTP란?
HTTP(HyperText Transfer Protocol)는 인터넷에서 웹 페이지를 전송하는 데 사용되는 프로토콜입니다. 이번 포스팅에서는 HTTP의 개념과 동작 방식, 그리고 HTTP 메서드와 상태 코드 등에 대해 알아보겠습니다. HTTP의 개념과 동작 방식 HTTP는 클라이언트-서버 모델을 기반으로 합니다. 클라이언트는 서버에 요청을 보내고, 서버는 요청을 처리하고 클라이언트에 응답을 보냅니다. HTTP 요청과 응답은 일반적으로 TCP/IP 프로토콜을 기반으로 하며, HTTP 요청과 응답은 일반적으로 TCP/IP 포트 80을 사용합니다. 최근에는 HTTPS라는 보안 프로토콜이 발전되어서, HTTP 요청과 응답을 암호화하여 전송하는 방식으로 보안성을 향상시켰습니다. HTTP는 다양한 메서드를 제공하여..
DNS란?
DNS(Domain Name System)이란? 개요 DNS(Domain Name System)는 인터넷에서 도메인 이름과 IP 주소를 매핑하는 시스템입니다. 일반적으로, 전화번호부에 비유합니다. 사람의 이름과 전화번호를 연결시키는 것과 도메인 이름을 IP 주소로 변환하는 것이 비슷하기 때문입니다. 중요성 인터넷에서 사용되는 도메인 이름은 수백만개 이상이며, 이러한 도메인 이름을 IP 주소로 변환하려면 매우 복잡한 작업이 필요합니다. 따라서 DNS는 이러한 작업을 대신 수행하여 사용자가 도메인 이름을 입력하면 빠르고 정확하게 IP 주소를 찾아줍니다. 또한, DNS는 인터넷 보안에도 매우 중요한 역할을 합니다. DNS를 이용하여 악성 코드나 스팸 메일을 차단하거나, 보안 강화를 위한 DNSSEC(DNS S..
Linked List (연결 리스트)
LinkedList란? 연결 리스트, 링크드 리스트(linked list) 원소들을 저장할 때 그 다음 원소가 있는 위치를 포함하는 방식으로 저장하는 자료구조 각 노드가 데이터와 포인터를 가지고 한 줄로 연결되어 있는 방식으로 데이터를 저장하는 자료 구조이다. 이름에서 말하듯이 데이터를 담고 있는 노드들이 연결되어 있는데, 노드의 포인터가 다음이나 이전의 노드와의 연결을 담당하게 된다. 연결 리스트의 성질 k번째 원소를 확인/변경하기 위해 O(k)가 필요함 임의의 위치에 원소를 추가/임의 위치의 원소 제거는 O(1) 원소들이 메모리 상에 연속해있지 않아 Cache hit rate가 낮지만 할당이 다소 쉬움 연결 리스트의 종류 단일 연결 리스트 (Singly Linked List) 이중 연결 리스트 (Do..
ArrayList
ArrayList란? Array List는 배열을 이용해서 리스트를 구현한 것을 의미한다. 장점은 내부적으로 배열을 이용하기 때문에 인덱스를 이용해서 접근하는 것이 빠르다. 하지만 데이터의 추가와 삭제가 느리다. List 인터페이스의 구현 클래스이며, ArrayList에 객체를 추가하면 객체가 인덱스로 관리된다. 크기가 가변적으로 변하는 선형 리스트이다. 일반 배열과 ArrayList는 순차리스트이며, 인덱스로 객체를 관리한다는 점에서 유사하나 큰 차이점이 있다. 배열은 생성시 크기가 고정되고 사용 중에 크기를 변경할 수 없지만, ArrayList는 저장 용량(capacity)을 초과한 객체들이 들어오면 자동적으로 저장 용량(capacity)이 늘어난다. List list = new ArrayList()..