SlideShare ist ein Scribd-Unternehmen logo
1 von 227
Downloaden Sie, um offline zu lesen
Open Source
모바일과 클라우드 트랜드
시작,트랜드 그리고 나아갈 길.
오픈소스의
시작점
왜 오픈소스를
해야 하나?
모바일 트랜드
백엔드 트랜드
클라우드
고민할 거리들?
1. 오픈소스의 시작점..
3명의 거장.
Richard Stallman Linus Torvalds Eric S. Raymond
이 3명과 오픈소스를
잘 이해할수 있는 영화
영문 자막
https://youtu.be/GsHh2wfy_-4
한글 자막
http://bit.ly/YDb5TN
•
오픈소스
오픈소스는‘소스코드’를 공개하여 누구나
수정 · 재배포할 수 있는 소프트웨어
1960 ~ 1970
http://www.flickr.com/photos/9479603@N02/4132062834
•1960 ~ 1970
•하드웨어 판매가 핵심
•소프트웨어의 코드는 공유하는 문화
•FORTRAN, COBOL, Algol
1970 ~ 1980
유닉스(UNIX) 탄생
http://www.flickr.com/photos/9479603@N02/4143361191/
•1970 ~ 1980
•70년대 초반 벨 연구소 직원인 켄 톰슨, 데
니스 리치, 더글러스 매클로리 등이 처음
개발
•AT&T를 비롯한 여러 회사들과 버클리대
학(UC Berkeley) 등 비영리 단체들이 개
발한 다양한 버전
1980 ~ 1990
상용 소프트웨어
•1980 ~ 1990
•소프트웨어 저작권에 대한 인지가
시작된상업용 소프트웨어 시대
•1980 ~ 1990
빌게이츠
컴퓨터 애호가들에게 보내는 공개 편지
“Open Letter to Hobbyists”
저작권의 개념이 대두됨
http://bit.ly/1DoDJ0o
1984 ~ 2000
자유소프트웨어의 성행
리차드 스톨먼, GNU 선언
•1985 - GNU 선언문을 발표
•유닉스에 대항한 자유로운 대안을
만들기 위한 의지를 말한 것
•Free Software 운동 후
자유 소프트웨어 재단(FSF) 설립
•Free = 무료
•사용
•수정
•재배포
•에 자유로운 것!
리눅스 토발즈

리눅스(Linux) 탄생
•리눅스(Linux) 1991~
•리눅스는 핀란드 헬싱키 대학의 대학원생
인, 리누스 토발즈가 취미로 개발한 커널
•현재 200여 종류가 넘는 배포판이 존재
Eric S. Raymond OSI 설립
• 오픈소스 문화를 활성화해 기업들의 참여를
이끄는 목적.
• GPL은 파생물 역시 항상 동일한 라이센스
GPL을 준수해야 하므로, 즉 소스가 외부에 공
개 되어야 하므로, 기업의 참여가 제한됨
• 오픈소스를 변경하더라도, 다른 라이센스로
또는 상업용으로 쓰는 것을 가능케 함.
1998년 - OSI(Open Source Initiative)
오픈소스가 주류로!
현재는 대세!!
•OS ( 리눅스, OSX- freebsd 기반)
•브라우져 ( 크롬, 파이어폭스, 사파리 - Webkit)
•모바일 OS (안드로이드, 타이젠 등)
•백엔드 서버 소프트웨어 ( 웹서버, 데이터베이스, NoS
QL )
2. 라이센스 이야기.
원저작자 사용자
누구에게 더 많은 권한을 줘야할까?
원 저작자의 권한을..
GPL / LGPL ..
원 저작자의 권한을..
GPL / LGPL ..
고객 (사용자)의 권한을..
MIT / BSD / Apache..
주요 License 비교
GPL LGPL MIT BSD Apache
저작권 보호 기능 O O O O O
상용 SW 사용 가능 O O O O O
기능 확장 공개 의무 O O X X X
타인에게 특허권 제공 X X X X O
독점 프로그램에서 사용 가능 여부 X O O O O
라이선스 전파 여부 O O X X X
주요 License 비교
GPL LGPL MIT BSD Apache
저작권 보호 기능 O O O O O
상용 SW 사용 가능 O O O O O
기능 확장 공개 의무 O O X X X
타인에게 특허권 제공 X X X X O
독점 프로그램에서 사용 가능 여부 X O O O O
라이선스 전파 여부 O O X X X
주요 License 특허권 제공여부
GPL LGPL MIT BSD Apache
저작권 보호 기능 O O O O O
상용 SW 사용 가능 O O O O O
기능 확장 공개 의무 O O X X X
타인에게 특허권 제공 X X X X O
독점 프로그램에서 사용 가능 여부 X O O O O
라이선스 전파 여부 O O X X X
2008년 Open Source License 통계
GPL
LGPL
BSD
MIT
기타
GPL (60%)
LGPL (7%)
BSD (6%)
MIT (2%)
2015년 Open Source License 통계
https://www.blackducksoftware.com/resources/data/top-20-open-source-licenses (2015)
왜 이렇게 BSD/MIT가 증가했나?
플랫폼 싸움!
오픈 소스 라이선스 위반
특허 침해 관련
Apache License
2. 모바일이 가져온
오픈소스 생태계의 변화..
Android 의 문제..
배경.. 극심한 파편화. 엄밀히 말하면..
엄밀히 말하면.. 3개의 전혀 다른 OS..
3.0 이전 3.0 이후
저장 위치 Dalvik외부 native Heap Dalvik 내부
GC 동작 전체 App이 멈춤 부분적으로 진행(partially)
Bitmap의 GC GC의 대상이 아님 GC의 대상
다른 App의 영향 메모리 누수가 발생하면 다
른 App도 함께 죽음
다른 앱에 영향이 없음
3.0 기준으로 다룬 OS
구글에서
메모리 누수 현상이 자주 발생해서 메모리 관리 체계를 변경
합니다.
Honeycomb이전 Honeycomb이후
이미지 파일
이전에는 Native영역에서 이미지 파일을 관리했다면, 이후에는 Dalvik내부에서
관리를 하는 구조로 변경되었습니다.
Q : 이미지파일의 저장위치가 핵심인가요?
A : 이미지가 메모리 누수의 50~70%를 차지하기 때문에
 
 
 
 
 
 
Dalvik'is'Isolation
 
DALVIK
변경된 GC 메커니즘
3.0 이후3.0 미만
GC의 성능 향상을 위해 새로운 메모리 할당 메커니즘 (Rosalloc)
Rosalloc 이란
Runs fo Slots Allocator
작은 객체를 할당하는 영역과
큰 객체를 할당하는 영역을 구분하자
하나의 영역에 객체를 할당하니,
GC가 빈번하게 발생해서,
역할을 나누자!
Android 5.0 이후
변화된 메모리 구조..
Android ART Runtime (5.0 이후 도입)
화면사이즈의 Pixel을 얻어오는 함수
API 파편화…
구글이 만든 이슈는.. 여기서..
https://code.google.com/p/android/issues/list
제조사의 파편화
피해야할 저주들..
• Gingerbread (2.3)의 저주 - apk 사이즈 제한
• 2.x 이전 / 3.0 이후 메모리 핸들링 기법 다름
• Apache 네트워크 라이브러리의 저주
• Disk Cache가 잘 먹히는 저주
• 삼성폰의 저주
• 홍대향의 저주
지표에 빠져 있는 나라..
중국은 구글 Play 사용 못함
China Market 광고 수익은 전세계 1위
앞으로 성장 가능성 3배 이상 2년안에 원화 약 1조 3000억원
중국에서만 볼수 있는 믿지 못할 에러들..
믿지못할 마켓 단편화..
Android In-App Billing Tracking
23
58 58 61 65 68 71
84
Openness
Android Qt Symbian Meego
Mozilla Webkit Linux Eclipse
안드로이드의 개방성
Vision Mobile Report July, 2011- http://bit.ly/oTmEmF
오픈 소스 이긴 한데..
구글러가 아니면 할수 있는게 없다…
정리하면..
버그만 잡아줘..
AOSP%
Source%:%ABI%research%
안드로이드%오픈소스(AOSP)를%이용한%
%반구글%전략은%중국의%스마트폰%업체인%%
샤오미,%화훼이,%ZTE%등도%추진%
늘어나는 안드로이드 점유율
구글의 폐쇄성으로 안드로이드에
좋은 기능을 외부에서는 추가할수 없다.
오직 구글 직원만 가능..
안드로이드에 포함되지
못한 외부 오픈소스…
랭킹까지 매길 정도..
http://www.appbrain.com/stats/libraries/dev
모바일 테스트 도구
uiautomator
잘나가는 Testing tool
대세는.. (실리콘벨리 기준)
BDD vs TDD
BDD vs TDD
• BDD 는 Acceptance Test 집중
• TDD 는 Unit Test에 집중
• Acceptance Test는 고객의 의도에 맞는지
를 테스트하는 것
• Unit Test는 실제 기술적인 요구조건을 테
스트하는 것이라고 보면 되겠다.
TDD
코드
BDD 코드
Calabash Installation
Ant 설치
Install Ant (1.9)
http://ant.apache.org/ 다운로드
경로설정 for mac
cd ~ - sudo vi .bash_profile - PATH = “ant가 설치된 경로:${PATH}” export PATH
- . .bash_profile - echo $PATH해서 현재의 ant경로가 나오는지 확인
경로설정 for window7
내컴퓨터 - 속성 - 고급 시스템 설정 - 고급 - 환경변수
-Path에 ant설치한 경로 덧붙이기
Installation`
Android SDK
경로설정 for mac
아래의 그림과 같이 sdk가 설치된 경로를 ANDROID_HOME으로 지정 -
 . .bash_profile
경로설정 for window7
환경변수 - ANDROID_HOME환경변수에 SDK설치 경로 넣기
Installation
Ruby 설치(http://rubyinstaller.org)
경로설정 for mac
2.0.0설치 권장 - 설치 후 ruby –v쳐서 버전이 제대로 나오는지 확인
경로설정 for window7
Ruby1.9.3버전만 설치할 것 - 설치 후 Path에 등록 - ruby –v해서 버전이
제대로 나오는지 확인 - 설치 후 Devkit
설치(http://rubyinstaller.org/downloads/) - 데브킷이 설치된 곳으로 이동 -
 ruby dk.rb init - ruby dk.rb install
Installation
calabash 설치(sudo gem install calabash-android)
Mac에서 다음과 같은 에러가 나는 경우
http://developer.apple.com/ 에 가서 os버전에 맞는 command line tools을
다운로드 받는다.
Feature, Scenario, command
Feature :
로그인
Scenario :
일반 사용자로서
로그인하기
Scenario :
관리자로서 로그인
하기
step :
Id를 입력하라
step :
Password를 입력하
라
step :
Signin버튼을 눌러라
step :
…
step :
…
step :
…
Features폴더안 my_first.feature보기
SimpleLogin project를 import해서 run해보기
터미널에서 Project경로/bin에 가서 calabash-android gen타이핑 features폴더
생성확인
cd features - vi my_first.features확인
Project경로/bin으로 다시가서 calabash-android run SimpleLogin.apk 실행
1위는 Appium
(android, io, windows phone)
http://www.imaso.co.kr/?p=6176
http://www.imaso.co.kr/?p=6188
4. 모바일 때문에..
백엔드에도 큰 변화가..
Backend란?
배경 - 예전에는.. (매출과 사용자는 비례관계)
매출
사용자
배경 - 모바일이 나온후
(사용자가 많다고 매출이 좋은건 아니다..)
매출
사용자
사용자가 많아도 수익이 별로다..
• 값 비싼 하드웨어 장비, 오라클.. 을 살수 없는데..
• 저렇게 많은 사용자를 어떻게 견디지??
• 소프트웨어, 하드웨어 구매할 비용이 안된다..
속내는..
• 비싼 하드웨어 장비 + 오라클 너무 비싸다.
• 대신 저렴하며 비슷한 효과를 낼 만한 것은?
• 클라우드 서버를 늘려가면서. (Scale Out) + 오픈소스
솔루션으로..
Scale Out vs Scale Up
86
그래서 나온.. 여러가지 오픈소스 조합들…
간략한 서비스 구성
Request
Response
Server DB
Client
Write
Read
LAMP vs MEAN
MEAN Stack
{Json}
Node.js 장점
Single thread
각 언어의 모듈 성장
세
http://www.modulecounts.com/
Node.js 사용한 어플리케이션
Node.js 사용한 어플리케이션
Node.js Paypal
[출처] https://www.paypal-engineering.com/2013/11/22/node-js-at-paypal/
Double the requests per second vs. the Java application. This is even more interesting b
ecause our initial performance results were using a single core for the node.js applicatio
n compared to five cores in Java. We expect to increase this divide further.
35% decrease in the average response time for the same page. This resulted in the pag
es being served 200ms faster— something users will definitely notice.
Node.js Paypal
[출처]http://www.slideshare.net/lennymarkus/node-js-at-paypal
Node.js Paypal
[출처]http://www.slideshare.net/lennymarkus/node-js-at-paypal
Node.js Paypal
[출처]http://www.slideshare.net/lennymarkus/node-js-at-paypal
Node.js Paypal
[출처]http://www.slideshare.net/lennymarkus/node-js-at-paypal
Node.js Paypal
[출처]http://www.slideshare.net/lennymarkus/node-js-at-paypal
Node.js 좋은 활용
• REST + JSON APIs
• Single-page web app
• Real-time web app
• 빠른 prototyping
• 많은 I/O 처리
Node.js 나쁜 활용
• CPU 부하 걸리는 작업
• Multi-thread app
• 큰데이터 연산
• 복잡한 비지니스 로직
• Server side Javascript
• Event driven
• Asynchronous
• Non-Blocking I/O
• Single Threaded
• Lightweight
• Fast
#02. Node.js의 철학 및 아키텍처
Node.js Event Loop
Thread pool
Event loop
Thread
1
Thread
2
Thread
n
Task 1
Task 2
Task n
Return 1
Task 4
…
Node.js
Application
Callback() 1
Node.js - Architecture
Node.js bindings
( socket, http, etc )
V8
Node.js standard libaray
Thread
pool
(libeio)
Event
loop
(libev)
DNS
(c-ares)
crypto
(OpenSSL)
libuv
Javascript
C/C++
Node.js - Architecture
Node.js bindings
( socket, http, etc )
V8
Node.js standard libaray
Javascript
C/C++
libuv
libeio libev IOCP
Windows
Kernel
Unix/Linux Kernel
epoll, kqueue, event ports
Node.js 의 엔진 libuv
• libuv is a multi-platform support library with a focus on
asynchronous I/O.
• It was primarily developed for use by Node.js, but it's also
used by Luvit, Julia, pyuv, and others.
Reactor – select , epoll
Proactor – IOCP
Node.js System
Application
V8
( Javascript engine )
Node.js
Bindings
Libuv
( Asyncronous I/O )
Event
Queue
Worker
Threads
Event loop
Node.js Event Loop
var fs = require('fs');
fs.readFile('./data.txt', function(err, data) {
if( err ) { throw err; }
console.log(data);
});
Node.js bindings
( socket, http, etc )
V8
Node.js standard libaray
libuv
Thread
pool
Thread
1
Task 1
return 1
call callback()
Memory Usage : Nginx vs Apache
Performance : Nginx vs Apache
Single Thread가 성능이나요?
CPU가 놀지 않나요?
Node.js Production 레벨에서는
CPU 갯수 +@ 만큼 Single Thread를 뛰워요!
외부의 도움을 받아 eventloop도 core별로 늘릴수 있다.
Benchmark 1
json 1초에 hello world 반환하는 실험
• node.js 225,328
• spring : 97,354
• php : 167,888
• https://www.techempower.com/benchmarks/
#section=data-r10hw=peaktest=json
Benchmark 2 : 간단한 http 요청
http://www.hostingadvice.com/blog/comparing-node-js-vs-php-
performance/
Benchmark 3 : HTTP  CPU Task
V8
( Javascript engine )
Application
Node.js
Bindings
Libuv
( Asyncronous I/O )
Event
Queue
Worker
Threads
Event loop
V8 Engine
Node. JS 성능 포인트
메모리 문제 잡기 (heap dump로)
process.memoryUsage()
{ rss: 4935680, heapTotal: 1826816, heapUsed: 650472
V8 GC 동작원리
http://d2.naver.com/helloworld/329631 http://bit.ly/2qAqJ9u by Irina Shestack
V8 GC –
by Irina Shestack
http://bit.ly/2qAqJ9u
heap snapshot 얻는 방법
• npm v8-profiler (코드에 instrument 코드
를 삽입)
• npm node-inspector
• StrongLoop arc
• NodeSource N|Solid
Heap Snapshot
NSolid Heap Snapshot
CPU Profiling으로 문제 잡기
cpu profilng 정보를 얻는 방법
• npm v8-profiler (코드에 instrument 코드
를 삽입)
• Npm node-inspector
• StrongLoop arc
• NodeSource N|Solid
CPU Profiling
Chrome에서 보는 Timeline 뷰
NSolid Flame Graph
Eventloop의 성능 측정
(I/O)
EventLoop 동작원리
EventLoop 동작원리
https://lemycanh.wordpress.com/2015/05/24/node-js-event-loop
EventLoop 동작원리
http://blog.carbonfive.com/2013/10/27/the-javascript-event-loop-expla
EventLoop 문제점
http://www.juhonkoti.net/2015/12/01/problems-with-node-js-event-loo
Single Thread가 가져오는 성능
저하.
성능 측정 (handler 부하 테스트)
Node에서 긴 작업을 하면..
nodejs dashboard (open source)
https://github.com/FormidableLabs/nodejs-dashboard
힌트
• 일정한 응답시간을 SLA로 보장하는 서비스라면, Node 서비스가 올라간 인스
턴스의 자원을 적게 쓰게 만들어라 (60%)
• CPU 사용량이 높은 (복잡한 계산이 들어가 있는) 서비스는 Node가 비적합.
• 높은 스펙의 인스턴스에 여러 노드를 서비스를 놓는것 보다는, 낮은 스펙의 여
러개의 인스턴스를 늘려서 사용하는 것이 훨씬 유리.
• 다른 paas 보다, 비용적으로는 heroku 짱! (traffic 비용, io 비용 없음)
Golang
Go의 디자인 철학
performant
multiple-cores
concurrency
compiled
network
Go의 목적
Go 사용하는 곳
Go 사용하는 곳
심지어 Azure도..
Go 언어의 목적은?
Concurrency!!
Concurrency 와 Parallelism
Parallelism
Concurrency
Parallelism + Concurrency
…
Thread
goroutine goroutine
Go의 핵심 컴포넌트
…
… goroutine goroutine …
Thread
C
h
a
n
n
e
l
Go와 Java Thread 성능 차이
Thread(Java) Goroutine
개수 100000 100000
처리 속
도
5.902s 226.750829ms
CPU
Memory
Hello 10만개 출력하기
http://www.slideshare.net/seungkyupark/go-langgoroutine-channel-
56542876
한동안
node.js 와 golang의 조합이
많이 애용될듯..
서비스 구성
Request
Response
Server DB
Client
Write
Read
가장 많이 사용되는 DB는 (mongodb , redis..)
casandra
162
10gen이라는 회사에서 만들었습니다.
클라우드 서비스를 SaaS로 제공하고 싶었는데 망했고
사람들은 그 중에서 DB만 쓰고 싶어했습니다.
그래서 남은 DB가 mongoDB가 되었습니다.
164
mongoDB의 특징
- document data model
- 스키마가 없다 (삽입시 생성된다..)
- json / bson
- 애드혹 쿼리 및 세컨더리 인덱스 지원
- 복제 / 샤딩 지원
- 하나의 마스터가 존재 cf. Casandra
- 일부 원자적 연산 지원 (트랜잭션 X)
Document Data Model
{ _id: ObjectID('5d41402abc4b2a76b9719d911017c592'),
title: '실종 슈퍼마리오 4-1 리커버 발견, 몸안의 초록 버섯도 일치',
url: 'http://mario.game/0401',
author: 'kuppa',
vote_count: 7777,
tags: ['마리오','쿠파', '만우절', '사망'],
image: {
url: 'http://naver.com/logo1.png',
caption: '로고',
width: 480
},
comment: [
{ user: '루이지',
text: '마리오 본인도 인정, 논란 그만했으면..' },
{user: '모그레인',
text: '일어나라, 나의 쿠파여~'
}
]
}
Document
도큐먼트는 { 로 시작하고 } 로 끝난다.
속성의 이름 : 값의 집합을 저장한다.
속성은 , 로 분리한다.
값에는 배열(리스트)가 올 수 있다.
값에는 다른 도큐먼트가 올 수 있다.
JSON
모든 도큐먼트는 JSON 형식으로 표현됨
169
내부적으로 저장될때는 BSON으로 됩니다.
{“hello”: “world”}
x16x00x00x00x02hello
x00x06x00x00x00world
x00x00
Master-Slave Replication
170
일반적인 DB구성
WebServer, WAS DB(Master)
Write/Read를 분산
DB(Slave)
WAS
DB(Master)
Write
only Read
Replication
DB(Slave)
WAS
DB(Master)
Write
only Read
Replication
DB(Slave)
Write/Read를 분산 구성
master
slave slaveslave
Mongo Replication이
매우 쉽다
master
master
slave
slave
master master
slave master
데이터 베이스 분할..
175
데이터 베이스 분할..
• 수평 분할(horizontal partitioning = Sharding) 은 하나의 테이
블의 각 행을 다른 테이블에 분산시키는 것이다. 예를 들어 방
대한 고객 데이터 테이블을 성별에 따라 ‘남녀’로 나누어 Custo
merMen과 CustomerWomen 두 개의 테이블로 분할한다. 테이
블은 2개로 분할되지만, 모든 고객을 나타내기 위해 양자를 결
합한 뷰를 생성하면 된다.
176
데이터 베이스 분할..
• 수직 분할(vertical partitioning)은 테이블의 일부 열을 빼내는
형태로 분할한다. 관계의 정규화는 본질적으로 수직 분할에 관
련된 과정이다.
• 사용 빈도가 높은 데이터에만 액세스할 경우 성능이 향상된다.
예를 들어, 뉴스를 서비스할 때, 고객들은 최근의 데이터를 가장
많이 조회할 것이다. 이 경우 1개월 전의 데이터를 다른 테이블
에 두면, 훨씬 효율적으로 검색할 수 있을 것이다.
177
실제 어떻게 쓰나?
178
Sharding
• Range based paritionning
Sharding
• Hash based paritionning
Sharding
• Ranged + Hash based paritionning
client
mongos ...mongos
mongod
mongod
mongod
mongod
mongod
mongod
...
몽고 Auto-sharding 지원
Shards
mongod
mongod
mongod
Config
Servers
MySQL의 역습!
MySQL의 역습..
(MySQL 5.7.8 부터 JSON 지원)
MySQL의 역습..
Redis란?
• Remote Dictionary Server의 줄임말
• Key-Value Cache and Store
• Persistence을 지원하는 In-Memory Dataset
- 다양한 자료구조 지원(List, Hash, Set, Sorted Set, bitmaps and hyperloglogs)
• ANSI C로 작성
• Open Source(BSD licensed)
• Single Thread
• Transactions, Pub/Sub, Lua scripting 등 지원
Redis Memcached MongoDB
In-memory ✔ ✔
Persistent ✔ ✔
Key-value store ✔ ✔
Supports more than strings ✔ ✔
Multithreaded ✔ ✔
Supports larger-than-memory datase
t ✔
As fast as Memory Memory Disk
다른 NoSQL 비교
성능 비교
엄청나게 많은 리소스 누가 관리?
5. 클라우드 시대
그리고 Micro Service Architecture
클라우드 고민할 거리들..
• 막대한 부하를 처리할 수 있는 만능 열쇠?
• 클라우드의 보안? (클라우드 회사 지원?? )
• 국내 클라우드 경험 인력의 부족..
• 관리 유지 보수는? 어떻게?
백엔드의 아키텍처 패러다임 변화
이전에는..
요즘에는
Micro Service Architecture
Micro Service Architecture
MSA
Pattern Languages
http://microservices.io/patterns/index.html
MSA의 해답은 무얼까?
현존하는 MSA의 끝판왕에게 조금만 노하우
를 전수받자!
MSA의 끝판왕
Netflix 7년간 노력끝에
전체 시스템 클라우드 이전 완료!
MSA에 대한 아마존에 대한 해답!
MSA에 대한 아마존에 대한 해답!
이 수많은 컴포넌트들을
어떻게 잘 관리할 것인가?
실패할려면 빨리 실패하자!
Hystrix
이러한 일이
자주 발생하면.
Connection을 얻지 못해
전체 요청에 80%가 거절..
그래서 circuit break pattern도입
임계값 정하기!
Hystrix Dashboard
이외 알아야 할것들
• Zookeeper
• etcd
ZooKeeper
• 분산 처리 환경에 사용할수 있는 코오디네
이터
ZooKeeper Watch
ZooKeeper가 감지하는 이벤트
• Watcher가 감지하는 znode의 ‘변경’ event
는 4가지 종류가 있습니다.


- NODE_CREATED : 노드가 생성 됨을 감지.

- NODE_DELETED : 노드가 삭제 됨을 감지.

- NODE_DATA_CHANGED : 노드의 데이터가 변경 됨을 감지.

- NODE_CHILDREN_CHANGED : 자식 노드가 변경 됨을 감지.
ZooKeeper의 단점?
• 일회성 Trigger..
• 해당 Watcher가 삭제되면, 다시 Watcher
를 만들고 걸어줘야 한다..
• 프로그래밍 스타일이.. 번거롭게 된다.
etcd
• 빠르고 간편한 프로그래밍 모델을 제시
etcd

Weitere ähnliche Inhalte

Was ist angesagt?

DevOps 시대의 새로운 Role - Full Cycle Developer
DevOps 시대의 새로운 Role - Full Cycle DeveloperDevOps 시대의 새로운 Role - Full Cycle Developer
DevOps 시대의 새로운 Role - Full Cycle Developer창훈 현
 
[145]5년간의네이버웹엔진개발삽질기그리고 김효
[145]5년간의네이버웹엔진개발삽질기그리고 김효[145]5년간의네이버웹엔진개발삽질기그리고 김효
[145]5년간의네이버웹엔진개발삽질기그리고 김효NAVER D2
 
Nginx Testing in NAVER
Nginx Testing in NAVERNginx Testing in NAVER
Nginx Testing in NAVER형근 송
 
Advanced nGrinder 2nd Edition
Advanced nGrinder 2nd EditionAdvanced nGrinder 2nd Edition
Advanced nGrinder 2nd EditionJunHo Yoon
 
무정지&무점검 서버 개발과 운영 사례
무정지&무점검 서버 개발과 운영 사례무정지&무점검 서버 개발과 운영 사례
무정지&무점검 서버 개발과 운영 사례Taehyun Kim
 
[211]대규모 시스템 시각화 현동석김광림
[211]대규모 시스템 시각화 현동석김광림[211]대규모 시스템 시각화 현동석김광림
[211]대규모 시스템 시각화 현동석김광림NAVER D2
 
[121]네이버 효과툰 구현 이야기
[121]네이버 효과툰 구현 이야기[121]네이버 효과툰 구현 이야기
[121]네이버 효과툰 구현 이야기NAVER D2
 
Hancom MDS Conference - KAKAO DEVOPS Practice (카카오 스토리의 Devops 사례)
Hancom MDS Conference - KAKAO DEVOPS Practice (카카오 스토리의 Devops 사례)Hancom MDS Conference - KAKAO DEVOPS Practice (카카오 스토리의 Devops 사례)
Hancom MDS Conference - KAKAO DEVOPS Practice (카카오 스토리의 Devops 사례)knight1128
 
웹서버 부하테스트 실전 노하우
웹서버 부하테스트 실전 노하우웹서버 부하테스트 실전 노하우
웹서버 부하테스트 실전 노하우IMQA
 
DevOps와 자동화
DevOps와 자동화DevOps와 자동화
DevOps와 자동화DONGSU KIM
 
[OpenInfra Days Korea 2018] Day 2 - E5: GPU on Kubernetes
[OpenInfra Days Korea 2018] Day 2 - E5: GPU on Kubernetes[OpenInfra Days Korea 2018] Day 2 - E5: GPU on Kubernetes
[OpenInfra Days Korea 2018] Day 2 - E5: GPU on KubernetesOpenStack Korea Community
 
[Open-infradays 2019 Korea] jabayo on Kubeflow
[Open-infradays 2019 Korea] jabayo on Kubeflow[Open-infradays 2019 Korea] jabayo on Kubeflow
[Open-infradays 2019 Korea] jabayo on Kubeflow석환 홍
 
GitLab Starter 라이선스 기능소개 - 인포그랩
GitLab Starter 라이선스 기능소개 - 인포그랩GitLab Starter 라이선스 기능소개 - 인포그랩
GitLab Starter 라이선스 기능소개 - 인포그랩InfoGrab LC
 
swig를 이용한 C++ 랩핑
swig를 이용한 C++ 랩핑swig를 이용한 C++ 랩핑
swig를 이용한 C++ 랩핑NAVER D2
 
[2017 Incognito] Code Clone 기법을 통한 모바일 브라우저 취약점 분석
[2017 Incognito] Code Clone 기법을 통한 모바일 브라우저 취약점 분석[2017 Incognito] Code Clone 기법을 통한 모바일 브라우저 취약점 분석
[2017 Incognito] Code Clone 기법을 통한 모바일 브라우저 취약점 분석NAVER D2
 
Eclipse RAP - Single Source
Eclipse RAP - Single SourceEclipse RAP - Single Source
Eclipse RAP - Single Sourcecho hyun jong
 
DevOps!! 도데체 왜, 어떻게 할까??
DevOps!! 도데체 왜, 어떻게 할까??DevOps!! 도데체 왜, 어떻게 할까??
DevOps!! 도데체 왜, 어떻게 할까??Joseph Kim
 
[112]clova platform 인공지능을 엮는 기술
[112]clova platform 인공지능을 엮는 기술[112]clova platform 인공지능을 엮는 기술
[112]clova platform 인공지능을 엮는 기술NAVER D2
 
올챙이로 살펴보는 Eclipse개발
올챙이로 살펴보는 Eclipse개발올챙이로 살펴보는 Eclipse개발
올챙이로 살펴보는 Eclipse개발cho hyun jong
 
[H3 2012] 앱(APP) 중심으로 생각하기 - DevOps와 자동화
[H3 2012] 앱(APP) 중심으로 생각하기 - DevOps와 자동화[H3 2012] 앱(APP) 중심으로 생각하기 - DevOps와 자동화
[H3 2012] 앱(APP) 중심으로 생각하기 - DevOps와 자동화KTH, 케이티하이텔
 

Was ist angesagt? (20)

DevOps 시대의 새로운 Role - Full Cycle Developer
DevOps 시대의 새로운 Role - Full Cycle DeveloperDevOps 시대의 새로운 Role - Full Cycle Developer
DevOps 시대의 새로운 Role - Full Cycle Developer
 
[145]5년간의네이버웹엔진개발삽질기그리고 김효
[145]5년간의네이버웹엔진개발삽질기그리고 김효[145]5년간의네이버웹엔진개발삽질기그리고 김효
[145]5년간의네이버웹엔진개발삽질기그리고 김효
 
Nginx Testing in NAVER
Nginx Testing in NAVERNginx Testing in NAVER
Nginx Testing in NAVER
 
Advanced nGrinder 2nd Edition
Advanced nGrinder 2nd EditionAdvanced nGrinder 2nd Edition
Advanced nGrinder 2nd Edition
 
무정지&무점검 서버 개발과 운영 사례
무정지&무점검 서버 개발과 운영 사례무정지&무점검 서버 개발과 운영 사례
무정지&무점검 서버 개발과 운영 사례
 
[211]대규모 시스템 시각화 현동석김광림
[211]대규모 시스템 시각화 현동석김광림[211]대규모 시스템 시각화 현동석김광림
[211]대규모 시스템 시각화 현동석김광림
 
[121]네이버 효과툰 구현 이야기
[121]네이버 효과툰 구현 이야기[121]네이버 효과툰 구현 이야기
[121]네이버 효과툰 구현 이야기
 
Hancom MDS Conference - KAKAO DEVOPS Practice (카카오 스토리의 Devops 사례)
Hancom MDS Conference - KAKAO DEVOPS Practice (카카오 스토리의 Devops 사례)Hancom MDS Conference - KAKAO DEVOPS Practice (카카오 스토리의 Devops 사례)
Hancom MDS Conference - KAKAO DEVOPS Practice (카카오 스토리의 Devops 사례)
 
웹서버 부하테스트 실전 노하우
웹서버 부하테스트 실전 노하우웹서버 부하테스트 실전 노하우
웹서버 부하테스트 실전 노하우
 
DevOps와 자동화
DevOps와 자동화DevOps와 자동화
DevOps와 자동화
 
[OpenInfra Days Korea 2018] Day 2 - E5: GPU on Kubernetes
[OpenInfra Days Korea 2018] Day 2 - E5: GPU on Kubernetes[OpenInfra Days Korea 2018] Day 2 - E5: GPU on Kubernetes
[OpenInfra Days Korea 2018] Day 2 - E5: GPU on Kubernetes
 
[Open-infradays 2019 Korea] jabayo on Kubeflow
[Open-infradays 2019 Korea] jabayo on Kubeflow[Open-infradays 2019 Korea] jabayo on Kubeflow
[Open-infradays 2019 Korea] jabayo on Kubeflow
 
GitLab Starter 라이선스 기능소개 - 인포그랩
GitLab Starter 라이선스 기능소개 - 인포그랩GitLab Starter 라이선스 기능소개 - 인포그랩
GitLab Starter 라이선스 기능소개 - 인포그랩
 
swig를 이용한 C++ 랩핑
swig를 이용한 C++ 랩핑swig를 이용한 C++ 랩핑
swig를 이용한 C++ 랩핑
 
[2017 Incognito] Code Clone 기법을 통한 모바일 브라우저 취약점 분석
[2017 Incognito] Code Clone 기법을 통한 모바일 브라우저 취약점 분석[2017 Incognito] Code Clone 기법을 통한 모바일 브라우저 취약점 분석
[2017 Incognito] Code Clone 기법을 통한 모바일 브라우저 취약점 분석
 
Eclipse RAP - Single Source
Eclipse RAP - Single SourceEclipse RAP - Single Source
Eclipse RAP - Single Source
 
DevOps!! 도데체 왜, 어떻게 할까??
DevOps!! 도데체 왜, 어떻게 할까??DevOps!! 도데체 왜, 어떻게 할까??
DevOps!! 도데체 왜, 어떻게 할까??
 
[112]clova platform 인공지능을 엮는 기술
[112]clova platform 인공지능을 엮는 기술[112]clova platform 인공지능을 엮는 기술
[112]clova platform 인공지능을 엮는 기술
 
올챙이로 살펴보는 Eclipse개발
올챙이로 살펴보는 Eclipse개발올챙이로 살펴보는 Eclipse개발
올챙이로 살펴보는 Eclipse개발
 
[H3 2012] 앱(APP) 중심으로 생각하기 - DevOps와 자동화
[H3 2012] 앱(APP) 중심으로 생각하기 - DevOps와 자동화[H3 2012] 앱(APP) 중심으로 생각하기 - DevOps와 자동화
[H3 2012] 앱(APP) 중심으로 생각하기 - DevOps와 자동화
 

Ähnlich wie 초보 개발자/학생들을 위한 오픈소스 트랜드

Open source engineering
Open source engineeringOpen source engineering
Open source engineeringYoungSu Son
 
머신러닝 및 데이터 과학 연구자를 위한 python 기반 컨테이너 분산처리 플랫폼 설계 및 개발
머신러닝 및 데이터 과학 연구자를 위한 python 기반 컨테이너 분산처리 플랫폼 설계 및 개발머신러닝 및 데이터 과학 연구자를 위한 python 기반 컨테이너 분산처리 플랫폼 설계 및 개발
머신러닝 및 데이터 과학 연구자를 위한 python 기반 컨테이너 분산처리 플랫폼 설계 및 개발Jeongkyu Shin
 
Open source engineering - 0.1
Open source engineering - 0.1Open source engineering - 0.1
Open source engineering - 0.1YoungSu Son
 
오픈소스를 사용하고, 준비하는 개발자를 위한 가이드
오픈소스를 사용하고, 준비하는 개발자를 위한 가이드오픈소스를 사용하고, 준비하는 개발자를 위한 가이드
오픈소스를 사용하고, 준비하는 개발자를 위한 가이드if kakao
 
제3회 오픈 로보틱스 세미나 1일차 1세션 안드로이드 App 통신
제3회 오픈 로보틱스 세미나 1일차 1세션 안드로이드 App 통신제3회 오픈 로보틱스 세미나 1일차 1세션 안드로이드 App 통신
제3회 오픈 로보틱스 세미나 1일차 1세션 안드로이드 App 통신WooSangHwang
 
Open Source 그리고 git과 github, code review
Open Source 그리고 git과 github, code reviewOpen Source 그리고 git과 github, code review
Open Source 그리고 git과 github, code reviewMinsuk Lee
 
20160406 ROS 1차 강의 (for 아스라다 팀)
20160406 ROS 1차 강의 (for 아스라다 팀)20160406 ROS 1차 강의 (for 아스라다 팀)
20160406 ROS 1차 강의 (for 아스라다 팀)Yoonseok Pyo
 
Open Source Engineering V2
Open Source Engineering V2Open Source Engineering V2
Open Source Engineering V2YoungSu Son
 
[야생의 땅: 듀랑고] 지형 관리 완전 자동화 - 생생한 AWS와 Docker 체험기
[야생의 땅: 듀랑고] 지형 관리 완전 자동화 - 생생한 AWS와 Docker 체험기[야생의 땅: 듀랑고] 지형 관리 완전 자동화 - 생생한 AWS와 Docker 체험기
[야생의 땅: 듀랑고] 지형 관리 완전 자동화 - 생생한 AWS와 Docker 체험기Sumin Byeon
 
SOSCON 2017 - Backend.AI
SOSCON 2017 - Backend.AISOSCON 2017 - Backend.AI
SOSCON 2017 - Backend.AIJoongi Kim
 
[오픈소스컨설팅]엔터프라이즈 오픈소스 도입전략
[오픈소스컨설팅]엔터프라이즈 오픈소스 도입전략[오픈소스컨설팅]엔터프라이즈 오픈소스 도입전략
[오픈소스컨설팅]엔터프라이즈 오픈소스 도입전략Ji-Woong Choi
 
애플리케이션 최적화를 위한 컨테이너 인프라 구축
애플리케이션 최적화를 위한 컨테이너 인프라 구축애플리케이션 최적화를 위한 컨테이너 인프라 구축
애플리케이션 최적화를 위한 컨테이너 인프라 구축rockplace
 
[IoT] MAKE with Open H/W + Node.JS - 1st
[IoT] MAKE with Open H/W + Node.JS - 1st[IoT] MAKE with Open H/W + Node.JS - 1st
[IoT] MAKE with Open H/W + Node.JS - 1stPark Jonggun
 
RAD스튜디오 100% 활용하기 - 최신 기술 적용과 확장
RAD스튜디오 100% 활용하기 - 최신 기술 적용과 확장RAD스튜디오 100% 활용하기 - 최신 기술 적용과 확장
RAD스튜디오 100% 활용하기 - 최신 기술 적용과 확장Devgear
 
[개방형 클라우드 플랫폼 오픈세미나 오픈클라우드 Pub] 4. 종합분석[1]
[개방형 클라우드 플랫폼 오픈세미나 오픈클라우드 Pub] 4. 종합분석[1][개방형 클라우드 플랫폼 오픈세미나 오픈클라우드 Pub] 4. 종합분석[1]
[개방형 클라우드 플랫폼 오픈세미나 오픈클라우드 Pub] 4. 종합분석[1]Tommy Lee
 
Mozilla 오픈 웹 모바일 플랫폼 (2012)
Mozilla 오픈 웹 모바일 플랫폼 (2012)Mozilla 오픈 웹 모바일 플랫폼 (2012)
Mozilla 오픈 웹 모바일 플랫폼 (2012)Channy Yun
 
Meetup tools for-cloud_native_apps_meetup20180510-vs
Meetup tools for-cloud_native_apps_meetup20180510-vsMeetup tools for-cloud_native_apps_meetup20180510-vs
Meetup tools for-cloud_native_apps_meetup20180510-vsminseok kim
 
DEVIEW 2013 당신의 인생에 오픈소스를 더하라 oscon 발표자 뒷담화 - ...
DEVIEW 2013 당신의 인생에 오픈소스를 더하라   oscon 발표자 뒷담화 - ...DEVIEW 2013 당신의 인생에 오픈소스를 더하라   oscon 발표자 뒷담화 - ...
DEVIEW 2013 당신의 인생에 오픈소스를 더하라 oscon 발표자 뒷담화 - ...NAVER D2
 
20160414 ROS 2차 강의 (for 아스라다 팀)
20160414 ROS 2차 강의 (for 아스라다 팀)20160414 ROS 2차 강의 (for 아스라다 팀)
20160414 ROS 2차 강의 (for 아스라다 팀)Yoonseok Pyo
 
Jenkins를 활용한 Openshift CI/CD 구성
Jenkins를 활용한 Openshift CI/CD 구성 Jenkins를 활용한 Openshift CI/CD 구성
Jenkins를 활용한 Openshift CI/CD 구성 rockplace
 

Ähnlich wie 초보 개발자/학생들을 위한 오픈소스 트랜드 (20)

Open source engineering
Open source engineeringOpen source engineering
Open source engineering
 
머신러닝 및 데이터 과학 연구자를 위한 python 기반 컨테이너 분산처리 플랫폼 설계 및 개발
머신러닝 및 데이터 과학 연구자를 위한 python 기반 컨테이너 분산처리 플랫폼 설계 및 개발머신러닝 및 데이터 과학 연구자를 위한 python 기반 컨테이너 분산처리 플랫폼 설계 및 개발
머신러닝 및 데이터 과학 연구자를 위한 python 기반 컨테이너 분산처리 플랫폼 설계 및 개발
 
Open source engineering - 0.1
Open source engineering - 0.1Open source engineering - 0.1
Open source engineering - 0.1
 
오픈소스를 사용하고, 준비하는 개발자를 위한 가이드
오픈소스를 사용하고, 준비하는 개발자를 위한 가이드오픈소스를 사용하고, 준비하는 개발자를 위한 가이드
오픈소스를 사용하고, 준비하는 개발자를 위한 가이드
 
제3회 오픈 로보틱스 세미나 1일차 1세션 안드로이드 App 통신
제3회 오픈 로보틱스 세미나 1일차 1세션 안드로이드 App 통신제3회 오픈 로보틱스 세미나 1일차 1세션 안드로이드 App 통신
제3회 오픈 로보틱스 세미나 1일차 1세션 안드로이드 App 통신
 
Open Source 그리고 git과 github, code review
Open Source 그리고 git과 github, code reviewOpen Source 그리고 git과 github, code review
Open Source 그리고 git과 github, code review
 
20160406 ROS 1차 강의 (for 아스라다 팀)
20160406 ROS 1차 강의 (for 아스라다 팀)20160406 ROS 1차 강의 (for 아스라다 팀)
20160406 ROS 1차 강의 (for 아스라다 팀)
 
Open Source Engineering V2
Open Source Engineering V2Open Source Engineering V2
Open Source Engineering V2
 
[야생의 땅: 듀랑고] 지형 관리 완전 자동화 - 생생한 AWS와 Docker 체험기
[야생의 땅: 듀랑고] 지형 관리 완전 자동화 - 생생한 AWS와 Docker 체험기[야생의 땅: 듀랑고] 지형 관리 완전 자동화 - 생생한 AWS와 Docker 체험기
[야생의 땅: 듀랑고] 지형 관리 완전 자동화 - 생생한 AWS와 Docker 체험기
 
SOSCON 2017 - Backend.AI
SOSCON 2017 - Backend.AISOSCON 2017 - Backend.AI
SOSCON 2017 - Backend.AI
 
[오픈소스컨설팅]엔터프라이즈 오픈소스 도입전략
[오픈소스컨설팅]엔터프라이즈 오픈소스 도입전략[오픈소스컨설팅]엔터프라이즈 오픈소스 도입전략
[오픈소스컨설팅]엔터프라이즈 오픈소스 도입전략
 
애플리케이션 최적화를 위한 컨테이너 인프라 구축
애플리케이션 최적화를 위한 컨테이너 인프라 구축애플리케이션 최적화를 위한 컨테이너 인프라 구축
애플리케이션 최적화를 위한 컨테이너 인프라 구축
 
[IoT] MAKE with Open H/W + Node.JS - 1st
[IoT] MAKE with Open H/W + Node.JS - 1st[IoT] MAKE with Open H/W + Node.JS - 1st
[IoT] MAKE with Open H/W + Node.JS - 1st
 
RAD스튜디오 100% 활용하기 - 최신 기술 적용과 확장
RAD스튜디오 100% 활용하기 - 최신 기술 적용과 확장RAD스튜디오 100% 활용하기 - 최신 기술 적용과 확장
RAD스튜디오 100% 활용하기 - 최신 기술 적용과 확장
 
[개방형 클라우드 플랫폼 오픈세미나 오픈클라우드 Pub] 4. 종합분석[1]
[개방형 클라우드 플랫폼 오픈세미나 오픈클라우드 Pub] 4. 종합분석[1][개방형 클라우드 플랫폼 오픈세미나 오픈클라우드 Pub] 4. 종합분석[1]
[개방형 클라우드 플랫폼 오픈세미나 오픈클라우드 Pub] 4. 종합분석[1]
 
Mozilla 오픈 웹 모바일 플랫폼 (2012)
Mozilla 오픈 웹 모바일 플랫폼 (2012)Mozilla 오픈 웹 모바일 플랫폼 (2012)
Mozilla 오픈 웹 모바일 플랫폼 (2012)
 
Meetup tools for-cloud_native_apps_meetup20180510-vs
Meetup tools for-cloud_native_apps_meetup20180510-vsMeetup tools for-cloud_native_apps_meetup20180510-vs
Meetup tools for-cloud_native_apps_meetup20180510-vs
 
DEVIEW 2013 당신의 인생에 오픈소스를 더하라 oscon 발표자 뒷담화 - ...
DEVIEW 2013 당신의 인생에 오픈소스를 더하라   oscon 발표자 뒷담화 - ...DEVIEW 2013 당신의 인생에 오픈소스를 더하라   oscon 발표자 뒷담화 - ...
DEVIEW 2013 당신의 인생에 오픈소스를 더하라 oscon 발표자 뒷담화 - ...
 
20160414 ROS 2차 강의 (for 아스라다 팀)
20160414 ROS 2차 강의 (for 아스라다 팀)20160414 ROS 2차 강의 (for 아스라다 팀)
20160414 ROS 2차 강의 (for 아스라다 팀)
 
Jenkins를 활용한 Openshift CI/CD 구성
Jenkins를 활용한 Openshift CI/CD 구성 Jenkins를 활용한 Openshift CI/CD 구성
Jenkins를 활용한 Openshift CI/CD 구성
 

Mehr von YoungSu Son

Fault Tolerance 패턴
Fault Tolerance 패턴 Fault Tolerance 패턴
Fault Tolerance 패턴 YoungSu Son
 
Clean Code, Software Architecture, Performance Tuning
Clean Code, Software Architecture, Performance TuningClean Code, Software Architecture, Performance Tuning
Clean Code, Software Architecture, Performance TuningYoungSu Son
 
인공지능 식별추적시스템 실증랩 구축및 운영 - 평가모델 고도화
인공지능 식별추적시스템 실증랩 구축및 운영 - 평가모델 고도화인공지능 식별추적시스템 실증랩 구축및 운영 - 평가모델 고도화
인공지능 식별추적시스템 실증랩 구축및 운영 - 평가모델 고도화YoungSu Son
 
Prototype 패턴 (심만섭)
Prototype 패턴 (심만섭) Prototype 패턴 (심만섭)
Prototype 패턴 (심만섭) YoungSu Son
 
Chain of Responsibility (심수연 - 소프트웨어 마에스트로 10기)
Chain of Responsibility (심수연 - 소프트웨어 마에스트로 10기)Chain of Responsibility (심수연 - 소프트웨어 마에스트로 10기)
Chain of Responsibility (심수연 - 소프트웨어 마에스트로 10기)YoungSu Son
 
Singleton 패턴 (김진영 - EVA, 소마에 10기)
Singleton 패턴 (김진영 -  EVA, 소마에 10기) Singleton 패턴 (김진영 -  EVA, 소마에 10기)
Singleton 패턴 (김진영 - EVA, 소마에 10기) YoungSu Son
 
실전 서버 부하테스트 노하우
실전 서버 부하테스트 노하우 실전 서버 부하테스트 노하우
실전 서버 부하테스트 노하우 YoungSu Son
 
생성 패턴 (강태우 - 소마에 10기)
생성 패턴 (강태우 - 소마에 10기) 생성 패턴 (강태우 - 소마에 10기)
생성 패턴 (강태우 - 소마에 10기) YoungSu Son
 
안드로이드 Oreo의 변화와 모바일 앱/플랫폼의 적합한 성능 측정 방법
안드로이드 Oreo의 변화와  모바일 앱/플랫폼의 적합한 성능 측정 방법안드로이드 Oreo의 변화와  모바일 앱/플랫폼의 적합한 성능 측정 방법
안드로이드 Oreo의 변화와 모바일 앱/플랫폼의 적합한 성능 측정 방법YoungSu Son
 
클라우드 & 모바일 환경에서 알아야 할 성능 품질 이야기
클라우드 & 모바일 환경에서 알아야 할 성능 품질 이야기클라우드 & 모바일 환경에서 알아야 할 성능 품질 이야기
클라우드 & 모바일 환경에서 알아야 할 성능 품질 이야기YoungSu Son
 
SW 아키텍처 분석방법
SW 아키텍처 분석방법 SW 아키텍처 분석방법
SW 아키텍처 분석방법 YoungSu Son
 
[NEXT] Android Profiler 사용법
[NEXT] Android Profiler 사용법 [NEXT] Android Profiler 사용법
[NEXT] Android Profiler 사용법 YoungSu Son
 
Android Studio 개발 셋팅 + Genymotion
Android Studio 개발 셋팅 + GenymotionAndroid Studio 개발 셋팅 + Genymotion
Android Studio 개발 셋팅 + GenymotionYoungSu Son
 
FullStack 개발자 만들기 과정 소개 (Android + MEAN Stack + Redis 다루기)
FullStack 개발자 만들기 과정 소개  (Android + MEAN Stack + Redis 다루기) FullStack 개발자 만들기 과정 소개  (Android + MEAN Stack + Redis 다루기)
FullStack 개발자 만들기 과정 소개 (Android + MEAN Stack + Redis 다루기) YoungSu Son
 
[NEXT] Flask 로 Restful API 서버 만들기
[NEXT] Flask 로 Restful API 서버 만들기 [NEXT] Flask 로 Restful API 서버 만들기
[NEXT] Flask 로 Restful API 서버 만들기 YoungSu Son
 
[NEXT] GCM을 이용한 게시글 자동 갱신
[NEXT] GCM을 이용한 게시글 자동 갱신[NEXT] GCM을 이용한 게시글 자동 갱신
[NEXT] GCM을 이용한 게시글 자동 갱신YoungSu Son
 
[NEXT] Andorid에 MVC 패턴 적용하기
[NEXT] Andorid에 MVC 패턴 적용하기[NEXT] Andorid에 MVC 패턴 적용하기
[NEXT] Andorid에 MVC 패턴 적용하기YoungSu Son
 
[NEXT] 화면 재갱신이 되는 안드로이드 앱 만들기 - 네트워크에 독립하는 구조로 변경
[NEXT] 화면 재갱신이 되는 안드로이드 앱 만들기 - 네트워크에 독립하는 구조로 변경[NEXT] 화면 재갱신이 되는 안드로이드 앱 만들기 - 네트워크에 독립하는 구조로 변경
[NEXT] 화면 재갱신이 되는 안드로이드 앱 만들기 - 네트워크에 독립하는 구조로 변경YoungSu Son
 
오픈소스 Jedis 리펙토링 하기 (redis java 라이브러리)
오픈소스 Jedis 리펙토링 하기 (redis java 라이브러리) 오픈소스 Jedis 리펙토링 하기 (redis java 라이브러리)
오픈소스 Jedis 리펙토링 하기 (redis java 라이브러리) YoungSu Son
 
URQA 삼성 컨퍼런스 발표
URQA 삼성 컨퍼런스 발표 URQA 삼성 컨퍼런스 발표
URQA 삼성 컨퍼런스 발표 YoungSu Son
 

Mehr von YoungSu Son (20)

Fault Tolerance 패턴
Fault Tolerance 패턴 Fault Tolerance 패턴
Fault Tolerance 패턴
 
Clean Code, Software Architecture, Performance Tuning
Clean Code, Software Architecture, Performance TuningClean Code, Software Architecture, Performance Tuning
Clean Code, Software Architecture, Performance Tuning
 
인공지능 식별추적시스템 실증랩 구축및 운영 - 평가모델 고도화
인공지능 식별추적시스템 실증랩 구축및 운영 - 평가모델 고도화인공지능 식별추적시스템 실증랩 구축및 운영 - 평가모델 고도화
인공지능 식별추적시스템 실증랩 구축및 운영 - 평가모델 고도화
 
Prototype 패턴 (심만섭)
Prototype 패턴 (심만섭) Prototype 패턴 (심만섭)
Prototype 패턴 (심만섭)
 
Chain of Responsibility (심수연 - 소프트웨어 마에스트로 10기)
Chain of Responsibility (심수연 - 소프트웨어 마에스트로 10기)Chain of Responsibility (심수연 - 소프트웨어 마에스트로 10기)
Chain of Responsibility (심수연 - 소프트웨어 마에스트로 10기)
 
Singleton 패턴 (김진영 - EVA, 소마에 10기)
Singleton 패턴 (김진영 -  EVA, 소마에 10기) Singleton 패턴 (김진영 -  EVA, 소마에 10기)
Singleton 패턴 (김진영 - EVA, 소마에 10기)
 
실전 서버 부하테스트 노하우
실전 서버 부하테스트 노하우 실전 서버 부하테스트 노하우
실전 서버 부하테스트 노하우
 
생성 패턴 (강태우 - 소마에 10기)
생성 패턴 (강태우 - 소마에 10기) 생성 패턴 (강태우 - 소마에 10기)
생성 패턴 (강태우 - 소마에 10기)
 
안드로이드 Oreo의 변화와 모바일 앱/플랫폼의 적합한 성능 측정 방법
안드로이드 Oreo의 변화와  모바일 앱/플랫폼의 적합한 성능 측정 방법안드로이드 Oreo의 변화와  모바일 앱/플랫폼의 적합한 성능 측정 방법
안드로이드 Oreo의 변화와 모바일 앱/플랫폼의 적합한 성능 측정 방법
 
클라우드 & 모바일 환경에서 알아야 할 성능 품질 이야기
클라우드 & 모바일 환경에서 알아야 할 성능 품질 이야기클라우드 & 모바일 환경에서 알아야 할 성능 품질 이야기
클라우드 & 모바일 환경에서 알아야 할 성능 품질 이야기
 
SW 아키텍처 분석방법
SW 아키텍처 분석방법 SW 아키텍처 분석방법
SW 아키텍처 분석방법
 
[NEXT] Android Profiler 사용법
[NEXT] Android Profiler 사용법 [NEXT] Android Profiler 사용법
[NEXT] Android Profiler 사용법
 
Android Studio 개발 셋팅 + Genymotion
Android Studio 개발 셋팅 + GenymotionAndroid Studio 개발 셋팅 + Genymotion
Android Studio 개발 셋팅 + Genymotion
 
FullStack 개발자 만들기 과정 소개 (Android + MEAN Stack + Redis 다루기)
FullStack 개발자 만들기 과정 소개  (Android + MEAN Stack + Redis 다루기) FullStack 개발자 만들기 과정 소개  (Android + MEAN Stack + Redis 다루기)
FullStack 개발자 만들기 과정 소개 (Android + MEAN Stack + Redis 다루기)
 
[NEXT] Flask 로 Restful API 서버 만들기
[NEXT] Flask 로 Restful API 서버 만들기 [NEXT] Flask 로 Restful API 서버 만들기
[NEXT] Flask 로 Restful API 서버 만들기
 
[NEXT] GCM을 이용한 게시글 자동 갱신
[NEXT] GCM을 이용한 게시글 자동 갱신[NEXT] GCM을 이용한 게시글 자동 갱신
[NEXT] GCM을 이용한 게시글 자동 갱신
 
[NEXT] Andorid에 MVC 패턴 적용하기
[NEXT] Andorid에 MVC 패턴 적용하기[NEXT] Andorid에 MVC 패턴 적용하기
[NEXT] Andorid에 MVC 패턴 적용하기
 
[NEXT] 화면 재갱신이 되는 안드로이드 앱 만들기 - 네트워크에 독립하는 구조로 변경
[NEXT] 화면 재갱신이 되는 안드로이드 앱 만들기 - 네트워크에 독립하는 구조로 변경[NEXT] 화면 재갱신이 되는 안드로이드 앱 만들기 - 네트워크에 독립하는 구조로 변경
[NEXT] 화면 재갱신이 되는 안드로이드 앱 만들기 - 네트워크에 독립하는 구조로 변경
 
오픈소스 Jedis 리펙토링 하기 (redis java 라이브러리)
오픈소스 Jedis 리펙토링 하기 (redis java 라이브러리) 오픈소스 Jedis 리펙토링 하기 (redis java 라이브러리)
오픈소스 Jedis 리펙토링 하기 (redis java 라이브러리)
 
URQA 삼성 컨퍼런스 발표
URQA 삼성 컨퍼런스 발표 URQA 삼성 컨퍼런스 발표
URQA 삼성 컨퍼런스 발표
 

Kürzlich hochgeladen

캐드앤그래픽스 2024년 5월호 목차
캐드앤그래픽스 2024년 5월호 목차캐드앤그래픽스 2024년 5월호 목차
캐드앤그래픽스 2024년 5월호 목차캐드앤그래픽스
 
A future that integrates LLMs and LAMs (Symposium)
A future that integrates LLMs and LAMs (Symposium)A future that integrates LLMs and LAMs (Symposium)
A future that integrates LLMs and LAMs (Symposium)Tae Young Lee
 
Continual Active Learning for Efficient Adaptation of Machine LearningModels ...
Continual Active Learning for Efficient Adaptation of Machine LearningModels ...Continual Active Learning for Efficient Adaptation of Machine LearningModels ...
Continual Active Learning for Efficient Adaptation of Machine LearningModels ...Kim Daeun
 
Console API (Kitworks Team Study 백혜인 발표자료)
Console API (Kitworks Team Study 백혜인 발표자료)Console API (Kitworks Team Study 백혜인 발표자료)
Console API (Kitworks Team Study 백혜인 발표자료)Wonjun Hwang
 
Merge (Kitworks Team Study 이성수 발표자료 240426)
Merge (Kitworks Team Study 이성수 발표자료 240426)Merge (Kitworks Team Study 이성수 발표자료 240426)
Merge (Kitworks Team Study 이성수 발표자료 240426)Wonjun Hwang
 
MOODv2 : Masked Image Modeling for Out-of-Distribution Detection
MOODv2 : Masked Image Modeling for Out-of-Distribution DetectionMOODv2 : Masked Image Modeling for Out-of-Distribution Detection
MOODv2 : Masked Image Modeling for Out-of-Distribution DetectionKim Daeun
 

Kürzlich hochgeladen (6)

캐드앤그래픽스 2024년 5월호 목차
캐드앤그래픽스 2024년 5월호 목차캐드앤그래픽스 2024년 5월호 목차
캐드앤그래픽스 2024년 5월호 목차
 
A future that integrates LLMs and LAMs (Symposium)
A future that integrates LLMs and LAMs (Symposium)A future that integrates LLMs and LAMs (Symposium)
A future that integrates LLMs and LAMs (Symposium)
 
Continual Active Learning for Efficient Adaptation of Machine LearningModels ...
Continual Active Learning for Efficient Adaptation of Machine LearningModels ...Continual Active Learning for Efficient Adaptation of Machine LearningModels ...
Continual Active Learning for Efficient Adaptation of Machine LearningModels ...
 
Console API (Kitworks Team Study 백혜인 발표자료)
Console API (Kitworks Team Study 백혜인 발표자료)Console API (Kitworks Team Study 백혜인 발표자료)
Console API (Kitworks Team Study 백혜인 발표자료)
 
Merge (Kitworks Team Study 이성수 발표자료 240426)
Merge (Kitworks Team Study 이성수 발표자료 240426)Merge (Kitworks Team Study 이성수 발표자료 240426)
Merge (Kitworks Team Study 이성수 발표자료 240426)
 
MOODv2 : Masked Image Modeling for Out-of-Distribution Detection
MOODv2 : Masked Image Modeling for Out-of-Distribution DetectionMOODv2 : Masked Image Modeling for Out-of-Distribution Detection
MOODv2 : Masked Image Modeling for Out-of-Distribution Detection
 

초보 개발자/학생들을 위한 오픈소스 트랜드