일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- 티스토리챌린지
- groupby
- 혼공챌린지
- 기술면접
- 코테
- java
- 카카오코테
- doitandroid
- 코틀린
- 알고리즘
- 프로그래머스
- 정처기
- 오블완
- 자료구조
- SQL
- 안드로이드
- 혼공파
- 혼공단
- Til
- Kotlin
- 자바
- select
- CS
- MySQL
- 스터디
- join
- 정보처리기사
- Android
- 안드로이드스튜디오
- 인프런
- Today
- Total
목록CS 스터디 (35)
Welcome! Everything is fine.
OS가 메모리 관리를 해야하는 이유에 대해 설명하고, 메모리 관리 전략에 대해 설명해주세요.OS가 메모리 관리를 해야하는 이유각각의 프로세스는 독립된 메모리 공간을 갖는다. 따라서 각 프로세스는 다른 프로세스의 메모리 공간에 접근할 수 없다. 오로지 '운영체제'만이 운영체제 메모리 영역과 사용자 메모리 영역의 접근에 영향을 받지 않는다. 따라서 OS 만이 메모리를 관리할 수 있기 때문에 적절한 관리가 필요하다.가상메모리를 이용한 Swapping메모리 압축페이징 & 세그멘테이션고정 길이 할당 / 가변 길이 할당등의 방식으로 OS가 메모리 관리를 수행할 수 있다.논리 메모리와 물리 메모리다수의 프로세스를 실행하려면 한정된 메모리 공간에 많은 프로세스를 로드할 수 있어야 한다. 그래서 메모리 공간을 더 효율적..
첫 번째 CS 스터디 발표! 이번주는 운영체제에 대해 공부해보았다. 잘 이해가 되지 않거나 생소한 주제들을 공부해보고, 자신이 공부한 내용들을 발표식으로 설명해보기로 하였다. 내용은 책과 여러 블로그, 유튜브 강의 등을 참고하였다.메모리의 힙 영역과 스택 영역의 차이에 대해 설명하고, 힙 영역을 너무 크게 잡으면 어떤 일이 벌어지는지 설명해보세요.프로세스 메모리 구조프로세스는 운영체제로부터 독립된 데이터 영역을 할당받으며, 다른 프로세스의 메모리 영역에 접근할 수 없다. 프로세스의 메모리 영역 구조는 코드, 데이터, 힙, 스택으로 구성된다.코드 영역 : 텍스트 영역이라고도 하며, 실행할 코드가 기계어로 컴파일되어 저장되는 영역. CPU가 해당 코드 영역에 저장된 명령어를 하나씩 가져가서 처리하게 된다.데..
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) : 루트노드로부터 노드의 상대적 위치를 의미 높..
이번 주는 기술 면접에서 많이 물어본다는 Array와 LinkedList의 특징과 차이점에 대해 정리해보았다. 같은 선형 자료구조이면서 정적 자료구조(Array)와 동적 자료구조(LinkedList)로 나뉘어서 자주 나오는 질문이 아닐까 싶다! Array 배열(Array)은 메모리 상에 원소를 연속하게 배치한 자료구조이다. 특징을 간단히 정리하자면 다음과 같다. 인덱스를 사용해 값에 바로 접근 가능하다. 배열의 크기는 한 번 선언하면 줄이거나 늘릴수 없다. (따라서 배열을 확장하기 위해서는 기존 배열의 내용을 새로운 배열에 복사하는 식으로 확장해야한다.) 새로운 값을 삽입하거나 삭제하기가 비효적이고 어렵다. (임의의 위치에 있는 원소를 추가/제거하는 시간 복잡도 O(N)) 데이터를 조회하는 연산이 많을 ..