본문 바로가기

CS Study24

[자료구조] Hash table Hash table 이란?효율적인 탐색을 위한 자료구조로써 key-value쌍으로 데이터를 저장합니다. 이때 hash function를 사용하여index(해시값) 는 h(key)가 됩니다. 시간 복잡도는 저장,삭제,검색 모두 기본 적으로 O(1) 이지만 collision(인덱스 중복)이 일어나는 최악의 상황이면 O(n)이 될 수 있음. 이렇게 시간은 빠르지만 공간효율성은 떨어짐 그럼 좋은 hash function은 뭘까요?해시값이 최대한 겹치지 않아야하고 연산속도가 빨라야합니다.  그럼 인덱스(해시값) 중복(collision)이 일어나면 어떻게 되며 해결방법은?크게 2가지 방법으로 해결 open addressing- 미리 정해진 규칙에 따라 hash table의 빈 슬롯을 찾음.- 빈 슬롯 찾는 방법에 .. 2024. 10. 11.
[데이터베이스] RDB vs NoSQL 관계형 데이터베이스 (RDB)는 사전에 엄격하게 정의된 schema를 요구하는 Table 기반 데이터구조비관계형 데이터베이스 (NoSQL)은 table 형식이 아닌 비정형 데이터를 저장할 수 있도록하는 구조 그러므로 RDB는 schema로 인해 데이터 중복이 없기 때문에 update가 많을 때 유리NoSQL은 데이터 중복으로 인해 update시 모든 컬렉션에서 수정이 필요하기 때문에update가 적고 조회가 많을때 유리 2024. 10. 4.
[데이터베이스] left outer join vs inner join Join이란 두개 이상의 테이블을 서로 연결하여 하나의 결과를 만들어 보여주는 것을 말함 inner join (join) 은 두 테이블에 모두 있는 내용만 join 되는 방식left outer join (left join)은 왼쪽 테이블의 모든 행에 대해서 join을 진행 2024. 10. 4.
[데이터베이스] Primary Key Primary Key란?후보키중에서 선택한 메인키로써 각 행(row)을 구분하는 유일한 열(column)Null 값을 가질 수 없고, 중복된 값을 가질 수 없음.table당 1개만 지정 그럼 후보키가 뭐야? 후보키는 슈퍼키중에서 더이상 쪼개질 수 없는 키를 뜻함 (각 row를 유일하게 식별할 수 있는 최소한의 속성들의 집합)예시) 학번, 주민등록번호 그럼 슈퍼키는 뭔데?슈퍼키는 각 row를 유일하게 식별할 수 있는 하나 또는 그 이상의 속성들의 집합예시) 학번, 주민등록번호, (학번 + 이름) 마지막 대체키란?후보키에서 기본키로 설정을하고 남은 키들을 뜻함 그럼 외래키는?다른 테이블의 기본키의 열과 연결되는 table의 열을 의미 2024. 10. 4.
[네트워크] TCP vs UDP TCP란?- 연결형, 신뢰성 전송 프로토콜- 3way handsaking을 사용- 신뢰성 있는 서비스를 제공- 신뢰성을 보장하기 위해 header가 크고 속도가 느리다 UDP란?- 비연결형 프로토콜, 비신뢰성 프로토콜- 단순하기 때문에 속도가 빠름 TCP는 보통 신뢰성이 중요한 Http, 파일 전송에 쓰이고 UDP는 실시간성이 중요한 동영상 스트리밍 등에 주로 사용 2024. 9. 26.
[네트워크] 쿠키 vs 세션 쿠키는 브라우저 로컬에 key - value 쌍으로 저장되는 데이터 파일. 유효시간 내에서는 브라우저가 종료되어도 계속 유지 세션은 브라우저가 종료되거나, 서버에서 해당 세션을 삭제할 수 있기 때문에 쿠키보다 보안성이 좋다.서버에 데이터를 저장하므로 서버 용량이 많으면 제한 없이 데이터 저장할 수 있다는 장점이 있다.단점은 서버의 부하가 커진다는 것. 2024. 9. 26.
[운영체제] 멀티 프로세스/스레드의 동기화 문제 해결법 동기화 문제란?메모리 영역을 공유하기 때문에 여러 스레드가 동시에 접근하여 이상한 값을 읽거나 수정하는 문제 Mutex- 한개의 스레드만이 공유 자원에 접근할수 있도록 하는 방법- 하나의 스레드가 lock을 걸고 사용, unlock까지 다른 스레드들은 사용 불가 Semaphore- S개의 스레드만이 공유 자원에 접근할 수 있도록 제어 (S개 이상은 불가)- S의 값을 스레드가 접근하면 S-- 나가면 S++ (즉 S가 0 이면 더 이상 못들어옴) 2024. 9. 24.
[운영체제] 멀티 프로세스 환경에서 프로세스간의 데이터 이동 프로세스끼리는 데이터 공유를 하고있지 않음그러므로 데이터를 주고 받기 위해 IPC를 사용한다.크게 공유메모리 방식과 메시지 전달방식으로 나뉨 IPC란?프로세스는 각자 자신만의 독립적인 주소 공간을 가지는데 다른 프로세스가 이 주소공간을 참조할수 없다.이때 프로세스끼리 데이터를 주고 받을수 있게 도와주는게 IPC크게 공유메모리와 메시지 전달방식으로 나뉨 공유메모리- 프로세스들이 주소 공간 일부 공유- 공유한 메모리 영역에 읽기/쓰기를 통해서 통신- 커널에 공유 메모리 할당을 요청- 공유 메모리가 구축되면 커널 도움 없이 접근이 가능- 빠르다는 장점 하지만 충돌 회피 해야함 메시지 전달방식- system call(프로세스가 커널에 요청)을 사용하여 구현- 커널을 통해 send와 receive를 제공 받음- .. 2024. 9. 23.