분류 전체보기

· CS 기본/DB
본 포스팅은 '면접을 위한 CS 전공지식 노트'를 기반으로 작성되었습니다. 관계형 데이터베이스 행과 열을 가지는 표 형식 데이터를 저장하는 형태의 데이터베이스 SQL 언어로 조작 MySQL, PostgresSQL, 오라클, SQL server, MSSQL MySQL 가장 많이 사용하는 데이터베이스 C, C++ 기반 B-트리 기반의 인덱스, 스레드 기반 메모리 할당 시스템, 빠른 조인, 최대 64개의 인덱스 제공. NoSQL(Not only SQL) SQL을 사용하지 않는 데이터베이스 MongoDB, Redis MongoDB JSON을 통해 데이터 접근 Binary JSON(BSON)형태로 데이터 저장 키-값 데이터 모델에서 활장된 도큐먼트 기반 DB 확장성 뛰어남 Redis 인메모리 데이터베이스, 키-값..
· CS 기본/DB
본 포스팅은 '면접을 위한 CS 전공지식 노트'를 기반으로 작성되었습니다. 트랜잭션(transaction) 데이터베이스에서 하나의 논리적 기능을 수행하기 위한 작업의 단위 여러 개의 쿼리들을 하나로 묶는 단위 트랜잭션 특징(ACID) 원자성(Atomicity) 일관성(Consistency) 격리성(Isolation) 지속성(Durability) 원자성 All or nothing 트랜잭션에 속한 연산이 모두 수행되거나 하나도 실행되지 않아야함. 일관성 트랜잭션이 성공적으로 수행된 후에도 데이터베이스가 일관된 상태를 유지해야 함. 격리성 트랜잭션 수행 시 서로 끼어들지 못하게 하는 것 지속성 성공적으로 수행된 트랜잭션은 영원히 반영되어야 함. 이는 DB에 시스템 장애가 발생해도 원래 상태로 복구하는 회복 기..
· CS 기본/DB
본 포스팅은 '면접을 위한 CS 전공지식 노트'를 기반으로 작성되었습니다. ERD(Entity Realationship Diagram) 데이터베이스를 구축할 때 가장 기초적인 뼈대 역할 릴레이션 간의 관계들을 정의 시스템의 요구사항을 기반으로 작성 ERD를 기반으로 DB구축 비정형 데이터를 충분히 표현할 수 없다는 단점 예시 정규화 과정 릴레이션 간의 잘못된 종속 관계로 인한 이상현상을 제거하기 위함. 릴레이션을 여러 개로 분리하는 과정 정규형 원칙을 기반으로 정규형을 만들어 가는 과정 정규형(NF, Normal Form) 1, 2, 3, 보이스/코드 정규형 존재 이상(anomaly) 현상 삽입 이상 : 새 데이터를 삽입하기 위해 불필요한 데이터도 함께 삽입해야 하는 문제 갱신 이상 : 중복 튜플 중 일..
· CS 기본/DB
본 포스팅은 '면접을 위한 CS 전공지식 노트'를 기반으로 작성되었습니다. DB 일정한 규칙 혹은 규약을 통해 구조화되어 저장되는 데이터의 모음 실시간 접근, 동시 공유 가 DBMS(DataBase Management System) 해당 데이터베이스를 제어, 관리하는 통합 시스템 데이터베이스 안의 데이터들은 특정 DBMS마다 정의된 query language를 통해 삽입, 삭제, 수정, 조회 등을 수행 엔티티(Entity) 사람, 장소, 물건, 사건, 개념 등 여러 개의 속성을 지닌 명사 ex) 회원 엔티티 서비스의 요구사항에 맞게 속성이 결정 약한 엔티티 혼자서 존재하지 못하고 다른 것에 종속적임 강한 엔티티 B의 존재 여부와 상관없이 존재할 수 있는 엔티티 릴레이션(relation) 데이터베이스에서 ..
· CS 기본/OS
본 포스팅은 '면접을 위한 CS 전공지식 노트'를 기반으로 작성되었습니다. CPU 스케줄링 알고리즘 CPU 스케줄러는 스케줄링 알고리즘에 따라 스레드 단위로 CPU에 할당 CPU 스케줄링 알고리즘: 어떤 프로그램에게 CPU 소유권을 줄지 결정 CPU 이용률은 높게, 주어진 시간에 많은 일, ready queue에 있는 프로세스는 적게, 응답 시간은 짧게 설정하는 것이 목표 비선점형 방식(non-preemptive) 스스로 CPU 소유권을 포기하는 방식 강제로 프로세스를 중지하지 않음. 컨텍스트 스위칭에 인한 부하가 적다. FCFS(First Come, First Served) 가장 먼저 온 것을 가장 먼저 처리하는 알고리즘 길게 수행되는 프로세스 때문에 convoy effect(ready queue에서 ..
· CS 기본/OS
본 포스팅은 '면접을 위한 CS 전공지식 노트'를 기반으로 작성되었습니다. 프로세스 컴퓨터에서 실행되고 있는 프로그램 CPU 스케쥴링의 대상이 되는 작업(task)와 거의 같은 의미 쓰레드 프로세스 내 작업의 흐름 지칭 프로세스와 컴파일 과정 프로세스는 프로그램이 메모리에 올라가 인스턴스화된 것을 말함. ex) 구글 프로그램은 구글 크롬 프로그램(chrome.exe)과 같은 실행 파일, 이를 두 번 클릭하면 구글 크롬 프로세스로 변환됨 전처리 소스 코드의 주석을 제거하고 #include 등 헤더 파일을 병합하여 매크로로 치환 컴파일러 오류 처리, 코드 최적화 작업, 어셈블리어로 변환 어셈블러 어셈블리어를 목적 코드(object code)로 변환 이 때 확장자는 운영체제마다 다름. 리눅스는 .o 파일 링커..
· CS 기본/OS
본 포스팅은 '면접을 위한 CS 전공지식 노트'를 기반으로 작성되었습니다. 메모리 계층 레지스터, 캐시, 메모리, 저장장치로 구성 CPU는 그저 메모리에 올라와있는 명령어를 실행할뿐 계층 위로 올라갈 수록 가격은 비싸지고 용량은 작아지며 속도는 빨라진다. 레지스터: CPU안에 있는 작은 메모리, 휘발성, 속도 가장 빠름, 용량이 가장 적음 캐시: L1, L2 캐시를 지칭. 휘발성, 속도 빠름, 용량 적다. 주기억장치: RAM을 가리킴. 휘발성, 속도 보통, 용량 보통 보조기억장치: HDD, SSD 비휘발성, 속도 낮음, 용량 많음 캐시(Cache) 데이터를 미리 복사해 놓는 임시 저장소 빠른 장치와 느린 장치에서의 속도 차이에 따른 병목 현상을 줄이기 위한 메모리 지역성의 원리 캐시를 직접 설정할 경우 ..
· CS 기본/OS
본 포스팅은 '면접을 위한 CS 전공지식 노트'를 기반으로 작성되었습니다. 운영체제의 역할 CPU 스케줄링과 프로세스 관리: CPU 소유권을 어떤 프로세스에 할당할지, 프로세스의 생성과 삭제, 자원 할당 및 반환을 관리 메모리 관리: 한정된 메모리를 어떤 프로세스에 얼마큼 할당해야 하는지 관리 디스크 파일 관리: 디스크 파일을 어떠한 방법으로 보관할지 관리 I/O 디바이스 관리: I/O디바이스들인 마우스, 키보드와 컴퓨터 간에 데이터를 주고받는 것을 관리 운영체제의 구조 GUI: 사용자가 전자장치와 상호 작용할 수 있도로 도와주는 사용자 인터페이스의 형태. 드라이버: 하드웨어를 제어하기 위한 소프트웨어 CUI: 그래픽이 아닌 명령어로 처리하는 인터페이스 시스템 콜 운영체제가 커널에 접근하기 위한 인터페이..
· HTML,CSS
HTML HTML(하이퍼텍스트 마크업 언어)는 웹 페이지를 만들기 위한 표준 마크업 언어입니다. HTML은 웹 페이지의 구조와 내용을 정의하며, 웹 브라우저에서 웹 페이지를 렌더링하는 데 사용됩니다. 태그 (Tags) HTML 문서의 기본 구성 요소로서, 각각의 태그는 각기 다른 역할을 수행합니다. 일반적으로 태그는 다음과 같은 형식을 가집니다: 내용. 예를 들어, 이것은 단락입니다.는 단락을 정의합니다. : 줄바꿈(마무리태그 X), br 갯수만큼 줄바꿈 가능 : 수평선 : 글씨 진하게 요소 (Elements) 태그와 태그 사이의 모든 내용을 포함한 것을 요소라고 합니다. 위의 예에서 이것은 단락입니다.에서 는 열린 태그이고 는 닫힌 태그이며, 이 두 태그 사이의 텍스트는 요소의 내용입니다. 속성 (At..
· HTML,CSS
CSS html과 다른 문법을 가짐. html 시각적으로 문서를 꾸밀 수 있음 style 태그를 통해 CSS로 해석하라고 알려줄 수 있음. Selector 강한순서 id, class, tag 뒤로 갈수록 추상화 되어있고 id로 올수록 구체적이다. tag 모든 태그에 대해 지정 h1 { font-size:100px; text-align: center; } class 모든 클래스에 대해 지정 클래스 속성에 여러개의 값이 들어올 수 있지만 이렇게 쓰진 않음. 여러개가 들어가 있을 경우 먼저 정의 된것이 선택됨. .saw { color:gray; } id 모든 id에 대해 지정 유일 무이한 #active{ color:red; } 상위 클래스 지정 가능 #grid #article { padding-left: 10..
AVL 트리(Adelson-Velsky and Landis tree) BST 트리의 경우 최악의 경우 O(n)의 시간 복잡도를 보이는데 이것을 방지하고자 스스로 균형을 잡는 이진 탐색 트리 두 자식 서브 트리의 높이는 항상 최대 1만큼 차이 난다. 레드 블랙트리와 비슷하나 BF(balance Factor)를 통해 균형을 잡는다. 레드-블랙 트리(red-black tree) 각 노드가 레드 혹은 블랙(노드에 저장하는 데이터 X) 그냥 1비트 짜리 정보 스스로 균형을 잡는(self-balancing) 트리 최소한의 트리 높이를 보장 균형을 잡는 시점-> 삽입, 삭제 그 외 연산은 BST와 동일( 탐색 속도는 더 빠르다) C++ STL의 set, multiset, map, and multimap 이 이 레드 ..
본 포스팅은 '면접을 위한 CS 전공지식 노트'를 기반으로 작성되었습니다. HTTP overview TCP connection 사용(socket 생성) stateless(서버는 과거의 client 요청을 기억하지 않는다.) 위의 stateless 적인 특성 때문에 client 는 쿠키를 사용해서 상태를 기억하고, server는 DB를 두어 상태를 기억한다. HTTP connection 의 두가지 type Non-persistent HTTP 한 번의 3-way handshake에 한가지 object만 보낼 수 있음 Persistent HTTP 한 번의 3-way handshake에 여러가지 object를 보낼 수 있음.. HTTP/1.0 Non-persistent HTTP RTT(Round Trip Tim..
LTSGOD
'분류 전체보기' 카테고리의 글 목록 (2 Page)