일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
- doitandroid
- 코테
- 정보처리기사
- select
- join
- 스터디
- Kotlin
- 코딩
- 우테코
- java
- 우아한테크코스
- SQL
- navermap
- CS
- groupby
- 프로그래머스
- 안드로이드
- 카카오코테
- 자바
- MySQL
- 코틀린
- 인프런
- 안드로이드스튜디오
- 정처기
- 혼공파
- Android
- Til
- 혼공단
- 코딩테스트
- 혼공챌린지
- Today
- Total
목록CS 스터디 (20)
Welcome! Everything is fine.
OS가 메모리 관리를 해야하는 이유에 대해 설명하고, 메모리 관리 전략에 대해 설명해주세요.OS가 메모리 관리를 해야하는 이유각각의 프로세스는 독립된 메모리 공간을 갖는다. 따라서 각 프로세스는 다른 프로세스의 메모리 공간에 접근할 수 없다. 오로지 '운영체제'만이 운영체제 메모리 영역과 사용자 메모리 영역의 접근에 영향을 받지 않는다. 따라서 OS 만이 메모리를 관리할 수 있기 때문에 적절한 관리가 필요하다.가상메모리를 이용한 Swapping메모리 압축페이징 & 세그멘테이션고정 길이 할당 / 가변 길이 할당등의 방식으로 OS가 메모리 관리를 수행할 수 있다.논리 메모리와 물리 메모리다수의 프로세스를 실행하려면 한정된 메모리 공간에 많은 프로세스를 로드할 수 있어야 한다. 그래서 메모리 공간을 더 효율적..
메모리의 힙 영역과 스택 영역의 차이에 대해 설명하고, 힙 영역을 너무 크게 잡으면 어떤 일이 벌어지는지 설명해보세요.프로세스 메모리 구조프로세스는 운영체제로부터 독립된 데이터 영역을 할당받으며, 다른 프로세스의 메모리 영역에 접근할 수 없다. 프로세스의 메모리 영역 구조는 코드, 데이터, 힙, 스택으로 구성된다.코드 영역 : 텍스트 영역이라고도 하며, 실행할 코드가 기계어로 컴파일되어 저장되는 영역. CPU가 해당 코드 영역에 저장된 명령어를 하나씩 가져가서 처리하게 된다.데이터 영역 : 전역 변수, 정적 변수, 배열, 구조체 등이 저장되는 영역. 프로그램이 시작되는 동시에 할당되며, 프로그램이 종료되면 소멸한다.힙 영역 : 사용자에 의해 동적 메모리 할당이 일어나는 영역. 자바를 예로 들면 new 키..
보호되어 있는 글입니다.
HTTPS(Hyper Text Transfer Protocol Secure) HTTPS는 보안 계층인 SSL/TLS를 이용해 HTTP의 보안을 강화한 웹 통신 프로토콜이다. SSL(Secure Socket Layer)은 넷스케이프에서 개발한 암호화 프로토콜이다. 이 SSL을 보완해 새로 만든 프로토콜이 TLS(Transport Layer Security)이다. 현재 HTTPS에서 통용되는 방식은 TLS지만, SSL이라는 명칭은 사라지지 않아 SSL 또는 SSL/TLS라고 부른다. HTTPS 이러한 암호화 프로토콜을 통해 데이터 암호화를 거치지 않아 보안에 취약한 HTTP의 약점을 보완하였다. HTTPS에서는 HTTP는 SSL과 통신하고, SSL이 TCP와 통신하게 된다. SSL/TLS의 암호화 방식 HT..
인덱스(Index)란? 인덱스란 데이터베이스 테이블의 검색 속도를 향상시켜주는 자료 구조이다. 책에서 원하는 내용을 빠르게 찾기 위해 책의 앞이나 뒤에서 볼 수 있는 색인과 같다. 특정 값을 검색할 때, 테이블에 있는 데이터를 모두 돌아보고 검색한다면 시간이 많이 걸릴 것이다. 인덱스를 활용하면 면 해당 컬럼의 값과 저장된 주소를 키와 값의 쌍으로 만들어둘 수 있다. 인덱스는 왜 사용할까? 인덱스는 검색 속도를 높이기 위한 목적으로 사용한다. 이미 정렬이 되어있기 때문에 SELECT 쿼리의 검색에 효율적이지만, 반대로 정렬된 상태를 계속 유지시켜주어야 하기 때문에 DML(DELETE, INSERT, UPDATE)이 자주 일어나는 컬럼에는 사용을 피해야 한다. 인덱스의 장점 검색과 정렬 속도를 향상시킬 수..
동시성과 병렬성 멀티 프로세스와 멀티 스레드 개념을 잘 이해하려면 동시성과 병렬성에 대해 알아야 한다. 동시성(concurrency) : 하나의 코어(싱글 코어)에서 여러 작업을 번갈아 가면서 처리하는 방식 CPU는 한 번에 하나의 작업만 처리할 수 있어서 여러 작업을 돌아가며 처리 → Context Switching Context Switching의 비용은 프로세스 > 스레드이다. 스레드는 stack 영역을 제외한 모든 영역을 공유하기 때문! 병렬성(parallelism) : CPU가 여러 개(멀티코어) 있어 각 CPU에서 각 작업을 동시에 처리하는 방식 멀티 프로세스 응용 프로그램 하나를 여러 프로세스로 구성하는 것을 의미 장점 : 한 프로세스가 죽어도 다른 프로세스에 영향을 주지 않아 안정적 단점 ..
힙(Heap)이란? 힙(Heap)은 완전 이진 트리로, 최댓값 또는 최솟값을 빠르게 찾을 수 있는 자료구조다. 우선순위 큐를 효율적으로 구현하는 데 자주 사용한다. 힙의 종류로는 최대 힙과 최소 힙이 있다. 최대 힙(max heap) : 부모 노드의 키 값이 자식 노드의 키 값보다 크거나 같은 완전 이진 트리. 최소 힙(min heap) : 부모 노드의 키 값이 자식 노드의 키 값보다 작거나 같은 완전 이진 트리. 힙의 삽입과 삭제 힙의 삽입과 삭제 연산은 책에 나와있는 내용을 다시 써보며 정리해보았다. 더보기 힙(Heap) | 👨🏻💻 Tech Interview (gyoogle.dev) 기술 면접 대비 CS 전공 핵심요약집 | 이수진 - 교보문고 (kyobobook.co.kr)
트리(Tree)란? 트리는 비선형 자료구조 중 하나로, 나무를 거꾸로 뒤집어 놓은 듯한 모양으로 인해 트리(Tree)라고 불린다. 마치 회사 조직도나 가계도처럼 생긴 트리는 계층적 구조를 잘 표현할 수 있다. 트리는 그래프의 일종으로 노드(Node)와 간선(Edge)으로 이루어져 있다. 트리에서 사용하는 용어는 다음과 같다. 루트 노드(root node) : 부모노드가 없는 노드 부모 노드(parent node) : 루트 노드 방향으로 연결된 노드 자식 노드(child node) : 루트 노드의 반대 방향으로 연결된 노드 단말 노드(leaf node) : 자식 노드가 없는 노드 형제 노드(sibling node) : 부모 노드가 같은 노드 레벨(level) : 루트노드로부터 노드의 상대적 위치를 의미 높..