Computer Science 4

OS 캐시에 대하여..

디스크는 메모리와 속도차이가 많이 나고, OS에서는 이를 보완하기 위해 OS 캐시라는 것을 사용한다.리눅스는 대표적으로 페이지 캐시 (Page Cache)를 갖고 있다. 페이지 캐시(Page Cache)리눅스 커널이 디스크에서 읽거나 쓴 데이터를 메모리에 저장하는 방식.주로 파일 시스템의 성능을 향상시키기 위해 사용됨.디스크 I/O를 줄이고 성능을 최적화하는 역할. 페이지 캐시를 이해하기 위해서는 가상 메모리에 대해 좀 더 구체적으로 알아야 한다. 가상메모리가상 메모리는 프로세스마다 독립적인 주소 공간을 제공하는 시스템입니다.즉, 각 프로세스는 0x00000000~0xFFFFFFFF (예: 32비트 시스템) 범위의 주소를 사용할 수 있지만,이 주소들은 실제 물리 메모리와 직접 매칭되지 않고 OS가 관리합..

Computer Science 2025.03.19

웹 서버와 WAS의 차이?

웹 서버: 물리적인 서버 내에서 실행 중이며 웹 요청을 받을 수 있는 서버WAS: 프로그래밍 언어에 의해 특정 로직이 실행되는 웹 애플리케이션 서버 [웹 서버]보통 정적인 컨텐츠를 제공하는 것에 초점을 둔다.HTML ,CSS, 자바스크립트나 이미지 파일처럼 사용자가 요청한 컨텐츠를 정적인 형태 그대로 반환해주는 역할 nginx, apache가 대표적. [WAS]Web Application Server정적인 컨텐츠에 더해 사용자의 요청에 따라 어떠한 로직을 실행시킴 tomcat, undertow가 대표적.  WAS가 웹 서버의 역할도 할 수 있지 않을까?웹 서버는 WAS보다 범용성은 떨어지지만 정적인 컨텐츠만을 다루는 경우에 WAS보다 훨씬 더 좋은 성능을 보일 수 있다.

Computer Science 2024.10.26

DB Lock

[DB 락이 없다면?]데이터의 무결성이 깨질 수 있는 상황이 발생함. 예시세션1, 세션2가 각각 트랜잭션을 걸고 사용자A의 money 필드를 업데이트 하려고 한다. 초기값: 100 락이 없다면..1. 세션1이 +50을하여 150으로 만듦. 커밋은 하지 않음2. 세션2가 +100을 하여 200으로 만듦. 커밋은 하지 않음. 3. 세션1이 커밋을 한다. 150원이 되었다.4. 세션2가 커밋을 한다. 200원이 되었다.  => 결과가 250이 아닌 200이 되었다.  락이 있다면..1. 세션1이 +50을 하여 150을 만듦. 커밋은 하지 않음2. 세션2가 +100을 하려고 하는데 세션1이 락을 걸고 들어가서 접근하지 못하고 대기한다.3. 세션1이 커밋한다. 150이 반영된다.4. 세션2가 접근해서 +100을 ..

Computer Science 2024.10.07

빅오 (Big-O)에 대해..

목차빅오 표기법이란 입력 크기가 무한대로 향할 때 함수의 상한을 설명하는 수학적 표기방법 알고리즘은 궁극적으로는 컴퓨터로 구현되는데 컴퓨터의 빠른 처리 능력이라면 아무리 복잡한 알고리즘이라도 입력 크기가 작으면 금방끝나버린다. 그러므로 입력의 크기가 충분히 클 때에 관심을 갖는 것. [Big-O ?]빅오 표기법에서 "점근적"이라는 개념은, 입력 크기 n이 매우 커질 때(즉, 무한대에 가까워질 때) 알고리즘의 실행 시간이나 공간 사용량이 어떤 상한선에 점점 가까워지는 지를 표현하고자 할 때 사용하며 가장 흔히 쓰이는 것이 시간복잡도이다. 빅오를 표현할 때는 최고차 항만을 표기하며, 계수는 무시한다. 구체적인 실행시간이 아니라 실행시간의 추이만 살펴보기 때문이다.  O(1): 상수 시간 – 입력 크기에 상관..

Computer Science 2024.10.06