Wink Poke Line Smiley 'CS' 카테고리의 글 목록 — 챰로그
디스크 스케줄링(Disk Scheduling)
·
CS/운영체제
1. 디스크 스케줄링디스크 스케줄링은 디스크 I/O 요청을 처리하는 순서를 결정하는 운영체제의 알고리즘입니다.디스크 장치의 경우, 메모리처럼 직접 접근은 불가능하고 데이터를 읽기 위해서는 디스크 헤드를 물리적으로 이동시켜야 합니다. 그리고 이 과정에서 가장 많은 시간이 소요되는 것이 Seek Time (탐색 시간)입니다. 하드디스크는 여러 요청이 동시에 들어오는 경우가 많고, 이 요청들을 아무 순서나 처리하면 디스크 헤드가 들쭉날쭉 이동하게 되어 전체 처리 시간이 비효율적으로 증가합니다.따라서 운영체제는 디스크 스케줄링 알고리즘을 이용해 요청 순서를 최적화하고, 디스크 헤드의 이동을 줄이는 방향으로 성능을 향상합니다.왜 필요할까?디스크는 느립니다.: 디스크는 메모리보다 훨씬 느린 장치이며, 디스크 레드의..
Http Keep-Alive vs TCP Keep-Alive
·
CS/Network
keep alive. 그동안 Http에서의 Keep alive 개념은 대충은 알고 있었지만, TCP에서의 Keep alive는 솔직히 잘 모른다고 할 정도로 지식이 없었습니다.그러나 최근 이 keep-alive에 대해 생각해 볼 기회가 있었기도 하고🧐, 한 번 개념을 제대로 알아볼 필요가 있다고 생각되어 오늘의 주제로 선택하게 되었습니다. Keep-Alive는 Connection을 유지하기 위한 메커니즘입니다.다만 Http와 TCP 모두 똑같은 Keep-Alive라는 이름이기에 동일한 것으로 헷갈릴 수 있지만, 두 개는 완전 다른 개념이라는 것을 유념할 필요가 있습니다. 오늘은 Http와 TCP에서의 Keep-Alive는 무엇을 의미하는지, 두 가지에서 어떤 차이점이 있는지 한 번 알아보고 작성해보려 ..
JWT(Json Web Token)을 알아보자
·
CS
JWT Token.모든 프로젝트에서 항상 필수적으로 사용했던 개념이지만, 항상 내가 맡은 파트가 아니라는 이유로. 혹은 대충 어떤 개념인지는 알고 있다는 이유로 제대로 이해하지 않고 슬금슬금 넘어갔던 개념이다.새롭게 진행하는 프로젝트에서 유저와 관련된 메인 책임자로서 역할을 부여받은 만큼, 오늘은 JWT 토큰을 샅샅이 이해해보고자 한다.   1. Cookie, 그리고 Session이 지배하던 시절내가 만든 Cookie 너를 위해 구웠지~Cookie. 딱히 개발자가 아니더라도 많은 분들이 이 쿠키에 대해서 들어본 적 있을 거라고 생각합니다.구글이나 edge같은 브라우저를 사용하다가 가끔 "쿠키를 저장하시겠습니까?"라는 팝업창이 마치 귀찮은 광고처럼 올라오는 사이트를 들어가보신 적 있다면 말이죠 🤔혹은 이..
데이터베이스 정규화와 이상현상
·
CS/DB
데이터 베이스 최적화를 위한 핵심 개념, 정규화와 비정규화   데이터 베이스 정규화.데이터 베이스를 다뤄봤거나, 정보 처리 기사와 같은 IT관련 시험을 준비해 본 사람이라면 한 번쯤은 들었던 단어일 겁니다.오늘은 이 정규화에 대한 글을 작성하고자 합니다.1. 정규화(Normalization)란?정규화는 데이터의 중복을 최소화하고, 무결성을 유지하며, 데이터 이상현상 방지를 위해 데이터베이스를 구조화하는 과정을 의미합니다.즉, 데이터를 체계적으로 분류하고 테이블을 적절히 나누어 효율적인 데이터 저장과 관리가 가능하도록 설계하는 방법입니다. 정규화의 목적은 크게 네 가지로 꼽을 수 있습니다.중복 데이터 제거: 불필요한 데이터 중복을 없애 저장 공간을 절약하고 관리 효율성을 높임데이터 무결성 유지: 데이터 변..
메모리 관리 전략
·
CS/운영체제
※ 해당 글은 기술 면접 대비 CS 핵심요약을 기반으로, 해당 책의 순서를 참고하여 작성하였습니다. 1. 논리 메모리와 물리 메모리 컴퓨터에서 프로그램이 실행될 때, 우리가 흔히 '메모리'라고 부르는 공간은 사실 두 가지 차원에서 존재합니다.하나는 논리 메모리(Logical Memory), 그리고 다른 하나는 물리 메모리(Physical Memory)에서 존재합니다.논리 메모리(가상 메모리)란?프로그램이 실행될 때, CPU가 직접 접근하는 주소 공간입니다. 개발자가 코드를 작성할 때 변수나 배열을 선언하면, 논리적으로 해당 데이터가 저장될 위치를 지정하지만, 이 주소는 실제 물리적인 RAM과는 다를 수 있죠.우리가 int arr[10] 같은 배열을 선언하면, 프로그램 입장에서는 연속된 메모리 공간을 차지..
프로세스 동기화 - 상호배제 기법
·
CS/운영체제
※ 해당 글은 기술 면접 대비 CS 핵심요약을 기반으로, 해당 책의 순서를 참고하여 작성하였습니다. 1. 멀티 스레드와 동기화 "만약 여러 스레드가 동시에 공유 자원에 접근하면 어떻게 될까?"  멀티 스레드는 스레드를 여러 개 생성하여 스레드들이 각자 다른 작업을 처리하도록 하는 것을 의미합니다.멀티 스레드는 스레드간 힙, 데이터, 코드 영역을 공유하기 때문에 콘텍스트 스위칭의 오버헤드가 적고, IPC를 사용하지 않아도 된다는 장점이 있지만 스택 영역을 공유하기 때문에 여러 스레드가 동시에 자원에 접근하는 경우가 발생할 수 있습니다. 만약 여러 스레드가 동시에 공유 자원에 접근한다면, 접근하는 순서에 따라 결과 값이 달라질 수 있습니다.이러한 현상을 경쟁 상태(race condition)이라고 하며 이 ..