▲neo 4달전 | parent | favorite | on: GN⁺: 포크 없이 Bash로 작성된 ps aux(github.com/izabera)Hacker News 의견 컴퓨터 과학에서 가장 어려운 문제는 정렬 작업임 간단해 보이는 함수도 실제로는 매우 오래 걸림 여러 프로그래밍 언어에서 열 정렬 함수를 작성하는 것은 항상 어려움 Python의 f-strings와 패딩 기능을 사용해도 복잡하고 읽기 어려운 코드가 됨 예제 코드 작성 중에도 여러 버그를 수정해야 했음 bash/Linux 관련 지식을 요구하는 인터뷰 질문 예시 모든 PID가 사용 중인 상황에서 새로운 프로세스를 생성할 수 없을 때 해결 방법을 묻는 질문 /proc/[pid]/ 파일 시스템에서 PID 공간을 소모하는 프로세스를 확인함 kill은 bash의 내장 명령어로 새로운 프로세스를 생성하지 않고도 사용할 수 있음 부모 프로세스를 찾아서 중지시키면 문제를 해결할 수 있음 파이프나 서브셸을 생성하지 않는 깔끔한 스크립트 작성 가능함 2011년에 미국의 대형 기술 회사에서 SRE 역할 인터뷰 경험 MS Office의 온라인 브라우저 기반 대안을 만드는 회사였음 전화 인터뷰 후 bash로 netstat 대체 프로그램 작성 과제 부여받음 당시에는 /proc/에서 소켓 정보를 찾는 방법을 몰라서 ps와 fuser 대체 프로그램을 작성함 인터뷰어가 이를 수용했고, 이후 현장 인터뷰로 진행됨 이 시나리오가 현실에 기반한 것인지 궁금함 bash@libera의 Izabera는 bash 전문가 중 한 명임 지난 10년 동안 많은 것을 배움 깔끔한 bash 코드 예시 대부분의 bash 코드는 비효율적이지만, 이 코드는 좋은 예시임 모든 PID가 사용 중인 상황에서 새로운 프로세스를 생성할 수 없을 때 해결 방법을 묻는 질문 POSIX 쉘에서는 bash 스크립트가 호환되지 않음 bash 3.2에서는 작동하지 않지만 bash 4.2에서는 작동함 예제 코드에서 printf의 형식 문자 오류 발생 procps가 설치되지 않은 시스템에서 프로세스를 나열하는 더 나은 사용 사례 제안 bash로 리스너와 클라이언트를 작성할 수도 있지만, 실제로는 추천하지 않음
Hacker News 의견
컴퓨터 과학에서 가장 어려운 문제는 정렬 작업임
bash/Linux 관련 지식을 요구하는 인터뷰 질문 예시
/proc/[pid]/
파일 시스템에서 PID 공간을 소모하는 프로세스를 확인함kill
은 bash의 내장 명령어로 새로운 프로세스를 생성하지 않고도 사용할 수 있음2011년에 미국의 대형 기술 회사에서 SRE 역할 인터뷰 경험
netstat
대체 프로그램 작성 과제 부여받음/proc/
에서 소켓 정보를 찾는 방법을 몰라서ps
와fuser
대체 프로그램을 작성함bash@libera의 Izabera는 bash 전문가 중 한 명임
깔끔한 bash 코드 예시
모든 PID가 사용 중인 상황에서 새로운 프로세스를 생성할 수 없을 때 해결 방법을 묻는 질문
bash 3.2에서는 작동하지 않지만 bash 4.2에서는 작동함
printf
의 형식 문자 오류 발생procps가 설치되지 않은 시스템에서 프로세스를 나열하는 더 나은 사용 사례 제안
bash로 리스너와 클라이언트를 작성할 수도 있지만, 실제로는 추천하지 않음