Chap 1. 컴퓨터 네트워크와 인터넷
·
2-2/컴퓨터 네트워크
1.1. What is internet a. 인터넷 = 수십억 개의 컴퓨팅 장치를 연결하는 컴퓨터 네트워크 컴퓨팅 장치: pc..등 서버들이었는데 이젠 랩톱 가전제품 시게 안경 등 비전통적인 인터넷 "사물들"이 인터넷에 연결되고 있다 ! 이 모든 장치 = 호스트/종단 시스템 (end systems)n ( 여러 컴퓨터가 각각 클라이언트와 서버로써 서로 연결되어 구성된 망을 컴퓨터 네트워크(computer network)라고 한다 인터넷은 이러한 컴퓨터 네트워크가 전 세계적인 규모로 수없이 많이 모여서 이루어진 일종의 컴퓨터 네트워크 시스템입니다. 즉, 인터넷이란 수많은 클라이언트 컴퓨터와 서버 컴퓨터, 그리고 이들로 구성된 네트워크들의 집합체인 것입니다. ) 인터넷 표준 (표준을 정하는 건 매우 중요! -..
Chap2. Application layer
·
2-2/컴퓨터 네트워크
[ network application ] = 컴퓨터 네트워크가 존재하는 이유. 웹, 유튜브, 롤, 등등등 .. text message, skype, search 0. 개발시 각 다른 end 시스템에서 동작하며 네트워크를 통해 서로 통신하는 프로그램을 만든다 (그런 소프트웨어를 만드는 것. 자바, 파이썬..등으로) 라우터나 링크 계층 스위치 같이 네트워크 코어 장비에서 실행되는 소프트웨어 작성 필요 없음! (네트워크 코어 장치는 유저 어플리케이션 돌리지 않음. 걍 하위 계층 친구들 꺼 신경쓸 필요 없음) 1. 구조 ( 애플리케이션의 구조와 네트워크 구조는 다름! 애플리케이션을 위한 통신은 end system간의 application layer에서 발생함 ) 1. client-server architect..
DB 02
·
2-2/데베시
*용어정리 1. Data models =데이터의 관계, 접근과 그 흐름에 필요한 처리 과정에 관한 추상화된 모형. 데이터 모델은 데이터 구조(Data Structure)를 결정 : 디비의 구조를 잘 나타내는 개념의 집함 (ex. data types, relations, constraints) (디비 구조 잘 설명해주는 개념들. 디비 특성 잘 보여주기 위한 것들. 잘 표현하기 위한 것들. 패션 보여주기 위한 패션 모델 처럼) - 데이터의 대략적인 것들만 보여줌. (데이터 추상화) - 데이터 모델은 레벨별로 분류됨 ( physical models, conceptual models, representation models) 이렇게 여러가지 데이터 모델이 있다 -> 모델의 세가지 관점 a. physical da..
DB 01
·
2-2/데베시
목표 개념 정리 Data = 의미가 있는, 저장될 수 있는 fact (ex. names, addresses ..) Database = 논리적으로 관련된 데이터의 집합 ex) 전화번호부 Mini-world = 전체 world에서 일부의 측면만을 나타낸 것, db 빌드의 대상 ex) 한양대의 김상욱교수 정보 DBMS(database management system) = 프로그램의 집합.-> software package임! , db 관리를 쉽도록 해주는 software Database system = DBMS(software) + database(데이터 집합) 구조 of database system Database system의 Users (DB에 공헌하는 사람들) ( 디비 구성시, 요구사항 분석(어떤 데이..
이진탐색트리 (BST)
·
2-2/파이썬, 자료구조
이진 탐색 알고리즘 = 정렬된 데이터로 된 리스트에서 찾고자 하는 데이터가 있는지 알아보는 알고리즘 (리스트를 인수로 받음) if 모든 요소 순회 -> O(n) !! 노답 이진 -> O(log n) !! 굳 방식: 중간값과 타깃을 비교 -> 중간값이 크면 좌측으로이동해서 또 중간값비교 이거계속 그래서 결국 중간값=타깃 되면 그 인덱스 리턴 *리스트는 정렬되어있다고 가정 이진 탐색 트리 (데이터 삽입, 삭제, 탐색 모두 빠른거 !!) 이진트리 -> 특별한 형태의 연결리스트. 부모는 두 자식의 참조를 가지고 있고, 자식은 부모의 참조를 가지고 있음 이진탐색트리는 노드에 데이터 직접 저장 x , 데이터에 대한 참조만 저장함 중요한 것은 데이터가 아니라, 이 데이터의 참조를 저장하고 있는 노드를 나타내는 키! ..
트리
·
2-2/파이썬, 자료구조
트리 = 사이클(엣지를타고 자기자신으로 돌아오는거)이 없는 연결된 그래프 ! * 무조건 e=n-1 ! if e>n-1 -> 사이클이 생겨서 트리아님 !! -차수 = 자식노드 개수 / 트리의 차수=트리에 있는 노드의 최대 차수 이진트리 : 노드의 자식이 최대 두개인 트리 ! 여기서 *n레벨의 노드 최대 갯수 : 2의 n-1 승 *트리(높이: h) 에서 -노드 최대 갯수: (2의h승) -1 -노드 최소 갯수: h 포화 이진트리 : 다 찬거. 최대로 있는거 완전 이진 트리: 높이가 h일때, h-1까진 다채워져있고(노드(2^n-1) -1 개), 노드가 왼쪽에서 오른쪽으로 채워지는 트리 편향 이진 트리: 왼쪽이나 오른쪽 서브트리만 가진 트리(쭉쭉쭉 하나씩만) 이진트리의 순회 ! - 모든 노드 방문하기 ^.^ ->..
그래프
·
2-2/파이썬, 자료구조
표현 1. 인접 리스트 점개수만큼 길이의 배열잇음 (배열의 인덱스 = 정점) 이 배열의 각 요소는 각 해당 정점의 연결리스트를 담고잇음 연결리스트 = 그 정점의 인접한 정점의 집합 예를들어 정점1이 2,3과 연결되어잇으면 배열의 인덱스1의 요소로는 [2,3]이 있는거 (각 정점이 연결된 점의리스트를 배열로담고있다. 이때 인덱스가 해당 정점이다) 모든 노드 탐색하기 ! 1. 너비 우선 탐색 BFS 출발점과 인접한 정점들 모두 방문 -> 그 정점과 인접한 정점 모두 방문 큐에 넣엇다가 하나씩 빼서쓰는 형식으로 !! 2. 깊이 우선 탐색 DFS 갈곳 없어지면 하나 전 정점으로해서 쭉 감! 시작 정점으로 돌아온 후 더이상 갈 곳 없어야만 실행 종료됨 1 ) 재귀함수 -> 스택프레임 쌓이는 걸 이용하기 함수가 하..
·
2-2/파이썬, 자료구조
덱 : front, rear에서 모두 입출력이 가능함 -파이썬이 제공함 -이걸로 스택, 큐 모두 구현 가능함 -양끝 접근, 삭제 추가 = O(1) -중간에 있는 애들 접근 = O(n) ** 이중 연결 리스트를 이용해서 구현되어 있다**
·
2-2/파이썬, 자료구조
큐 = 줄서기 first in, first out ! 양쪽 뚤림 ~ 앞에꺼가 날라감 구현방법 1. 동적 배열로 2. 원형큐 * 비어있는 길이 정해져있는 리스트 만들기 [None, None, None, None, None, None, None, None, None, None] = [None] * 10 [None for _ in range(10)] *파이썬이 제공 ! from queue import Queue enqueue: put() dequeue: pop()
스택
·
2-2/파이썬, 자료구조
스택: 데이터를 차곡차곡 쌓는다 ! 차곡차곡 위로 쌓고, 나갈때는 맨 위에잇는(마지막에들어온)애부터 나간다 따로 모듈 제공x. 리스트그냥 쓰면 돼서 (pop(), append() 사용하면 그대로임) -> 그치만 헷갈림 어떤 의미로 리스트를 썻는지 알수없음 (동적배열 / 스택) -> 따로 추상화를 해줍니다 *비어잇는 리스트 생성방법 a=list() *a[-1]은 문자열에서와 마찬가지로 리스트 a의 마지막 요솟값을 말한다.