728x90

CS 188

24.12.08 CS

CS이것이 컴퓨터 과학이다.CHAPTER 06. 데이터베이스RDBMS의 기본관계형 데이터베이스의 핵심은 테이블의 구성과 관계에 있다.테이블의 구성: 필드와 레코드RDBMS 내의 레코드들은 테이블의 형태를 이룬다. 각 필드로 사용 가능한 데이터 유형이 정해져 있는데, 이를 필드 타입이라고 한다. 그리고 테이블 내의 특정 레코드를 식별할 수 있는 필드의 집합을 키라고 한다. 키는 레코드의 식별뿐만 아니라 테이블 간의 참조에도 사용된다. 즉, 필드 타입과 키를 이해하면 레코드를 구성하는 데이터의 유형을 이해할 수 있고, 테이블 내 특정 레코드를 식별할 수 있다.필드 타입RDBMS의 테이블 필드에는 다양한 데이터 형식(타입), 즉 필드 타입이 저장될 수 있다.키테이블의 레코드를 식별할 수 있는 하나 이상의 필드..

24.12.07 CS

CS이것이 컴퓨터 과학이다.CHAPTER 06. 데이터베이스데이터베이스란 원하는 기능을 동작시키기 위해 마땅히 저장해야 하는 정보의 집합을 말한다.데이터베이스를 관리하는 수단이 데이터베이스 관리 시스템(DBMS)이다. DBMS는 크게 두 유형으로 구분 가능하다. 관계형 데이터베이스 시스템(RDBMS), NoSQL 데이터베이스 관리 시스템(NoSQL DBMS)이다. 대표적인 RDBMS로는 MySQL, Oracle, PostgreSQL, SQLite, MariaDB, Microsoft SQL Server 등이 있으며, NoSQL에는 MongoDB, Redis 등이 있다.서버로서의 DBMSDBMS는 여느 응용 프로그램과 다를 바 없는 응용 프로그램이다. DBMS는 사용자와 직접적으로 상호작용하기보다는 사용자가..

24.12.05 CS

CS이것이 컴퓨터 과학이다.Chapter 2. 운영체제가상 메모리물리 주소와 논리 주소CPU와 프로세스는 메모리의 하드웨어 상 실제 주소인 물리 주소(Physical address)가 아니라 다른 주소 체계를 이용한다. 바로 논리 주소이다. 논리 주소(logical address)는 프로세스마다 부여되는 0번지부터 시작하는 주소 체계를 말한다.CPU와 프로세스가 사용하는 주소 체계는 물리 주소가 아니라 논리 주소이기 떄문에 중복되는 물리 주소의 번지 수는 존재하지 않지만, 중복되는 논리 주소의 번지 수는 얼마든지 존재할 수 있다.메모리 관리 장치(Memory Management Unit)은 CPU와 메모리 사이에 위치하며, CPU가 이해하는 논리 주소를 메모리가 이해하는 물리 주소로 변환하는 역할을 한다..

24.11.26 C++, 책

C++클래스(Class)키워드 struct를 대신해서 class를 사용하면, 구조체가 아닌 클래스가 된다.클래스는 기본적으로(별도의 선언을 하지 않으면) 클래스 내에 선언된 변수는 클래스 내에 선언된 함수에서만 접근이 가능하다.클래스는 정의를 하는 과정에서 각각의 변수 및 함수의 접근 허용범위를 별도로 선언해야 한다. 이것이 struct를 이용해서 정의하는 구조체와 class를 이용해서 정의하는 클래스의 차이점이다.접근제어 지시자(접근제어 레이블)C++의 접근제어 지시자는 다음과 같이 총 세가지가 존재한다.public : 어디서든 접근허용protected : 상속관계에 놓여있을 때, 유도 클래스에서의 접근 허용private : 클래스 내(클래스 내에 정의된 함수)에서만 접근허용접근제어 지시자가 선언되면,..

24.11.25 CS, C++

책이것이 컴퓨터 과학이다.Chapter 2. 운영체제운영체제의 핵심 기능을 담당하는 부분을 커널(kernel)이라고 한다.운영체제에는 크게 2가지의 핵심 기능이 있다.자원 할당 및 관리프로세스 및 스레드 관리운영체제의 역할자원(resource)이란 프로그램 실행에 마땅히 필요한 요소를 의미한다. 실행에 필요한 데이터를 자원이라고 하기도 하고, 실행에 필요한 부품을 자원이라고 하기도 한다.운영체제는 사용자가 실행하는 응용 프로그램을 대신하여 CPU, 메모리, 보조기억장치 등의 컴퓨터 부품에 접근하고, 각각의 부품들이 효율적으로 사용되도록 관리한다.응용 프로그램이 컴퓨터 부품들을 효율적으로 할당받아 문제 없이 실행할 수 있도록 응용 프로그램에게 자원을 할당한다.프로세스와 스레드프로세스의 유형으로는 사용자가 ..

24.11.22 JavaScript, C++

JavaScriptasync/await비동기 코드를 더 읽기 쉽게 작성할 수 있도록 도와주는 기능이다. Promise 기반의 비동기 작업을 동기적인 코드 흐름처럼 보이게 하여, 코드의 가독성과 유지보수성을 크게 향상 시킨다.비동기 작업을 처리할 때 콜백 함수나 Promise 체이닝을 사용하던 방식을 async/await를 사용해 더욱 직관적으로 작성할 수 있다.기본 개념async함수 앞에 async 키워드를 붙이면 그 함수는 Promise를 반환하는 비동기 함수가 된다. async 함수는 내부에 await 키워드를 사용할 수 있다.await비동기 작업이 완료될 때까지 기다리는 역할을 한다. await는 Promise가 해결될 때까지 함수의 실행을 일시적으로 멈추고, 결과값을 반환한다. await 키워드는..

24.11.20 CS

객체의 결합도 & 응집도소프트웨어의 모듈 독립성프로그래밍이란 문제를 정의하고 하나씩 해결해나가는 과정을 말한다. 문제가 복잡하고 큰 문제라면, 일반적으로 문제를 작은 부분으로 쪼개어서 하나씩 풀어나가게 될 것인데, 이 떄 문제를 작은 부분으로 쪼개나가는 것을 모듈화라고 한다.모듈은 소프트웨어를 각 기능별로 나누어진 소스 단위를 말한다. 독립적으로 컴파일 가능한 프로그램 혹은 하나의 함수나 클래스도 모듈이 된다.보통 좋은 소프트웨어 일수록 모듈의 독립성이 높다고 한다. 좋은 모듈화는 목적에 맞는 기능만으로 모듈을 나누게 되는데, 각각의 모듈은 주어진 기능만을 독립적으로 수행하기 때문에 재사용성이 높고 코드의 이해/수정이 용이하기 때문이다. 예를 들어 해당 모듈을 수정하더라도 다른 모듈에 끼치는 영향이 적게..

24.11.19 CS

CSRB Tree특징이진 탐색 트리의 한 종류로, 노드에 색상을 추가하여 균형을 유지하는 자기 균형 이진 탐색 트리이다.레드-블랙 트리는 다음 5가지 성질을 만족해야 한다.노드는 빨간색 또는 검은색이다.루트는 항상 검은색이다.모든 리프(Leaf, NIL노드)는 검은색이다.리프 노드는 데이터를 가지지 않는 NIL 노드로 표현한다.빨간색 노드의 자식 노드는 모두 검은색이다.빨간색 노드는 연속해서 나타날 수 없다.루트에서 각 리프 노드까지 가는 경로에는 항상 같은 개수의 검은색 노드가 있다.이 값을 Black Height라고 한다.장점삽입/삭제/탐색이 항상 O(log n)으로 효율적이다.이진 탐색 트리의 단점인 편향된 트리를 방지한다.구현이 표준화되어 있고, 많은 라이브러리에서 사용된다.단점구현이 복잡하다.특..

Chapter 1. 컴퓨터 구조

개발자에게 필요한 역량은 근거를 설명하는 능력이다.특정 코드 혹은 프로그램이 어떻게 작동하며, 왜 특정 성능을 내는지에 대한 근거를 제시하고 설명하는 능력이야 말로 AI 도구에 종속되지 않는 진짜 역량이다. 코드와 프로그램의 근거를 설명하는 능력은 상당 부분 컴퓨터 과학에서 찾을 수 있다.CHAPTER 01 기술 면접과 실무를 위한 컴퓨터 과학프로그램 개발의 목적은 일단 작동하게 만드는 것을 넘어 제대로 작동하게 만드는 것이다.프로그래밍 언어의 기초 문법이나 프레임워크/라이브러리의 기초 사용법은 단순한 프로그램을 개발하기에는 충분한 지식이지만, 그를 확장/유지보수 하거나 실행의 전 과정을 이해하는 데에는 충분하지 않은 경우가 많기 때문이다. 내가 작성한 코드의 실행 과정을 나조차 설명할 수 없는 경우에는..

24.11.18 CS

FTP/ SFTPFTP(File Transfer Protocol)파일을 전송하는 통신 규약이다.원격에 있는 서버에 파일을 주고 받을 때 사용하는 인터넷 통신 규약인데 내 컴퓨터에 있는 파일을 계정을 제공하는 서버로 파일을 서로 이동시키는 것을 말한다. 여기에 보안이 추가된 SFTP가 있다.기본 포트는 21이지만 바꿔서 사용하는 경우도 있다. 예전에는 사용했지만 지금은 보안이 좋지 않아서 실무에서는 사용하지 않는다.SFTPssh의 파일 전송 버전이라고 생각하면 된다.일반적인 FTP와 달리 PC와 서버간의 데이터 전송을 암호화하기 때문에 해킹이나 보안상의 문제점을 방지, 안전한 호스팅 서비스를 이용할 수 있다.텔넷(Telecommunication network)인터넷을 통하여 원격지의 호스트 컴퓨터에 접속할..

728x90