Klaytn 플랫폼 및 SDK 소개
Ground X가 주도하여 개발한 Public Blockchain 플랫폼인 Klaytn의 아키텍처와 SDK에 대해 소개합니다. Klaytn은 엔터프라이즈와 서비스를 지향하는 블록체인 플랫폼으로 1초의 블록 생성 및 확정 시간과 4000 TPS의 성능을 달성한 고성능의 블록체인 플랫폼입니다. 본 발표에서는 Klaytn의 네트워크 구조와 블록 생성 및 검증을 담당하는 Governance Council, 그리고 플랫폼의 전반적인 아키텍처에 대해서 설명합니다. 그리고 Klaytn에서 블록체인 애플리케이션을 개발할 때 사용할 수 있는 SDK인 caver-js와 caver-java에 대해서도 소개합니다. 마지막으로 Klaytn을 개발하고 메인넷 Cypress를 런칭하기까지의 개발 후기에 대해서도 공유할 예정입니다.
Klaytn 101 #2 Blockchain Application(BApp) 동작원리와 구성요소 이해하기
1. BApp 개요: BApp의 동작원리와 BApp을 구성하는 요소들에 대해 설명
2. Count BApp: Klaytn Docs에 소개된 Count BApp 튜토리얼을 step-by-step으로 따라가며, web 기반 BApp 구현방법에 대해 설명
* 54 페이지 두번째 줄의 함수명 callPlus은 callMius로 변경해 주세요.
Klaytn 플랫폼 및 SDK 소개
Ground X가 주도하여 개발한 Public Blockchain 플랫폼인 Klaytn의 아키텍처와 SDK에 대해 소개합니다. Klaytn은 엔터프라이즈와 서비스를 지향하는 블록체인 플랫폼으로 1초의 블록 생성 및 확정 시간과 4000 TPS의 성능을 달성한 고성능의 블록체인 플랫폼입니다. 본 발표에서는 Klaytn의 네트워크 구조와 블록 생성 및 검증을 담당하는 Governance Council, 그리고 플랫폼의 전반적인 아키텍처에 대해서 설명합니다. 그리고 Klaytn에서 블록체인 애플리케이션을 개발할 때 사용할 수 있는 SDK인 caver-js와 caver-java에 대해서도 소개합니다. 마지막으로 Klaytn을 개발하고 메인넷 Cypress를 런칭하기까지의 개발 후기에 대해서도 공유할 예정입니다.
Klaytn 101 #2 Blockchain Application(BApp) 동작원리와 구성요소 이해하기
1. BApp 개요: BApp의 동작원리와 BApp을 구성하는 요소들에 대해 설명
2. Count BApp: Klaytn Docs에 소개된 Count BApp 튜토리얼을 step-by-step으로 따라가며, web 기반 BApp 구현방법에 대해 설명
* 54 페이지 두번째 줄의 함수명 callPlus은 callMius로 변경해 주세요.
Domain Driven Design 기반의 마이크로서비스 디자인 방법론에 대해 설명을 하고 피보탈이 권장하는 모노리스 애플리케이션의 마이크로서비스 전환 방법론에 대해 살펴봅니다. 또한 실제 마이크로서비스 프로젝트에서 발생할 수 있는 우려사항들에 대해서도 국내 프로젝트 경험을 바탕으로 짚어봅니다.
Amazon Detective를 활용하여 AWS 환경에서 보안사고 원인 분석하기 – 임기성, AWS 보안 담당 솔루션즈 아키텍트:: AWS...Amazon Web Services Korea
* 발표 동영상: https://youtu.be/h4Q8t1OZCsU
점점 복잡해져 가는 AWS 워크로드 상에서 발생한 보안사고의 원인을 분석하기 위해선 막대한 노이즈 시그널들 속에서 중요한 단서를 정확하게 찾아낼 수 있는 숙련된 경험이 필요합니다. 또한 잠재적인 보안 위협과 의심스러운 활동들을 신속하게 조사하여 식별하는 일은 예방통제 측면에서 더욱 중요하게 부각되고 있습니다. 본 세션에서는 Amazon Detective의 기능과 주요 활용처를 설명하고, 보안 사고의 원인을쉽고 빠르게 분석하는 과정을 데모를 통해 소개합니다.
Meetup tools for-cloud_native_apps_meetup20180510-vsminseok kim
마이크로서비스로 시스템을 구성하면 서비스간에 연관관계가 줄어들면서 서비스 릴리즈 속도가 높아지고 유연하게 대처할 수 있지만, 관리포인트가 늘어나게 되어 운영상에 많은 어려움을 마주치게 됩니다. 배포 될 때마다 생성되고 소멸되는 마이크로서비스를 다른 마이크로서비스가 쉽게 참조하게 하고 마이크로서비스들의 설정 정보를 일관되게 관리하는 일은 쉬운일이 아닙니다. 이러한 문제를 해결하기 위해 Spring Cloud 프로젝트와 같은 도구를 비롯하여 Pivotal Cloud Foundry와 같은 클라우드 플랫폼등이 있습니다. 이번 밋업에서는 마이크로서비스를 운영할 때의 어려운점과 도움을 주는 다양한 도구들에 대해 알아보도록 하겠습니다.
Domain Driven Design 기반의 마이크로서비스 디자인 방법론에 대해 설명을 하고 피보탈이 권장하는 모노리스 애플리케이션의 마이크로서비스 전환 방법론에 대해 살펴봅니다. 또한 실제 마이크로서비스 프로젝트에서 발생할 수 있는 우려사항들에 대해서도 국내 프로젝트 경험을 바탕으로 짚어봅니다.
Amazon Detective를 활용하여 AWS 환경에서 보안사고 원인 분석하기 – 임기성, AWS 보안 담당 솔루션즈 아키텍트:: AWS...Amazon Web Services Korea
* 발표 동영상: https://youtu.be/h4Q8t1OZCsU
점점 복잡해져 가는 AWS 워크로드 상에서 발생한 보안사고의 원인을 분석하기 위해선 막대한 노이즈 시그널들 속에서 중요한 단서를 정확하게 찾아낼 수 있는 숙련된 경험이 필요합니다. 또한 잠재적인 보안 위협과 의심스러운 활동들을 신속하게 조사하여 식별하는 일은 예방통제 측면에서 더욱 중요하게 부각되고 있습니다. 본 세션에서는 Amazon Detective의 기능과 주요 활용처를 설명하고, 보안 사고의 원인을쉽고 빠르게 분석하는 과정을 데모를 통해 소개합니다.
Meetup tools for-cloud_native_apps_meetup20180510-vsminseok kim
마이크로서비스로 시스템을 구성하면 서비스간에 연관관계가 줄어들면서 서비스 릴리즈 속도가 높아지고 유연하게 대처할 수 있지만, 관리포인트가 늘어나게 되어 운영상에 많은 어려움을 마주치게 됩니다. 배포 될 때마다 생성되고 소멸되는 마이크로서비스를 다른 마이크로서비스가 쉽게 참조하게 하고 마이크로서비스들의 설정 정보를 일관되게 관리하는 일은 쉬운일이 아닙니다. 이러한 문제를 해결하기 위해 Spring Cloud 프로젝트와 같은 도구를 비롯하여 Pivotal Cloud Foundry와 같은 클라우드 플랫폼등이 있습니다. 이번 밋업에서는 마이크로서비스를 운영할 때의 어려운점과 도움을 주는 다양한 도구들에 대해 알아보도록 하겠습니다.
4. ✔ 자바 네트워크 어플리케이션 프레임워크
✔ 비동기 이면서 이벤트 기반
• tomcat < 10,000 (connection) VS netty < 100,000 ~ 1,000,000 (connection)
✔ I/O 처리를 위한 추상화 API 제공
• NIO, OIO, AIO… 처리에 대해 쉽게 쉽게 바꿀 수 있게 Netty I/O API 단에서 제공
✔ 잘 정의된 이벤트 모델과 스레드 모델 제공
• 접속을 맺고, 데이터를 보내고 받고, 접속을 끊을 때 어떤 이벤트가 발생할지 Netty가 잘 정의하여 제공
• 사용자의 코드가 어느 스레드에서 언제 실행 될 지, 불필요한 동기화 방지..등등 Netty가 잘 정의하여 제공
✔ 유연한 이벤트 처리 위한 bi-directional chain of responsibility pattern
✔ 직접 구현한 버퍼풀을 이용한 성능 이점 제공
• Buffer Zero-file-copy, Buffer Automatic Capacity Extession…
네티란?
10. ✔ 기존 이벤트 모델 (객체호출)
이벤트모델
✔ 새 이벤트 모델 (메서드호출)
Channel DisConnectedChannel UnboundChannel Closed
Message Event(in,out)
Channel ConnectedChannel boundChannel Open
Flush (Messag Event대체)Channel InActiveChannel Unregistered
InboundBufferUpdatedChannel ActiveChannel Registered
버퍼에 데이터를 다 채운 후
Flush 요청시 실제 I/O수행
통신가능상태
통신불가상태
* UserEventTriggered 메서드 추가
12. ✔ 이벤트 루프는 항상 싱글 스레드로 실행 되어짐
✔ 비동기 요청에 대한 결과 통보는 이벤트 루프 스레드에서 이루어짐
✔ 핸들러 메소드를 호출할 때 각 호출 사이에는 happens-before 관계 성립
✔ @Sharable 가 붙어 있지 않은 경우 핸들러 메서드를 동시 호출 하지 않음
스레드모델
eventloop
(single thread) pipeline handler
method
method
happens-before
volatile (필요없음)
ChannelFuture<T> handler 동시 호출(X)
14. ✔ Bootstrap
• Bootstrap : Client-side Channel를 생성 해 주고 새로운 연결을 시도 하는 Helper Class
• ServerBootstrap : Server-side Channel를 생성 해 주고 새로운 연결을 시도 하는 Helper Class
부모채널은 연결을 받아주고, 성공적으로 bound 되어진 client연결은 자식채널임
✔ EventLoop
•EventLoop : SingleThread Channel Seletor (OioEventLoop, Nio…, Epoll..)
•EventLoopGroup : MultiThread Channel Seletor (OioEvnetLoopGroup, Nio…, Epoll…)
✔ Channel
•NioSocketChannel, OioSocketChannel, EpollSocketChannel
NioServerSocketChannel, OioServerSocketChannel, EpollServerSocketChannel
✔ ChannelOption
•SO_KEEPALIVE, SO_SNDBUF, SO_RCVBUF, SO_TIMEOUT, SO_BACKLOG….
✔ ChannelFuture
• Channel I/O Operations이 완료 되었을 때 결과를 받을 수 있는 Future 객체
개발구성요소 (핵심컴포넌트)
15. ✔ ChannelHandler
• …InboundHandler, …OutBoundHandler 지원
• Channel I/O Operations의 Event 처리를 위한 Handler Method를 지원
✔ ByteBuf (dynamic buffer)
• UnPooledDirectByteBuf, UnPooledHeapByteBuf, UnPooledUnsafeDirectByteBuf,
PooledDirectByteBuf, PooledHeapByteBuf, PooledUnsafeDirectByteBuf,
CompositeByteBuf….
개발구성요소 (핵심컴포넌트)