[TechDays Korea 2015] 녹슨 C++ 코드에 모던 C++로 기름칠하기Chris Ohk
기존에 작성해 놓은 C++ 코드에 모던 C++를 적용하기는 쉽지 않습니다. 막상 개선하려고 마음먹었다고 해도, 어디서부터 바꿔야 할 지 막막하기만 합니다. 이 세션에서는 기존 C++ 코드에서 모던 C++를 적용해 프로그램의 구조와 성능을 개선하는 방법에 대해서 설명합니다. 그리고 기존 C++ 코드에 모던 C++를 적용할 때 주의해야 될 점에 대해서도 살펴봅니다.
http://github.com/ipkn/crow
Crow 프로젝트에서 사용한 C++11 기법들을 실제 구현에 대한 설명을 포함하여 자세히 설명한 발표자료입니다.
C++11 features used in Crow
video:
http://youtu.be/MixS9c3mE6U
https://vimeo.com/119627253
[TechDays Korea 2015] 녹슨 C++ 코드에 모던 C++로 기름칠하기Chris Ohk
기존에 작성해 놓은 C++ 코드에 모던 C++를 적용하기는 쉽지 않습니다. 막상 개선하려고 마음먹었다고 해도, 어디서부터 바꿔야 할 지 막막하기만 합니다. 이 세션에서는 기존 C++ 코드에서 모던 C++를 적용해 프로그램의 구조와 성능을 개선하는 방법에 대해서 설명합니다. 그리고 기존 C++ 코드에 모던 C++를 적용할 때 주의해야 될 점에 대해서도 살펴봅니다.
http://github.com/ipkn/crow
Crow 프로젝트에서 사용한 C++11 기법들을 실제 구현에 대한 설명을 포함하여 자세히 설명한 발표자료입니다.
C++11 features used in Crow
video:
http://youtu.be/MixS9c3mE6U
https://vimeo.com/119627253
C++은 10년 만에 C++11/14를 발표하면서 '모던 C++'이라는 이름으로 발전했습니다. 그만큼 새로운 기능들이 많이 추가되었습니다. 그리고 2017년, C++은 C++17이라는 이름으로 또 한 번의 발전을 준비하고 있습니다. 3년 주기로 빠르게 변화하는 모던 C++에 대비하기 위해, C++17에 추가될 주요 기능들을 살펴보고자 합니다.
이 발표는 이전에 발표했던 내용에서 일부 사례 추가 및 최신 내용으로 갱신한 버전입니다.
[C++ Korea 2nd Seminar] Ranges for The Cpp Standard LibraryDongMin Choi
Microsoft Melting Pot
C++ Korea 2nd Seminar
Ranges for The Cpp Standard Library
https://channel9.msdn.com/Events/Channel9-Korea/cplusplus/Ranges-for-The-C-Standard-Library
boost라이브러리 중에서 가장 많이 사용하는 기능인 BOOST_FOREACH()와 shared_ptr의 내부 구조를 분석합니다. 그리고 boost의 내부 구현에 사용된 이 기능을 프로그래밍에 응용하는 방법을 제시합니다.
* BOOST_FOREACH 구조 분석 및 응용
* shared_ptr 구조 분석 및 응용
This document discusses different architectures for running containers and Kubernetes on AWS. It begins by showing a simple VPC configuration and then expands on it by adding availability zones, load balancing, auto scaling, and Route53 for high availability. It then discusses using ECS or EKS instead of manually launching EC2 instances. The document also provides links about Docker for beginners and how Kubernetes works on EKS, including concepts like clusters, pods, deployments, and services. It concludes by thanking the audience.
The document discusses the differences between static servers, cloud servers, Docker, and Kubernetes. It provides an overview of key concepts in cloud computing including EC2, ECS, EKS, VPCs, subnets, security groups, containers, pods, deployments, services, and nodes. Diagrams illustrate the architecture and relationships between these components in an AWS cloud environment.
AWS DEV DAY SEOUL 2017 Buliding Serverless Web App - 직방 Image ConverterSeok-joon Yun
This document discusses using Amazon Web Services (AWS) to build a serverless web application. It describes deploying an Express.js web framework application on AWS Lambda and API Gateway without a server. The application uses services like AWS Lambda, API Gateway, AWS RDS, AWS S3, and CloudFront. It provides steps for configuring the Express.js app to run on AWS Lambda and calling it through API Gateway.
Pro typescript.ch03.Object Orientation in TypeScriptSeok-joon Yun
The document discusses object-oriented programming concepts in TypeScript such as classes, inheritance, polymorphism, and mixins. It provides code examples of implementing interfaces and classes to demonstrate inheritance and composition. Mixins are discussed as a way to reuse behavior across class hierarchies by applying multiple base classes to a derived class using a mixin function. The examples show how to define mixin behaviors as classes and apply them to implementing classes to achieve multiple inheritance in TypeScript.
The document discusses new C++11 features including:
1. Uniform initialization syntax using curly braces {} which can initialize objects in a clear and consistent way compared to parentheses () or equals =.
2. Initializer lists and how they allow initializing objects from a list of values. However, initializer lists may prefer certain constructors unintuitively.
3. How uniform initialization helps prevent narrowing conversions and most vexing parse issues that could occur in C++98 code.
18. 18
#include <vector> // 해더 파일
std::vector<int> vec; // 선언
vec.push_back(10); // 추가
vec.pop_back(); // 삭제
vec.resize(10, 0); // 초기화 : 10의 크기를 0으로 채움
vec[3] = 10; // 랜덤 접근
std::cout << vec[3] << std::endl; // 랜덤 접근
19. 19
int nSum = 0;
for (int i = 0; i < vec.size(); i++)
{
nSum += vec[i];
}
// auto = std::iterator<std::vector<int>>
for (auto it = vec.begin(); it != vec.end(); it++)
{
nSum += (*it);
}
23. 23
#include <deque> // 해더 파일
std::deque<int> deq; // 선언
deq.push_back(10); // 뒤에 추가
deq.pop_back(); // 뒤에 삭제
deq.push_front(20); // 앞으로 추가
deq.pop_front(); // 앞에 삭제
deq.resize(10, 0); // 초기화 : 10의 크기를 0으로 채움
deq[3] = 10; // 랜덤 접근
std::cout << deq[3] << std::endl; // 랜덤 접근
24. 24
int nSum = 0;
for (int i = 0; i < deq.size(); i++)
{
nSum += vec[i];
}
// auto = std::vector<int>::iterator
for (auto it = deq.begin(); it != deq.end(); it++)
{
nSum += (*it);
}