WebAssembly의 개념 WebAssembly는 약어로 WASM, 와즘 이라고도 하는데 웹 애플리케이션 성능향상을 위해 개발한 기술로 웹 표준 언어인 JavaScript가 아닌 언어로 작성된 코드를 재작성할 필요 없이 별도의 플러그인 없이도 Native 애플리케이션에 가까운 속도로 웹브라우저에서 실행하는 방법을 제공하는 도구이다 좀 더 상세히 설명하며, C, C++, Rust 등의 고급 언어로 작성된 코드를 최적화하여 웹 브라우저에서 실행할 수 있는 이진 형태의 파일로 변환하여 웹브라우저 상에서 실행가능하며 이식가능한 Binary Format 을 정의한 개방형 표준으로, 간략히 말해 웹 브라우저 상에서 네이티브 애플리키이션에 가까운 성능으로 프로그램을 실행 가능하게 하는 기술이다. WebAssembl..
Distributed SQL의 개념 RDB의 ACID트랜잭션과 분산처리 기반 확정성을 제공하고자 했던 NewSQL은 Monolithic SQL 데이터베이스의 확장성 문제를 해결하고자 했으나 초기 접근은 아키텍처의 현격한 강화 없이 복수 노드의 활용이 가능하도록 하는 것에 그쳤다. 때문에 클라우드 활용이 확대되면서 Multi Zone/Region/Cloud 배포가 모던 애플리케이션의 표준이 됨에 따라 NewSQL은 한계를 맞이하였다. 이에 따라 NewSQL벤더들이 글로벌 분산 아키텍처를 위한 관계형 데이터베이스로 아키텍처를 재설계하고 NewSQL대신 Distributed SQL이라는 용어를 사용하기 시작했다. Distributed SQL은 여러 대의 노드로 구성된 분산 시스템에서 SQL 쿼리를 처리하는 기..
API Mediation의 개념 Cloud Native, MSA(Micro Service Architectrure) 등이 발전하면서 점차 loosely-coupled 서비스들 간의 통신과 연계가 중요해지기 시작했으며, Event-driven, API-first 아키텍처가 주요 사상으로 자리잡게 되면서 API를 통한 백앤드와 애플리케이션가의 통합이 널리 사용되고 있다. 하지만, 서비스에 따라서 API의 프로토콜을 변환해야 하거나 여러 API를 묶어 제공해야 하는 경우 API Gateway의 부담이 가중됨에 따라, 복잡해진 컴퓨팅 환경에서 더욱 빠르고 안전하게 백앤드, Microservice를 결합하기 위해 API Mediation이 등장하였다. 즉, API Mediation은 다양한 백앤드 리소스를 가져와..
기존에 우리가 해왔던 프로그래밍 방식을 먼저 생각해보자 int a, b, c가 있다고 할때, b = 3; c = 5; a = b + c ; 이면 a는 연산을 통해 8이 된다. 그런데 여기서 다시 b = 9; c = 8로 변경되면 a의 값은 어떻게 될까? 그렇다, 다시 a = b + c연산을 하지 않으면 a의 값은 변하지 않는다. 이러한 방식을 우린 Imperactive Programming이라고 한다. 하지만, 오늘 이야기할 Reactive Programming에서는 b와 c의 값이 변할 때마나 바로 재연산이 수행되어 a값이 변하게 된다. 그럼 Reactive Programming에 대하여 좀 더 체계적으로 알아보자. Reactive Programming의 정의 및 등장배경 Reactive Program..
GraphQL의 개념 GraphQL은 REST 호출 규모가 증가하여 서버와의 잦은 충돌과 성능 저하 문제를 겪었던 Facebook이 서버로부터 데이터를 가져오는 작업을 보다 효율적으로 하기 위해 개발한 쿼리 언어 및 런타임 시스템으로, RESTful API를 대체하기 위한 기술이다. GraphQL은 클라이언트가 데이터를 요청할 때 필요한 데이터만을 선택적으로 요청할 수 있도록 하여, 불필요한 데이터를 전송하지 않고도 원하는 데이터를 효율적으로 가져올 수 있다. GraphQL의 특징 GraphQL은 클라이언트가 원하는 데이터를 선택하고, 서버가 이를 제공하는 방식으로 동작한다. 이를 위해 GraphQL에서는 Schema를 사용하여 데이터 모델링을 정의하고, 클라이언트가 요청하는 데이터에 대한 응답을 작성한..
Green Softwaref란 무엇인가? 지속가능한 소프트웨어(sustainable software) 라고도 하는 Green Software(친환경 소프트웨어는 에너지 소비를 제한하고 환경에 미치는 영향을 최소화하도록 설계, 개발 및 구현되는 소트트웨어를 말한다. Green Software Engineering은 소프트웨어 아키텍처, 하드웨어, 데이터센터 설계, 전기 시장 및 기후변화를 고려한다. 또한 Green Software Engineering은 온실가스 배출량을 줄이고 회사의 탄소 발자국을 줄이는 것을 목표로 한다. Green software는 다양한 방식으로 구현될 수 있습니다. 예를 들어, 효율적인 알고리즘을 사용하거나, 클라우드 컴퓨팅 리소스를 최적으로 활용하여 서버의 전력 소비를 줄이는 등..
본 글은 Stephen J. Bigelow의 Value Stream Management을 참고하여 작성하였습니다. Value Stream Management의 개념 Value Stream Management(VSM)는 비즈니스 자원과 활동으로의Value Stream과 비즈니스로의 가치 흐름을 측정하기 위한 새로운 비즈니스 프로세스이다. VSM은 기업이 완전한 End to End 활동 주기를 감독하고 그 활동 주기의 성공을 측정하는 데 도움을 준다. 간단히 말해서, VSM은 기업에게 무엇이 효과가 있고 무엇이 그렇지 않은지 볼 수 있도록 도와준다. 이것은 사업이 덜 가치 있는 활동과 계획를 줄이거나 제한하면서 유익한 계획에 집중할 수 있게 해준다. 뿐만 아니라 VSM은 모든 비즈니스 자원과 활동에 적용될 ..
Flutter의 개념 Flutter는 Google에서 2017년 5월에 출시한 Cross-Platform 오픈소스 모바일 애플리케이션 개발 프레임워크이다. Flutter는 Dart라는 프로그래밍 언어를 사용하여 iOS와 Android 모두에서 동작하는 고성능, 선언적 UI를 구축할 수 있다. Flutter는 컴파일러, 라이브러리, 프레임워크, 플러그인, 도구 등을 제공하여 개발자가 높은 생산성으로 효율적이고 아름답게 디자인된 애플리케이션을 만들 수 있도록 도와준다. Flutter는 Cross-Platform이지만 Native 수준의 성능을 보장하고, 미려한 UI, 각종 확장기능을 제공하는 프레임워크로 처음에는 웹 앱을 빌드하기 위해 만들어졌으나, 나중에는 크게 발전하여 모바일, 테스크탑 솔루션 개발에도 ..