개요 구글 맵스(google maps) API는 다양한 지도와 지리위치 기능을 개발자들이 자신들의 애플리케이션이나 웹사이트, 서비스 등에 적용하도록 구글에서 제공하는 웹서비스와 도구들을 일컫는다. 주요 기능 Mapping Services 상호작용이 가능한 지도 Geocoding 주소나...
개요 최근 몇 주간 42에서 C++을 사용하여 웹서버를 개발하는 과제를 하고 있다. 오랫동안 C만을 사용해 온 나에게 C++의 객체 지향 프로그래밍은 생소한 개념이었다. 그렇기에 객체 지향 설계를 고려하지 않고 코드를 작성하였고, 그 결과로 각각의 클래스가 너무 많은 역할을 지닌 코드가 생겨났다. 이 코드는 난잡하여 이해하기도 힘들었고, 코드의 한 ...
개요 C++은 로우 레벨의 메모리 관리와 하이 레벨의 추상화를 모두 지원하는 언어이다. C++의 주요 기능 중 하나인 메모리의 동적 할당, 해제는 new, delete 키워드를 통해 이루어진다. 이 연산자들은 생성자와 소멸자가 있는 객체를 사용하도록 설계되었으며 데이터 맞춤과 예외의 안전성을 처리한다. 반면 C는 생성자, 소멸자와 예외가 없는 로우...
본 게시글은 Ubuntu 22.04 LTS를 기준으로 작성하였습니다. 개요 Java를 EC2 인스턴스에 설치하는 방법은 패키지 매니저 사용, 직접 다운로드하여 설치 등 다양하다. 이 글에서는 그 중 직접 파일을 다운로드하여 설치하는 방법에 대해 다루었다. 설치 과정 설치 파일 확인 Oracle 사이트의 Java 설치페이지로 이동하여 자...
개요 Git Flow는 Git 프로젝트 관리에 널리 쓰이는 분기(branching) 모델이다. 이 모델은 Vincent Driessen이 자신의 블로그에서 처음 소개하였으며 master, develop, feature, release, hotfix라는 이름을 가진 다섯 개의 브랜치를 사용한다. 주요 개념 Git flow는 Git의 브랜치들을 ...
개요 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...
A new version of content is available.