구버전/CS Study
-
[Careerthon] 페이징과 세그멘테이션구버전/CS Study 2023. 11. 7. 15:57
개요 왜 알아야하는가? 사전지식 페이징 세그멘테이션 왜 알아야하는가? 어떠한 프로그램을 실행했을 때 컴퓨터에서는 메모리 공간에 프로그램을 연속적으로 할당을 하게 되는데 이때 프로그램의 할당과 해제가 반복되면서 메모리 공간이 조각조각 나뉘어 총 메모리가 충분함에도 메모리 할당이 불가능하게 되는 상태가 되는데 이러한 현상을 메모리 단편화라고 한다. 이러한 메모리 단편화를 막는 기법으로 페이징과 세그멘테이션이 있다. 사전지식 메모리관리기법에 대한 내용과 가상메모리에 대한 개념을 알 필요가 있다 연속메모리기법과 불연속메모리기법 페이징 프로세스를 일정한 크기의 페이지로 분할에서 메모리에 적재하는 방식이다. 메모리 공간이 연속적이어야 한다는 제약을 없애는 메모리 관리 방법이다. 우측의 이미지를 통해서 PMT(Pag..
-
[Careerthon] 메모리구버전/CS Study 2023. 11. 7. 15:28
개요 메모리계층 웹캐시 가상 메모리 메모리 할당 메모리계층 메모리계층을 알아야 하는 이유는? - 경제성 : 메모리는 레지스터로 갈수록 속도는 빨라지지만 용량이 적어지는 특성이 있고 디스크로 갈수록 반대의 특징을 보인다. 이러한 계층을 통해서 어떻게 효율적으로 메모리를 관리할 것인지를 알 수 있다. - 동작원리 : CPU 내부의 레지스터에서 하드디스크까지 메모리의 계층이 나뉘어져 있는데 운영체제는 이를 어떻게 활용하는지를 알 수 있게 된다. - 프로그램의 실행속도를 어떻게 올릴 수 있는가는 이러한 RAM과 CPU의 소통이 얼마나 빠르냐가 영향을 미치므로 RAM과 CPU는 어떻게 소통하는지를 통해서 이를 파악 할 수 있다. 메모리 계층구조 메모리계층 특징 메모리 계층은 레지스터, 캐시( L1, L2, L3 ..
-
[Careerthon] 운영 체제 및 컴퓨터의 구조구버전/CS Study 2023. 11. 6. 14:19
개요 알아야하는 이유 컴퓨터의 구조 운영체제 컴퓨터 구조를 알아야 하는 이유 개발자는 코드만 잘 짜면 되는 것 아닌가??? => 아니다 이자식아 언어의 문법 및 기술스택을 늘리는 것 뿐만아니라 컴퓨터의 근간을 알아야 한다. 왜? 알게된다면 문제 해결 능력과 성능, 용량, 비용을 고려한 프로그래밍이 가능해진다. 문제해결능력 분명 동일한 코드를 작성을 했는데도 불구하고 실행이 되지않는 사람도 있다. 그럼 뭐가 문제일까? 개발환경에서 문제가 없었는데 사용자의 환경(컴퓨터환경)에서 문제가 발생하는 경우가 있을 수 있다. 이럴 때에는 문법만을 알고 있는경우에는 해법을 찾지 못한다. 하지만 운영체제를 알고 있다면 좀 다른 부분에서 문제에 대한 고민을 할 수있다. 내가 입력한 코드 외에 여러방면에서 문제를 해결할 수..
-
[Why?] CRA => Vite구버전/CS Study 2023. 10. 2. 20:49
Vite를 사용하면서 우리가 누릴 수 있는 이점 vite란? - 2세대 번들링 툴로써 빠르고 간결한 모던 웹 프로젝트 개발 경험에 초점을 맞춰 탄생한 빌드 도구이다. - 기존 webpack에 비해 뛰어난 성능을 자랑한다. 번들링이란? - JS 파일을 하나로 합쳐주는 방식으로써 번들링 툴이랑 같이 사용해야 한다. - 작성한 소스코드나 설치한 라이브러리의 용량이 매우 크므로 묶어주는 작업이라고 생각하면 된다. (압축?) 1세대와 2세대 비교 1세대 : webpack(대표적인 번들링 툴) - 자체의 문제점이 있었다 - 라이브러리가 많아지면 번들링이 매우 오래걸리는 문제점이 있었다 - 번들링이 오래걸리면 미리보기 (개발환경) 에서 불편함이 많다 - 소스코드 수정 or 라이브러리 install시에 새롭게 번들링을..