[C++ korea] effective modern c++ study item 7 distinguish between () and {} w...Seok-joon Yun[C++ Korea] Effective Modern C++ Study (신촌) Item 7
Distinguish between () and {} when creating objects.
Object를 생성할 때 ()와 {}를 구분하라.
- 윤석준
[C++ Korea] Effective Modern C++ MVA item 8 Prefer nullptr to 0 and null +윤석준Seok-joon Yun[C++ Korea] Effective Modern C++ MVA item 8 Prefer nullptr to 0 and null +윤석준
[C++ Korea] Effective Modern C++ Study item14 16 +신촌Seok-joon Yun[C++ Korea] Effective Modern C++ Study item14 16 +신촌
Item 14 : Declare functions noexcept if they won't emit exceptions. +윤석준
Item 15 : Use constexpr whenever possible. +이동우
Item 16 : Make const member functions thread safe. +제한재
Effective Modern C++ MVA item 18 Use std::unique_ptr for exclusive-ownership ...Seok-joon YunEffective Modern C++item 18 Use std::unique_ptr for exclusive-ownership resource management +윤석준
- MVA Version
[C++ korea] effective modern c++ study item 14 declare functions noexcept if ...Seok-joon Yun[C++ Korea] Effective Modern C++ Study (신촌) Item 14
Declare functions noexceptif they won’t emit exceptions.
예외를 발생하지 않는 함수인 경우 noexcept를 선언하자.
- 윤석준
[C++ korea] Effective Modern C++ study item 19 use shared ptr for shared owne...Seok-joon Yun[C++ Korea] Effective Modern C++ Study
Item 19 Use shared_ptr for shared-ownership resource management
공유자원 관리엔 std::shared_ptr을 사용하자.
+윤석준
[C++ korea] Effective Modern C++ 신촌 Study Item20,21,23Seok-joon Yun[C++ korea] Effective Modern C++ 신촌 Study Item20,21,23
Item 20, 21, 23
Item 20 : Use std::weak_ptr for std::shared_ptr-like pointers that can dangle. +정은식
Item 21 : Prefer std::make_unique and std::make_shared to direct use of new. +이동우
Item 23 : Understand std::move and std::forward. +제한재
[C++ Korea] Effective Modern C++ Study item 24-26Seok-joon Yun[C++ Korea] Effective Modern C++ Study item 24-26
Item 24: Distinguish universal references from rvalue references. +석정로
Item 25 : Use std::move on rvalue references,
std::forward on universal references. +서승덕
Item 26 : Avoid overloading on universal references. +윤석준
C++17 Key Features Summary - Ver 2Chris OhkC++은 10년 만에 C++11/14를 발표하면서 '모던 C++'이라는 이름으로 발전했습니다. 그만큼 새로운 기능들이 많이 추가되었습니다. 그리고 2017년, C++은 C++17이라는 이름으로 또 한 번의 발전을 준비하고 있습니다. 3년 주기로 빠르게 변화하는 모던 C++에 대비하기 위해, C++17에 추가될 주요 기능들을 살펴보고자 합니다.
이 발표는 이전에 발표했던 내용에서 일부 사례 추가 및 최신 내용으로 갱신한 버전입니다.
[C++ korea] effective modern c++ study item 2 understanding auto type deduc...Seok-joon Yun[C++ korea] effective modern c++ study (신촌) item 2 understanding auto type deduction +옥찬호
[TechDays Korea 2015] 녹슨 C++ 코드에 모던 C++로 기름칠하기Chris Ohk기존에 작성해 놓은 C++ 코드에 모던 C++를 적용하기는 쉽지 않습니다. 막상 개선하려고 마음먹었다고 해도, 어디서부터 바꿔야 할 지 막막하기만 합니다. 이 세션에서는 기존 C++ 코드에서 모던 C++를 적용해 프로그램의 구조와 성능을 개선하는 방법에 대해서 설명합니다. 그리고 기존 C++ 코드에 모던 C++를 적용할 때 주의해야 될 점에 대해서도 살펴봅니다.
[C++ Korea 2nd Seminar] C++17 Key Features SummaryChris OhkC++은 10년 만에 C++11/14를 발표하면서 '모던 C++'이라는 이름으로 발전했습니다. 그만큼 새로운 기능들이 많이 추가되었습니다. 그리고 2017년, C++은 C++17이라는 이름으로 또 한 번의 발전을 준비하고 있습니다. 3년 주기로 빠르게 변화하는 모던 C++에 대비하기 위해, C++17에 추가될 주요 기능들을 살펴보고자 합니다.
C++20 Key Features SummaryChris Ohk모던 C++의 시초인 C++11은 C++ 코드 전반에 많은 변화를 가져왔습니다. 그리고 최근 C++20의 표준위원회 회의가 마무리되었습니다. 내년에 C++20이 도입되면 C++11이 처음 도입되었을 때와 비슷한 규모, 또는 그 이상의 변화가 있을 것이라고 예상하고 있습니다. C++20에는 Concepts, Contract, Ranges, Coroutine, Module 등 굵직한 기능 외에도 많은 기능들이 추가될 예정입니다. 이번 세션에서는 C++20에 추가될 주요 기능들을 살펴보고자 합니다.
C++ Concurrency in Action 9-2 Interrupting threadsSeok-joon YunC++ Korea
C++ Concurrency in Action
Study
Chapter 09 Advanced thread management
9.2 Interrupting threads
[C++ Korea 3rd Seminar] 새 C++은 새 Visual Studio에, 좌충우돌 마이그레이션 이야기Chris OhkC++11을 시작으로 모던 C++이 도입된 지도 어느새 6년이라는 시간이 흘렀습니다. 올해는 C++17 표준이 도입될 예정입니다. 그만큼 많이 개선되고 새로운 기능들이 많이 도입되었기에 실무에서 사용해보고 싶은 경우도 많습니다. 하지만 이미 서비스 중이라 기존 프로젝트를 새 버전의 VS로 마이그레이션하기 어려운 프로젝트가 많습니다. 그렇다고 아예 불가능한 일도 아닙니다. 이번 세미나에서는 기존 프로젝트를 새 버전의 VS로 마이그레이션하면서 발생했던 문제와 마이그레이션 이후 모던 C++을 사용하면서 발생했던 문제, 그리고 해결법을 설명하고자 합니다. 또한 새 버전의 VS에 생긴 유용한 기능들도 함께 알려드립니다.
[C++ korea] Effective Modern C++ 신촌 Study Item20,21,23Seok-joon Yun[C++ korea] Effective Modern C++ 신촌 Study Item20,21,23
Item 20, 21, 23
Item 20 : Use std::weak_ptr for std::shared_ptr-like pointers that can dangle. +정은식
Item 21 : Prefer std::make_unique and std::make_shared to direct use of new. +이동우
Item 23 : Understand std::move and std::forward. +제한재
[C++ Korea] Effective Modern C++ Study item 24-26Seok-joon Yun[C++ Korea] Effective Modern C++ Study item 24-26
Item 24: Distinguish universal references from rvalue references. +석정로
Item 25 : Use std::move on rvalue references,
std::forward on universal references. +서승덕
Item 26 : Avoid overloading on universal references. +윤석준
C++17 Key Features Summary - Ver 2Chris OhkC++은 10년 만에 C++11/14를 발표하면서 '모던 C++'이라는 이름으로 발전했습니다. 그만큼 새로운 기능들이 많이 추가되었습니다. 그리고 2017년, C++은 C++17이라는 이름으로 또 한 번의 발전을 준비하고 있습니다. 3년 주기로 빠르게 변화하는 모던 C++에 대비하기 위해, C++17에 추가될 주요 기능들을 살펴보고자 합니다.
이 발표는 이전에 발표했던 내용에서 일부 사례 추가 및 최신 내용으로 갱신한 버전입니다.
[C++ korea] effective modern c++ study item 2 understanding auto type deduc...Seok-joon Yun[C++ korea] effective modern c++ study (신촌) item 2 understanding auto type deduction +옥찬호
[TechDays Korea 2015] 녹슨 C++ 코드에 모던 C++로 기름칠하기Chris Ohk기존에 작성해 놓은 C++ 코드에 모던 C++를 적용하기는 쉽지 않습니다. 막상 개선하려고 마음먹었다고 해도, 어디서부터 바꿔야 할 지 막막하기만 합니다. 이 세션에서는 기존 C++ 코드에서 모던 C++를 적용해 프로그램의 구조와 성능을 개선하는 방법에 대해서 설명합니다. 그리고 기존 C++ 코드에 모던 C++를 적용할 때 주의해야 될 점에 대해서도 살펴봅니다.
[C++ Korea 2nd Seminar] C++17 Key Features SummaryChris OhkC++은 10년 만에 C++11/14를 발표하면서 '모던 C++'이라는 이름으로 발전했습니다. 그만큼 새로운 기능들이 많이 추가되었습니다. 그리고 2017년, C++은 C++17이라는 이름으로 또 한 번의 발전을 준비하고 있습니다. 3년 주기로 빠르게 변화하는 모던 C++에 대비하기 위해, C++17에 추가될 주요 기능들을 살펴보고자 합니다.
C++20 Key Features SummaryChris Ohk모던 C++의 시초인 C++11은 C++ 코드 전반에 많은 변화를 가져왔습니다. 그리고 최근 C++20의 표준위원회 회의가 마무리되었습니다. 내년에 C++20이 도입되면 C++11이 처음 도입되었을 때와 비슷한 규모, 또는 그 이상의 변화가 있을 것이라고 예상하고 있습니다. C++20에는 Concepts, Contract, Ranges, Coroutine, Module 등 굵직한 기능 외에도 많은 기능들이 추가될 예정입니다. 이번 세션에서는 C++20에 추가될 주요 기능들을 살펴보고자 합니다.
C++ Concurrency in Action 9-2 Interrupting threadsSeok-joon YunC++ Korea
C++ Concurrency in Action
Study
Chapter 09 Advanced thread management
9.2 Interrupting threads
[C++ Korea 3rd Seminar] 새 C++은 새 Visual Studio에, 좌충우돌 마이그레이션 이야기Chris OhkC++11을 시작으로 모던 C++이 도입된 지도 어느새 6년이라는 시간이 흘렀습니다. 올해는 C++17 표준이 도입될 예정입니다. 그만큼 많이 개선되고 새로운 기능들이 많이 도입되었기에 실무에서 사용해보고 싶은 경우도 많습니다. 하지만 이미 서비스 중이라 기존 프로젝트를 새 버전의 VS로 마이그레이션하기 어려운 프로젝트가 많습니다. 그렇다고 아예 불가능한 일도 아닙니다. 이번 세미나에서는 기존 프로젝트를 새 버전의 VS로 마이그레이션하면서 발생했던 문제와 마이그레이션 이후 모던 C++을 사용하면서 발생했던 문제, 그리고 해결법을 설명하고자 합니다. 또한 새 버전의 VS에 생긴 유용한 기능들도 함께 알려드립니다.
[C++ Korea] Effective Modern C++ Study item 31-33Seok-joon YunItem 31 : Avoid default capture modes. + 제한재님
Item 32 : Use init capture to move objects into closures. +제한재님
Item 33 : Use decltype on auto&& parameters to std::forward them. +윤석준님
Eks.introduce.v2Seok-joon YunThis 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.
Eks.introduceSeok-joon YunThe 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 YunThis 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 YunThe 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.
Welcome to Modern C++Seok-joon YunThe 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.
5. Effective Modern C++ Study
C++ Korea
#define INT32 int
typedef unsigned char BYTE;
typedef unsigned short WORD;
5
#define 은 단순 문자열 치환기능 -> Debugging 힘듬
typedef 는 원래 타입을 숨김 -> 코드 이해도 하락
6. Effective Modern C++ Study
C++ Korea
int nVal1 = 2;
int nVal2 = 3;
void FUNC_SKY(int args) { std::cout << "Sky : " << args << std::endl; }
void FUNC_FLY(int args) { std::cout << "Fly : " << args << std::endl; }
#define MAC_FUNC(F, N) FUNC_##F(nVal##N)
MAC_FUNC(SKY, 2); // Sky : 3
6
## : 앞뒤 문자들을 붙여서 Code에 삽입
7. Effective Modern C++ Study
C++ Korea
typedef basic_string<char, char_traits<char>, allocator<char>> string;
7
어떤게 더 편할까요 ?
std::string strA;
std::string strB;
std::basic_string<char, char_traits<char>, allocator<char>> strA;
std::basic_string<char, char_traits<char>, allocator<char>> strB;
const std::_Simple_types<std::_Wrap_alloc<std::_Vec_base_types<Widget,
std::allocator<Widget> >::_Alloc>::value_type>::value_type *
9. Effective Modern C++ Study
C++ Korea9
// C++98 typedef
typedef std::unique_ptr<std::unordered_map<std::string, std::string>> UPM_SS;
// C++11 using
using UPM_SS = std::unique_ptr<std::unordered_map<std::string, std::string>>;
에이~ 별 차이 없자나.
10. Effective Modern C++ Study
C++ Korea10
// C++98 typedef
typedef void(*Func)(int, const std::string&);
// using (alias declaration)
using Func = void(*)(int, const std::string&);
좀 보기 좋긴 한데…
그래도~ 별 차이 없자나.
12. Effective Modern C++ Study
C++ Korea12
template<typename T> // using (alias declaration)
using MyList = std::list<T, MyAlloc<T>>;
template<typename T> // typedef
struct MyList
{
typedef std::list<T, MyAlloc<T>> TYPE;
};
MyList<Widget> LW;
MyList<Widget>::TYPE LW;
선언이 좀 불편하긴 하네.
근데 사용은 더 불편하다.
14. Effective Modern C++ Study
C++ Korea14
template 타입의 속성을 변화
std::remove_const<T>::type // T from const T
std::remove_reference<T>::type // T from T&, T&&
std::add_lvalue_reference<T>::type // T& from T
::type ?
누가봐도 template struct typedef 사용한것임을 알수 있다.
15. Effective Modern C++ Study
C++ Korea15
std::remove_const_t<T> // T from const T
std::remove_reference_t<T> // T from T&, T&&
std::add_lvalue_reference_t<T> // T& from T
이름이 중복 되니깐 _t를 붙여서 사용
16. Effective Modern C++ Study
C++ Korea16
template<class T>
using remove_const_t = typename std::remove_const<T>::type;
template<class T>
using remove_refernece_t = typename std::remove_reference_t<T>::type;
template<class T>
using add_lvalue_reference_t
= typename std::add_lvalue_reference<T>::type;
17. Effective Modern C++ Study
C++ Korea17
http://www.cplusplus.com/reference/type_traits
…
19. Effective Modern C++ Study
C++ Korea19
• using (별칭선언)은 template를 지원합니다.
• using은 ::type 을 뒤에 붙일 필요도 없고,
typename 을 앞에 붙일 필요도 없습니다.
• C++14에서는 C++11의 Type Trait Transformation을
별칭 선언으로 지원합니다.
http://devluna.blogspot.kr/2015/03/item-9-typedef.html
icysword77@gmail.com