전체 글
-
Load Balancing(로드밸런싱) 과 ProxyCS 지식/네트워크(Network) 2023. 5. 1. 19:58
서버로 traffic이 몰릴 때 해결법 1) scale-up : 서버의 하드웨어를 고성능으로 바꾸어 해결 2) scale-out : 복수의 서버를 사용하여 처리 분담. 여러 대의 웹 서버를 설치하고 한대가 담당하는 사용자의 수를 줄이는 방법 Load Balancing 서버로 요청하는 client 수가 늘어나서 access가 증가할 때 사용. application을 지원하는 리소스 풀 전체에 네트워크 트래픽을 균등하게 배포하는 방법. Load Balancing : 해야 할 작업을 나누어서 서버의 부하를 분산시키는 것 Load Balancer : 여러대의 서버가 분산처리 할 수 있도록 요청을 나누어주는 서비스 Load Balancer가 요청을 분배할 때의 판단 근거 - 웹 서버의 부하 상태 => 시험 패킷과..
-
Page 교체 알고리즘CS 지식/운영체제(OS) 2023. 5. 1. 19:53
1. FIFO - 가장 먼저 메모리에 올라온 페이지를 가장 먼저 내보내는 것.(메모리에 올라온 지 가장 오래된 페이지 교체) - 구현이 간단하지만 성능은 좋지 않음. - Belady's Anomaly(page frame의 개수가 많아져도 page가 없는 page fault 발생이 오히려 늘어나는 현상) 발생 가능. 2. Optimal Page Replacement(최적 페이지 교체) - 앞으로 가장 오랫동안 사용하지 않을 페이지를 교체하는 알고리즘 - 가장 page-fault 발생이 적을 알고리즘 - Belady's Anomaly 발생 X - process가 앞으로 사용할 page를 미리 알아야 해서 실제로 구현이 거의 불가능. 3. LRU(Least Recently Used) 페이지 교체 - 가장 오랫..
-
Process 동기화(semaphore vs mutex vs monitor)CS 지식/운영체제(OS) 2023. 4. 26. 19:51
* CPU 개수가 많아진다고 무조건 성능이 좋아지는 것은 아닌 이유 : process synchronization 때문 * 스마트폰 락업 문제(갑자기 화면 정지) : synchronization(동기화) 때문에 deadlock이 발생해서 아무 반응도 할 수 없는 상태에 도달하는 것 Process Synchronization 문제의 해결책 1. Semaphore : synchronizataion을 제공해 주는 정수형 변수 - mutual exclusion mechanism의 예시. mutual exclusion보다 더 많은 일을 함.(mutual exclusion(lock, unlock 관점) + scheduling(wait, signal 관점) 기능.) Dijkstra가 고안 - binary semaph..
-
Transaction Isolation Level(트랜잭션 격리 수준)CS 지식/데이터베이스(Database) 2023. 4. 25. 17:37
Database Anomalies 1. Dirty read - 다른 transaction에 의해 수정 됐지만 아직 commit 되지 않은 데이터를 읽는 것 ex) Transaction A가 새로운 row를 추가하고 Transaction B가 새로운 row를 읽었는데 A가 roll back을 한 경우 2. Nonrepeatable read - 한 transaction 내에서 같은 row를 두 번 읽었는데 그 사이에 값이 변경되거나 삭제되어 결과가 다르게 나타나는 현상 ex) Transaction A가 row를 읽고 Transaction B가 그 row를 변경하고 A가 같은 row를 두 번째 읽었을 때 새로운 결괏값을 얻는 경우 3. Phantom read 한 transaction 내에서 같은 쿼리를 두 번..
-
TransactionCS 지식/데이터베이스(Database) 2023. 4. 25. 16:22
Transaction : a single logical, atomic unit of work that accesses and possibly modifies the contents of a database - read, write operation을 통해 data에 접근함. - ACID 성질 만족 Atomicity) Abort : transaction이 abort 되면 database의 변화는 보이지 않음. Commit : transaction이 commit 되면 변화는 보이게 됨. Isolation) 모든 transaction은 다른 transaction으로부터 독립되어야 함. 실제로 동시에 여러개의 transaction들이 수행될 때, 각 transaction은 고립되어 있어 연속으로 실행된 것과 동..
-
IPC(Interprocess Communication) protocolCS 지식/운영체제(OS) 2023. 4. 23. 21:57
IPC - process끼리 소통할 수 있는 mechanism - synchronization 필요 ex) semaphore, mutual exclusion, barrier, spinlock IPC의 장점 - data sharing : 한 process가 다른 process의 data에 access 해야 할 때 유용 - resource sharing : memory, file, device 등을 share 가능. => system에 필요한 memory, disk space 양을 줄일 수 있음. - synchronization : 한 process가 다른 process가 일을 끝낼 때까지 기다려야 할 때 등 synchronize를 가능하게 함. - modularity : process가 각각 specifi..
-
SQL vs NoSQLCS 지식/데이터베이스(Database) 2023. 4. 21. 22:13
SQL(관계형) - 데이터가 고정된 열과 행을 가지고 있는 테이블에 저장되는 관계형 데이터베이스와 상호 작용할 때 사용 (1970년대 초반에 스토리지가 비쌌기 때문에 데이터 중복을 줄이기 위해 데이터베이스 정규화 등을 하는 시기에 발전) ex) Oracle, DB2, MySQL, PostgreSQL, Microsoft SQL Server - ACID transactions ACID 속성 이란 - Atomicity(원자성) : 완벽하게 실행하거나 혹은 전혀 실행하지 않거나 둘 중 하나. - Consistency(일관성): transaction이 commit 되면 데이터가 데이터베이스 스키마를 준수하도록 요구됨. transaction이 테이블에 변경 사항을 적용할 때 미리 정의된, 예측할 수 있는 방식만 취..
-
쿠키 vs 세션CS 지식/네트워크(Network) 2023. 4. 21. 17:42
Cookie(쿠키) - user의 computer에 저장이 되는 작은 text file이다. - Cookie의 file size는 최대 4KB이다. - 사용자가 처음 웹사이트를 방문하면 사이트가 data packet를 cookie 형태로 사용자 computer로 보낸다. - client 측에 아무나 볼 수 있는 text 형태로 저장되기 때문에 상대적으로 안전하지 않다. - String data type만 저장한다. - 필요에 따라 cookie를 enable 하거나 disable 할 수 있다. - cookie가 저장되는 경로는 브라우저에 의해 결정될 수 있지만 보통 internet explorer는 주로 Temporal Internet File Folder에 저장한다. - 브라우저마다 저장되는 쿠키가 달라..