본문 바로가기

반응형

CS/면접을 위한 CS 전공노트

(16)
[회고] 뒤늦게 올리는 면접을 위한 CS 전공지식 노트 1회독 회고 부트캠프 종료 후 독학하면서 꼭 한번 해보고 싶었던 것, 그것은 바로 대학생 때 배웠던 CS 지식 복습하기! 나는 주로 네트워크와 운영체제에 집중해서 복습하려고 했던 것 같다. 그냥 가장 끌렸다. 대학교 때 가장 열정적으로 들었던 수업이 컴퓨터 네트워크였고(심지어 A를 받았다. 필기 노트는 아직도 잘 간직하고 있다! 내 보물 ㅠㅠ), 가장 어려워서 제대로 이해 못하고 넘어갔던 수업이 운영체제였다(이 과목은 진짜 겨우겨우 B0를 받았던 것 같다. B+이였나ㅋㅋㅋㅋㅋㅋ) 어떻게 또 이렇게 되냐~~ 이 책으로 대략적인 공부 범위를 잡고, 깊이 있는 내용은 유명한 CS 깃허브 레포지토리를 참고해가며 이해한 후 매일 학습 내용을 정리해 블로그에 기록하는 방식으로 복습을 진행하였다. 이 책은 내용이 매우 요약되어 ..
[자료구조] 복잡도/선형&비선형 자료구조 2023년 5월 3일 232p~261p 5.1 복잡도 복잡도는 시간 복잡도와 공간복잡도로 나뉜다. 빅오 표기법 : 시간 복잡도 시간 복잡도란 문제를 해결하는 데 사용한 알고리즘의 로직이 얼마나 오랜 시간이 걸리는지를 나타내는데 쓰이며 보통 빅오 표기법으로 나타낸다. 예를 들어 입력 크기 n의 모든 입력에 대한 알고리즘에 필요한 시간이 10n^2 + n 이라고 하면 다음과 같은 코드를 상상할 수 있다. for(let i=0;i
[데이터베이스] 트랜잭션과 무결성/인덱스/조인 2023년 5월 1일 206p~228p 4.3 트랜잭션과 무결성 4.3.1 트랜잭션 트렌잭션이란? 데이터베이스의 상태를 변화시키기 위해 수행하는 작업 단위 상태를 변화시킨다는 것 → SQL 질의어를 통해 DB에 접근하는 것 - SELECT - INSERT - DELETE - UPDATE 작업 단위 → 많은 SQL 명령문들을 사람이 정하는 기준에 따라 정하는 것 예시) 사용자 A가 사용자 B에게 만원을 송금한다. * 이때 DB 작업 - 1. 사용자 A의 계좌에서 만원을 차감한다 : UPDATE 문을 사용해 사용자 A의 잔고를 변경 - 2. 사용자 B의 계좌에 만원을 추가한다 : UPDATE 문을 사용해 사용자 B의 잔고를 변경 현재 작업 단위 : 출금 UPDATE문 + 입금 UPDATE문 → 이를 통틀어 ..
[데이터베이스] 데이터베이스 기본/ERD와 정규화 과정 2023년 4월 29일 184p~205p 4.1 데이터베이스의 기본 DB : 일정한 규칙, 규약을 통해 저장된 데이터의 모음 DBMS: 해당 DB를 제어, 관리하는 통합 시스템 데이터들은 각 DBMS마다 정의된 쿼리 언어를 사용해 삽입, 삭제, 수정, 조회를 수행할 수 있다. DB 위에 DBMS가 존재하며, 그 위에 응용 프로그램이 있다. MySQL(DBMS)이라는 DBMS가 있고 그 위에 응용 프로그램에 속하는 Node.js, php 등에서 해당 데이터베이스 안에 있는 데이터를 끄집어내 해당 데이터 관련 로직을 구축할 수 있다. - 데이터베이스를 사용하는 이유 데이터베이스가 존재하기 이전에는 파일 시스템을 이용하여 데이터를 관리하였다. (현재도 부분적으로 사용되고 있다.) 데이터를 각각의 파일 단위로 ..
[운영체제] 공유자원과 임계영역/교착상태/CPU 스케줄링 알고리즘 2023년 4월 24일 172p~181p 3.3.7 공유 자원과 임계 영역 공유 자원은 시스템 안에서 각 프로세스, 스레드가 함께 접근할 수 있는 모니터, 프린터, 파일, 데이터 등의 자원이나 변수를 의미한다. 이 공유 자원을 두 개 이상의 프로세스가 동시에 읽거나 쓰는 상황을 경쟁 상태(Race Condition)라고 한다. 동시에 접근을 시도할 때 접근의 타이밍이나 순서 등이 결과값에 영향을 줄 수 있는 상태인 것이다. Race Condition이 발생하는 경우를 정리하면 다음과 같다. - 커널 작업을 수행하는 중에 인터럽트 발생 문제점 : 커널모드에서 데이터를 로드하여 작업을 수행하다가 인터럽트가 발생하여 같은 데이터를 조작하는 경우 해결법 : 커널모드에서 작업을 수행하는 동안, 인터럽트를 disa..
[운영체제] 프로세스와 스레드/ 멀티프로세싱과 멀티스레딩 2023년 4월 22일 157p~172p 3.3 프로세스와 스레드 기본적으로 프로세스마다 최소 1개의 스레드를 소유 (메인 스레드 포함)한다. 하나의 프로세스가 생성될 때, 기본적으로 하나의 스레드가 같이 생성된다. 프로세스(process) : 실행 중인 프로그램으로, 디스크로부터 메모리에 적재되어 CPU 의 할당을 받을 수 있는 것 스레드(thread) : 프로세스의 실행 단위 그림처럼 프로그램이 메모리에 올라가면 프로세스가 되는 인스턴스화가 일어나고, 이후 운영체제의 CPU 스케줄러에 따라 CPU가 프로세스를 실행한다. 3.3.1 프로세스와 컴파일 과정 (예시 : C언어) 프로세스는 프로그램이 메모리에 올라가 인스턴스화 된 것을 말한다. 예를 들어 프로그램은 구글 크롬 프로그램과 같은 실행 파일이며,..
[운영체제] 운영체제와 컴퓨터/메모리 2023년 4월 21일 134p~157p 3.1 운영체제와 컴퓨터 운영체제(Operation System)는 사용자가 컴퓨터를 쉽게 다루게 해주는 인터페이스로, 한정된 메모리나 시스템 자원을 효율적으로 분배하게 해주는 일꾼이다. 참고로 운영체제와 유사하지만 소프트웨어를 추가로 설치할 수 없는 것을 펌웨어라고 한다. 3.1.1 운영체제의 역할과 구조 1. 프로세스 관리 프로세스, 스레드 스케줄링 동기화 IPC 통신 운영체제에서 작동하는 응용 프로그램을 관리하는 기능이다. 어떤 의미에서는 프로세서(CPU)를 관리하는 것이라고 볼 수도 있다. 현재 CPU를 점유해야 할 프로세스를 결정하고, 실제로 CPU를 프로세스에 할당하며, 이 프로세스 간 공유 자원 접근과 통신 등을 관리하게 된다. 2. 저장장치 관리 메..
[네트워크] Blocking/Non-blocking & Synchronous/Asynchronous https://github.com/gyoogle/tech-interview-for-developer/blob/master/Computer%20Science/Network/%5BNetwork%5D%20Blocking%2CNon-blocking%20%26%20Synchronous%2CAsynchronous.md GitHub - gyoogle/tech-interview-for-developer: 👶🏻 신입 개발자 전공 지식 & 기술 면접 백과사전 📖 👶🏻 신입 개발자 전공 지식 & 기술 면접 백과사전 📖. Contribute to gyoogle/tech-interview-for-developer development by creating an account on GitHub. github.com Blockin..

반응형