본문 바로가기

CS14

프로세스 메모리 관리 모델과 가상 메모리 구조 운영체제는 각 프로세스마다 메모리 모델을 만들어 관리합니다. 이를 이해하는 것은 프로그램이 실행되는 메커니즘을 정확히 파악하는 데 필수입니다. 본 글에서는 가상 메모리와 프로세스 메모리 구조를 분석하고, 각 영역(Stack, Heap, Text, Global)의 동작을 자세히 살펴보겠습니다.1. 운영체제의 가상 메모리 관리 개요가상 메모리란?가상 메모리(Virtual Memory)는 실제 물리 메모리(RAM)의 크기보다 더 큰 메모리 공간을 추상화하여 제공하는 기술입니다. 프로세스는 자신의 전체 메모리 공간을 갖는 것처럼 동작하며, 실제 메모리 할당은 운영체제가 제어합니다.프로세스는 자신만의 4GB 공간(32bit 기준, 64bit에서는 훨씬 더 큼)을 가진 것처럼 동작가상 주소 ↔ 실제 물리 주소는 M.. 2025. 7. 17.
파서(Parser)란? 파서(Parser)HTML, XML, 프로그래밍 언어 소스 코드, JSON 등을 받아서 의미 있는 구조(Tree 등)로 만드는 역할 파서(Parser)는 입력된 텍스트 데이터를 일정한 문법에 따라 구조화된 데이터로 분석하고 변환하는 프로그램 또는 알고리즘입니다.웹 브라우저 핵심: HTML, CSS, JS 모두 파싱을 통해 트리 구조로 구성됨컴파일러의 핵심: 모든 프로그래밍 언어의 컴파일 과정에서 필수데이터 처리: XML, JSON, Markdown 등 구조화된 데이터 해석에 필수파서의 위치: 전체 처리 흐름에서의 위치[원시 문자열 입력] ↓ Tokenizer / Lexer ↓ Parser ↓ [구문 트리(Syntax Tree) 또는 DOM Tree 생성]To.. 2025. 7. 17.
JSON과 XML: 웹 데이터 교환 방식 비교 분석 💬데이터 교환?웹 개발에서 데이터를 교환하는 데 필수적인 두 가지 형식, JSON(JavaScript Object Notation)과 XML(eXtensible Markup Language)에 대해 자세히 알아보고자 합니다.이 두 형식은 웹 서버로부터 데이터를 받거나 컴퓨터 간에 데이터를 전송하는 데 사용될 수 있으며, 모두 사람이 읽을 수 있는(self-describing) 자가 설명적인 구조를 가지고 있고, 계층적인 구조로 값을 값 안에 포함할 수 있습니다. 또한 다양한 프로그래밍 언어에서 파싱(parsing)되고 사용될 수 있으며, XMLHttpRequest를 사용하여 가져올 수 있다는 공통점을 가지고 있습니다.하지만 이 두 형식은 중요한 차이점들을 가지고 있어 각각의 용도와 장단점이 명확하게 나.. 2025. 7. 16.
리눅스(Linux)란 무엇인가? 리눅스란?리눅스(Linux)는 오픈소스로 개발된 유닉스(Unix) 계열 운영체제입니다. 서버, 클라우드, 모바일, IoT, 그리고 백엔드 개발 환경에 이르기까지 **전 세계적으로 가장 널리 사용되는 운영체제 중 하나입니다.전 세계 웹 서버의 약 90% 이상이 리눅스 기반으로 운영됩니다.왜 개발자에게 리눅스가 중요한가?서버 환경 대부분이 리눅스 기반터미널 명령어로 시스템 제어 가능스크립트를 통한 자동화 및 배포 작업Docker, Kubernetes, Git 등 DevOps 도구들이 리눅스 환경에 최적화macOS는 리눅스처럼 동작하는 유닉스 계열 OS리눅스의 구성 요소 구성 요소 설명 커널 (Kernel)하드웨어와 소프트웨어 사이를 중계하는 핵심쉘 (Shell)사용자가 입력한 명령을 해석하고 실행하는 인터.. 2025. 7. 16.
git vs GitHub git이란?git(Global Information Tracker)은 파일의 변경 이력을 추적하고, 이전 상태로 되돌리거나 협업 중 충돌을 해결할 수 있게 해주는 버전 관리 시스템(VCS) 입니다.분산형 버전 관리 시스템(DVCS, Distributed Version Control System)모든 개발자는 자신의 PC에 전체 프로젝트의 변경 이력을 로컬 저장소로 갖고 있음중앙 서버가 없어도 각자가 독립적으로 버전 관리 및 복구 가능git 동작 구조Working Directory(작업 디렉토리): 실제 개발자가 작업하는 파일/폴더 공간Staging Area(스테이징): 커밋 전, 기록할 변경 사항을 잠시 모아두는 곳Repository(로컬 저장소): 커밋한 모든 변경 이력이 저장되는 공간Remote(원격.. 2025. 7. 15.
CORS(Cross-Origin Resource Sharing) CORS란? CORS(Cross-Origin Resource Sharing , 교차 출처 리소스 공유)는 웹 브라우저에서 보안상의 이유로 다른 출처(도메인, 프로토콜, 포트)의 리소스를 요청할 때 발생하는 보안 정책입니다. 이를 통해 악의적인 도메인이 사용자의 데이터를 무단으로 요청하는 것을 방지합니다.출처(Origin)란?CORS(Cross-Origin Resource Sharing)는 번역하면 교차 출처 리소스 공유로 여기서 Origin은 출처를 말합니다. 그럼 과연 이 출처(Origin)은 뭘까요? 출처(Origin)는 프로토콜(Protocol), 도메인(Domain, Hostname), 포트(Port)로 구성되어 있습니다.따라서 교차 출처의 의미는 두 출처가 서로 다르다는 것을 의미하며, CORS.. 2025. 2. 19.