전체 글 53

2장 데이터베이스 관리 시스템

파일 시스템 데이터베이스가 있기 전에는 파일 시스템이라는 소프트웨어를 이용 파일 시스템은 파일을 생성, 삭제, 수정, 검색기능을 제공하며 운영체제와 함께 설치 장점 별도의 구매 비용이 발생하지 않음 단점 같은 내용의 데이터가 여러 파일에 중복 저장된다. 응용 프로그램이 데이터 파일에 종속적이다. 데이터 파일에 대한 동시 공유, 보안, 회복 기능이 부족 응용 프로그램을 개발하기 쉽지 않다. 데이터베이스 관리 시스템 파일 시스템의 데이터 중복과 데이터 종속문제를 해결하기 위해 제시된 소프트웨어 DBMS의 중재덕분에 데이터 중복으로 인한 문제 해결 사용하기 쉬운 다양한 인터페이스제공 사용자는 DBMS에 데이터를 요청하기만 하면 됨 응용 프고르매을 변경할 필요가 없어 데이터 독립성 확보 주요 특징 정의 기능 ..

1장 데이터베이스 기본 개념

데이터 : 현실 세계에서 단순히 관찰하거나 측정하고 수집한 사실이나 값 정보 : 데이터를 의사 결절에 유용하게 활용할 수 있도록 처리한 결과 값 데이터베이스 정의 특정 조직의 여러 사용자가 공유하여 사용할 수 있도록 통합해 저장한 운영데이터의 집합 핵심개념 공유 데이터 사용 목적이 다른 사용자들을 두루 고려하여 구성해야 한다. 통합 데이터 데이터의 중복을 최소화하고 통제가 가능한 중복만 허용하는 데이터로 구성해야 한다. 저장 데이터 컴퓨터가 접근할 수 있는 매체에 저장. 운영 데이터 지속적으로 유지해야 하는 데이터 특징 실시간 접근 사용자의 데이터 요구에 실시간으로 응답할 수 있어야 한다. 계속 변화 삽입, 삭제, 수정하여 동적인 변화를 하여 정확한 데이터를 유지 동시 공유 여러 사용자가 서로 다른 데이..

[LeetCode] 744. Find Smallest Letter Greater Than Target

문제 문제는 어렵지 않다. 오름차순으로 정렬되어 있는 letters안에 target보다 큰 문자를 return, 만약 없다면 첫번째 문자 return 시간복잡도 : O(n) class Solution: def nextGreatestLetter(self, letters: List[str], target: str) -> str: ans = letters[0] for letter in letters: if letter > target: return letter return ans 시간복잡도 O(logn) class Solution: def nextGreatestLetter(self, letters: List[str], target: str) -> str: l, r = 0, len(letters) while l..

[백준]18113. 그르다 김가놈

문제(18113. 그르다 김가놈) 김밥의 꼬다리를 제거한 김밥을 손질된 김밥 L이라 한다. 김밥은 양쪽 꼬다리를 균일한 Kcm만큼 잘라낸다. 만약 김밥의 길이가 2Kcm보다 짧으면 한쪽 꼬다리만 제거하고 김밥의 길이가 K보다 작거나 같으면 폐기한다. 손질된 김밥을 최대 Pcm로 최소M개를 만들려고 할 때, 최대 P를 찾아라. 만족하는 P가 없으면 -1을 출력 P는 양의 정수이다. 아이디어 문제를 잘 읽어야 풀 수 있다. 구현 난이도는 어렵지 않으나 문제의 내용이 애매하며 예제또한 애매하게 알려줘서 한번에 맞추기가 매우 어려운 문제이다. 내가 생각한 핵심아이디어는 김밥의 폐기조건을 정확하게 이해하고 구현해야한다. 김밥의 폐기조건 1. L = c * i: index = bisect.bisect_left(ar..

9장 무선 랜 이해하기

무선랜이란? 랜 케이블을 사용하지 않고 눈에 보이지 않는 전파를 이용하여 컴퓨터와 연결하는 것 컴퓨터와 무선 엑세스 포인트와 통신하려면 무선 랜 칩과 무선 랜 어뎁터가 필요하다. 무선 랜 어댑터 USB 메모리 방식, 컴퓨터 카드 방식이 있다. 연결하는 방식 인프라스트럭처(infrastructure) 무선 액세스 포인트를 통해 통신하는 방식 애드혹(Ad Hoc) 무선 클라이언트끼리 직접 통신하는 방식 무선 랜 규격 무선 랜은 IEEE802.11 규격을 준수하는 기기로 구성 무선 공유기와 무선 클라이언트의 규격이 함께 지원해야 사용이 가능하다. IEEE802.11 IEEE에서 승인한 무선 랜 표준화 기술 이전에는 802.11 ac/n/g이렇게 썼지만 현재는 WIFI5, WIFI6, WIFI7등으로 사용한다...

공부/네트워크 2023.05.18

7장 응용계층

응용계층(세선 계층, 표현계층 포함) 클라이언트의 요청을 전달하기 위해 서버가 이해할 수 있는 메시지(데이터)로 변환하고 전송 계층으로 전달하는 역할 서비스 요청(클라이언트) -> 서비스 제공, 애플리케이션(서버) 서버와 통신하려면 응용 계층의 프로토콜을 사용해야 한다. 웹 사이트를 볼 때 HTTP, 파일을 전송할 때 FTP, 메일을 보낼 때 SMTP, 메일을 받을 때 POP3라는 프로토콜 사용 네트워크 장비에 붙여진 이름을 기반으로 IP 주소를 알아내는 것을 이름 해석이라고 하고 이를 위해 DNS를 사용 WWW(World Wide Web) HTML, URL, HTTP라는 세가지 기술이 사용 HTML 웹 페이지에서 문장 구조나 문자를 꾸미는 테그를 사용하여 작성하는 마크업 언어 HTTP 웹 사이트를 보기..

공부/네트워크 2023.05.11

6장 전송 계층(L4)

전송 계층 목적지에 신뢰할 수 있는 데이터를 전달 오류 점검 전송된 데이터의 목적지가 어떤 에플리케이션인지 식별 특징 신뢰성, 정확성 / 효율성 TCP(Transmission Control Protocol) 연결형 통신이다. TCP로 전송할 때 붙이는 헤더를 TCP헤더라고 하며, 이 TCP헤더가 붙은 데이터를 세그먼트라고 한다. 코드 비트 코드 비트에 연결 제어 정보가 기록된다. 초기값은 0이며 비트가 활성화되면 1이 된다. 3-way 핸드셰이크 SYN와 ACK를 사용하여 두개의 컴퓨터가 연결을 확립한다. A컴퓨터 ---> SYN 요청 --> B컴퓨터 A컴퓨터 B컴퓨터 이 작업을 통해 두 대의 컴퓨터의 코드 비트에 있는 SYN와 ACK가 1로 활성화 된다. 연결 종료 A컴퓨터 ---> FIN 연결 종료 ..

공부/네트워크 2023.05.08

DSU(Disjoint Set Union)

DSU(Disjoint Set Union) 교집합이 없는 두개의 집합(서로소)을 하나로 합치는 작업을 한다. 왜 필요한가? n이 10 ** 5 개인 그래프에서 단순 BFS나 DFS로 호출할 경우 모든 경로를 찾기 위해서는 n개인 10 ** 5번의 작업이 필요하다. 한 개를 찾을 경우 BFS나 DFS로 충분하지만 만약 e가 10 ** 5개를 찾아야 한다면 10 ** 10(10 ** 5 * 10 ** 5)번을 해야하며 시간초과가 나게 된다. 그렇기에 한번의 작업을 할때마다 parent를 업데이트해주는 DSU를 사용하면 해결할 수 있다. 시간복잡도 O(NlogN + ElogE + N + E) 구현 초기화 def __init__(self, n): self.parent = [i for i in range(n)]..

5장 네트워크 계층

네트워크 계층 네트워크 간의 통신을 가능하게 하는 것 라우터 라우팅 데이터의 목적지가 정해지면 해당 목적지까지 어떤 경로로 가는 것이 좋은지 알려주는 기능 랜 안에서는 MAC주소만으로 목적지를 찾을 수 있지만 다른 네트워크에서는 불가능, 그래서 식별을 위한 IP주소가 필요하다. 라우팅 테이블 경로 정보를 등록하고 관리 IP 패킷 기존의 데이터에 IP 헤더를 추가 IP 헤더 버전, 헤더 길이, 서비스 유형, 전체 패킷 길이, ID, 조각 상태, 조각의 위치, TTL, 프로토콜, 헤더 체크섬, 출발지 IP 주소, 도착지 IP 주소로 이루어져 있다. IP 주소 구조 IPv4 32비트로 구성, 43억개 주소 생성 가능 IPv6 64비트로 구성, 340간개 주소 생성 가능 공인 IP 주소 인터넷 서비스 제공자가 ..

공부/네트워크 2023.05.01