AWS 클라우드를 활용하면 사용자의 트래픽에 따라 IT 인프라 아키텍처를 확장할 수 있습니다. 이번 강연에서는 서비스 초기의 작은 트래픽에 대응할 수 있는 단순한 아키텍처로 시작해 사업 성장 후의 수백만 사용자에 달하는 대규모 트래픽을 지탱할 수 있는 고확장성 아키텍처에 이르기까지의 단계별 아키텍처 구성 방법에 대해 소개해 드리고 컴퓨팅 및 데이터베이스 선택 및 사용자 증가에 따른 트래픽 경감 방법, 오토스케일링 및 모니터링과 자동화, DB 부하 분산, 고가용성 확보 등에 대한 다양한 모범사례를 알려드릴 예정입니다.
기업들은 데이터로부터 insight를 얻기 위해서 부단한 노력을 하고 있습니다. 이를 위해 조직의 데이터를 한 곳에 모아서 보관하는 Data Lake의 구축은 데이터 분석을 위한 중심으로 자리잡고 있습니다. 본 세션에서는 AWS에서 S3를 활용하여 민첩하고 비용효율적인 Data Lake를 구축하는 방법을 소개합니다. 또한 이를 기반으로 AWS의 다양한 데이터 분석 서비스와 연동하는 법을 살펴봅니다.
대상 :
빅 데이터 및 데이터 분석 담당자, AWS 기반 데이터 분석에 관심 있는 모든 분
발표자 :
문종민 솔루션즈 아키텍트, AWS
본 온라인 세미나에서는 AWS 서비스를 활용하시는데 있어, 총 소유비용(TCO) 관점에서 클라우드 사용시 장점에 대해 이해하고, AWS서비스 사용시 어떻게 하면 비용최적화를 잘 할 수 있을지를 예약인스턴스, 스팟인스턴스, S3의 라이프사이클 정책 활용 방법 등을 통해 학습합니다.
더 많은 AWS 온라인 세미나 알아보기: https://aws.amazon.com/ko/events/webinars/series
The document discusses strategies for building a successful API, including the four pillars of distribution (widgets, toolbars/extensions, platform apps, and APIs), case studies of Netflix and RateItAll, common API business models and formats, challenges of promoting and managing APIs, and resources for learning more.
The document provides an overview of API testing, contrasting SOAP and REST protocols, detailing their differences in architecture, data formats, and performance. It explains the process of API testing, including setup, expected outputs, and best practices, while highlighting the importance of proper testing techniques and documentation. Additionally, it discusses challenges faced in API testing and the types of bugs that can be detected, along with recommended tools for effective testing.
The document provides an overview of API testing, detailing the definition of an API and its functionality, especially focusing on REST APIs and their common HTTP methods (GET, POST, PUT, DELETE). It emphasizes the importance of API testing for ensuring functionality, load handling, and bug-free deployment while mentioning tools like Postman and SoapUI. Additionally, it outlines how to automate API testing using Postman through calls, simple tests, and scheduling.
The document discusses the benefits of using an API gateway to handle communication between client applications and microservices, rather than direct client-to-microservice communication. It notes that an API gateway can reduce coupling between clients and services, minimize round trips for client requests, centralize security handling, and help mitigate deployment risks. However, it cautions that the API gateway should not act as a single aggregator and should be segregated based on business boundaries to avoid violating microservice autonomy. Examples of open source and paid API gateway tools and implementations are also provided.
[AWS Builders 온라인 시리즈] AWS 서비스를 활용하여 파일 스토리지 빠르게 마이그레이션 하기 - 서지혜, AWS 솔루션즈 아키텍트Amazon Web Services Korea
발표자료 다시보기: https://www.youtube.com/watch?v=cw1kdghcQKo
이 세션에서는 AWS 하이브리드 스토리지 솔루션을 활용하여 파일 기반 비정형 스토리지를 AWS로 이동하는 방법에 대해 알아봅니다. AWS Storage Gateway, AWS DataSync 및 AWS SFTP (Secure file Transfer Protocol)에 대해 알아보고 여러분의 워크로드를 어떻게 구현 할 수 있는지 사례를 통해 알아봅니다.
The document provides an overview of API testing, including definitions of APIs and API testing, descriptions of common API methods like GET, POST, PUT, and DELETE, examples of API requests and responses, and advantages and challenges of API testing. It discusses basics like the API workflow, REST APIs, HTTP response codes, and types of API tests.
The document covers API testing using Rest Assured and TestNG, discussing key concepts like REST, its architectural constraints, and differences between Postman and Rest Assured. It details technical aspects including headers, parameters, GET and POST requests, and authentication methods for web services. Prerequisites for using Rest Assured are also outlined, along with required dependencies and their purposes.
Event-Driven Microservices With NATS StreamingShiju Varghese
The document provides an overview of event-driven microservices architecture using NATS streaming, addressing practical challenges such as data management and distributed transactions. It introduces key concepts like event sourcing and the publish-subscribe messaging pattern. Additionally, it highlights the functionality of the NATS streaming server for building resilient microservices in cloud-native environments.
AWS 기반 클라우드 아키텍처 모범사례 - 삼성전자 개발자 포털/개발자 워크스페이스 - 정영준 솔루션즈 아키텍트, AWS / 유현성 수석,...Amazon Web Services Korea
AWS 기반 클라우드 아키텍처 모범사례 - 삼성전자 개발자 포털/개발자 워크스페이스
정영준 솔루션즈 아키텍트, AWS
유현성 수석, 삼성전자 클라우드팀
다양한 AWS 아키텍처 적인 요소들을 적용한 구체적인 사례들에 대해서 소개합니다. 삼성전자에서 2년동안 만든 공통 플랫폼 기반 개발자 포털의 아키텍처와 개발 스토리 그리고 SRE(Site Reliability Engineering) 적용 등에 대한 이야기를 직접 들어보며, 수백만 명의 모바일 사용자에게 사진을 공유하는 애플리케이션을 운영하는 서비스, 테라바이트 이상의 데이터가 다양한 소스에서 들어 올 때 실시간으로 분석하기 위한 아키텍처들에 대해서도 알아봅니다. 또한 중단 되면 안되는 중요한 비즈니스 운영을 지원하는 서비스나 금융 데이터 같은 민감한 데이터를 다루는 서비스를 운영하는 다른 베스트 프렉티스 아키텍처도 소개합니다.
The webinar discusses how to effectively map out an API strategy, emphasizing the importance of aligning investments with customer needs and defining target segments. It highlights the need for an engaging developer channel and establishing industry goals that differentiate partnerships from platform businesses. The session aims to provide a comprehensive framework for understanding and executing successful API initiatives.
Selenium was originally developed in 2004 as a JavaScript library to automate web application testing. It has since evolved into a suite of tools including Selenium IDE, Selenium RC, and Selenium WebDriver. These tools can automate tests across different browsers and platforms. Selenium IDE is a simple Firefox plugin for recording and playing back tests without coding. Selenium WebDriver is the successor to Selenium RC and supports multiple programming languages and browsers through browser-specific drivers. It allows tests to be executed programmatically rather than just recorded.
This document provides an overview and instructions for using SoapUI, an open source testing tool. It discusses SoapUI's system requirements, key features like functional testing, security testing, load testing and test automation, and the technologies it supports including SOAP, REST, HTTP and JDBC. It also provides steps for creating a SoapUI project, adding REST services, test cases with different step types and assertions.
AWS 클라우드 핵심 서비스로 클라우드 기반 아키텍처 빠르게 구성하기 - 문종민 솔루션즈 아키텍트, AWS :: AWS Summit Seo...Amazon Web Services Korea
AWS 클라우드 핵심 서비스로 클라우드 기반 아키텍처 빠르게 구성하기
문종민 솔루션즈 아키텍트, AWS
본 세션은 AWS를 처음 접하는 분들을 대상으로 AWS의 150여개 이상의 서비스들 중 가장 중심이 되는 컴퓨팅, 스토리지, 네트워크 등의 핵심 서비스를 기술적 관점에서 소개합니다. 클라우드에서 신규 서비스 구축 및 기존 데이터센터 워크로드를 이전할 때, Amazon EC2, S3 및 RDS, VPC 등의 서비스를 통해 어떻게 빠르게 AWS 상에서 시스템 구축할 수 있는지 살펴봅니다.
모든 게임 서비스에는 공통으로 구현해야 할 기능들이 있습니다. 대표적으로 채팅과 로그인, 접속 대기열 등이 있습니다. 시리즈 #2에서는 이런 기능들을 AWS의 서버리스 서비스로 구현하는 방법을 알아보겠습니다. 새 게임을 개발할 때마다 중복으로 구현하지 않고, 마이크로 서비스 아키텍처를 활용하는 방법들도 이론과 실습을 통해 알아봅니다.
1부: [Amazon ElasticCache, AWS Lambda, AWS IoT-Core] 게임채팅을 AWS에서 구현해보자!
2부: [Amazon SQS, Amazon Cognito, AWS Dynamo DB] AWS에서 대규모 로그인과 접속 대기열을 구현해보자!
The document outlines serverless architecture on AWS, explaining the concept of function as a service (FaaS) and how it enables applications to run without managing servers. It discusses asynchronous and synchronous serverless models, along with the AWS Lambda service, which executes backend code in response to various events. Additionally, it highlights limitations such as execution timeouts and the necessity of external state management.
OpenSearch는 배포형 오픈 소스 검색과 분석 제품군으로 실시간 애플리케이션 모니터링, 로그 분석 및 웹 사이트 검색과 같이 다양한 사용 사례에 사용됩니다. OpenSearch는 데이터 탐색을 쉽게 도와주는 통합 시각화 도구 OpenSearch와 함께 뛰어난 확장성을 지닌 시스템을 제공하여 대량 데이터 볼륨에 빠르게 액세스 및 응답합니다. 이 세션에서는 실제 동작 구조에 대한 설명을 바탕으로 최적화를 하기 위한 방법과 운영상에 발생할 수 있는 이슈에 대해서 알아봅니다.
The document discusses demystifying APIs. It begins with an introduction to APIs, including their evolution and benefits. It then discusses RESTful APIs and their key aspects like uniform interface and use of HTTP methods. The document outlines best practices for API design, development, and challenges. It provides examples of designing APIs using Node.js and Hapi.js and discusses challenges like security, authentication, rate limiting, and scalability. Tools mentioned include Express, Swagger, Postman, and Kong.
The document provides an overview of API testing, contrasting SOAP and REST protocols, detailing their differences in architecture, data formats, and performance. It explains the process of API testing, including setup, expected outputs, and best practices, while highlighting the importance of proper testing techniques and documentation. Additionally, it discusses challenges faced in API testing and the types of bugs that can be detected, along with recommended tools for effective testing.
The document provides an overview of API testing, detailing the definition of an API and its functionality, especially focusing on REST APIs and their common HTTP methods (GET, POST, PUT, DELETE). It emphasizes the importance of API testing for ensuring functionality, load handling, and bug-free deployment while mentioning tools like Postman and SoapUI. Additionally, it outlines how to automate API testing using Postman through calls, simple tests, and scheduling.
The document discusses the benefits of using an API gateway to handle communication between client applications and microservices, rather than direct client-to-microservice communication. It notes that an API gateway can reduce coupling between clients and services, minimize round trips for client requests, centralize security handling, and help mitigate deployment risks. However, it cautions that the API gateway should not act as a single aggregator and should be segregated based on business boundaries to avoid violating microservice autonomy. Examples of open source and paid API gateway tools and implementations are also provided.
[AWS Builders 온라인 시리즈] AWS 서비스를 활용하여 파일 스토리지 빠르게 마이그레이션 하기 - 서지혜, AWS 솔루션즈 아키텍트Amazon Web Services Korea
발표자료 다시보기: https://www.youtube.com/watch?v=cw1kdghcQKo
이 세션에서는 AWS 하이브리드 스토리지 솔루션을 활용하여 파일 기반 비정형 스토리지를 AWS로 이동하는 방법에 대해 알아봅니다. AWS Storage Gateway, AWS DataSync 및 AWS SFTP (Secure file Transfer Protocol)에 대해 알아보고 여러분의 워크로드를 어떻게 구현 할 수 있는지 사례를 통해 알아봅니다.
The document provides an overview of API testing, including definitions of APIs and API testing, descriptions of common API methods like GET, POST, PUT, and DELETE, examples of API requests and responses, and advantages and challenges of API testing. It discusses basics like the API workflow, REST APIs, HTTP response codes, and types of API tests.
The document covers API testing using Rest Assured and TestNG, discussing key concepts like REST, its architectural constraints, and differences between Postman and Rest Assured. It details technical aspects including headers, parameters, GET and POST requests, and authentication methods for web services. Prerequisites for using Rest Assured are also outlined, along with required dependencies and their purposes.
Event-Driven Microservices With NATS StreamingShiju Varghese
The document provides an overview of event-driven microservices architecture using NATS streaming, addressing practical challenges such as data management and distributed transactions. It introduces key concepts like event sourcing and the publish-subscribe messaging pattern. Additionally, it highlights the functionality of the NATS streaming server for building resilient microservices in cloud-native environments.
AWS 기반 클라우드 아키텍처 모범사례 - 삼성전자 개발자 포털/개발자 워크스페이스 - 정영준 솔루션즈 아키텍트, AWS / 유현성 수석,...Amazon Web Services Korea
AWS 기반 클라우드 아키텍처 모범사례 - 삼성전자 개발자 포털/개발자 워크스페이스
정영준 솔루션즈 아키텍트, AWS
유현성 수석, 삼성전자 클라우드팀
다양한 AWS 아키텍처 적인 요소들을 적용한 구체적인 사례들에 대해서 소개합니다. 삼성전자에서 2년동안 만든 공통 플랫폼 기반 개발자 포털의 아키텍처와 개발 스토리 그리고 SRE(Site Reliability Engineering) 적용 등에 대한 이야기를 직접 들어보며, 수백만 명의 모바일 사용자에게 사진을 공유하는 애플리케이션을 운영하는 서비스, 테라바이트 이상의 데이터가 다양한 소스에서 들어 올 때 실시간으로 분석하기 위한 아키텍처들에 대해서도 알아봅니다. 또한 중단 되면 안되는 중요한 비즈니스 운영을 지원하는 서비스나 금융 데이터 같은 민감한 데이터를 다루는 서비스를 운영하는 다른 베스트 프렉티스 아키텍처도 소개합니다.
The webinar discusses how to effectively map out an API strategy, emphasizing the importance of aligning investments with customer needs and defining target segments. It highlights the need for an engaging developer channel and establishing industry goals that differentiate partnerships from platform businesses. The session aims to provide a comprehensive framework for understanding and executing successful API initiatives.
Selenium was originally developed in 2004 as a JavaScript library to automate web application testing. It has since evolved into a suite of tools including Selenium IDE, Selenium RC, and Selenium WebDriver. These tools can automate tests across different browsers and platforms. Selenium IDE is a simple Firefox plugin for recording and playing back tests without coding. Selenium WebDriver is the successor to Selenium RC and supports multiple programming languages and browsers through browser-specific drivers. It allows tests to be executed programmatically rather than just recorded.
This document provides an overview and instructions for using SoapUI, an open source testing tool. It discusses SoapUI's system requirements, key features like functional testing, security testing, load testing and test automation, and the technologies it supports including SOAP, REST, HTTP and JDBC. It also provides steps for creating a SoapUI project, adding REST services, test cases with different step types and assertions.
AWS 클라우드 핵심 서비스로 클라우드 기반 아키텍처 빠르게 구성하기 - 문종민 솔루션즈 아키텍트, AWS :: AWS Summit Seo...Amazon Web Services Korea
AWS 클라우드 핵심 서비스로 클라우드 기반 아키텍처 빠르게 구성하기
문종민 솔루션즈 아키텍트, AWS
본 세션은 AWS를 처음 접하는 분들을 대상으로 AWS의 150여개 이상의 서비스들 중 가장 중심이 되는 컴퓨팅, 스토리지, 네트워크 등의 핵심 서비스를 기술적 관점에서 소개합니다. 클라우드에서 신규 서비스 구축 및 기존 데이터센터 워크로드를 이전할 때, Amazon EC2, S3 및 RDS, VPC 등의 서비스를 통해 어떻게 빠르게 AWS 상에서 시스템 구축할 수 있는지 살펴봅니다.
모든 게임 서비스에는 공통으로 구현해야 할 기능들이 있습니다. 대표적으로 채팅과 로그인, 접속 대기열 등이 있습니다. 시리즈 #2에서는 이런 기능들을 AWS의 서버리스 서비스로 구현하는 방법을 알아보겠습니다. 새 게임을 개발할 때마다 중복으로 구현하지 않고, 마이크로 서비스 아키텍처를 활용하는 방법들도 이론과 실습을 통해 알아봅니다.
1부: [Amazon ElasticCache, AWS Lambda, AWS IoT-Core] 게임채팅을 AWS에서 구현해보자!
2부: [Amazon SQS, Amazon Cognito, AWS Dynamo DB] AWS에서 대규모 로그인과 접속 대기열을 구현해보자!
The document outlines serverless architecture on AWS, explaining the concept of function as a service (FaaS) and how it enables applications to run without managing servers. It discusses asynchronous and synchronous serverless models, along with the AWS Lambda service, which executes backend code in response to various events. Additionally, it highlights limitations such as execution timeouts and the necessity of external state management.
OpenSearch는 배포형 오픈 소스 검색과 분석 제품군으로 실시간 애플리케이션 모니터링, 로그 분석 및 웹 사이트 검색과 같이 다양한 사용 사례에 사용됩니다. OpenSearch는 데이터 탐색을 쉽게 도와주는 통합 시각화 도구 OpenSearch와 함께 뛰어난 확장성을 지닌 시스템을 제공하여 대량 데이터 볼륨에 빠르게 액세스 및 응답합니다. 이 세션에서는 실제 동작 구조에 대한 설명을 바탕으로 최적화를 하기 위한 방법과 운영상에 발생할 수 있는 이슈에 대해서 알아봅니다.
The document discusses demystifying APIs. It begins with an introduction to APIs, including their evolution and benefits. It then discusses RESTful APIs and their key aspects like uniform interface and use of HTTP methods. The document outlines best practices for API design, development, and challenges. It provides examples of designing APIs using Node.js and Hapi.js and discusses challenges like security, authentication, rate limiting, and scalability. Tools mentioned include Express, Swagger, Postman, and Kong.
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 등이 존재
… 그만큼 자유롭게 쓸 수 있다(?)
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
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 이 올라갈 수 있는 어느 곳이든 사용 가능함
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/