Books/면접을 위한 CS 전공지식 노트
-
5장 자료구조Books/면접을 위한 CS 전공지식 노트 2023. 2. 3. 22:21
- 자료 구조(data structure)은 효율적으로 데이터를 관리하고 수정, 삭제, 탐색, 저장할 수 있는 데이터 집합을 말한다. - C++는 STL을 기반으로 전반적인 자료 구조를 가장 잘 설명할 수 있는 언어이며, 이를 기반으로 자료 구조에 대한 참고 코드를 제공한다. * STL : C++의 표준 템플릿 라이브러리이자 스택, 배열 등의 데이터 구조의 함수 등을 제공하는 라이브러리 묶음 - C++는 어려운 언어이지만 이 책에서 설명하는 C++의 수준은 '매우 쉬운 난이도'이며, 책의 실린 모든 C++ 코드는 별도의 프로그램 설치 없이 다음 링크에서 실행할 수 있다. https://www.onlinegdb.com/online_c++_compiler 5.1 복잡도 - 복잡도는 시간 복잡도와 공간 복잡도..
-
4장 데이터베이스Books/면접을 위한 CS 전공지식 노트 2023. 2. 2. 22:37
4.1 데이터베이스의 기본 - 데이터베이스(DB, DataBase)는 일정한 규칙, 혹은 규약을 통해 구조화되어 저장되는 데이터의 모음이다. - 해당 데이터베이스를 제어, 관리하는 통합 시스템을 DBMS(DataBase Management System)라고 하며, 데이터베이스 안에 있는 데이터들은 특정 DBMS마다 정의된 쿼리 언어(query language)를 통해 삽입, 삭제, 수정, 조회 등을 수행할 수 있다. - 또한, 데이터베이스는 실시간 접근과 동시 공유가 가능하다. - 데이터베이스 위에 DBMS가 있고 그 위에 응용 프로그램이 있으며, 이러한 구조를 기반으로 데이터를 주고받는다. - 예를 들어 MySQL 이라는 DBMS가 있고 그위에 응용 프로그램에 속하는 Node.js나 php에서 해당 데..
-
3장 운영체제Books/면접을 위한 CS 전공지식 노트 2023. 1. 31. 22:46
- 운영체제(OS, Operating System) 는 사용자가 컴퓨터를 쉽게 다루게 해주는 인터페이스이다. - 한정된 메모리나 시스템 자원을 효율적으로 분배하는 참된 일꾼이다. - 참고로 운영체제와 유사하지만 소프트웨어를 추가로 설치할 수 없는 것을 펌웨어(firmware)라고 한다. 3.1 운영체제와 컴퓨터 - 하드웨어와 소프트웨어(유저 프로그램)를 관리하는 일꾼인 운영체제와 CPU, 메모리 등으로 이루어진 컴퓨터를 알아보자 3.1.1 운영체제의 역할과 구조 운영체제의 역할 - 운영 체제의 역할은 크게 네 가지가 있다. ㆍ1. CPU 스케줄링과 프로세스 관리 º CPU 소유권을 어떤 프로세스에 할당할지, 프로세스의 생성과 삭제, 자원 할당 및 반환을 관리한다. ㆍ2. 메모리 관리 º 한정된 메모리를 ..
-
2장 네트워크Books/면접을 위한 CS 전공지식 노트 2023. 1. 25. 20:57
- 네트워크는 컴퓨터 등의 장치들이 통신 기술을 이용하여 구축하는 연결망을 지칭하는 용어 2.1 네트워크의 기초 - 네트워크란 노드(node)와 링크(link)가 서로 연결되어 있으며 리소스를 공유하는 집합을 의미한다. - 여기서 노드란 서버, 라우터, 스위치 등 네트워크 장치를 의미하고 링크는 유선 또는 무선을 의미 2.1.1 처리량과 지연시간 - 네트워크를 구축할 때는 '좋은' 네트워크로 만드는 것이 중요하다 - 좋은 네트워크란 많은 처리량을 처리할 수 있으며 지연 시간이 짧고 장애 빈도가 적으며 좋은 보안을 갖춘 네트워크 처리량 - 처리량(throughput)이란 링크를 통해 전달되는 단위 시간당 데이터 양 - 단위로는 bps(bits per second)를 쓴다. 초당 전송 또는 수신되는 비트 수..
-
1장 디자인 패턴과 프로그래밍 패러다임Books/면접을 위한 CS 전공지식 노트 2022. 12. 31. 17:57
1.1 디자인 패턴 디자인 패턴 : 프로그램을 설계할 때 발생했던 문제점들을 객체 간의 상호 관계등을 이용하여 해결할 수 있도록 하나의 '규약' 형태로 만들어 놓은 것을 의미합니다. 1.1.1 싱글톤 패턴 - 하나의 클래스에 오직 하나의 인스턴스만 가지는 패턴 - 하나의 클래스를 기반으로 여러 개의 개별적인 인스턴스를 만들 수 있지만, 하나의 클래스를 기반으로 단 하나의 인스턴스를 만들어 사용 - 보통 데이터베이스 연결 모듈에 많이 사용 - 인스턴스를 공유하며 사용하기에 인스턴스 생성 비용은 줄어들고, 의존성은 높아진다. // javascipt const obj = { a:27 } const obj2 = { a:27 } console.log(obj === obj2);//false // ==========..