파이썬 Lark를 이용하여 LaTeX 문법 파싱하기 (1)
파서는 무엇인가? 파서는 데이터 스트림을 읽고 규칙에 따라 토큰으로 분해하는 도구입니다. 이러한 규칙의 집합을 문법(grammar)이라고 합니다. 프로그래밍 언어의 경우, 파서는 코드의 각 줄을 읽어 들이고 이를 토큰으로 분해하여 그 의미를 파악합니다. 예를 들어, A = 14라는 코드를 파싱하면 다음과 같은 토큰으로 분해됩니다: A: ...
파서는 무엇인가? 파서는 데이터 스트림을 읽고 규칙에 따라 토큰으로 분해하는 도구입니다. 이러한 규칙의 집합을 문법(grammar)이라고 합니다. 프로그래밍 언어의 경우, 파서는 코드의 각 줄을 읽어 들이고 이를 토큰으로 분해하여 그 의미를 파악합니다. 예를 들어, A = 14라는 코드를 파싱하면 다음과 같은 토큰으로 분해됩니다: A: ...
회원 관리 API 설계 (Post 기반 등록) HTTP API를 사용하여 회원 관리용 API를 개발한다고 가정해봅시다. 이때 URI와 HTTP 메서드인 GET, POST, PUT, DELETE를 어떻게 사용해야 하는지 살펴보겠습니다. 리소스 식별과 HTTP 메서드의 역할 리소스 식별: URI는 리소스를 식별해야 합니다. “조회하다”, “삭제...
HTTP API를 만들어 보자 회원 정보를 관리하는 HTTP API를 설계해 봅시다. 요구사항은 다음과 같습니다: 회원 목록 조회 회원 상세 조회 회원 등록 회원 수정 회원 삭제 처음에는 다음과 같이 URI를 설계할 수 있습니다: 회원 목록 조회: /readMemberList 회원 상세 조회: /readMember...
모든 것이 HTTP HTTP는 HyperText Transfer Protocol의 약자로, 원래는 하이퍼텍스트 문서인 HTML을 전송하기 위해 개발되었습니다. 하지만 현재는 이미지, 음성, 영상, 파일, JSON, XML 등 거의 모든 형태의 데이터를 전송할 수 있는 프로토콜로 발전했습니다. 심지어 서버 간의 통신에서도 HTTP를 많이 사용하며,...
URI와 URL의 개념 URI, URL, URN의 개념과 그 차이에 대해 알아보았습니다. URI는 리소스를 식별하는 통일된 방식이며, URL과 URN을 포함하는 상위 개념입니다. URL은 리소스의 위치를 나타내며, URN은 리소스의 이름을 지정합니다. 주요 개념 및 설명 URI (Uniform Resource Identifier): 인...
인터넷 통신 인터넷 상에서 컴퓨터들 간의 통신은 어떻게 이루어질까요? 가까운 거리에 있는 두 대의 컴퓨터는 케이블로 직접 연결하여 데이터를 주고받을 수 있습니다. 그러나 인터넷은 수많은 노드와 서버, 광케이블, 위성 등을 통해 연결된 복잡한 망입니다. 따라서 메시지를 안전하게 목적지까지 전달하기 위해서는 일정한 규칙과 프로토콜이 필요합니다. ...
핵심 내용 요약 동기화의 필요성: 프로세스 동기화를 통해 실행 순서를 제어하고 상호 배제를 보장함으로써 데이터 일관성과 정확성을 유지합니다. 뮤텍스 락 (Mutex Lock): 하나의 프로세스만 임계 구역에 접근하도록 보장하는 도구. 세마포 (Semaphore): 다수의 자원에 대해 다수의 프로세스 접근을 관리하는 도구. 모니터 (M...
핵심 내용 요약 동기화의 개념: 동기화는 동시에 실행되는 프로세스들이 협력하여 올바르게 실행되고 자원의 일관성을 보장하는 기법입니다. 실행 순서 제어: 프로세스가 올바른 순서대로 실행되도록 합니다. 상호 배제: 동시에 접근해서는 안 되는 자원에 하나의 프로세스만 접근하게 합니다. 임계 구역: 공유 자원에 접근하는 코드 중 동시에 실행...
핵심 내용 요약 선입선처리 스케줄링 (FCFS): 준비 큐에 삽입된 순서대로 프로세스들을 처리하는 비선점형 스케줄링 방식. 최단작업우선 스케줄링 (SJF): CPU 사용 시간이 짧은 프로세스를 우선으로 실행하는 비선점형 스케줄링 방식. 라운드로빈 스케줄링 (Round Robin): 각 프로세스가 정해진 시간 동안 CPU를 사용할 수 있는...
핵심 내용 요약 CPU 스케줄링: 운영체제가 프로세스들에게 공정하고 합리적으로 CPU 자원을 배분하는 방법을 의미합니다. 프로세스 우선순위: 프로세스마다 우선순위가 다르며, 이는 PCB에 명시됩니다. 스케줄링 큐: 운영체제는 효율적인 스케줄링을 위해 준비 큐와 대기 큐 등 다양한 큐를 사용합니다. 선점형 vs 비선점형 스케줄링: 선점...