contributhon ๊ฐํ์ฌ๊ฐ ์ค๋ 5์ 30๋ถ๋ถํฐ ์งํ๋๊ฒ๋๋๋ฐ ์ด๋ค๋ด์ฉ์ด ๋์ฌ์ง ๊ถ๊ธํด์ ํ์ฌ์ฅ์ ๋ฏธ๋ฆฌ ๋์ฐฉํ์ฌ KOSSCON๋ ์ฐธ์ฌํ๊ฒ ๋์๋ค.
์คํ์์ค์ ์์ <- 1970๋ ๋๊น์ง๋งํด๋ ์์ค๋ ๊ณต๊ฐํ์ง ์๋๊ฒ ์์น But ๋ฆฌ์ฒ๋ ์คํจ๋ง์ด HP๊ฐ ํ๋ฆฐํฐ ์ง์์ค๋จํด์ ๋นก์ณ์ ์์ํ๊ฒ ๋จ
๋ฆฌ๋ ์ค๋ฅผ ๊ธฐ์ ์ผ๋ก Unix(์ํผ์ปดํจํฐ)๋ ์ ์ ์จ์ด ๊ธ๊ฒฉํ๊ฒ ํ๋ฝํจ - ๋ฆฌ๋ ์ค์ ์์ ์ฑ๊ณผ ์๋๋ ์ฆ๋ช ๋จ
Pnetagon์ด ๋ด๋ ๋ถํฐ ์คํ์์ค ์ ์์ ํฐ ์ง์์ ์์ํจ - Mil-OSS
๋ฑ ํน์์คํ ์ ์ฒด ๋ฐ ๋ถ์ฐ์ฒ๋ฆฌ ์คํ์์ค - openbankIT, Apache Fineract
TDD(์๋ ๊ฐ๋ฐํ๋ ์ฌ๋์ด ๋ค๋ฅธ๋ถ์๋ก ๊ฐ๋ ์์คํ ์ด ๋์์ผํจ) / DevOps(Ops๊ฐ ์๋ ๊ฒ, ์ธํ๋ผ๋ฅผ ์ด์ํ๋ ์ฌ๋์ ์ ์ ์ค์ด๋ ๋ค) / Cloud Native(๋ชจ๋ ๊ฒ๋ค์ API๋ก)
BDFL is also human, has feelings, has ages, sometimes want to retire though the name is 'For life' / Community : United we stand, Divide we fall!
** MariaDB๋ ์ ๋ง ๋ง์ด ์ด๋ค๊ณ ํจ
์น์ฑ์ ์๋ก์ด ํํ / ๊ธฐ์กด์ ์น์ฌ์ดํธ๊ฐ ์ด๋ป๊ฒ ์งํํด๊ฐ๊ณ ์๋๊ฐ?
๋ชจ๋ฐ์ผ ์ฑ๊ณผ ๊ฐ์ ๊ฒฝํ์ ์ฃผ๋ ์ต์ ์น ์ฑ
์ฑ์์ด์ฝ, ์ฑ์์ด์ฝ ์ค์น ๋ฐฐ๋, ๋ชจ๋ฐ์ผ ํธ์, ์คํ๋ผ์ธ ๊ฒฝํ ์ ๊ณต
HTML, CSS, JS๋ก ๋ชจ๋ฐ์ผ ์ฑ๊ณผ ๊ฐ์ ์น ์ฑ์ ๊ตฌํ
"๋์ ์ฌ์ฉ์ ๊ฒฝํ์ ์ ๊ณตํ๊ธฐ ์ํ ์น ์ฑ์ ์งํ"
๋ชจ๋ฐ์ผ ์์ฅ์ ํญ๋ฐ์ ์ธ ์ฑ์ฅ
๋ชจ๋ฐ์ผ ์น ๋ณด๋ค๋ ๋ชจ๋ฐ์ผ ์ดํ๋ฆฌ์ผ์ด์
๋ชจ๋ฐ์ผ ์ฑ ์์ญ์ ์ปค๋ฒํ๊ธฐ ์ํ ์๋๋ค - Hybrid App, React Native
Offline Web์ ํ์์ฑ
Responsive
App-like
Discoverable
Engageable
Push
Connectivity(์คํ๋ผ์ธ ์น์ฑ)
Security
ํฌ๊ฒ ๋๊ฐ์ง๊ฐ ์๋ค.
menifest.json - ์น์ฑ์ ๋ํ ๋ฉํ๋ฐ์ดํฐ
Service Workers: client-side JavaScript proxy / javascript๊ฐ ๋ฐฑ๊ทธ๋์ด๋์์ proxy ์ญํ ์ ํ๋ ํํ
PWA๋ ๋ธ๋ผ์ฐ์ ์ข ์์
FF, Opera, Chrome, Safari ๋ฑ ์ง์ํ๊ณ ์์
web fundamentals google codelab
p2p ๊ธฐ์ ์ ์ด์ฉํ ์ธ์คํํธ ๋ฉ์์ง ๊ธฐ์ (c๋ก๋ ๊ตฌํ์ด ๋์ด์์)
C๋ก ๊ฐ๋ฐ๋์ด ์๋๊ฑธ Rust๋ฅผ ์ด์ฉํด์ ๋ค์๊ฐ๋ฐํ๊ณ ์์
Rust์ ๋ํด์๋
๋ผ์ด๋ธ๋ฌ๋ฆฌ ํํ๋ก ์ ๊ณต + API
์์ง์ UI๋ฅผ ์ ํ๊ฒ Tox Client
๋ฉ์์ง ๊ตํ / ๊ทธ๋ฃน ์ฑํ ๋ฐฉ / ํ์ ํตํ(RTP) / ํ์ผ ์ ์ก
์๋์ฐ, ๋ฆฌ๋ ์ค, ์๋๋ก์ด๋, OS X ๋ฑ ํด๋ผ์ด์ธํธ๊ฐ ์ด๋ฏธ ์์
Introduction to Tox - ๋ถ์ฐ ํด์ํ ์ด๋ธ(์ค์์ ์๋ฒ๊ฐ ์์ - ๋ธ๋ก์ฒด์ธ๊ณผ ๊ฐ์) / ํดํน์ผ๋ก๋ถํฐ ์์ ํ ๋ฉ์ ์ ๋ฅผ ๋ง๋ค์ด ๋ณด์ - ๋ณด์์ฑ ํ์ / ๊ฐ์ฑ๋น ์ฐ์(์๋ฒ๊ฐ ๋ง์ด ํ์ํ์ง ์์)
P2P commuinication using DHT(DHT๋ฅผ ์ฌ์ฉ์ 2์ต๋ช ๊น์ง๋ ์ผ๋ฐ์ ์ผ๋ก ์ปค๋ฒ๊ฐ๋ฅ)
Data Encryption of end to end
Supports both IPv4 and IPv6
Can run even if node is behind NAT
Upgrading is in progress
๊ฐ๋ ์ ๊ฐ๋จํ๋ค. ๋ด๊ฐ ํ ์ด๋ธ์ ์ผ๋ถ๋ฅผ ๊ฐ์ง๊ณ ์๊ณ ์ด๋ฅผ ๋์ด์์ด ๊ตํํจ
- PublicKey : used as hash PublicKey
- Socket address : IPv4 and IPv6 socket address
- clone_node_list : array of node<PublicKey, SocketAddr>
- Bootstrap : public bootstrap node already exists. / Request node list based on my PublicKey / Maintain close_node_list
- Response containing node list from request by other node\
Secure communication - ๊ฐ๊ฐ์ ๋ํ๊ธฐ๋ก์ด ์๋ฒ์์ ๊ด๋ฆฌ๋์ง ์๊ธฐ ๋๋ฌธ์ ๋ณด์์ด ํ์ํค
- PublicKey, SecretKey.
- Nonce.
- TOXID.
- There ad no centralized servers.
- At first, it aimed replacement of Skype.
- Should be adopted to Mobile environment.
- Have to solve offline message problem
- Trying to extend protocol standard to accommodate multi-device
- Can replace current messaging system for costeffective reason
๊ฐ๋จํ๋ฉด์ ์์ ํ ๋ฉ์ ์ ๊ฐ ๋๊ฒ ๋ค
์ธ์์๋ ์ด๋ฏธ ๋๋ฌด๋๋ ๋ง์ ๋ฉ์ ์ ๊ฐ ์๋ค -> configuration์ด ์๋ ๋ฉ์ ์ ์์ง์ ๋ง๋ค๋ ค๊ณ ํ๋ค
- Why Rust
- Maintaining current c-toxcore needs much efforts
- Light weight engine is needed to reside in mobile device(ํ์ฌ ํก์ค์ฝ์ด๋ ๊ทธ๋๋ก ๋ชจ๋ฐ์ผ์ ์ฌ๋ผ๊ฐ๊ธฐ์๋ ๋ฌด๊ฒ๋ค)
- Version 1.0 was released about 3 years ago.
- Memory Safety.
- Thread Safety.
- Cost free abstraction.
- Functional programming paradigm.
- System programming like using high level language.
- Traditional problem in multi-thread programming
- Solve using Mutex, Semaphore, ...
- 100% up to the human to guarantee safety.
- Sometimes it demands much debugging.
- Sometimes it requires abandoning codes almost done.
- Ownership
- Borrowing
- Cloning, Copying
- Two thread can't have write access to one resource simultaneously.
- Two case: Many read access to one resource / Only one write access to one resource
- Checked by compiler at compile Sometimes
- Rust is a strong typed language.
- Provide powerful type System
- Unlike other languages, codes written in Rust are compiled to direct machine language not much depending on runtime environments.
- No garbage collector.
- Iterator(์ํ์)
- Clojure
- Powerful combinators
- It don't depend on garbage collector.
- Unlike C/C++, code can be written without using pointer.
- Human can read codes easier than C/C++
- Rust supports convenient TDD(ํ ์คํธ ์๋ํ)
- Cargo provides powerful developing environments.(intelliJ compatible)
- crate.io repository(๋ผ์ด๋ธ๋ฌ๋ฆฌ ๋ค์ด๋ฐ์์ ์ฌ์ฉ๊ฐ๋ฅ)
Rust project์ ๋ชฉํ -> ํจ์จ์ ์ธ ์์คํ ํ๋ก๊ทธ๋จ์ ๋ง๋ค๊ฒ ๋ค. / C๋ ์์ ์ฑ์ด๋ ๋์์ฑ, ์์์ ๋ํ ์ ์ด๋ ์์์ ํด์ผํ์ ์ด๋ฅผ ๋ณด์ํ ์ ์๋๊ฒ RUST
Rust๋ 100%๋ฅผ ์ถ๊ตฌํ์ง ์๋๋ค ์ค์ฉ์ฑ์ ์ํ๋ค ์ค์ฉ์ฑ์ ์ํด์ ๋ค๋ฅธ๊ฑธ ํฌ์ํ ์ ์๋ค.
520 - rust vs comparison
why i'm dropping rust
ruskt-lang.org/ko-KR/documentation.html
rust-doc-korean
It-chain : Customizable and Lightweight Blockchain
์ค์๊ท๋ชจ ์ปค๋ฎค๋ํฐ์์ ์ ์ฐํ๊ณ ์์ ๋กญ๊ฒ ์ด์ฉ ๊ฐ๋ฅํ '๊ฒฝ๋ ๋ง์ถคํ ๋ธ๋ก์ฒด์ธ ์์ง'๊ฐ๋ฐ ๋ฐ ๋ธ๋ก์ฒด์ธ ์ฝ์ด ๊ณต๋ถ
ํต์ฌ ์๋น์ค์ ๋ชจ๋ํ๋ฅผ ํตํด ๋ชฉ์ ์ ๋ง๊ฒ ์ฝ๊ฒ ๊ต์ฒด ๊ฐ๋ฅ ํ๋๋ก ๊ฐ๋ฐ
์ง์ญ ํนํ ํ ํฐ ํ๋ซํผ / ์ค๊ณ ๋ฌผํ ๊ฑฐ๋ ํ๋ซํผ / ์์๊ณต์ธ์ ์ํ ๊ฑฐ๋ ํ๋ซํผ -> It-chain engine
- State Transition Function
- ์๋๋ฆฌ์ค - Network ๊ตฌ์ฑ : one leader
- Submit Request - Invoke transaction / Query
- Forward to leader
- Crate Block and Start Consensus - simulation
- Add block and update State
์๊ตฌ์ฌํญ
- ์์๋น๊ฒ ์์ ํ์ฅ
- ์คํ์์ค
- ์ค์๊ด๋ฆฌ์ ์์ด p2p ๊ตฌ์กฐ
- ๊ธฐ๋ณธ์ ์ธ ๋ธ๋ก์ฒด์ธ ๊ธด์ผ ์ง์ฐ๋ - block storage ์ปดํฌ๋ํธ / authentication ์ปดํฌ๋ํธ / consensus ์ปดํฌ๋ํธ
- consensus ๋ชจ๋ ๋ ธ๋๊ฐ ์๋ก์ ๋ ธ๋๋ฅผ ์๊ณ ์์ gIPC๋ฅผ ์ด์ฉํด ์ฐ๊ฒฐ(ํฉ์๊ณผ์ ์ด ๋นจ๋ผ์ง)
์ค๊ฐ์ ์๋ ๋ธ๋ก์ ์์ ํ๊ธฐ ๊ต์ฅํ ์ด๋ ค์ด ๊ตฌ์กฐ - ์๋ณ์กฐ์ ๊ฐํ๋ค
yggdrasil๋ผ์ด๋ธ๋ฌ๋ฆฌ - ๋ธ๋ก์ฒด์ธ์ ์ ์ฅํ ์ ์์ / Header์ Data๋ก ๊ตฌ๋ถ / Header์๋ ๋ธ๋ก์ ๋ํ ๋ฉํ์ ๋ณด๊ฐ ์ ์ฅ
- Transaction - ICode์คํ ์์ฒญ / JSON-RPC
Block Seal ๊ฐ์ Key๋ก Value ์กฐํ / Last Block์ผ๋ก ๋ถํฐ ์์ฐจ์ ์ผ๋ก ์กฐํ๊ฐ๋ฅ
๋จ์ผ ๋ฐ์ดํฐ๊ฐ์ ๋ํ ํฉ์
๋ธ๋ก์ด ์๋ก ๋ค๋ฅธ๋ธ๋ก์ ์ ์ฅํ๋ฉด ์๋จ
์ ๋ขฐํ ์ ์๋ ๋ ธ๋๊ฐ ๋ค์ด์๋๋ผ๋ ๋๋จธ์ง ๋ ธ๋๋ค์ ์ ์ ์ฅํ ์ ์๋๋ก ํจ
๋น์ํด ์ฅ๊ตฐ ๋ฌธ์ - ์ฑ์ ํจ๋ฝํ ๋ 3๋ช ์ด ํ์ํ๋ฐ ์ฅ๊ตฐ๋ค ์ค ๋ฐฐ์ ์๊ฐ ์๋ค๋ฉด ์๋ก ์ ๋ขฐํ ์ ์๊ฒ๋จ - PBFT : ๋ถ์ฐ ์์คํ ์ด ์์ ๋ ๊ฒฐ๊ณผ๊ฐ์ ๋ง์ถ์๋ ์๊ณ ๋ฆฌ์ฆ
= It-chain ์ค๋งํธ ์ปจํ๋ deploy, invoke ์ํ
- World State DB ๊ด๋ฆฌ
- Docker ์ปจํ ์ด๋ ๊ธฐ๋ฐ์ ๋ ๋ฆฝ์ ์ธ ํ๊ฒฝ ์ ๊ณต
- SDK๋ฅผ ํตํด ๋ค์ํ ์ธ์ด ์ฌ์ฉ ๊ฐ๋ฅ
4. Backend.AI ์๊ฐ ๋ฐ ํํ ๋ฆฌ์ผ - ์คํ์์ค ๋จธ์ ๋ฌ๋ ์ธํ๋ผ ํ๋ ์์ํฌ // Mario Cho : [email protected]
์ํ๊ณ ๋ ์ธ๊ณต์ง๋ฅ์ ์์ฒญ๋ ์ปดํจํ ์ฐ์ฐ์์์ ์ฌ์ฉํ๊ฒ ๋จ
์คํ์์ค์ ํด๋ผ์ฐ๋์ ๋ฐ๋ฌ - ์ ๋ง๋ก AI ํ๊ธฐ๊ฐ ์ฌ์์ก์๊น?
Tensorflow - 6์ฃผ๋ง๋ค ๋ฒ์ ์ : ํธํ์ฑ ๊ณ ๋ ค x
์ฝ๊ฒ / ํจ๊ป / ๋น ๋ฅด๊ฒ / ์ด๋์๋ / ๊ฐ์ธ๊ฒ
python php, r, node.js, js, tensorflow, haskell, typescript, rust, go ๋ฑ
๋ค์ํ ์์์ ๋ถ์ฐํด์ ๋ง๋ค์ด ์ค
- ๊ฐ์ธ ์กฐ์ง ์ฌ์ฉ์ / ์์ฉ ์๋น์ค ๋ฐ ์ ํ๋ฆฌ์ผ์ด์ - ํด๋ผ์ฐ๋, ์น ์๋น์ค, ๋ชจ๋ฐ์ผ ๋ฐ IoT ์ฅ๋น
- Backend.AI ํ๋ซํผ - ์คํ ์ค์ผ์ผ๋ง, ๋ณด์๊ฒฉ๋ฆฌ, ๋ฒ์ ๊ด๋ฆฌ, ์ธ์ด๋ณ SDK, ์์ํ ๋น, ๋ชจ๋ํฐ๋ง / ํด๋ผ์ฐ๋ ์ธํ๋ผ(IaaS) - AWS, gCloud / ์จ.ํ๋ ๋ฏธ์ค ํด๋ฌ์คํฐ
- ๊ฐ๋ฐ์๋ฅผ ์ํ ์ฌ์ฉ์ ์ธํฐํ์ด์ค
- GPU๋ฅผ ์ฌ์ฉํ๋ ๋ค์ํ ๋๊ตฌ
- ์ค์ผ์คํธ๋ ์ด์ ๊ณ์ธต
- ๊ฐ์ํ ์๋ฃจ์ ๋ฐ ํด๋ผ์ฐ๋ ์๋น์ค
- GPU๊ฐ ์๋ ๋ฉํ์ ๋ค๊ณ ๋ค๋๋ฉฐ ๋ฅ๋ฌ๋ AI๋ฅผ ๊ฐ๋ฐ๋๊ณ ์ถ์ ๋
- ์ฌ๋ด ๊ณ ์ฑ๋ฅ GPU์๋ฒ 1๋๋ฅผ ์ฌ๋ฌ ์ฐ๊ตฌ์์ด ๊ณต์ ํ๋ฉด์ ์ฐ๊ณ ์ถ์ ๋
- ๋ง๋ถ๋ฆฌ ์ ์ฉ๋ ์ฌ๋ด GPU ์๋ฒ๋ฅผ ์กฐ์ง ๋จ์๋ก ์ ์ฐํ๊ฒ ๊ณต์ ํ๊ณ ์ถ์ ๋
** ์๋ฌด๋ฆฌ ์คํ์์ค๋ผ๊ณ ํ๋ค ๋ ธํ์ฐ๋ ์ ๋ฌํ๊ธฐ ํ๋ค๋ค - ์ปจ์คํ ๋ชจ๋ธ์ ์กด์ฌ์ด์
5. webOS OSE์ Native App & Service ๊ฐ๋ฐํ๊ฒฝ - ๊ณ ์ํ(LG์ ์ - [email protected])
๋ฐํ ๋ด์ฉ์ด ์์ ํ ์๋ฒ ๋๋ ๊ด๋ จํ์ฌ ์ด์ผ๊ธฐ ํ ๊ฒ ๊ฐ๋ค
webOS ์ฌ ๋ด์ ์คํํจ / ๊ฐ๋ฐ์์ฌ์ดํธ & github - ๊ฐ์ด๋๋ฅผ ํ์ธํ ์ ์์
๊ฒฝํ๋ด ๋ฐ ์๊ธฐ์ ๋๋ก ๋ค์ผ๋ฉด ๋ ๊ฒ ๊ฐ๋ค
webOS์์ฒด๊ฐ TV์ ๋๋ ์ผ ๋ ์ ์์ -> Native C++๋ก ์ด๋ฏธ ์ง์ฌ์์(์น์ฑ, ๋ค์ดํฐ๋ธ ๋ณํ)
- service - Application ํน์ ๋ค๋ฅธ service์ ์์ฒญ์ ๋ํ ์๋ต / application - system bus๋ฅผ ํตํด์ ํต์
- built-in / installable - Platform์ ๋ฏธ๋ฆฌ ํ์ฌ๋๋์ง, Store๋ฑ์ ์ํด install ๋๋์ง
- http://webosose.org - Luna bus์์ ์ฐ๊ฒฐ, API ์ ๊ทผ ๊ถํ ์ค์ , Built-in, Installable web Application
- installable - Native app(Qt), Native service(Qt, C/C++)
- How to make NDK - Libs & header, Toolchain, other tools
- webOS CLI - For packaging & installation
- ๊ทธ๋์ ์ฝ๋ ์์ฒด๋ฅผ ๋ค๋ฃจ์ง๋ ์์
์ธ๋ถ์์ ์๋น์ค๋ ์ดํ๋ฆฌ์ผ์ด์ ์ ๋ง๋ค ๋ ๋ฌด์กฐ๊ฑด ์์์ผ ํจ
- Window management
- Input event routing
- Composition among App windows and System UI elements
Development environment
- Yocto
- OpenEmbedded : Bitbake / Metadata : struectured collection of "recipes" OE Cross Toolchain Generation
- Target device
- Build Machine Generate NDK Using OE
- bitbake webos-image-devel -c populate_sdk
- bitbake meta-toolchain-qt5
- Make your own recipes for NDK
- whole sysroot libs, ehader, package config files etc
- GCC 6.2.0(C++14 support), binutils, other tools
- Linux environment variable setup file for cross compile
- Qt tools(mkspecs, qmake, mooc, uic, rcc, ...)
- app / app + native - service ๋จ๋ ์ค์น๋ ๋ถ๊ฐ
- Service ID๋ app id์ subdomain - com.example.native, com.example.service
- ์์ค ์์ฑ ๋ถ๋ถ์ built-in service์ ๋์ผ - Luna bus registration
- ๋ค๋ง, ls2 conf, role, API permission ๋ฑ ํ์ผ ๋ถํ์ - appinstalld๊ฐ ์๋ ์์ฑ
- systemd unit configuration ํก๋ฆฌ ๋ถํ์
- services,json firle for packaging
- Luna bus, SAM, LSM์ ๊ฐ๊ฐ ๋ฑ๋ก์ ํด์ผ ํ๋๊ฐ? : ํด์ผํ๋ค
** webOS ํ๋ซํผ ์์ฒด๊ฐ ์คํ๋์ด์๊ณ ์คํ์์ค๋ฅผ ๋์ด๋ค์ฐ๋ ๊ฒฝ์ฐ๋ ๋ง๊ธฐ ๋๋ฌธ์ ๋ค์ํ ๋ถ๋ถ์์ ๊ฐ๋ฐ์ ํด๋ณผ ์ ์๋ค. gtk๋ ๋ฉ์น๊ฐ ์ปค์ qt๋ฅผ ์ฌ์ฉํจ