개요 AWS EC2의 t2.micro를 사용하면 인스턴스의 메인 메모리는 1GB가 된다. 부족한 메모리로 작업을 하며 인스턴스가 다운되는 등의 메모리 문제를 겪던 중 스왑 공간(swap space)을 통해 문제를 해결하였다. 스왑 공간 (swap space) 스왑 공간을 이해하기 위해서는 우선 가상 메모리에 대해 알아야 한다. 가상 메모리...
본 게시글은 Ubuntu 22.04 LTS를 기준으로 작성하였습니다. 개요 Jekyll 서버를 EC2에서 구동하기 위해서는 다음과 같은 과정을 거쳐야 한다. 포트 포워딩 패키지 설치 Jekyll 서버 구동 전체 과정 포트 포워딩 로컬에서 브라우저로 서버에 접속하기 위해서는 로컬의 ~/.ssh/config 파일의 Loca...
Zsh zsh 설치 for macOS (Homebrew 필요) Homebrew 설치 (기존에 설치되지 않은 경우) /bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"...
개요 git의 브랜치명 변경에는 로컬 브랜치명 변경 뿐 아니라 remote 저장소와 관련한 재설정이 필요하다. 변경 방법 이름이 old_name인 브랜치를 new_name 으로 변경한다고 하자. 로컬 브랜치 이름 변경 (다른 브랜치로 이동하여 진행해야 한다.) git branch -m old_name new_name ...
개요 네이글 알고리즘은 네트워크를 통해 전송되는 패킷의 수를 줄여 TCP/IP 네트워크의 효율성을 향상시키는 방법이다. 이 알고리즘은 존 네이글(John Nagle)이 정의한 것으로, 네이글이 Ford Aerospace에서 일하던 시기인 1984년에 RFC 896에 TCP/IP 인터네트워크 혼잡 제어라는 이름으로 소개되었다. 인터네트워크(in...
개요 CGI는 Common Gateway Interface의 약자로, Nginx와 같은 웹 서버가 프로그램을 동적으로 실행하고 동적 콘텐츠를 생성할 수 있도록 하는 표준 프로토콜이다. 주로 사용자의 요청을 처리하기 위해 사용된다. 실행되는 프로그램은 주로 스크립트 언어로 작성된다. 스크립트 언어(scripting lan...
개요 std::exception을 상속받아서 예외 클래스를 작성하는 경우 예외 문자열을 받기 위해 what() 함수를 다음과 같이 정의한다. const char* what() const throw(); 또한 예외를 발생시키기 위해서는 다음과 같이 exception 클래스의 객체를 생성하여 throw한다. throw MyException(); ...
메소드의 종류 GET HEAD PUT POST TRACE OPTIONS DELETE 메소드별 의미 GET 서버에서 데이터를 가져오기 위해 사용되는 메소드 요청을 보내면 서버가 응답 본문에 요청받은 데이터를 담아서 리턴한다. HEAD 개념 GET 메소드를 통해 특정 리소스를 요청...
책 “HTTP 완벽 가이드”를 읽고 정리한 글입니다. 이전 글에서는 프록시의 개념과 종류에 대해 다루었다. 이번 글에서는 해당 개념에 대해 조금 더 세부적으로 다룰 것이다. 프록시(Proxy) 프록시 서버는 클라이언트를 대신하여 트랜잭션을 수행한다. 프록시는 아래 그림과 같이 클라이언트와 서버 사이에서 HTTP 요청, 응답 메시지를 적절...
책 “HTTP 완벽 가이드”를 읽고 정리한 글입니다. 웹 서버란? 웹 서버는 HTTP(또는 HTTPS)를 사용하여 웹 페이지(또는 파일)를 웹 브라우저에 전달하는 소프트웨어 프로그램이다. 하드웨어적인 측면에서 웹 서버는 파일을 저장하고 소프트웨어를 동작시키는 컴퓨터를 일컫기도 한다. 웹 서버의 형태 웹 서버는 다음의 형태로 사용할 수...