전체 글 127

[CS] 메모리 관리

2-1. 가상 메모리가상 메모리: 물리 메모리 크기보다 큰 주소 공간을 제공하는 메모리 관리 기법각 프로세스에 독립적인 가상 주소 공간 제공물리 메모리와의 매핑은 운영체제가 관리메모리 보호 및 효율적 사용 목적(1) 스와핑스와핑: 프로세스 단위로 메모리를 보조 저장장치로 이동시키는 기법메모리 부족 시 비활성 프로세스 디스크 이동필요 시 다시 메모리로 적재컨텍스트 스위칭 비용 증가 요인(2) 페이지 폴트페이지 폴트: 접근한 페이지가 물리 메모리에 존재하지 않는 상황가상 주소 접근 시 발생디스크에서 해당 페이지 적재페이지 테이블 갱신 후 명령 재실행성능 저하 주요 원인2-2. 스레싱스레싱: 페이지 교체 작업 과다로 인한 시스템 성능 급락 상태CPU 사용률 급감실행 시간 대부분을 페이지 교체에 소비메모리 부족..

[CS] 운영체제와 컴퓨터

1. 운영체제의 역할과 구조1) 운영체제의 역할운영체제: 하드웨어 자원과 사용자 프로그램 사이의 중재 시스템프로세스 관리다중 프로그램 실행 환경 제공, 프로세스 생성·종료·상태 관리, CPU 스케줄링메모리 관리프로세스별 독립 주소 공간 제공, 가상 메모리 기반 효율적 메모리 사용, 메모리 보호파일 시스템 관리저장장치의 파일·디렉터리 구조 추상화입출력 장치 관리하드웨어 장치에 대한 공통 제어 인터페이스 제공보안 및 보호사용자 모드와 커널 모드 분리, 비정상 접근 차단2) 운영체제의 구조운영체제 구조: 커널 중심 구조커널운영체제 핵심 영역, CPU·메모리·디바이스 직접 제어유저 영역사용자 프로그램 실행 영역, 하드웨어 직접 접근 불가핵심 개념: 권한 분리(1) 시스템 콜시스템 콜: 사용자 프로그램이 커널 기..

[CS] IP주소

브라우저 요청이 네트워크를 통해 전달되는 방식브라우저에서 발생하는 모든 요청(fetch, axios, 이미지 로딩 등)은결국 IP 주소 기반의 네트워크 통신 위에서 동작한다.1. ARP (Address Resolution Protocol)IP 주소는 논리적인 주소이고,실제 네트워크에서 데이터 전송은 물리적인 주소(MAC 주소)를 기준으로 이루어진다.ARP는 이 두 주소를 연결해주는 프로토콜이다. 즉, ARP는 가상 주소인 IP 주소를 실제 물리적 주소(MAC 주소)로 변환해주는 역할을 한다. 🔎 MAC 주소를 IP 주소로 변환하는 프로토콜은 RARP이며, 현재는 거의 사용되지 않는다.✅ 실제 통신 과정에서의 ARP브라우저가 서버의 IP 주소로 요청을 보낸다같은 네트워크(LAN) 내에 있다면→ ARP 요..

What I Learned/etc. 2025.12.18

[CS] 네트워크의 기초

네트워크란 노드(서버, 라우터, 스위치 등 네트워크 장치)와 링크(유선 혹은 무선)가 서로 연결되어 있으며 리소스를 공유하는 집합을 의미.1. 처리량과 지연시간1. 처리량 얼마나 많이단위 시간당 링크 내에서 얼마나 많은 데이터를 성공적으로 전달 할 수 있는가단위는 bps (초당 전송 또는 수신 되는 비트수)“많은 트래픽을 처리한다” = “많은 처리량을 가진다”처리량은 사용자들이 많이 접속할 때마다 커지는 트래픽, 네트워크 장치 간의 대역폭, 네트워크 중간에 발생하는 에러, 장치의 하드웨어 스펙에 영향을 받음트래픽이란 특정 시점에 링크 내에 흐르는 데이터의 양.2. 지연 시간 얼마나 빨리요청을 보낸 뒤 응답까지 걸리는 시간. 어떤 메시지가 두 장치 사이를 왕복하는 데 걸린 시간.링크 타입, 패킷 크기, 라..

카테고리 없음 2025.12.15

디자인 패턴의 종류: MVC, MVP, MVVM

MVC 패턴(Model–View–Controller)MVC는 프로그램을 Model, View, Controller 세 역할로 나눠서 화면 로직과 비즈니스 로직을 분리하는 구조.유지보수성과 확장성을 높이기 위해 사용.MVC 구성 요소1) Model데이터와 비즈니스 로직 담당DB 접근, 상태 관리, 규칙 처리 등 핵심 로직 포함View와 직접 연결되지 않음// playlistModel.jsclass PlaylistModel { async getSongs(userId) { return db.query("SELECT * FROM Songs WHERE userId = ?", [userId]); } async addSong(userId, song) { return db.insert("Songs", ..

카테고리 없음 2025.12.09

PDF 파일에 있는 메타데이터 없애기

기본으로 나오는 크롬 뷰어를 사용하고 있는데 간간히 파일명에 설정한 적 없는 정보가 노출될 때가 있었다.파일명인 줄 알았지만 단순 파일명이 아니었다.찾아보니, pdf에 있는 메타데이터가 있을 경우 뷰어에 우선적으로 노출된다고 했다.따라서 해당 부분을 없애려면 PDF에 설정되어있는 메타데이터를 없애야하는 것. 하지만 이미 수십개의 파일이 메타데이터가 설정된 채 pdf가 만들어져있어 해당 파일들의 메타데이터 제거 방법이 필요했다.다행히(?)도 관련 라이브러리가 있어서 활용했다!💡https://www.npmjs.com/package/exiftool-vendored exiftool-vendoredEfficient, cross-platform access to ExifTool. Latest version: 30..

What I Learned/etc. 2025.08.20

[git] 내 레포에 다른 레포 코드 클론하기

1) 내 레포 클론하기git clone ${내 레포 주소} 2) 다른 레포를 ‘upstream’으로 등록하기git remote add upstream ${포크할 레포}## 확인하는 방법git remote -v # origin: 내 레포# upstream: 포크할 레포 3) upstream 변경사항 가져오기(fetch)git fetch upstreamupstream/main, upstream/feature-xxx 같은 브랜치 정보가 로컬에 생긴다. 4) upstream 브랜치를 내 브랜치에 병합하기 Merge 방식 (기존 커밋 그대로 합치기) 원본의 커밋 히스토리를 있는 그대로 보존.언제 어떤 코드가 합쳐졌는지(merge commit) 기록이 남음.git checkout main # --allow-unr..

What I Learned/etc. 2025.07.15

React 개발 중 새로 추가한 페이지에서 새로고침 시 404 오류가 발생한 이유 (feat. proxy 설정의 함정)

나를 무려 이틀 반동안 골치아프게했던 문제가 해결되었다.생각보다 너무 어이없는 이유라서 티스토리에도 기록을 남겨본다.. ✅ 문제 상황React + Express로 개발 중, 새로운 메뉴를 추가해야만 했다.프론트 라우터에 새로운 경로를 등록했고, 백엔드에도 해당 API 및 미들웨어를 잘 붙여놨다.그런데 문제는...메뉴를 직접 클릭해서 이동하면 잘 되는데, 새로고침만 하면 ENOENT: no such file or directory가 발생하는 것!Error: ENOENT: no such file or directory, stat '...경로...\client\index.html' 🔍 문제 원인을 찾아서'spa 새로고침 404'로 검색하니 SPA 라우팅 문제라고 곧잘 내용이 정리되어있었다. Spring..

[리눅스/puTTY] 리눅스에서 파일 복사 붙여넣기

리눅스에서 파일을 옮길 때 명령어~를 까먹지 않기 위해 기록..cp ${복사할 폴더 경로}/${복사할 파일.확장자} ${붙여넣을 폴더 경로}/${붙여넣을 파일 이름.확장자} 폴더 경로가 헷갈렸는데 굳이 최상단까지 갈 필요는 없고~복사할 폴더와 붙여넣을 폴더가 모두 존재하는 폴더까지 위치를 이동한다음 ./로 시작하면 된다! 즉,  rootFolder- folderA  - haveToCopy.txt- folderB가 있는 경우  rootFolder까지 이동해서 cp ./rootFolder/folderA/haveToCopy.txt ./rootFolder/folderB/haveToPaste.txt 요 명령어 실행하면 된다!현재 위치가 애매~할땐 tab 눌러서 자동완성 되는 폴더명을 살펴보자구~

What I Learned/etc. 2025.01.14

[VSCode] Delete `␍`eslint 해결 방법(feat. CRLF와 LF)

맥북에서 시작한 프로젝트를 윈도우에서 이어받아 하려고 하는데 코드에 갑자기 요상한 빨간 밑줄이, 그것도 엄청 많이 생겼다.찾아보니 운영체제에 따라 Carriage Return이 달라 발생하는 문제여서 한 쪽으로 맞춰줘야한다고 한다.1. CRLF (Carriage Return + Line Feed)표현 방식: \r\n (CR + LF)CR: Carriage Return. 커서를 가장 왼쪽으로 이동.LF: Line Feed. 다음 줄로 이동.사용 운영 체제: Windows.2. LF (Line Feed)표현 방식: \n (LF만 사용)LF: 다음 줄로 이동.사용 운영 체제: Unix 계열 (macOS, Linux). 윈도우는 과거 도트 매트릭스 프린터에서 사용하던 CR(줄의 시작)과 LF(다음 줄로 이동)을..

What I Learned/etc. 2024.12.23