목록CS (20)
영우
도커는 격리되어있으며 가상화된 실행환경을 제공하는 플랫폼입니다. 격리되어있다는 것은 호스트 PC의 환경 혹은 도커로 실행한 프로세스간 서로의 환경에 영향을 받지 않고 실행할 수 있다는 의미이고, 가상화된 실행환경이란 물리적인 실행환경(OS, 애플리케이션 의존성)을 논리적인 실행환경(컨테이너)으로 변환한 환경을 의미합니다. 즉 논리적인 실행환경을 제공하기 때문에 특정 물리적인 실행환경에 종속되지 않고 도커가 설치된 어떠한 물리적인 환경에서도 일관된 실행결과를 보장합니다.도커를 사용하는 이유도커만 깔려있으면 실행환경과 관계없이 동일한 실행결과를 보장받을 수 있어 배포가 용이합니다. 예를들면 Ubuntu, Node 20환경에서 특정 애플리케이션을 실행하고자하면, 실행환경을 DockerFile에 코드로 명시해 ..
segmentation fault란 뭘까요?segmentation fault(이하 segfault)는 메모리 보호를 갖춘 하드웨어(MMU)에 의해 발생하는 오류로, OS에 프로세스가 제한된 메모리 영역에 접근을 시도했음을 알리는것입니다.운영체제는 segfault를 받으면 해당 프로세스에게 SIGSEGV 시그널를 보내 segfault가 발생했음을 알립니다.제한된 메모리 영역에 접근을 시도한것은 어떤 경우인가요?프로그램이 사용할 수 있는 주소공간 외부에 접근하려 하거나, 프로그램의 주소공간 중 읽기전용 segment에 쓰기를 시도하면 segfault 입니다.paging으로 메모리를 관리하는 경우에도 segmentation fault 인가요?네. paging으로 메모리를 관리하더라도 page fault가 발생..
왜 그럴까요?함수형 프로그래밍에서는 데이터가 불변이라 업데이트가 일어나지 않기 때문에 스레드가 어떤 시점에서 데이터를 읽더라도 같은 데이터임을 보장받을 수 있습니다.함수형 프로그램에서는 순수함수를 사용하기 때문에 외부상태에 관계없이 같은 인자로 함수를 실행하면 같은 결과를 보장받습니다.함수형 프로그래밍이란 무엇인가요?함수형 프로그래밍은 프로그램을 함수로 구성하는 패러다임입니다.함수를 순수함수로 작성합니다.순수함수는 부수효과가 없는 함수로, 함수의 실행이 외부에 영향을 끼치거나 영향을 받지 않습니다.평가시점과 무관하게 같은 입력에서 항상 같은 결과를 반환합니다.문(statement)을 사용해 값을 업데이트하지 않고, 표현식(expression)을 사용해 값을 다른 값에 매핑해 로직을 작성합니다.명령형 프로..
프로세스 간 통신은 무엇인가요?프로세스들은 다른 프로세스와 데이터를 공유해야할 수 있습니다. 예를들면 웹 백엔드 서버 프로세스는 사용자의 요청을 처리하기 위해 데이터베이스 프로세스와 통신할 수 있습니다. 혹은 단일 프로세스가 처리하기 힘든 연산을 더 빠르게 처리하기 위해 여러 프로세스가 동시에 연산해 더 빠르게 연산할 수도 있습니다. 이렇게 다른 프로세스와 데이터를 공유하는 프로세스들을 협력적인 프로세스라고 합니다. 당연히 이 프로세스들은 데이터를 교환할 수 있는 장치가 필요하고 이를 IPC(inter process comminication)라고 합니다.IPC 모델은 크게 두가지가 있습니다. 메모리 공간을 공유하는 공유 메모리 모델, 운영체제의 도움을 받아 메시지를 교환하는 메시지 전달 모델입니다.공유 ..
들어가며 C나 C++같은 고급언어로 소스코드를 작성하고, 소스코드를 컴파일해 실행파일을 만들고, 실행파일을 실행해 프로그램을 사용해왔습니다. 이런 과정들이 복잡하게 생각하지 않아도 될 만큼 잘되어있어서 내부적으로 어떤 일을 하는것인지 잘 알지 못했습니다. 오늘은 미지의 세계인 소스코드부터 실행까지 어떤 일이 일어나는지 알아보았습니다.(요람에서 무덤까지를 패러디했습니다. ㅋㅋ..) 전체적인 절차 고급언어로 작성한 소스코드로부터 시작합니다. 이를 컴파일러가 기계어에 보다 가까운 어셈블리어로 만들어 줍니다. 여전히 어셈블리어는 기계어가 아니라서 실행시킬 수 없습니다. 그렇기 때문에 어셈블리 코드를 바탕으로 어셈블러가 이진파일인 목적파일로 만들어줍니다. 그리고 링커가 목적파일들과 외부 라이브러리를 링킹해 하나의..
엘라스틱서치란 뭘까? ELK스택의 중심에 있는 분산된 검색 및 분석엔진입니다 ELK스택은 아래에서 다시 설명하겠습니다. 모든 유형의 데이터에 대해 거의 실시간 검색 및 분석을 제공합니다. 구조화된 데이터이든, 구조화되지 않은 데이터이든 빠른 검색을 지원하는 방향으로 효율적으로 저장하고 인덱싱합니다. 단순한 데이터 검색을 넘어 데이터의 추세와 패턴을 발견할 수 있습니다. 주요 사용사례 웹사이트 검색 로깅 및 로그분석 인프라 지표 및 컨테이너 모니터링 엘라스틱서치로 할 수 있는일 실시간으로 1초이내에 인덱스가 생성되고 매우 빠른 전문검색을 할 수 있습니다. REST API로 쉽게 데이터 인덱싱과 검색이 가능합니다. 실시간으로 데이터를 분석하고 시각화 할 수 있습니다. 문서를 분산해 저장합니다. 데이터가 증가..