프로그래머스 - Level0 저주의 숫자 3 문제 설명 3x 마을 사람들은 3을 저주의 숫자라고 생각하기 때문에 3의 배수와 숫자 3을 사용하지 않습니다. 3x 마을 사람들의 숫자는 다음과 같습니다. 10진법 3x 마을에서 쓰는 숫자 10진법 3x 마을에서 쓰는 숫자 ...
next.js 빌드 시 환경 변수가 undefined 인 문제 해결 (feat. docker-compose)
문제 상황 Next.js 로 작성한 프론트엔드 프로젝트를 docker 와 docker-compose 를 이용해서 컨테이너로 올리고 싶었다. 개발할 때는 .env 파일을 docker-compose 를 통해서 넣어줬고, 환경 변수를 잘 인식했다. 하지만 배포를 위해 npm run build 명령어로 빌드하고 npm run start 로 실행해보니 환...
프로그래머스 Level 1 - 기사단원의 무기 (JavaScript)
프로그래머스 - Level1 기사단원의 무기 문제 설명 숫자나라 기사단의 각 기사에게는 1번부터 number까지 번호가 지정되어 있습니다. 기사들은 무기점에서 무기를 구매하려고 합니다. 각 기사는 자신의 기사 번호의 약수 개수에 해당하는 공격력을 가진 무기를 구매하려 합니다. 단, 이웃나라와의 협약에 의해 공격력의 제한수치를 정하고, 제...
[42Seoul] pipex (3) 구현 과정
회고 어서와, 멀티 프로세스는 처음이지? 그동안 수행했던 과제들은 모두 하나의 프로세스를 사용했다. 이번 과제는 처음으로 멀티 프로세스를 구현하고, 프로세스 간 통신(IPC)을 위해 파이프를 사용했다. 처음 보는 개념이 많다보니 이해하는데 시간이 꽤 걸렸다. 게다가 멀티 프로세스는 디버깅을 하는 것이 어려워서 디버깅에도 시간을 많이 썼다. ...
[42Seoul] pipex (2) 허용 함수 정리 : waitpid
waitpid #include <sys/wait.h> pid_t waitpid(pid_t pid, int *status, int options); 인자로 넘기는 pid 자식 프로세스가 끝나기를 기다리는 함수이다. status 변수에는 자식 프로세스가 종료할 때 보내는 시그널 또는 exit code 를 저장한다. options 는 ...
[42Seoul] pipex (2) 허용 함수 정리 : wait
wait #include <sys/wait.h> pid_t wait(int *status); 자식 프로세스가 끝나기를 기다리는 함수이다. status 변수에는 자식 프로세스가 종료할 때 보내는 시그널 또는 exit code 를 저장한다. 반환값 자식 프로세스가 멈추거나 종료되면 종료된 자식 프로세스의 프로세스 아이디(pid...
[42Seoul] pipex (2) 허용 함수 정리 : unlink
unlink #include <unistd.h> int unlink(const char *file); unlink 함수는 파일을 삭제하는 함수이다. 소프트 링크, 하드 링크 모두 적용된다. 링크를 지우면 링크 개수를 1개 감소시킨다. 만약, 소프트 링크의 원본 파일을 지우면 소프트 링크는 더 이상 사용할 수 없게 된다. 반환값 ...
[42Seoul] pipex (2) 허용 함수 정리 : pipe
pipe #include <unistd.h> int pipe(int fildes[2]); 크기가 2인 int 배열에 한 쪽에서는 데이터를 쓰고, 다른 한 쪽에서는 데이터를 읽을 수 있는 데이터 통신 파일 디스크립터를 만드는 함수이다. 첫 번째 원소인 fildes[0] 는 파이프의 read end 이고, 두 번째 원소인 fildes[...
[42Seoul] pipex (2) 허용 함수 정리 : fork
fork #include <unistd.h> pid_t fork(void); fork 함수는 자식 프로세스를 생성하는 함수이다. 반환값 부모 프로세스에서는 자식 프로세스의 프로세스 아이디(pid)를 받는다. 자식 프로세스에서는 0을 받는다. 오류 발생 시 -1 을 받는다. 예시 코드 #include <uni...
[42Seoul] pipex (2) 허용 함수 정리 : execve
execve #include <unistd.h> int execve(const char *file, char *const argv[], char *const envp[]); execve 함수는 실행하고자 하는 file 에 인자로 argv 와 환경변수인 evnp 를 전달해서 file 을 실행하여 새로운 프로세스를 생성하는 함수이다. ...