문제 상황 Github actions 를 사용하기 위해 .yml 파일을 수정했다. git push 를 시도했으나 아래와 같은 에러 메세지가 표시되었다. ! [remote rejected] main -> main (refusing to allow a Personal Access Token to create or update wor...
프로그래머스 Level 0 - 저주의 숫자 3 (C++)
프로그래머스 - Level0 저주의 숫자 3 문제 설명 3x 마을 사람들은 3을 저주의 숫자라고 생각하기 때문에 3의 배수와 숫자 3을 사용하지 않습니다. 3x 마을 사람들의 숫자는 다음과 같습니다. 10진법 3x 마을에서 쓰는 숫자 10진법 3x 마을에서 쓰는 숫자 ...
Redis 개념, 장점과 단점, Docker 사용 예시 정리
Redis 등장 배경 서버 프로그램이 데이터를 영구적으로 저장하기 위해서 데이터베이스를 사용한다. 데이터베이스는 주로 데이터 간의 관계를 정의한 RDBMS(Relational DataBase Management System)를 사용한다. RDBMS는 데이터 간의 복잡한 관계를 보여줄 때 매우 효과적이다. 하지만 하드 디스크에 데이터를 저장하고 읽...
next.js 빌드 시 환경 변수가 undefined 인 문제 해결 (feat. docker-compose)
문제 상황 Next.js 로 작성한 프론트엔드 프로젝트를 docker 와 docker-compose 를 이용해서 컨테이너로 올리고 싶었다. 개발할 때는 .env 파일을 docker-compose 를 통해서 넣어줬고, 환경 변수를 잘 인식했다. 하지만 배포를 위해 npm run build 명령어로 빌드하고 npm run start 로 실행해보니 환...
[회고] 42서울 C++ 기반 nginx 샘플링 프로젝트 회고
들어가며 Nginx처럼 작동하는 웹 서버를 만드는 webserv 과제를 드디어 마쳤다. 약 두 달간 팀원들과 치열하게 머리를 맞대며 고민하고, 오류를 잡기 위해 늦은 시간까지 모니터 앞에서 보낸 시간들이 아득하게 떠오른다. 이전에 진행했던 Inception 과제에서는 Nginx를 사용했지만, 정작 Nginx가 어떻게 작동하는지, 설정 파일을 어떻게...
PID 1 과 dumb-init (feat. PID 0)
PID 1 리눅스의 시그널은 Docker 컨테이너 내부의 프로세스 생명 주기를 제어하는 방법이다. 그래서 Docker 와 kubernetes(이하 k8s) 는 시그널을 사용해서 컨테이너 내부의 프로세스와 통신하고, 컨테이너를 종료하기 위해 사용한다. Docker 와 k8s 는 컨테이너 내부에 PID 1 이 있는 프로세스에만 신호를 보낼 수 있다....
DNS 작동 방식
DNS란? 우리는 구글에 접속하기 위해 웹 브라우저 주소창에 www.google.com 라는 문자열을 입력한다. 어떤 사이트에 접속한다는 것은 IP 주소를 기반으로 클라이언트와 서버가 통신하는 것이다. 그래서 클라이언트는 사이트가 운영하는 서버의 IP 주소를 알아야 원하는 페이지를 볼 수 있는 것이다. 하지만 사람이 숫자로 된 IP 주소를 입력해...
프로그래머스 Level 1 - 기사단원의 무기 (JavaScript)
프로그래머스 - Level1 기사단원의 무기 문제 설명 숫자나라 기사단의 각 기사에게는 1번부터 number까지 번호가 지정되어 있습니다. 기사들은 무기점에서 무기를 구매하려고 합니다. 각 기사는 자신의 기사 번호의 약수 개수에 해당하는 공격력을 가진 무기를 구매하려 합니다. 단, 이웃나라와의 협약에 의해 공격력의 제한수치를 정하고, 제...
nginx란 무엇인가
Nginx Nginx 는 웹 사이트의 서버(WAS)를 도와주는 비동기 이벤트 기반 구조의 경량화 웹 서버 프로그램이다. 클라이언트가 요청한 정적 파일을 응답하는 HTTP Web Server 로 활용하기도 하며, Reverse Proxy Server 로 활용하여 WAS 의 부하를 줄이는 로드 밸런서 역할을 하기도 한다. (참고: Forward Pro...
Forward Proxy와 Reverse Proxy
프록시(Proxy)란? 프록시는 사전적인 의미로 ‘대리인’, ‘중개자’ 라는 의미를 가지고 있다. 컴퓨터 공학에서 프록시는 보안상의 문제로 직접 통신을 주고 받을 수 없는 두 PC 사이에서 통신을 중계하는 것을 의미한다. 이처럼 중계 기능을 수행하는 서버를 ‘프록시 서버’라고 한다. 출처: What is a Proxy Server? How ...