SlideShare ist ein Scribd-Unternehmen logo
1 von 31
JAVA (Spring)
vs
Javascript (Node.js)
1. 언어별 구조 및 특징 – Node.js
2. 언어별 구조 및 특징 – JAVA
3. 성능 벤치마크
4. 결론
1. 언어별 구조 및 특징
Node.js
구조 및 특징
1. 싱글 쓰레드, 이벤트 루프
2. 동적 타입언어
3. LIBUV 이용, I/O 작업에 특화
(Network I/O, Database I/O, File I/O, etc...)
4. NPM의 수많은 모듈 (But. 검증되지 않은 모듈 또한 많음)
5. 한 언어만으로 Client(Web) - Server 프로그래밍 가능
(React Native 를 이용 모바일도 개발 가능)
Node.js
구조
1. 싱글 쓰레드, 이벤트 루프
Node.js
클라이언트의 요청이 들어오면 Event Queue로
들어온 요청은 Event Loop 에서 처리
Blocking I/O 가 일어나게 되면 Worker Thread
(Internal Thread) 에 의해 별도 처리
완료된 작업은 Event Loop 에 의해 응답
구조
1. 싱글 쓰레드, 이벤트 루프
Node.js
요청을 싱글 쓰레드에서 처리하므로
요청의 로직이 오래 걸리는 경우
뒤 따르는 요청을 처리하지 못한다.
특징
2. 동적 타입언어
Node.js
Interpreter 언어 (JIT 에 의해 컴파일 될 수 있음)
타입이 실행 중 결정 (실행 중 타입 오류가 발생하여 타입체크 필요)
보완하기 위한 TypeScript 등이 존재
… 그만큼 자유롭게 쓸 수 있다(?)
특징
3. LIBUV 이용, I/O 작업에 특화
Node.js
특징
4. NPM(or Yarn) 의 수많은 모듈 (But. 검증되지 않은 모듈 또한 많음)
Node.js
NPM 에서는 매주 120억 건의 다운로드가 발생 (2019년 10월 기준)
관리가 되고 사용자가 많은 모듈은 안정성이 확보되었으나
매우 많은 모듈이 생기고 사라지는 만큼 일정량의 다운로드 수를 가진
안정적인 모듈을 선택해야 함
특징
5. 한 언어만으로 Client(Web) - Server 프로그래밍 가능
Node.js
2019년 까지
8가지 이상의 웹 백앤드 프레임워크
대표적으로 Express, Next.js, Koa 등…
특징
5. 한 언어만으로 Client(Web) - Server 프로그래밍 가능
Node.js
모바일, 데스크탑과 프론트앤드 개발이 가능한 프레임워크들
대표적으로 React Native(Android, iOS), Electron(Windows, MacOS), React, Vue.js 등…
활용
작은 기업에서는 빠르게 개발하기 위해 많이 사용 (생산성 ↑)
대기업 중에서는 주로 특정 부분만 Node.js 를 사용함
(ex. Netflix – https://www.youtube.com/watch?v=B90OabhYJpA&t=12m11s)
Node.js
2. 언어별 구조 및 특징
JAVA
구조 및 특징
1. 멀티 쓰레드 프로그래밍
2. 정적 타입언어 (컴파일 언어)
3. 객체지향 설계가 잘되어 Business Logic 에 특화
4. Java NIO 를 이용 I/O 성능을 올릴 수 있음 (ex. Netty)
5. 검증된 Spring Framework 가 있음
6. 많은 인력 Pool
7. 한 언어만으로 Mobile - Server 프로그래밍 가능
JAVA
구조
1. 멀티 쓰레드 프로그래밍
JAVA
클라이언트의 요청이 들어오면 쓰레드 할당
개별 쓰레드에서 요청 처리
Blocking I/O 가 일어나게 되면 쓰레드는 대기
상태로 빠짐
응답 후 쓰레드 풀에 쓰레드 반환
구조
1. 멀티 쓰레드 프로그래밍
JAVA
동시에 대량으로 발생하는 클라이언트의 요청을
처리하는 것이 어렵다. (쓰레드 개수의 한계)
요청마다 쓰레드를 이용하기 때문에 각 요청에 따른
메모리를 사용하게 된다.
클라이언트의 요청은 사용 가능한 쓰레드가 있을 때
까지 기다려야 한다.
Blocking I/O 작업으로 시간이 낭비된다.
특징
2. 정적 타입언어 (컴파일 언어)
JAVA
대부분의 인기 있는 언어 중 상당 수는 컴파일 언어
그 중 2위(약 5년간 1위 였음)
컴파일 시에 타입이 결정
(오타로 인한 문제 발생률 낮음)
Primitive Type 에 대해서는 Type Safe 하지만
Reference Type 에 대해서는 완전히 Type Safe 하지는 않음
특징
3. 객체지향 설계가 잘되어 Business Logic 에 특화
JAVA
대표적인 객체지향 프로그래밍 언어
장점 : 재사용성, 생산성, 유지보수의 용이성
단점 : 실행 속도, 처음 개발 시 설계까지 오래 걸림
비즈니스 로직?
하나의 프로젝트나 어플리케이션은 로직(Logic)이라고 불리는 수많은 논리적 흐름으로 이루어
집니다. 데이터를 읽어오거나 저장하고, 이 데이터를 가공하여 사용자에게 의미있는 정보를 보
여주거나 네트워크를 통해 요청을 보내고 받는 행위들은 모두 로직이 모여서 이루어낸 결과물
입니다. 이들 중에서 어플리케이션이 제공하고자 하는 서비스나 업무를 직접적으로 구현하는
로직을 비즈니스 로직(Business Logic)이라고 부릅니다.
특징
4. Java NIO 를 이용 I/O 성능을 올릴 수 있음 (ex. Netty)
JAVA
비동기 Non-blocking 개발을 할 수 있음
Netty 는 Node.js 의 이벤트 루프와 비슷한 구조로 동작
구글 gRPC 에서도 내부적으로 Netty 를 사용
특징
5. 검증된 Spring Framework 가 있음
JAVA
JAVA 엔터프라이즈 개발을 위한 오픈소스(Open Source) 어플리
케이션 프레임워크
전자정부 표준프레임워크의 기반
Spring Security, JDBC, JPA, Cloud, AMQP 등 상용 서비스를 위한
기본 라이브러리들이 개발되어 있음
특징
6. 많은 인력 Pool
JAVA
잡코리아와 사람인에서 웹 개발자를 검색하면
대부분 JAVA 개발자
그만큼 경력자와 신입을 뽑기 수월함
잡코리아
사람인
특징
7. 한 언어만으로 Mobile - Server 프로그래밍 가능
JAVA
JAVA 를 이용 Spring (Server) – Android (Client) 개발이 가능
사실상 JVM 이 올라갈 수 있는 어느 곳이든 사용 가능함
활용
대부분 대기업에서 주 서비스 개발 언어로 JAVA 를 선택
JAVA
3. 성능 벤치마크
성능 비교
Node.js (14.4.0) JAVA (14.0.1)
Response(s) Memory (KB) CPU (%) Response(s) Memory (KB) CPU (%)
Regex-redux 4.27 1,064 4/2/75/47 5.75 647 82/88/77/77
Mandelbrot 4.01 86 98/98/99/98 4.14 71 99/99/98/98
Spectral-norm 1.68 62 89/90/91/90 1.57 39 96/94/95/95
Fannkuch-redux 12.10 57 98/98/99/99 10.61 34 99/99/99/98
N-body 8.35 35 1/100/0/0 6.74 36 100/1/0/0
Reverse-complement 2.19 1,340 48/55/50/50 1.58 677 55/74/48/61
Pidigits 1.32 36 3/2/8/100 0.94 36 98/5/2/9
Fasta 2.04 67 76/85/75/74 1.27 45 82/83/73/70
Binary-trees 5.83 1,204 86/82/84/85 2.48 2,496 78/91/74/75
K-nucleotide 15.06 398 76/60/48/92 4.57 485 77/74/83/82
2 1 4 4
출처 : https://benchmarksgame-team.pages.debian.net/benchmarksgame/fastest/javascript.html
이 벤치마크에서 JAVA 가 일부의 경우를 제외하고 대부분은 Node.js 보다 조금 빨랐다.
또한 Node.js 는 속도가 빠르더라도 계산하기 위해 2배 가까이 메모리를 사용하는 경우도 보였다.
알고리즘
성능 비교
JAVA Node.js
Nodejs 91,799 play2-java-jpa-hikaricp-netty 85,449
nodejs-mysql 50,692 Spring 27,339
express-mysql 44,166 Spring-webflux-jdbc 22,528
출처 : https://www.techempower.com/benchmarks/#section=data-r19&hw=ph&test=fortune
프레임워크 별 최고 초당 응답률 비교
초당 응답률 1
JAVA Node.js
Nodejs 3,680 Spring 9,099
nodejs-mysql 1,573 Spring-webflux-jdbc 9,349
express-mysql 1,413 play2-java-jpa-hikaricp-netty 5,434
출처 : https://www.techempower.com/benchmarks/#section=data-r18&hw=ph&test=update
벤치마크에서 보이듯 최고 속도에 대해서
는 Node.js 가 우세하지만
Netty 를 쓰는 경우 JAVA 보다 느림
데이터 업데이트 속도의 경우 JAVA 와 몇
배 이상 차이가 나기 시작한다
프레임워크 별 데이터 업데이트 속도 비교
성능 비교
출처 : https://www.techempower.com/benchmarks/#section=data-r18&hw=ph&test=update
단순 JSON 응답이나 피보나치 수열 계산에서
Node.js 의 성능이 살짝 우세하다
또한 1 Core (저사양) 에서는 5배 가량 더 빠른 것으로 나타난다.
단순 리스팅의 경우
Node.js 가 3배 가량 빨랐다.
초당 응답률 2
4. 결론
벤치마크는
벤치마크일 뿐이다.
결론
위 벤치마크 조차 서로 다른 결과가 나왔기 때문에 실제 적용
된 어플리케이션의 성능은 또 다를 수 있다.
Node.js 는 마이크로 서비스와 궁합이 좋음
JAVA 는 대규모 서비스 개발에 좋음
I/O 및 커널 사용이 잦은 어플리케이션의 경우 Node.js 를 이용
비즈니스 로직 등이 복잡한 환경에서는 그에 적합한 언어를 사용
(그러나 결국 언어보단 개발자의 역량이 제일 중요하다…)
언어 선택은?
언어별 장단점이 있음
. Reference
Web Framework Benchmarks - https://www.techempower.com/benchmarks/#section=data-r19&hw=ph&test=fortune
Node js versus Java fastest programs - https://benchmarksgame-team.pages.debian.net/benchmarksgame/fastest/javascript.html
[Node.js] 자바와 Node.js 의 성능 & 속도 비교 - https://crazia.tistory.com/entry/Nodejs-자바와-Nodejs-의-성능-속도-비교
Node.js at PayPal - https://medium.com/paypal-engineering/node-js-at-paypal-4e2d1d08ce4f
php, nodejs 속도 벤치마크 - https://blog.codens.info/1868
Web REST API Benchmark on a Real Life Application - https://medium.com/@mihaigeorge.c/web-rest-api-benchmark-on-a-real-life-application-ebb743a5d7a3
빠르게 서비스를 개발할 수 있는 Node.js - https://d2.naver.com/helloworld/4994500
JAVA 개발자가 시작하는 NodeJS - https://www.slideshare.net/lahuman1/java-nodejs-196972795
정적타입vs동적타입?? 단순한 언어가 최고!! - https://hamait.tistory.com/845?category=128262
왜 자바 Spring만 뽑나요? 꼭 배워야 하나요? - https://seolin.tistory.com/119
Node.js와 Java와의 서로다른 차이 - https://lts0606.tistory.com/91
Node.js vs Java 구조적 차이 :: 마이구미 - https://mygumi.tistory.com/154
Node JS Architecture – Single Threaded Event Loop - https://www.journaldev.com/7462/node-js-architecture-single-threaded-event-loop
나라별 구인 통계 - http://tech.trenbe.com/?p=515
NODE.JS 글로벌 기업 적용 사례 그리고, real-time 어플리케이션 개발하기 - https://www.slideshare.net/JohnKim0331/ms-meltingpot-seminar
Node.js의 사용 - 기업에서 노드를 사용하는 방법 - https://code-daniel.tistory.com/65
넷플릭스 Node.js 활용 사례1 - https://www.youtube.com/watch?v=B90OabhYJpA&t=12m11s
넷플릭스 Node.js 활용 사례2 - https://www.youtube.com/watch?v=p74282nDMX8&feature=youtu.be&t=14m25s
자바스크립트 프레임워크 통계 - https://2019.stateofjs.com/ko/
티오베 통계 - https://www.tiobe.com/tiobe-index/
[Spring] 스프링(Spring) 정의 및 특징 정리 - https://goddaehee.tistory.com/156
Netty 시작하기 - http://hatemogi.github.io/netty-startup
Zuul's Journey to Non-Blocking - https://www.slideshare.net/artgon/zuuls-journey-to-nonblocking
견고한 node.js 프로젝트 설계하기 - https://velog.io/@hopsprings2/견고한-node.js-프로젝트-아키텍쳐-설계하기
인프런 JAVA 개발자 로드맵 - https://www.inflearn.com/roadmaps/12
위키백과 : 비즈니스 로직 - https://ko.wikipedia.org/wiki/비즈니스_로직
2019년과 이후 JavaScript의 동향 – 브라우저 밖의 JavaScript 1 - https://d2.naver.com/helloworld/7700312
npm's Laurie Voss: JavaScript - Who, What, Where, Why and Next | JSConf.Asia 2019 - https://www.youtube.com/watch?v=H8IaDYrv-
3E&feature=youtu.be&t=1165
Spring Tutorial – A Java Framework Providing Efficiency - https://www.edureka.co/blog/spring-tutorial/

Weitere ähnliche Inhalte

Was ist angesagt?

멀티 클라우드 시대의 정보보호 관리체계
멀티 클라우드 시대의 정보보호 관리체계멀티 클라우드 시대의 정보보호 관리체계
멀티 클라우드 시대의 정보보호 관리체계Logpresso
 
Amazon DocumentDB - Architecture 및 Best Practice (Level 200) - 발표자: 장동훈, Sr. ...
Amazon DocumentDB - Architecture 및 Best Practice (Level 200) - 발표자: 장동훈, Sr. ...Amazon DocumentDB - Architecture 및 Best Practice (Level 200) - 발표자: 장동훈, Sr. ...
Amazon DocumentDB - Architecture 및 Best Practice (Level 200) - 발표자: 장동훈, Sr. ...Amazon Web Services Korea
 
Amazon EKS로 간단한 웹 애플리케이션 구축하기 - 김주영 (AWS) :: AWS Community Day Online 2021
Amazon EKS로 간단한 웹 애플리케이션 구축하기 - 김주영 (AWS) :: AWS Community Day Online 2021Amazon EKS로 간단한 웹 애플리케이션 구축하기 - 김주영 (AWS) :: AWS Community Day Online 2021
Amazon EKS로 간단한 웹 애플리케이션 구축하기 - 김주영 (AWS) :: AWS Community Day Online 2021AWSKRUG - AWS한국사용자모임
 
아름답고 유연한 데이터 파이프라인 구축을 위한 Amazon Managed Workflow for Apache Airflow - 유다니엘 A...
아름답고 유연한 데이터 파이프라인 구축을 위한 Amazon Managed Workflow for Apache Airflow - 유다니엘 A...아름답고 유연한 데이터 파이프라인 구축을 위한 Amazon Managed Workflow for Apache Airflow - 유다니엘 A...
아름답고 유연한 데이터 파이프라인 구축을 위한 Amazon Managed Workflow for Apache Airflow - 유다니엘 A...Amazon Web Services Korea
 
M20_Azure SQL Database 最新アップデートをまとめてキャッチアップ [Microsoft Japan Digital Days]
M20_Azure SQL Database 最新アップデートをまとめてキャッチアップ [Microsoft Japan Digital Days]M20_Azure SQL Database 最新アップデートをまとめてキャッチアップ [Microsoft Japan Digital Days]
M20_Azure SQL Database 最新アップデートをまとめてキャッチアップ [Microsoft Japan Digital Days]日本マイクロソフト株式会社
 
[DEVIEW 2021] 1000만 글로벌 유저를 지탱하는 기술과 사람들
[DEVIEW 2021] 1000만 글로벌 유저를 지탱하는 기술과 사람들[DEVIEW 2021] 1000만 글로벌 유저를 지탱하는 기술과 사람들
[DEVIEW 2021] 1000만 글로벌 유저를 지탱하는 기술과 사람들Brian Hong
 
금융 X 하이브리드 클라우드 플랫폼 - 한화생명 디지털 트랜스포메이션 전략 - 김나영 AWS 금융부문 사업개발 담당 / 박인규 AWS 금융...
금융 X 하이브리드 클라우드 플랫폼 - 한화생명 디지털 트랜스포메이션 전략 - 김나영 AWS 금융부문 사업개발 담당 / 박인규 AWS 금융...금융 X 하이브리드 클라우드 플랫폼 - 한화생명 디지털 트랜스포메이션 전략 - 김나영 AWS 금융부문 사업개발 담당 / 박인규 AWS 금융...
금융 X 하이브리드 클라우드 플랫폼 - 한화생명 디지털 트랜스포메이션 전략 - 김나영 AWS 금융부문 사업개발 담당 / 박인규 AWS 금융...Amazon Web Services Korea
 
Amazon OpenSearch Deep dive - 내부구조, 성능최적화 그리고 스케일링
Amazon OpenSearch Deep dive - 내부구조, 성능최적화 그리고 스케일링Amazon OpenSearch Deep dive - 내부구조, 성능최적화 그리고 스케일링
Amazon OpenSearch Deep dive - 내부구조, 성능최적화 그리고 스케일링Amazon Web Services Korea
 
Azure ADにみるエンタープライズ領域におけるフェデレーションとIDaaSの活用
Azure ADにみるエンタープライズ領域におけるフェデレーションとIDaaSの活用Azure ADにみるエンタープライズ領域におけるフェデレーションとIDaaSの活用
Azure ADにみるエンタープライズ領域におけるフェデレーションとIDaaSの活用Naohiro Fujie
 
AWS CloudFront 가속 및 DDoS 방어
AWS CloudFront 가속 및 DDoS 방어AWS CloudFront 가속 및 DDoS 방어
AWS CloudFront 가속 및 DDoS 방어Kyle(KY) Yang
 
Amazon Personalize Event Tracker 실시간 고객 반응을 고려한 추천::김태수, 솔루션즈 아키텍트, AWS::AWS ...
Amazon Personalize Event Tracker 실시간 고객 반응을 고려한 추천::김태수, 솔루션즈 아키텍트, AWS::AWS ...Amazon Personalize Event Tracker 실시간 고객 반응을 고려한 추천::김태수, 솔루션즈 아키텍트, AWS::AWS ...
Amazon Personalize Event Tracker 실시간 고객 반응을 고려한 추천::김태수, 솔루션즈 아키텍트, AWS::AWS ...Amazon Web Services Korea
 
데이터 분석가를 위한 신규 분석 서비스 - 김기영, AWS 분석 솔루션즈 아키텍트 / 변규현, 당근마켓 소프트웨어 엔지니어 :: AWS r...
데이터 분석가를 위한 신규 분석 서비스 - 김기영, AWS 분석 솔루션즈 아키텍트 / 변규현, 당근마켓 소프트웨어 엔지니어 :: AWS r...데이터 분석가를 위한 신규 분석 서비스 - 김기영, AWS 분석 솔루션즈 아키텍트 / 변규현, 당근마켓 소프트웨어 엔지니어 :: AWS r...
데이터 분석가를 위한 신규 분석 서비스 - 김기영, AWS 분석 솔루션즈 아키텍트 / 변규현, 당근마켓 소프트웨어 엔지니어 :: AWS r...Amazon Web Services Korea
 
[AWS Hero 스페셜] Amazon Personalize를 통한 개인화/추천 서비스 개발 노하우 - 소성운(크로키닷컴) :: AWS C...
[AWS Hero 스페셜] Amazon Personalize를 통한 개인화/추천 서비스 개발 노하우 - 소성운(크로키닷컴) :: AWS C...[AWS Hero 스페셜] Amazon Personalize를 통한 개인화/추천 서비스 개발 노하우 - 소성운(크로키닷컴) :: AWS C...
[AWS Hero 스페셜] Amazon Personalize를 통한 개인화/추천 서비스 개발 노하우 - 소성운(크로키닷컴) :: AWS C...AWSKRUG - AWS한국사용자모임
 
[AWS Builders] AWS IAM 을 통한 클라우드에서의 권한 관리 - 신은수, AWS Security Specialist SA
[AWS Builders] AWS IAM 을 통한 클라우드에서의 권한 관리 - 신은수, AWS Security Specialist SA[AWS Builders] AWS IAM 을 통한 클라우드에서의 권한 관리 - 신은수, AWS Security Specialist SA
[AWS Builders] AWS IAM 을 통한 클라우드에서의 권한 관리 - 신은수, AWS Security Specialist SAAmazon Web Services Korea
 
Red Hat Ansible 적용 사례
Red Hat Ansible 적용 사례Red Hat Ansible 적용 사례
Red Hat Ansible 적용 사례Opennaru, inc.
 
d.ts 만들기
d.ts 만들기d.ts 만들기
d.ts 만들기DaeSeon Jeong
 
[AWS Techshift] 파트너 사업을 준비하기 위해 기억해야 할 5가지 - 양승호, AWS 파트너 사업 개발 담당 이사
[AWS Techshift] 파트너 사업을 준비하기 위해 기억해야 할 5가지 - 양승호, AWS 파트너 사업 개발 담당 이사[AWS Techshift] 파트너 사업을 준비하기 위해 기억해야 할 5가지 - 양승호, AWS 파트너 사업 개발 담당 이사
[AWS Techshift] 파트너 사업을 준비하기 위해 기억해야 할 5가지 - 양승호, AWS 파트너 사업 개발 담당 이사Amazon Web Services Korea
 
Wrangling Multiple AWS Accounts with AWS Organizations
Wrangling Multiple AWS Accounts with AWS OrganizationsWrangling Multiple AWS Accounts with AWS Organizations
Wrangling Multiple AWS Accounts with AWS OrganizationsAmazon Web Services
 

Was ist angesagt? (20)

멀티 클라우드 시대의 정보보호 관리체계
멀티 클라우드 시대의 정보보호 관리체계멀티 클라우드 시대의 정보보호 관리체계
멀티 클라우드 시대의 정보보호 관리체계
 
Amazon DocumentDB - Architecture 및 Best Practice (Level 200) - 발표자: 장동훈, Sr. ...
Amazon DocumentDB - Architecture 및 Best Practice (Level 200) - 발표자: 장동훈, Sr. ...Amazon DocumentDB - Architecture 및 Best Practice (Level 200) - 발표자: 장동훈, Sr. ...
Amazon DocumentDB - Architecture 및 Best Practice (Level 200) - 발표자: 장동훈, Sr. ...
 
Amazon EKS로 간단한 웹 애플리케이션 구축하기 - 김주영 (AWS) :: AWS Community Day Online 2021
Amazon EKS로 간단한 웹 애플리케이션 구축하기 - 김주영 (AWS) :: AWS Community Day Online 2021Amazon EKS로 간단한 웹 애플리케이션 구축하기 - 김주영 (AWS) :: AWS Community Day Online 2021
Amazon EKS로 간단한 웹 애플리케이션 구축하기 - 김주영 (AWS) :: AWS Community Day Online 2021
 
아름답고 유연한 데이터 파이프라인 구축을 위한 Amazon Managed Workflow for Apache Airflow - 유다니엘 A...
아름답고 유연한 데이터 파이프라인 구축을 위한 Amazon Managed Workflow for Apache Airflow - 유다니엘 A...아름답고 유연한 데이터 파이프라인 구축을 위한 Amazon Managed Workflow for Apache Airflow - 유다니엘 A...
아름답고 유연한 데이터 파이프라인 구축을 위한 Amazon Managed Workflow for Apache Airflow - 유다니엘 A...
 
M20_Azure SQL Database 最新アップデートをまとめてキャッチアップ [Microsoft Japan Digital Days]
M20_Azure SQL Database 最新アップデートをまとめてキャッチアップ [Microsoft Japan Digital Days]M20_Azure SQL Database 最新アップデートをまとめてキャッチアップ [Microsoft Japan Digital Days]
M20_Azure SQL Database 最新アップデートをまとめてキャッチアップ [Microsoft Japan Digital Days]
 
[DEVIEW 2021] 1000만 글로벌 유저를 지탱하는 기술과 사람들
[DEVIEW 2021] 1000만 글로벌 유저를 지탱하는 기술과 사람들[DEVIEW 2021] 1000만 글로벌 유저를 지탱하는 기술과 사람들
[DEVIEW 2021] 1000만 글로벌 유저를 지탱하는 기술과 사람들
 
금융 X 하이브리드 클라우드 플랫폼 - 한화생명 디지털 트랜스포메이션 전략 - 김나영 AWS 금융부문 사업개발 담당 / 박인규 AWS 금융...
금융 X 하이브리드 클라우드 플랫폼 - 한화생명 디지털 트랜스포메이션 전략 - 김나영 AWS 금융부문 사업개발 담당 / 박인규 AWS 금융...금융 X 하이브리드 클라우드 플랫폼 - 한화생명 디지털 트랜스포메이션 전략 - 김나영 AWS 금융부문 사업개발 담당 / 박인규 AWS 금융...
금융 X 하이브리드 클라우드 플랫폼 - 한화생명 디지털 트랜스포메이션 전략 - 김나영 AWS 금융부문 사업개발 담당 / 박인규 AWS 금융...
 
Amazon OpenSearch Deep dive - 내부구조, 성능최적화 그리고 스케일링
Amazon OpenSearch Deep dive - 내부구조, 성능최적화 그리고 스케일링Amazon OpenSearch Deep dive - 내부구조, 성능최적화 그리고 스케일링
Amazon OpenSearch Deep dive - 내부구조, 성능최적화 그리고 스케일링
 
Azure ADにみるエンタープライズ領域におけるフェデレーションとIDaaSの活用
Azure ADにみるエンタープライズ領域におけるフェデレーションとIDaaSの活用Azure ADにみるエンタープライズ領域におけるフェデレーションとIDaaSの活用
Azure ADにみるエンタープライズ領域におけるフェデレーションとIDaaSの活用
 
AWS CloudFront 가속 및 DDoS 방어
AWS CloudFront 가속 및 DDoS 방어AWS CloudFront 가속 및 DDoS 방어
AWS CloudFront 가속 및 DDoS 방어
 
Introduction to Amazon S3
Introduction to Amazon S3Introduction to Amazon S3
Introduction to Amazon S3
 
Amazon Personalize Event Tracker 실시간 고객 반응을 고려한 추천::김태수, 솔루션즈 아키텍트, AWS::AWS ...
Amazon Personalize Event Tracker 실시간 고객 반응을 고려한 추천::김태수, 솔루션즈 아키텍트, AWS::AWS ...Amazon Personalize Event Tracker 실시간 고객 반응을 고려한 추천::김태수, 솔루션즈 아키텍트, AWS::AWS ...
Amazon Personalize Event Tracker 실시간 고객 반응을 고려한 추천::김태수, 솔루션즈 아키텍트, AWS::AWS ...
 
데이터 분석가를 위한 신규 분석 서비스 - 김기영, AWS 분석 솔루션즈 아키텍트 / 변규현, 당근마켓 소프트웨어 엔지니어 :: AWS r...
데이터 분석가를 위한 신규 분석 서비스 - 김기영, AWS 분석 솔루션즈 아키텍트 / 변규현, 당근마켓 소프트웨어 엔지니어 :: AWS r...데이터 분석가를 위한 신규 분석 서비스 - 김기영, AWS 분석 솔루션즈 아키텍트 / 변규현, 당근마켓 소프트웨어 엔지니어 :: AWS r...
데이터 분석가를 위한 신규 분석 서비스 - 김기영, AWS 분석 솔루션즈 아키텍트 / 변규현, 당근마켓 소프트웨어 엔지니어 :: AWS r...
 
[AWS Hero 스페셜] Amazon Personalize를 통한 개인화/추천 서비스 개발 노하우 - 소성운(크로키닷컴) :: AWS C...
[AWS Hero 스페셜] Amazon Personalize를 통한 개인화/추천 서비스 개발 노하우 - 소성운(크로키닷컴) :: AWS C...[AWS Hero 스페셜] Amazon Personalize를 통한 개인화/추천 서비스 개발 노하우 - 소성운(크로키닷컴) :: AWS C...
[AWS Hero 스페셜] Amazon Personalize를 통한 개인화/추천 서비스 개발 노하우 - 소성운(크로키닷컴) :: AWS C...
 
[AWS Builders] AWS IAM 을 통한 클라우드에서의 권한 관리 - 신은수, AWS Security Specialist SA
[AWS Builders] AWS IAM 을 통한 클라우드에서의 권한 관리 - 신은수, AWS Security Specialist SA[AWS Builders] AWS IAM 을 통한 클라우드에서의 권한 관리 - 신은수, AWS Security Specialist SA
[AWS Builders] AWS IAM 을 통한 클라우드에서의 권한 관리 - 신은수, AWS Security Specialist SA
 
Amazon Aurora
Amazon AuroraAmazon Aurora
Amazon Aurora
 
Red Hat Ansible 적용 사례
Red Hat Ansible 적용 사례Red Hat Ansible 적용 사례
Red Hat Ansible 적용 사례
 
d.ts 만들기
d.ts 만들기d.ts 만들기
d.ts 만들기
 
[AWS Techshift] 파트너 사업을 준비하기 위해 기억해야 할 5가지 - 양승호, AWS 파트너 사업 개발 담당 이사
[AWS Techshift] 파트너 사업을 준비하기 위해 기억해야 할 5가지 - 양승호, AWS 파트너 사업 개발 담당 이사[AWS Techshift] 파트너 사업을 준비하기 위해 기억해야 할 5가지 - 양승호, AWS 파트너 사업 개발 담당 이사
[AWS Techshift] 파트너 사업을 준비하기 위해 기억해야 할 5가지 - 양승호, AWS 파트너 사업 개발 담당 이사
 
Wrangling Multiple AWS Accounts with AWS Organizations
Wrangling Multiple AWS Accounts with AWS OrganizationsWrangling Multiple AWS Accounts with AWS Organizations
Wrangling Multiple AWS Accounts with AWS Organizations
 

Ähnlich wie Java (spring) vs javascript (node.js)

Javascript everywhere - Node.js | Devon 2012
Javascript everywhere - Node.js | Devon 2012Javascript everywhere - Node.js | Devon 2012
Javascript everywhere - Node.js | Devon 2012Daum DNA
 
Front end dev 2016 & beyond
Front end dev 2016 & beyondFront end dev 2016 & beyond
Front end dev 2016 & beyondJae Sung Park
 
Single-page Application
Single-page ApplicationSingle-page Application
Single-page ApplicationSangmin Yoon
 
오픈소스 성능 최적화 보고서 ch07. Infinispan
오픈소스 성능 최적화 보고서 ch07. Infinispan오픈소스 성능 최적화 보고서 ch07. Infinispan
오픈소스 성능 최적화 보고서 ch07. InfinispanHyeonSeok Choi
 
[오픈소스컨설팅]Spring 3.1 Core
[오픈소스컨설팅]Spring 3.1 Core [오픈소스컨설팅]Spring 3.1 Core
[오픈소스컨설팅]Spring 3.1 Core Ji-Woong Choi
 
서버학개론(백엔드 서버 개발자를 위한)
서버학개론(백엔드 서버 개발자를 위한)서버학개론(백엔드 서버 개발자를 위한)
서버학개론(백엔드 서버 개발자를 위한)수보 김
 
Node.js 시작하기
Node.js 시작하기Node.js 시작하기
Node.js 시작하기Huey Park
 
Angular2 톺아보기
Angular2 톺아보기 Angular2 톺아보기
Angular2 톺아보기 철민 배
 
댓글 플러그인 아포가토
댓글 플러그인 아포가토댓글 플러그인 아포가토
댓글 플러그인 아포가토Goonoo Kim
 
서버 아키텍처 이해를 위한 프로세스와 쓰레드
서버 아키텍처 이해를 위한 프로세스와 쓰레드서버 아키텍처 이해를 위한 프로세스와 쓰레드
서버 아키텍처 이해를 위한 프로세스와 쓰레드KwangSeob Jeong
 
소프트웨어 개발자 로드맵
소프트웨어 개발자 로드맵소프트웨어 개발자 로드맵
소프트웨어 개발자 로드맵중선 곽
 
Node.js의 도입과 활용
Node.js의 도입과 활용Node.js의 도입과 활용
Node.js의 도입과 활용Jin wook
 
[Uws] enterprise application architecture, msa, java9, spring 소개
[Uws] enterprise application architecture, msa, java9, spring 소개[Uws] enterprise application architecture, msa, java9, spring 소개
[Uws] enterprise application architecture, msa, java9, spring 소개HYUN-JOO LEE
 
practical perf testing - d2startup
practical perf testing - d2startuppractical perf testing - d2startup
practical perf testing - d2startupJunHo Yoon
 
모바일 크로스플랫폼 비교 - 월간슬라이드 4월
모바일 크로스플랫폼 비교 - 월간슬라이드 4월모바일 크로스플랫폼 비교 - 월간슬라이드 4월
모바일 크로스플랫폼 비교 - 월간슬라이드 4월월간 IT 슬라이드
 
Nodejs발표자료 - 팀 세미나용
Nodejs발표자료 - 팀 세미나용 Nodejs발표자료 - 팀 세미나용
Nodejs발표자료 - 팀 세미나용 SuHyun Jeon
 
XECon2015 :: [2-1] 정광섭 - 처음 시작하는 laravel
XECon2015 :: [2-1] 정광섭 - 처음 시작하는 laravelXECon2015 :: [2-1] 정광섭 - 처음 시작하는 laravel
XECon2015 :: [2-1] 정광섭 - 처음 시작하는 laravelXpressEngine
 
처음 시작하는 라라벨
처음 시작하는 라라벨처음 시작하는 라라벨
처음 시작하는 라라벨KwangSeob Jeong
 

Ähnlich wie Java (spring) vs javascript (node.js) (20)

Javascript everywhere - Node.js | Devon 2012
Javascript everywhere - Node.js | Devon 2012Javascript everywhere - Node.js | Devon 2012
Javascript everywhere - Node.js | Devon 2012
 
Front end dev 2016 & beyond
Front end dev 2016 & beyondFront end dev 2016 & beyond
Front end dev 2016 & beyond
 
Single-page Application
Single-page ApplicationSingle-page Application
Single-page Application
 
오픈소스 성능 최적화 보고서 ch07. Infinispan
오픈소스 성능 최적화 보고서 ch07. Infinispan오픈소스 성능 최적화 보고서 ch07. Infinispan
오픈소스 성능 최적화 보고서 ch07. Infinispan
 
[오픈소스컨설팅]Spring 3.1 Core
[오픈소스컨설팅]Spring 3.1 Core [오픈소스컨설팅]Spring 3.1 Core
[오픈소스컨설팅]Spring 3.1 Core
 
서버학개론(백엔드 서버 개발자를 위한)
서버학개론(백엔드 서버 개발자를 위한)서버학개론(백엔드 서버 개발자를 위한)
서버학개론(백엔드 서버 개발자를 위한)
 
Node.js 시작하기
Node.js 시작하기Node.js 시작하기
Node.js 시작하기
 
Angular2 톺아보기
Angular2 톺아보기 Angular2 톺아보기
Angular2 톺아보기
 
댓글 플러그인 아포가토
댓글 플러그인 아포가토댓글 플러그인 아포가토
댓글 플러그인 아포가토
 
서버 아키텍처 이해를 위한 프로세스와 쓰레드
서버 아키텍처 이해를 위한 프로세스와 쓰레드서버 아키텍처 이해를 위한 프로세스와 쓰레드
서버 아키텍처 이해를 위한 프로세스와 쓰레드
 
Java the good parts
Java the good partsJava the good parts
Java the good parts
 
ecdevday4
ecdevday4ecdevday4
ecdevday4
 
소프트웨어 개발자 로드맵
소프트웨어 개발자 로드맵소프트웨어 개발자 로드맵
소프트웨어 개발자 로드맵
 
Node.js의 도입과 활용
Node.js의 도입과 활용Node.js의 도입과 활용
Node.js의 도입과 활용
 
[Uws] enterprise application architecture, msa, java9, spring 소개
[Uws] enterprise application architecture, msa, java9, spring 소개[Uws] enterprise application architecture, msa, java9, spring 소개
[Uws] enterprise application architecture, msa, java9, spring 소개
 
practical perf testing - d2startup
practical perf testing - d2startuppractical perf testing - d2startup
practical perf testing - d2startup
 
모바일 크로스플랫폼 비교 - 월간슬라이드 4월
모바일 크로스플랫폼 비교 - 월간슬라이드 4월모바일 크로스플랫폼 비교 - 월간슬라이드 4월
모바일 크로스플랫폼 비교 - 월간슬라이드 4월
 
Nodejs발표자료 - 팀 세미나용
Nodejs발표자료 - 팀 세미나용 Nodejs발표자료 - 팀 세미나용
Nodejs발표자료 - 팀 세미나용
 
XECon2015 :: [2-1] 정광섭 - 처음 시작하는 laravel
XECon2015 :: [2-1] 정광섭 - 처음 시작하는 laravelXECon2015 :: [2-1] 정광섭 - 처음 시작하는 laravel
XECon2015 :: [2-1] 정광섭 - 처음 시작하는 laravel
 
처음 시작하는 라라벨
처음 시작하는 라라벨처음 시작하는 라라벨
처음 시작하는 라라벨
 

Java (spring) vs javascript (node.js)

  • 1. JAVA (Spring) vs Javascript (Node.js) 1. 언어별 구조 및 특징 – Node.js 2. 언어별 구조 및 특징 – JAVA 3. 성능 벤치마크 4. 결론
  • 2. 1. 언어별 구조 및 특징 Node.js
  • 3. 구조 및 특징 1. 싱글 쓰레드, 이벤트 루프 2. 동적 타입언어 3. LIBUV 이용, I/O 작업에 특화 (Network I/O, Database I/O, File I/O, etc...) 4. NPM의 수많은 모듈 (But. 검증되지 않은 모듈 또한 많음) 5. 한 언어만으로 Client(Web) - Server 프로그래밍 가능 (React Native 를 이용 모바일도 개발 가능) Node.js
  • 4. 구조 1. 싱글 쓰레드, 이벤트 루프 Node.js 클라이언트의 요청이 들어오면 Event Queue로 들어온 요청은 Event Loop 에서 처리 Blocking I/O 가 일어나게 되면 Worker Thread (Internal Thread) 에 의해 별도 처리 완료된 작업은 Event Loop 에 의해 응답
  • 5. 구조 1. 싱글 쓰레드, 이벤트 루프 Node.js 요청을 싱글 쓰레드에서 처리하므로 요청의 로직이 오래 걸리는 경우 뒤 따르는 요청을 처리하지 못한다.
  • 6. 특징 2. 동적 타입언어 Node.js Interpreter 언어 (JIT 에 의해 컴파일 될 수 있음) 타입이 실행 중 결정 (실행 중 타입 오류가 발생하여 타입체크 필요) 보완하기 위한 TypeScript 등이 존재 … 그만큼 자유롭게 쓸 수 있다(?)
  • 7. 특징 3. LIBUV 이용, I/O 작업에 특화 Node.js
  • 8. 특징 4. NPM(or Yarn) 의 수많은 모듈 (But. 검증되지 않은 모듈 또한 많음) Node.js NPM 에서는 매주 120억 건의 다운로드가 발생 (2019년 10월 기준) 관리가 되고 사용자가 많은 모듈은 안정성이 확보되었으나 매우 많은 모듈이 생기고 사라지는 만큼 일정량의 다운로드 수를 가진 안정적인 모듈을 선택해야 함
  • 9. 특징 5. 한 언어만으로 Client(Web) - Server 프로그래밍 가능 Node.js 2019년 까지 8가지 이상의 웹 백앤드 프레임워크 대표적으로 Express, Next.js, Koa 등…
  • 10. 특징 5. 한 언어만으로 Client(Web) - Server 프로그래밍 가능 Node.js 모바일, 데스크탑과 프론트앤드 개발이 가능한 프레임워크들 대표적으로 React Native(Android, iOS), Electron(Windows, MacOS), React, Vue.js 등…
  • 11. 활용 작은 기업에서는 빠르게 개발하기 위해 많이 사용 (생산성 ↑) 대기업 중에서는 주로 특정 부분만 Node.js 를 사용함 (ex. Netflix – https://www.youtube.com/watch?v=B90OabhYJpA&t=12m11s) Node.js
  • 12. 2. 언어별 구조 및 특징 JAVA
  • 13. 구조 및 특징 1. 멀티 쓰레드 프로그래밍 2. 정적 타입언어 (컴파일 언어) 3. 객체지향 설계가 잘되어 Business Logic 에 특화 4. Java NIO 를 이용 I/O 성능을 올릴 수 있음 (ex. Netty) 5. 검증된 Spring Framework 가 있음 6. 많은 인력 Pool 7. 한 언어만으로 Mobile - Server 프로그래밍 가능 JAVA
  • 14. 구조 1. 멀티 쓰레드 프로그래밍 JAVA 클라이언트의 요청이 들어오면 쓰레드 할당 개별 쓰레드에서 요청 처리 Blocking I/O 가 일어나게 되면 쓰레드는 대기 상태로 빠짐 응답 후 쓰레드 풀에 쓰레드 반환
  • 15. 구조 1. 멀티 쓰레드 프로그래밍 JAVA 동시에 대량으로 발생하는 클라이언트의 요청을 처리하는 것이 어렵다. (쓰레드 개수의 한계) 요청마다 쓰레드를 이용하기 때문에 각 요청에 따른 메모리를 사용하게 된다. 클라이언트의 요청은 사용 가능한 쓰레드가 있을 때 까지 기다려야 한다. Blocking I/O 작업으로 시간이 낭비된다.
  • 16. 특징 2. 정적 타입언어 (컴파일 언어) JAVA 대부분의 인기 있는 언어 중 상당 수는 컴파일 언어 그 중 2위(약 5년간 1위 였음) 컴파일 시에 타입이 결정 (오타로 인한 문제 발생률 낮음) Primitive Type 에 대해서는 Type Safe 하지만 Reference Type 에 대해서는 완전히 Type Safe 하지는 않음
  • 17. 특징 3. 객체지향 설계가 잘되어 Business Logic 에 특화 JAVA 대표적인 객체지향 프로그래밍 언어 장점 : 재사용성, 생산성, 유지보수의 용이성 단점 : 실행 속도, 처음 개발 시 설계까지 오래 걸림 비즈니스 로직? 하나의 프로젝트나 어플리케이션은 로직(Logic)이라고 불리는 수많은 논리적 흐름으로 이루어 집니다. 데이터를 읽어오거나 저장하고, 이 데이터를 가공하여 사용자에게 의미있는 정보를 보 여주거나 네트워크를 통해 요청을 보내고 받는 행위들은 모두 로직이 모여서 이루어낸 결과물 입니다. 이들 중에서 어플리케이션이 제공하고자 하는 서비스나 업무를 직접적으로 구현하는 로직을 비즈니스 로직(Business Logic)이라고 부릅니다.
  • 18. 특징 4. Java NIO 를 이용 I/O 성능을 올릴 수 있음 (ex. Netty) JAVA 비동기 Non-blocking 개발을 할 수 있음 Netty 는 Node.js 의 이벤트 루프와 비슷한 구조로 동작 구글 gRPC 에서도 내부적으로 Netty 를 사용
  • 19. 특징 5. 검증된 Spring Framework 가 있음 JAVA JAVA 엔터프라이즈 개발을 위한 오픈소스(Open Source) 어플리 케이션 프레임워크 전자정부 표준프레임워크의 기반 Spring Security, JDBC, JPA, Cloud, AMQP 등 상용 서비스를 위한 기본 라이브러리들이 개발되어 있음
  • 20. 특징 6. 많은 인력 Pool JAVA 잡코리아와 사람인에서 웹 개발자를 검색하면 대부분 JAVA 개발자 그만큼 경력자와 신입을 뽑기 수월함 잡코리아 사람인
  • 21. 특징 7. 한 언어만으로 Mobile - Server 프로그래밍 가능 JAVA JAVA 를 이용 Spring (Server) – Android (Client) 개발이 가능 사실상 JVM 이 올라갈 수 있는 어느 곳이든 사용 가능함
  • 22. 활용 대부분 대기업에서 주 서비스 개발 언어로 JAVA 를 선택 JAVA
  • 24. 성능 비교 Node.js (14.4.0) JAVA (14.0.1) Response(s) Memory (KB) CPU (%) Response(s) Memory (KB) CPU (%) Regex-redux 4.27 1,064 4/2/75/47 5.75 647 82/88/77/77 Mandelbrot 4.01 86 98/98/99/98 4.14 71 99/99/98/98 Spectral-norm 1.68 62 89/90/91/90 1.57 39 96/94/95/95 Fannkuch-redux 12.10 57 98/98/99/99 10.61 34 99/99/99/98 N-body 8.35 35 1/100/0/0 6.74 36 100/1/0/0 Reverse-complement 2.19 1,340 48/55/50/50 1.58 677 55/74/48/61 Pidigits 1.32 36 3/2/8/100 0.94 36 98/5/2/9 Fasta 2.04 67 76/85/75/74 1.27 45 82/83/73/70 Binary-trees 5.83 1,204 86/82/84/85 2.48 2,496 78/91/74/75 K-nucleotide 15.06 398 76/60/48/92 4.57 485 77/74/83/82 2 1 4 4 출처 : https://benchmarksgame-team.pages.debian.net/benchmarksgame/fastest/javascript.html 이 벤치마크에서 JAVA 가 일부의 경우를 제외하고 대부분은 Node.js 보다 조금 빨랐다. 또한 Node.js 는 속도가 빠르더라도 계산하기 위해 2배 가까이 메모리를 사용하는 경우도 보였다. 알고리즘
  • 25. 성능 비교 JAVA Node.js Nodejs 91,799 play2-java-jpa-hikaricp-netty 85,449 nodejs-mysql 50,692 Spring 27,339 express-mysql 44,166 Spring-webflux-jdbc 22,528 출처 : https://www.techempower.com/benchmarks/#section=data-r19&hw=ph&test=fortune 프레임워크 별 최고 초당 응답률 비교 초당 응답률 1 JAVA Node.js Nodejs 3,680 Spring 9,099 nodejs-mysql 1,573 Spring-webflux-jdbc 9,349 express-mysql 1,413 play2-java-jpa-hikaricp-netty 5,434 출처 : https://www.techempower.com/benchmarks/#section=data-r18&hw=ph&test=update 벤치마크에서 보이듯 최고 속도에 대해서 는 Node.js 가 우세하지만 Netty 를 쓰는 경우 JAVA 보다 느림 데이터 업데이트 속도의 경우 JAVA 와 몇 배 이상 차이가 나기 시작한다 프레임워크 별 데이터 업데이트 속도 비교
  • 26. 성능 비교 출처 : https://www.techempower.com/benchmarks/#section=data-r18&hw=ph&test=update 단순 JSON 응답이나 피보나치 수열 계산에서 Node.js 의 성능이 살짝 우세하다 또한 1 Core (저사양) 에서는 5배 가량 더 빠른 것으로 나타난다. 단순 리스팅의 경우 Node.js 가 3배 가량 빨랐다. 초당 응답률 2
  • 28. 벤치마크는 벤치마크일 뿐이다. 결론 위 벤치마크 조차 서로 다른 결과가 나왔기 때문에 실제 적용 된 어플리케이션의 성능은 또 다를 수 있다. Node.js 는 마이크로 서비스와 궁합이 좋음 JAVA 는 대규모 서비스 개발에 좋음 I/O 및 커널 사용이 잦은 어플리케이션의 경우 Node.js 를 이용 비즈니스 로직 등이 복잡한 환경에서는 그에 적합한 언어를 사용 (그러나 결국 언어보단 개발자의 역량이 제일 중요하다…) 언어 선택은? 언어별 장단점이 있음
  • 30. Web Framework Benchmarks - https://www.techempower.com/benchmarks/#section=data-r19&hw=ph&test=fortune Node js versus Java fastest programs - https://benchmarksgame-team.pages.debian.net/benchmarksgame/fastest/javascript.html [Node.js] 자바와 Node.js 의 성능 & 속도 비교 - https://crazia.tistory.com/entry/Nodejs-자바와-Nodejs-의-성능-속도-비교 Node.js at PayPal - https://medium.com/paypal-engineering/node-js-at-paypal-4e2d1d08ce4f php, nodejs 속도 벤치마크 - https://blog.codens.info/1868 Web REST API Benchmark on a Real Life Application - https://medium.com/@mihaigeorge.c/web-rest-api-benchmark-on-a-real-life-application-ebb743a5d7a3 빠르게 서비스를 개발할 수 있는 Node.js - https://d2.naver.com/helloworld/4994500 JAVA 개발자가 시작하는 NodeJS - https://www.slideshare.net/lahuman1/java-nodejs-196972795 정적타입vs동적타입?? 단순한 언어가 최고!! - https://hamait.tistory.com/845?category=128262 왜 자바 Spring만 뽑나요? 꼭 배워야 하나요? - https://seolin.tistory.com/119 Node.js와 Java와의 서로다른 차이 - https://lts0606.tistory.com/91 Node.js vs Java 구조적 차이 :: 마이구미 - https://mygumi.tistory.com/154 Node JS Architecture – Single Threaded Event Loop - https://www.journaldev.com/7462/node-js-architecture-single-threaded-event-loop 나라별 구인 통계 - http://tech.trenbe.com/?p=515 NODE.JS 글로벌 기업 적용 사례 그리고, real-time 어플리케이션 개발하기 - https://www.slideshare.net/JohnKim0331/ms-meltingpot-seminar Node.js의 사용 - 기업에서 노드를 사용하는 방법 - https://code-daniel.tistory.com/65 넷플릭스 Node.js 활용 사례1 - https://www.youtube.com/watch?v=B90OabhYJpA&t=12m11s 넷플릭스 Node.js 활용 사례2 - https://www.youtube.com/watch?v=p74282nDMX8&feature=youtu.be&t=14m25s 자바스크립트 프레임워크 통계 - https://2019.stateofjs.com/ko/ 티오베 통계 - https://www.tiobe.com/tiobe-index/ [Spring] 스프링(Spring) 정의 및 특징 정리 - https://goddaehee.tistory.com/156 Netty 시작하기 - http://hatemogi.github.io/netty-startup Zuul's Journey to Non-Blocking - https://www.slideshare.net/artgon/zuuls-journey-to-nonblocking 견고한 node.js 프로젝트 설계하기 - https://velog.io/@hopsprings2/견고한-node.js-프로젝트-아키텍쳐-설계하기
  • 31. 인프런 JAVA 개발자 로드맵 - https://www.inflearn.com/roadmaps/12 위키백과 : 비즈니스 로직 - https://ko.wikipedia.org/wiki/비즈니스_로직 2019년과 이후 JavaScript의 동향 – 브라우저 밖의 JavaScript 1 - https://d2.naver.com/helloworld/7700312 npm's Laurie Voss: JavaScript - Who, What, Where, Why and Next | JSConf.Asia 2019 - https://www.youtube.com/watch?v=H8IaDYrv- 3E&feature=youtu.be&t=1165 Spring Tutorial – A Java Framework Providing Efficiency - https://www.edureka.co/blog/spring-tutorial/