[C++ Korea 3rd Seminar] 새 C++은 새 Visual Studio에, 좌충우돌 마이그레이션 이야기Chris Ohk
C++11을 시작으로 모던 C++이 도입된 지도 어느새 6년이라는 시간이 흘렀습니다. 올해는 C++17 표준이 도입될 예정입니다. 그만큼 많이 개선되고 새로운 기능들이 많이 도입되었기에 실무에서 사용해보고 싶은 경우도 많습니다. 하지만 이미 서비스 중이라 기존 프로젝트를 새 버전의 VS로 마이그레이션하기 어려운 프로젝트가 많습니다. 그렇다고 아예 불가능한 일도 아닙니다. 이번 세미나에서는 기존 프로젝트를 새 버전의 VS로 마이그레이션하면서 발생했던 문제와 마이그레이션 이후 모던 C++을 사용하면서 발생했던 문제, 그리고 해결법을 설명하고자 합니다. 또한 새 버전의 VS에 생긴 유용한 기능들도 함께 알려드립니다.
Apache Hive: for business intelligence use and real-time I/O use (Korean)Teddy Choi
"아파치 하이브: 비즈니스 인텔리전스와 실시간 조회 관점에서" 슬라이드는 제 10회 ACC (http://acc.zdnet.co.kr)에서 아파치 하이브 기여자 최종욱이 발표한 내용을 담고 있습니다. 최근 스팅어가 추구하는 방향, 그리고 달성한 성과와 HBase 통합 분야의 발전을 소개합니다.
2010 CodeEngn Conference 04
2010년 5월 22~24일, 세계 최대의 해커들의 축제인 DEFCON 18의 CTF 예선이 열렸습니다. Kaist 보안동아리 GoN 팀으로 참여하면서 느낀 이번 DEFCON CTF 예선에 대한 전반적인 리뷰와 함께, 여러 문제 분야들 중 Binary l33tness, Pwtent pwnables 분야의 문제들의 풀이를 해보고자 한다. (Defcon 18 CTF 예선전 전체 529팀에서 6위로 본선진출)
http://codeengn.com/conference/04
Clova Extension 음성기반 게임 기획 및 설계 / FaaS를 이용한 개발 Clova Platform
Session 1: Clova Extension 음성기반 게임 기획 및 설계
- Clova Extension 개요 및 사례소개
- 구구단놀이 기획 및 설계
- 나라이름 맞추기 기획 및 설계
세션 2: Ncloud FaaS를 이용한 서버없이 Clova Extension 개발
- FaaS 개요 및 사용방법
- 구구단놀이 게임 Extension 구현
- 나라이름 맞추기 Extension 구현
[C++ Korea 3rd Seminar] 새 C++은 새 Visual Studio에, 좌충우돌 마이그레이션 이야기Chris Ohk
C++11을 시작으로 모던 C++이 도입된 지도 어느새 6년이라는 시간이 흘렀습니다. 올해는 C++17 표준이 도입될 예정입니다. 그만큼 많이 개선되고 새로운 기능들이 많이 도입되었기에 실무에서 사용해보고 싶은 경우도 많습니다. 하지만 이미 서비스 중이라 기존 프로젝트를 새 버전의 VS로 마이그레이션하기 어려운 프로젝트가 많습니다. 그렇다고 아예 불가능한 일도 아닙니다. 이번 세미나에서는 기존 프로젝트를 새 버전의 VS로 마이그레이션하면서 발생했던 문제와 마이그레이션 이후 모던 C++을 사용하면서 발생했던 문제, 그리고 해결법을 설명하고자 합니다. 또한 새 버전의 VS에 생긴 유용한 기능들도 함께 알려드립니다.
Apache Hive: for business intelligence use and real-time I/O use (Korean)Teddy Choi
"아파치 하이브: 비즈니스 인텔리전스와 실시간 조회 관점에서" 슬라이드는 제 10회 ACC (http://acc.zdnet.co.kr)에서 아파치 하이브 기여자 최종욱이 발표한 내용을 담고 있습니다. 최근 스팅어가 추구하는 방향, 그리고 달성한 성과와 HBase 통합 분야의 발전을 소개합니다.
2010 CodeEngn Conference 04
2010년 5월 22~24일, 세계 최대의 해커들의 축제인 DEFCON 18의 CTF 예선이 열렸습니다. Kaist 보안동아리 GoN 팀으로 참여하면서 느낀 이번 DEFCON CTF 예선에 대한 전반적인 리뷰와 함께, 여러 문제 분야들 중 Binary l33tness, Pwtent pwnables 분야의 문제들의 풀이를 해보고자 한다. (Defcon 18 CTF 예선전 전체 529팀에서 6위로 본선진출)
http://codeengn.com/conference/04
Clova Extension 음성기반 게임 기획 및 설계 / FaaS를 이용한 개발 Clova Platform
Session 1: Clova Extension 음성기반 게임 기획 및 설계
- Clova Extension 개요 및 사례소개
- 구구단놀이 기획 및 설계
- 나라이름 맞추기 기획 및 설계
세션 2: Ncloud FaaS를 이용한 서버없이 Clova Extension 개발
- FaaS 개요 및 사용방법
- 구구단놀이 게임 Extension 구현
- 나라이름 맞추기 Extension 구현
20. 20
Alice Bob Carol
10개 10개 10개
World State
Block3
(key: Alice, value 5), (key: Bob, value: 15)
(key: Carol, value: 8), (key: Bob, value: 12)
(key: Carol, value: 9), (key: Alice, value: 11)
(key: Bob, value: 5), (key: Alice, value: 15)
(key: Bob, value: 5), (key: Carol, value: 15)
(key: Alice, value: 2), (key: Carol, value: 12)
Alice Bob5
Alice Carol2
Bob Carol5
Bob Alice5
Carol Alice1
Carol Bob2
…
33. 33
Event Source?
기존의 저장 방식 이벤트 소스
Alice
10개
Bob
0개
Alice
5개
Bob
5개
Alice
20개
Bob
0개
상태
변화
Alice deposit
20
Alice to Bob
15
Bob to Alice
5
이벤트
기록Alice
5개
Bob
15개
Bob exit 10
35. 35
Alice Bob Carol
10개 10개 10개
World State
1. Alice 가 Bob 에게
구슬 5개를 보낸다.
Key: Transfer/Alice/Bob/5/txid
Value: 0x00
CompositeKey
이용
(key: Transfer/Alice/Bob/5/txid,
value: 0x00)
37. 37
(key: Transfer/Bob/Alice/5/txid,
value: 0x00)
Alice Bob Carol
10개 10개 10개
World State
3. Bob 이 Carol 에게
구슬 5개를 보낸다.
Key: Transfer/Bob/Carol/5/txid
Value: 0x00
4. Bob 이 Alice 에게
구슬 5개를 보낸다.
Key: Transfer/Bob/Alice/5/txid
Value: 0x00
(key: Transfer/Alice/Carol/2/txid,
value: 0x00)
(key: Transfer/Alice/Bob/5/txid,
value: 0x00)
(key: Transfer/Bob/Carol/5/txid,
value: 0x00)
41. 41
Snapshot !!
Alice deposit 40
Alice to Bob 30
Alice to Bob 5
Bob exit 10
Bob to Alice 5
Bob to Alice 5
Bob to Alice 5
Alice exit 10
Alice : 10
Bob : 20
Snapshot
Snapshot 부터
기록을 조회
43. 43
Alice deposit 40
Alice to Bob 30
Alice to Bob 5
Bob exit 10
Bob to Alice 5
Del
Bob to Alice 5
Bob to Alice 5
Alice exit 10
1. 특정 범위까지 값을 제거
2. 넣어야 하는 값 만큼
event 형식으로 넣음
‘’ to Alice 10
Put
‘’ to Bob 20
Pruning !!
45. 45
Alice deposit 40
Alice to Bob 30
Alice to Bob 5
Bob exit 10
Bob to Alice 5
Bob to Alice 5
Bob to Alice 5
Alice exit 10
Block4
Block3
Block2
Block1
Block5
Transaction
Transaction
Transaction
Transaction
Transaction
!
World State
기록은 블록체인에서
관리 가능
47. 47
Alice
₩100,000 을 가진 Alice 가
₩50,000 씩 네사람에게 보내면?
₩50,000
A B C D
₩50,000
₩50,000
₩50,000
(key: Transfer/Alice/C/50000/txid,
value: 0x00)
(key: Transfer/Alice/B/50000/txid,
value: 0x00)
(key: Transfer/Alice/A/50000/txid,
value: 0x00)
(key: Transfer/Alice/D/50000/txid,
value: 0x00)
100,000 – 4x(50,000)
= -100,000 ??
61. 61
※ 주의: Phantom Read
GetStateByPartialCompositeKey
Alice deposit 40
Alice to Bob 30
Alice to Bob 5
Bob exit 10
Bob to Alice 5
Bob to Alice 5
Bob to Alice 5
Alice exit 10
World State
State list 를 가져오는 메서드
63. 63
※ 주의: Phantom Read
1 2~ Endorsement 단계
Alice deposit 40
Alice to Bob 30
Alice to Bob 5
Bob exit 10
Bob to Alice 5
Bob to Alice 5
…
Alice exit 10
World State
Peer
GetStateByPartialCompositeKey
10 개
64. 64
※ 주의: Phantom Read
3 4~ Consensus 단계
Orderer
Block
Make
…
Plus Event
Plus Event
65. 65
※ 주의: Phantom Read
4 ~ Validation 단계
Alice deposit 40
Alice to Bob 30
Bob exit 10
Bob to Alice 5
World State
Peer
GetStateByPartialCompositeKey
10 개
첫번째 Transaction validaton
Plus Event
66. 66
※ 주의: Phantom Read
4 ~ Validation 단계
두번째 Transaction validaton
Alice deposit 40
Alice to Bob 30
Bob exit 10
Bob to Alice 5
World State
Peer
GetStateByPartialCompositeKey
11 개
Plus Event
67. Alice deposit 40
Alice to Bob 30
Bob exit 10
Bob to Alice 5
World State
Plus Event
67
※ 주의: Phantom Read
4 ~ Validation 단계
두번째 Transaction validaton
Peer
GetStateByPartialCompositeKey
11 개
Endorsement 단계 갯수(10) ≠
Validation 단계 갯수(11)
Phantom Read !!!!! => Fail