1. 복잡도1.1. 시간 복잡도1.1.1. 빅오 표기법시간 복잡도란 "입력 크기에 대해 어떠한 알고리즘이 실행되는 데 걸리는 시간"을 의미한다.빅오 표기법은 입력 범위 n을 기준으로 실행되는데 가장 오래 걸리는 시간(최악의 경우)을 의미한다. O(n**2) 1.1.2. 시간 복잡도의 존재 이유효율적인 코드로 개선하기 위해 알고리즘의 수행시간을 측정하여 비교하기 위함이다. 1.2. 공간 복잡도공간 복잡도는 프로그램을 실행시켰을 때 필요로하는 메모리 공간의 양을 의미한다. int a[1004]; int는 4byte를 차지하는데, 이때 배열 크기인 1004*4byte가 필요하게 된다. 1.2.1. C언어의 자료형1.2.2. JAVA의 자료형 2. 선형 자료 구조선형 자료 구조란 요소가 일렬로 나열되어있는 자료..
1. 운영체제와 컴퓨터1.1. 운영 체제의 역할과 구조1.1.1. 운영 체제의 역할1. CPU 스케줄링과 프로세스 관리: 프로세서에 CPU 할당 및 반환, 프로세서 생성 및 삭제2. 메모리 관리: 프로세서에 메모리 할당 관리3. 디스크 파일 관리: 보관 방법 관리4. I/O 디바이스 관리: 마우스, 키보드와 컴퓨터 간 데이터 송수신 관리 드라이버: 하드웨어를 제어하는 소프트웨어 시스템콜 : 운영체제가 커널에 접근하기 위한 인터페이스이다.유저 프로그램이 운영체제의 서비스를 받기 위해 커널 함수를 호출할때 사용된다. 메모리상에서 프로세스나 스레드가 운영체제로 어떠한 요청을 할 때 시스템 콜이라는 인터페이스와 커널을 거쳐 운영체제로 전달 한다. 시스템 콜은 추상화 계층으로 불리우는데, 네트워크나 DB와 ..
1. 네트워크의 기초1.1. 네트워크란?네트워크는 컴퓨터 등의 장치들이 통신 기술을 이용하여 구축하는 연결망을 지칭하는 용어이자네트워크란 노드(node)와 링크(link)가 서로 연결되어 있거나 연결되어 있지 않은 집합체를 의미한다. 노드: 서버, 라우터, 스위치 등 네트워크 장치를 의미.링크: 노드간 연결된 유선 또는 무선을 의미1.2. 처리량과 지연 시간처리량: 링크를 통해 전달되는 단위 시간당 데이터 양을 말한다. 단위로는 bps(bits per second) 처리량은 사용자들이 많이 접속할 때마다 커지는 트래픽, 네트워크 장치 간의 1. 대역폭, 네트워 크 중간에 발생하는 2.에러, 장치의 3. 하드웨어 스펙에 영향을 받는다. +a) 용어정리대역폭: 주어진 시간 동안 네트워크 연결을 통해 흐를 ..
0. 프로그래밍 패러다임정의: 프로그래머에게 프로그래밍의 관점을 갖게 해주는 역할을 하는 개발 방법론프로그래밍 패러다임은 크게 선언형, 명령형으로 나눈다.선언형: 함수형이라는 하위 집합을 갖는다.명령형: 객체지향, 절차지향으로 나눈다.1. 선언형과 함수형 프로그래밍 (declarative programming)선언형 프로그래밍정의: '무엇을’ 풀어내는가에 집중하는 패러다임이며, “프로그램은 함수로 이루어진 것이다.”라는 명제가 담겨 있는 패러다임이기도 하다.함수형 프로그래밍정의: 선언형 패러다임의 일종이며, 작은 ‘순수 함수’들을 블록처럼 쌓아 로직을 구현하고 ‘고차 함수’를 통해 재사용성을 높인 프로그래밍 패러다임이다.const ret = [1, 2, 3, 4, 5, 11, 12].reduce((max..
https://www.yes24.com/Product/Goods/108887922 면접을 위한 CS 전공지식 노트 - 예스24디자인 패턴, 네트워크, 운영체제, 데이터베이스, 자료 구조, 개발자 면접과 포트폴리오까지!CS 전공지식 습득과 면접 대비, 이 책 한 권이면 충분하다!개발자 면접에서 큰 비중을 차지하는 CS(Compwww.yes24.com해당 책을 읽고, 공부한 후 정리한 블로그 글입니다.https://github.com/gilbutITbook/080326 GitHub - gilbutITbook/080326: csnotecsnote. Contribute to gilbutITbook/080326 development by creating an account on GitHub.github.com예제..