Books
-
객체지향의 사실과 오해 : 역할, 책임, 협력 관점에서 본 객체지향Books/객체 지향의 오해와 진실 2023. 7. 29. 14:32
1. 협력하는 객체들의 공동체 객체의 역할 - 여러 객체가 동일한 역할을 수행할 수 있다. - 역할은 대체 가능성을 의미한다. - 각 객체는 책임을 수행하는 방법을 자율적으로 선택할 수 있다. - 하나의 객체가 동시에 여러 역할을 수행할 수 있다. 객체지향의 본질 - 객체지향이란 시스템을 상호작용하는 자율적인 객체들의 공동체로 바라보고 객체를 이용해 시슽메을 분할하는 방법이다. - 자율적인 객체란 상태와 행위를 함께 지니며 스스로 자기 자신을 책임지는 객체를 의미한다. - 객체는 시스템의 행위를 구현하기 위해 다른 객체와 협력한다. 각 객체는 협력 내에서 정해진 역할을 수행하며 역할은 관련된 책임의 집합이다. - 객체는 다른 객체와 협력하기 위해 메시지를 전송하고, 메시지를 수신한 객체는 메시지를 처리하..
-
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 // ==========..
-
자바스크립트는 왜 그 모양일까? 21장 ~ 25장Books/자바스크립트는 왜 그 모양일까? 2022. 6. 29. 17:23
{ " number " : 21 , " chapter " : " Date " } - 오늘날 자바스크립트의 Date 객체는 엄청나게 많은 메서드들을 제공한다. 그들 중 대부분은 그냥 getter/setter이다. - Date 객체는 클래스 프로그래밍에서 아주 좋지 않은 선례를 보여준다. { " number " : 22 , " chapter " : " JSON " } JSON 객체 JSON.parse(text,reviver) - parse 함수는 JSON 텍스트를 전달받아서 자바스크립트 데이터로 디코드 한다. - 추가로 전달할 수 있는 reviver 함수는 변환을 수행한다. JSON.stringify(value, replacer, space) - stringify 함수는 값을 받아서 JSON 텍스트로 인코딩..
-
자바스크립트는 왜 그 모양일까? 16장 ~ 20장Books/자바스크립트는 왜 그 모양일까? 2022. 6. 24. 10:45
{ " number " : 16 , " chapter " : " this " } 프로토타입 - 객체는 속성만 저장하며, 프로토타입은 그냥 객체일 뿐이다. 그리고 메서드는 객체에 저장된 함수에 불과하다. - 프로토타입에도 해당 속성이 없고, 프로토타입이 또 다른 프로토타입을 가지고 있다면 해당 결과는 ' 프로토타입의 프로토타입의 속성 '값이 됩니다. - 전에 살펴본 프로토타입 체인으로서 이 과정은 프로토타입이 더 이상 없을 때까지 반복된다. - 많은 객체가 같은 프로토타입을 공유할 수 있다. - 이런 객체들은 클래스 인스턴스처럼 보일 수 있지만, 실은 프로토타입을 공유하는 개별적인 객체에 불과하다. - 프로토타입을 사용하는 가장 큰 이유 중 하나는 메서드를 저장하는 공간으로 쓰기 위함이다. - 비슷한 객체..