7월 2주 차부터, 감염자의 확산세가 가파른 상승세를 보이며 이제는 하루에 천명 이상의 감염자가 꾸준히 발생하고 있다. 7월 셋째 주쯤 여자 친구와 같이 저녁으로 해장국을 먹으러 갔다가 밀접 접족자로 자가격리 대상자가 되었다. 처음으로 밀접 접족 자라고 연락을 받으니 덜컥 겁이 나고, 혼란이 있었는데 막상 지나고 보니 별일이 아니었는데 너무 겁을 먹었던 것 같다. 슬기롭게 자가격리를 끝내고, 격리 시 알아두면 좋은 것들을 정리해보고자 한다. 내가 밀접접촉자? 7월 21일 오후 7시쯤 보건소에서 밀접접촉자로 코로나 검사와 자가격리가 필요하다고 연락을 받았다. 여기서 중요한 것은 검사 및 격리 안내는 보건소 담당자분이 진행하는 것이므로, 때로는 정확히 안내가 안될 수 있고 내가 그랬다. 다음과 같은 사항과 ..
6월에 회고록을 2번이나 쓰게 될 줄은 몰랐다. 21년도 상반기를 마무리하며... 라는 주제로 회고록을 쓰고자 했지만 운이 좋게도 삼성전자에 합격하게 되어 21년 상반기를 어떻게 보냈는지, 그리고 삼성전자에 합격하기 위한 과정을 회고해보고자 한다. Ahnlab 안랩에서는 어떤 것을 배웠는가? 작년에 다른 기업들은 모두 탈락하고, 최종 합격한 기업은 안랩 뿐이었다. 우선 실무에 대한 경험을 쌓고 내가 가진 역량들이나 성격이 업무에 적합한지 알아보고자 입사하였다. 업무를 통해 네트워크 보안 제품을 개발하며, 유저 레벨에서의 개발 경험뿐 아니라 네트워크 보안에 대한 전반적인 지식을 쌓을 수 있는 과정이었다. 대단하지는 않지만, 담당한 업무에 개발을 하기 위해 관련된 배경 지식들을 쌓고 유지보수성이 좋은 코드를..
IPC(Inter-Process Cmmuniciation)는 프로세스들 사이에 데이터를 주고받는 행위, 그에 대한 방법 또는 경로를 의미한다. pipe의 종류 pipe는 위의 그림과 같이 프로세스에 따라 write, read를 할 수 있다. 또한 관련된 프로세스가 사용하는 pipe와 관련 없는 프로세스 간에도 사용 가능한 named pipe로 나뉜다. pipe int process_pipe(pid_t pid, int *pipe_p, char *buf) { int status; if (pid == 0) { /* child process */ close(pipe_p[1]); read(pipe_p[0], buf, sizeof(buf)); printf("%d get msg %s\n", pid, buf); clo..
High-level API struct info { char ch[10]; int digit; }; int write_info(struct info *i) { FILE *fp = NULL; if (!(fp = fopen("/test", "w"))) return -1; if (fwrite(i, sizeof(struct info), 1 fp) != 1) { fclose(fp); return -1; } fclose(fp); return 0; } int read_info() { FILE *fp; struct info i; if (!(fp = fopen("/test", "r"))) return -1; if (fread(i, sizeof(struct info), 1) != 1) { fclose(fp); return..
Signal 인터럽트는 언제 발생할지 알 수 없다. 따라서 이를 비동기적(Asynchronous) 이벤트라고 하며, 시그널은 이를 처리하기 위한 메커니즘이다. 인터럽트는 크게 H/W, S/W 인터럽트로 나뉜다. 시그널은 S/W 인터럽트이다. 시그널 이벤트를 받더라도, 시그널에 대한 처리를 정의하지 않으면 무시된다. 단 `SIGKILL`, `SIGSTOP`은 무시할 수 없다. 시그널의 종류는 `kill -l`을 통해 확인할 수 있다. fork, exec에 따라 시그널은 다르게 동작할 수 있다. fork를 하게 되면 부모 프로세스를 그로 복제하므로, 동일한 시그널을 상속받는다. exec의 경우 SIGTERM은 상속받지 않는다. SIGKILL #!/bin/bash if [ -z $1 ]; then echo "..
면접을 준비하기 위해서, 강의, 스터디 등 다양한 방법을 통해 준비할 수 있다고 생각한다. 개인적으로 면접이라는 것은 나를 어필하기 위함이며 경우에 따라 나와 말이 잘 통하는 면접관, 말이 통하지 않는 면접관을 만날 수 있을 것이다. 지원자들의 능력이 비슷하다면, 면접으로 인해 결과가 좌우될지도 모르므로 면접 준비는 중요하다고 생각한다. 내가 하고 싶지 않은 직무였지만, 직장을 가져야 해서 나를 구겨 넣으면서 보던 면접과 내가 정말 하고 싶은 일이며 가고 싶은 직장이었던 곳에서 면접을 본 경험을 바탕으로 준비 과정과 생각들을 정리해보고자 한다. 면까몰 면까몰이라는 단어는 `면접 까보기 전에는 몰라`라는 말이다. 이 말은 본인은 충분히 답변도 잘했고, 나이스한 상황이었다고 생각함에도 불구하고 면접관이 판단..
문제 21610번: 마법사 상어와 비바라기 마법사 상어는 파이어볼, 토네이도, 파이어스톰, 물복사버그 마법을 할 수 있다. 오늘 새로 배운 마법은 비바라기이다. 비바라기를 시전하면 하늘에 비구름을 만들 수 있다. 오늘은 비바라기 www.acmicpc.net 문제 풀이 8 방향 탐색과, 대각선 4방향 탐색을 사용하여서 문제의 요구사항에 따라 그대로 구현하면 정답을 찾을 수 있다. 모든 구름이 d 방향으로 s칸 만큼 이동한다. 격자는 1번과 N번 열, 1행과 N번 열이 연결되어 있다. 이런 조건이 나오면 모듈러(%) 연산을 활용하면 된다. 각 구름에서 비가 내려 구름이 있는 칸의 바구니에 저장된 물의 양이 1 증가한다. 비를 내린 구름은 모두 사라진다. 2에서 물이 증가한 칸(구름이 있었 던 칸)에 물복사버..
문제 17822번: 원판 돌리기 반지름이 1, 2, ..., N인 원판이 크기가 작아지는 순으로 바닥에 놓여있고, 원판의 중심은 모두 같다. 원판의 반지름이 i이면, 그 원판을 i번째 원판이라고 한다. 각각의 원판에는 M개의 정수가 적혀 www.acmicpc.net 문제 풀이 원판이 주어질 때, 원판은 서로 겹쳐져 있다. 이때, 원판을 명령어 때라 회전하고 인접한 수가 같은 수인 경우 제거하는 방식을 취한다. 그 후, 명령을 수행 후 최종적으로 원판에 남은 수를 합하여 출력하면 문제의 답을 찾을 수 있다. 문제를 풀면서 주의할 점은 다음과 같다. 인접한 수를 제거하면 되고, 예제만 보고 나서 대충 풀어서 이상한 곳에서 또 헤매다가 시간을 보냈다. x, d, k가 주어지면 원판 중 x의 배수인 경우 다 같..