본문 바로가기

728x90
반응형

CS

(5)
Abstract Data Type(추상적 자료형) ADT? 추상적 자료형? 추상적 자료형(ADT)이란 어떤 자료들에 대한 연산을 명시한 수학적인 정의라고 할 수 있다. 그리고 자료구조와 다른점은 구현 방법을 명시하고 있지 않다는 점이다. 즉 구현 방식을 정의하지 않는 다는 것은 만약 우리가 노트북을 구매해서 사용자 매뉴얼을 받았을 때 전원 버튼이 무엇인지부터 시작해 각각의 기능에 대해서 알려주지만 이 노트북이 무슨 전자기판을 사용했고 어떻게 전류가 흐르며 어떤 방식으로 작동하는지 이런 세세한 부분은 알려주지 않는다(알고싶지도 않,,,다). 따라서 이러한 사용자 매뉴얼을 추상적 자료형으로 비유할 수 있다. 또한 파이썬으로 예를 들어보면 우리가 자주 사용하는 라이브러리 (ex. pandas, numpy, random 등)나 기본 함수들도 우리가 내부적으로 ..
python으로 쉽게 설명하는 merge sort algorithm(합병 정렬) 합병 정렬 알고리즘은 대표적인 분할 정복 알고리즘 종류 중 하나이다. 내가 작성한 파이썬 코드로 쉽게 알아보자. import numpy as np def merge(n): if len(n) < 2: print (n) else: half = len(n) // 2 left_n = n[:half] # 배열을 왼쪽, 오른쪽 반으로 나눠주자 right_n = n[half:] print(left_n) print(right_n) sorted_left_n = sorted(left_n) # 반으로 나눈 걸 각각 정렬해주자 sorted_right_n = sorted(right_n) print(sorted_left_n) print(sorted_right_n) merged_n = np.concatenate([sorted_le..
네트워크란? 인터넷이란? 그게 모야? (˵⚈ε⚈˵).feat(OSI 7 layers) 지금 내 블로그에 들어와 이 글을 읽는 사람이라면 누구든지 인터넷과 네트워크가 접속된 상태일 것이다. 그럼 도대체 우리가 네트워크, 인터넷이라고 하는 말이 무엇일까? 그전에 앞서 국제 표준화 기구; ISO(International Organization for Standardization)에서 만든 네트워크 기준인 OSI 7계층 부터 살펴보자. (정처리 기사 공부하시는 분들이면 지겹도록 봤을 표를 나의 똥손으로 그려봤다.) 우선 맨 아래 물리 계층부터 보자. 1. 물리 계층은 컴퓨터의 하드웨어가 연결하거나 연결되기 위해 필요한 전기적인 신호들을 정의한다. 2. 데이터 링크 계층은 물리 계층과 네트워크 계층 사이에서 물리적인 전송을 담당하고 오류를 찾고 수정하는 계층이다. 3. 네트워크 계층은 데이터의 한..
비트(bit)의 표현을 잘 사용해야 하는 이유 컴퓨터는 0과 1 이 두 가지의 신호로 작동한다. 그리고 보통 0은 전기적 신호의 '꺼짐(off)' 1은 '켜짐(on)'을 표현한다. 때문에 컴퓨터는 인간이 의사소통할 때 언어를 통해서 하듯이(물론 인간의 의사소통 중에는 표정과 같은 비언어적 표현도 존재하지만) 0, 1로만 구성된 '이진법(binary)'을 사용해 의사소통을 한다. 즉 컴퓨터의 언어는 이진수다. 그럼 인간이 언어를 사용할 때 그 언어를 표현하는 문자나 음성 같은 수단이 동반되는데, 컴퓨터의 언어 표현 수단은 무엇일까? 바로 비트(bit)가 그 역할을 한다. 쉽게 표를 정리하면 다음과 같다. 비트(bit)는 이진법을 뜻하는 binary의 bi와 10진수를 표현하는 기호(0부터 9까지)인 digit의 t를 합쳐 만든 표현이다. 1비트는 0과..
컴퓨터/컴퓨팅 우리에게 익숙한 컴퓨터(computer)는 '계산을 하는 사람'의 의미였고 파생된 단어인 컴퓨팅(computing)은 계산을 하는 그 행위 자체를 의미했다. 현대 사회에서 컴퓨터는 단순한 계산을 넘어 전기적인 신호를 통해 우리 삶의 중요한 부분을 차지하고 있고, 컴퓨팅한다는 것은 컴퓨터의 기술 및 자원을 활용해 개발과 같은 모든 활동을 일컫는 말이 되었다. 우선 우리가 자주 사용하는 컴퓨터를 알기 위해서는 컴퓨터 그 자체인 '하드웨어'에 중점을 둬서 살펴보자. 하드웨어(hardware)란 컴퓨터가 작동하는 데 필요한 물리적인 구성요소로서, 크게 범주를 나누면 대략 중앙처리장치(CPU), 임의 접근 기억장치(RAM), 하드 드라이브(HHD) 그리고 입출력 장치(ex. 키보드, 스피커, 모니터, 마이크, 캠..

728x90
반응형