기본 콘텐츠로 건너뛰기

글

7월, 2023의 게시물 표시

Node.js 웹 서버가 JAVA 웹 서버보다 성능이 뛰어날까?

Node.js 웹 서버가 JAVA 웹 서버보다 성능이 뛰어날까? Node.js 웹 서버가 JAVA 웹 서버보다 성능이 뛰어나다는 소문에 대한 진실을 파해쳐겠다. 이 글에서는 해당 소문을 재시하는 다양한 사람들의 근거와 진실 여부를 파악하여 결론을 도출하겠다. 1. 많은 사람들이 그 이유를 제대로 설명하지 못한다. 아래는 여러 블로그 글들을 읽어보고 가장 많이 사람들이 근거로 드는 내용을 정리 한 것이다. Node.js는 싱글 쓰레드 기반의 논블로킹 방식의 I/O를 사용하고, 멀티 쓰레드와 블로킹 방식 I/O를 사용하는 자바 웹 서버보다 빠르다. 왜냐하면 멀티 쓰레드 방식은 컨텍스트 스위치 오버헤드가 있기 때문이다??? 정말 어이없다. 이는 더 성능이 빠른 이유가 될수 없고, 그나마 싱글 쓰레드 기반인 Node.js가 멀티 쓰레드 기반인 자바 웹 서버 처럼 여러 요청에 대한 동시적인 처리를 할 수 있는 이유가 될 뿐, 이 사실 자체로는 더 나은 성능을 나타내는 이유가 될 수는 없다. 생각해보라, 논블로킹 방식의 I/O를 지원하는 것도 결국 Node.js가 내부적으로 멀티 쓰레드를 구현하고 있다라는 의미 밖에 안되고, 이도 마찬가지로 자체적인 컨텍스트스위칭이 필요할 것이다. 즉, 단순히 논블로킹 싱글 쓰레드라서 블로킹 멀티 쓰레드보다 빠르다는건 논리적으로 근거가 빈약하다 2. 내가 여러 기술 스펙들을 읽어보고 정리해 보았다 개인적인 주장이니 어디가서 정답인양 말하지 말라. 2.1. NodeJS가 비동기 I/O 시스템 콜의 활용성이 더 좋다. 본래 태초에 OS가 등장 했을 때는 I/O 시스템 콜 [1] 은 동기 요청 방식만 제공하였었다. 프로그램은 I/O요청에 대한 비동기적인 처리를 위해 별도의 쓰래드를 생성하는 것이 일반적이 었다. 그리고 이러한 비동기 방식의 사용자 I/O 요청이 보편화 되자 이를 표준화한 POSIX 1.b의 AIO 도 등장하여 이를 따르는 많은 OS들에서 더욱 쉽게 비동기 I/O 요청을 사용할 수 있게 되었...

전세보증보험

전세보증보험 의 종류 와 특징 1. 전세보증보험 은 전세보증금반환보증 이다 정식 명칭은 전세보증금반환보증 이다. 그러나 임차인에게 전세 사기등의 사고가 발생했을 시 전세보증금의 반환을 보장해주는 일종의 보험 처럼 작용하기 때문에 임차인들 사이에서 주로 전세보증보험 이라는 별명으로 불리는 듯 하다. 전세보증보험 을 들면 계약 만기 시 전세금을 돌려받지 못하는 사고가 발생했을 때, 일정 조건하에 보장된 금액만큼을 임대인을 대신해서 임차인에게 대위변제 해주고 임차인을 대신해서 임대인에게 해당 금액만큼의 구상권을 행사하게 된다. 2. 전세보증보험 은 전세자금보증 과는 다르다 흔히, 은행에서 전세 대출을 받기위해 심사를 통해 가입하게되는 전세자금보증 은 대출 만기시 임차인이 대출금을 상환하지 못하는 사고가 터졌을 때 기관이 임차인을 대신해 보증된 금액만큼의 전세보증금 을 대위변제해주고 임차인에게 그 금액에 대한 구상권을 행사하게 된다. 임차인이 임대인으로 부터 전세보증금 을 돌려받았는지 여부는 중요하지 않고 오로지 은행의 자산만 보호해주는 보험인 것이다. 그러나 전세자금보증 을 임차인이 대출시 가입할 수 밖에 없는 이유는 가입을 안하면 은행이 전세자금대출 특유의 높은 한도의 저금리 대출 을 해줄수 있는 이유이기 때문에 가입을 하고 보증할 수 있는 금액만큼 대출해주게 되는 것이다. 3. 전세보증보험 의 종류 전세보증보험 을 제공하는 기관은 크게 3가지 이며, 각각 자신만의 이름이 있다. HUG : 전세금반환보증 HF : 전세지킴보증 SGI : 전세금보장신용보험 4. 각 전세보증보험 별 특징 *목적물 유형별, 보증금액별 세부 조건등은 미기입 기관 보증료율 보증한도(보증목적물) 보증한도(지역별) HUG 0.128% ~ 0.154% 주택가격 x 담보인정비율(90%) – 선순위채권 수도권 7억, 이외 5억 HF 0.04% 주택가격의 90% - 선순위채권 총액(선순위근저당권설정액과 선순위임대차보증...

Github Page's Dependencies

Github Page가 제공하는 의존성들 1. Github Page가 제공하는 의존성을 왜 알아야하는가 Github Page를 사용할 때, 사용자는 Github Page가 기본적으로 재공하는 Gem 패키지들만 사용해야한다. Github Page의 빌드 서버에 설치된 Gem 패키지 목록을 관리하거나 사용자가 제공한 Gemfile내의 의존성 설치를 위한 Bundle install을 실행할 수 있는 옵션을 제공하지 않는다. 서버 기능, 성능, 용량에 제한을 두기위해서는 어쩔수 없는 조치이기도 하다. 따라서 우리는 Github Page가 제공하는 의존성을 알아야한다. 2. Github Page가 제공하는 의존성들 다음 링크에서 확인 가능하다. https://pages.github.com/versions/ 현재 기준으로 다음과 같은 의존성을 제공한다. Dependency Version jekyll 3.9.3 github-pages-health-check 1.17.9 github-pages 228 html-pipeline 2.14.3 jekyll-avatar 0.7.0 jekyll-coffeescript 1.1.1 jekyll-commonmark-ghpages 0.4.0 jekyll-default-layout 0.1.4 jekyll-feed 0.15.1 jekyll-gist 1.5.0 jekyll-github-metadata 2.13.0 jekyll-include-cache 0.2.1 jekyll-mentions 1.6.0 jekyll-optional-front-matter 0.3.2 jekyll-pagina...