Study: ComputerScience(CS)
[Linux] 리눅스 *.so.* 파일 경로: 동적 라이브러리 링킹하는 방법 (feat. 정적(static) vs 동적(dynamic))
💡 본 문서는 '동적 라이브러리 링킹하는 방법'에 대해 정리해놓은 글입니다. 리눅스에서 간혹 어떠한 프로그램을 설치하거나 실행할 때, 무슨무슨 so 파일(*.so), 가령 libX11.so.6 파일(*.so.*)이 없다고 할 때가 발생합니다. 이 문제에 대한 개념 및 원인과 해결책에 대해 정리하였으니 참고하시기 바랍니다. 1. 동적 라이브러리 1.1 정적 VS 동적 라이브러리 정적 라이브러리의 경우: 프로그램을 컴파일할 때 실행파일에 포함되어 배포됩니다. 속도가 빠르다는 장점을 가지고 있지만, 실행파일의 크기가 커지고 메모리를 상당히 차지하게 됩니다. 동적 라이브러리의 경우: 실행 프로그램에서 필요할 때만 라이브러리를 메모리에 올립니다. 여러 명령어에서 사용되는 동일한 부분을 특정 디렉터리를 만들어 모아..
[Linux] 리눅스 cURL 명령어: 다양한 프로토콜로 웹 요청 / 원하는 파일을 내려받자.
cURL을 이용하여 다양한 통신 프로토콜에 데이터를 전송할 수 있습니다. 일반적으로 웹 서비스 개발 시 테스트 및 디버깅 용도로 많이 사용되고 cmd에서 실행 가능하므로 웹 요청에 필요한 배치 작업을 자동화할 수 있습니다. 옵션 short long Discription etc -k --insecure https 사이트를 SSL certificate 검증없이 연결한다. wget 의 --no-check-certificate 과 비슷한 역할 수행 -l --head HTTP header 만 보여주고 content 는 표시하지 않는다 -D --dump-header 에 HTTP header 를 기록한다. -L --location 서버에서 HTTP 301 이나 HTTP 302 응답이 왔을 경우 redirection ..
[Linux] 리눅스 프로세스 프로그래밍: fork() 자식 프로세스 생성하기
프로세스 프로그래밍 (Process Programming) 프로세스 생성과 종료 함수 의미 fork 자신과 완전히 동일한 프로세스를 생성한다. exec 계열 지정한 실행 파일로부터 프로세스를 생성한다. exit 종료에 따른 상태 값을 부모 프로세스에게 전달하며 프로세스를 종료한다. atexit exit로 프로세스를 종료할 때 수행할 함수를 등록한다. _exit atexit로 등록한 함수를 호출하지 않고 프로세스를 종료한다. wait 자신의 자식 프로세스가 종료할 때까지 대기 상태가 된다. waitpid 지정한 자신의 자식 프로세스가 종료할 때까지 대기 상태가 된다. 프로세스 속성과 환경 변수 함수 의미 getpid, getppid 자신(또는 부모)의 프로세스 식별 번호를 구한다. getpgrp, setp..
[Web] 웹 브라우저에 URL을 입력하면 어떤 일이 생기나요? (feat. Amazon)
웹 브라우저에 URL을 입력하면 어떤 일이 생기나요? 여러분은 매일 웹 브라우저를 열고 소셜 미디어, 뉴스, 전자 상거래 사이트 등 즐겨 찾는 웹 사이트를 탐색합니다. 주소창에 URL을 입력하거나 페이지 링크를 클릭하면 해당 페이지로 이동합니다. 그런데, 그 뒷단에서 무슨 일이 일어나는지 생각해 본 적이 있나요? 이 글에서는 웹 브라우저에 URL을 입력하고 Enter 키를 누르면 어떻게 되는지 살펴보겠습니다. SW 엔지니어 인터뷰에서 나오는 단골 질문이기도 합니다. 실제 인터뷰에서는 이를 살펴보는 과정에서 웹 브라우저, PC의 운영 체제, 인터넷 서비스 제공업체, 웹 사이트를 호스팅 하는 서버, 해당 서버에서 실행되는 서비스에 대한 지식 등이 약간 필요합니다. 이를 통해서, 실제 문제가 발생할 수 있는 ..
[Linux] 리눅스 네트워크 상태 확인 (feat. ping, netstat...)
💡 본 문서는 '리눅스에서 네트워크 상태를 확인하기 위한 명령어'에 대해 정리해놓은 글입니다. 가장 기본적으로 사용하는 ping부터 해당 IP의 port가 개방되어 있는지 확인하는 tcping, TCP listening 상태릃 확인하는 netstat까지 다루고 있으니 참고 부탁드립니다. 추가로 Linux에서 종종 사용하는 50+가지 명령어를 정리해놓은 포스트 중 네트워크 부분을 참고하시면 유용한 명령어를 확인하실 수 있습니다. 1. 네트워크 ip 동작 확인 (ping) 1.1 ping (Packet INternet Groper)란? 대상 컴퓨터를 향해 일정 크기의 패킷을 보낸 후, 대상 컴퓨터가 이에 대한 응답 메세지를 보내면 이를 수신하여 대상 컴퓨터 동작 여부 혹은 네트워크 상태를 파악하는 도구 1...