레이블이 conference인 게시물을 표시합니다. 모든 게시물 표시
레이블이 conference인 게시물을 표시합니다. 모든 게시물 표시

2017년 7월 22일 토요일

Tech-HR Conference 참석 후기


Tech-HR Conference에 다녀옴.
처음 페북에 광고가 많이 뜨길래 뭔가 낚는 행사인가 했었다. 좀 찾아보니 okjsp에서 준비한 행사 같더라.

내용에 개발자와 HR에 대해 다루고 있어 기존 개발자 행사와는 좀 차이가 있어 보였고 개발자의 진로?에 대해서도 다루고 있어 흥미를 느끼게 되었다.

토요일 오전임에도 불구하고 많은 사람이 참석해서 좀 놀랐고 대부분 세션이 꽤 나에게는 유익했었고 전체적으로 보기에 주니어 개발자나 갓 시니어 개발자 급이된 사람들에게 유익했을 것으로 생각한다.

나는 두 번째 "주니어 개발자와 시니어 개발자의 차이" 세션이 꽤 유익했었고 나이만 먹은 나에게는 반성의 기회와 아직 시니어로 지칭 되기에는 부족한 점이 많은 것을 깨닫는 기회를 제공해 주었다.
또한 첫 번째 세션인 "성공하는 개발자"에서 개발자의 qualificatiom의 항목들을 제시한 것과 각 개발자이 이 항목들에 대해 어느 수준인지 지속적인 확인이 필요하다는 부분도 인상 깊었었다.

다음은 듣다가 괜찮은 부분들을 대충 정리한 내용이니 자세한 것은 나중에 공개될 동영상을 확인하자.


ㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡ《Successful Software Developer / 성공하는 개발자》박종천

인사 시스템
- attract : 매력으로끌어모임
- develop : 회사에 맞춰 교육
- engage : 투입
- 이런 과정이 일련의 절차로 이어 진다.

Hiring
. Why this compamy?
. Why you?
. What you can do?

. Smart. Diligent. Good will

. Team interview시 싫어하는 사람이 있으면 채용 불가. 하지만 좋아하는 사람도 있어야 채용이 될 것임.

☆☆☆Performance review
. Productivity
. Professionalism - reliability
. Teamwork - communication
. Knowledge (domain, generic)
. Functionality - no defect
. Implementation -good code
. Design & architecture

자신에 대해서 평가해보고 다른 사람 중 잘하는 사람들을 분석하고 자신을 개발하라.

One on One
. Performance
. Growth (공부하는것보다 시장의 기대치가 올라간다.)
. Happiness

Short term goal - 1/3/5 years

Potentials vs capacity
: 잠재 능력에 다가가기 위해 capacity를 높여야한다.
실패를 통해서도 늘릴 수 있다.

쉬운일을 선택하면 끝이 없다.
어려운일을 선택해야 나중에 선택지가 있다.

하고 있는 일 외 밖의 새로운 것들을 공부하고
하기 싫은 분야도 찾아서 공부하라.
어렵고 힘든일들이 사람을 성공 시킨다.

Happiness
. What you like
. What you are good at
. What do you want to do.

STEM 에 관심을 기울여야
: Science
: Technology
: Engineering
: Mathematics

기초를 다져라
. Critical thinking을 하는 습관을 가지자.
답을 말하되 왜 질문을 할까? 다음에는 어떤 질문은? 등의 고민을 하여 생각을 넖혀라

Talent Practice Chance
능력과 재능을 기반하여 노력을 해야 기회가 올 때 대비할 수 있다.

어떤일을 함에 있어 끈기가 필요하다.

개발자가 갖추어야할 9가지 기술
https://youtu.be/fHyTA-UIcqs

ㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡ
11:00《주니어 개발자와 시니어 개발자의 차이》김범준

Senior 개발자는 누구인가?
!=. 대부분 나이.연차를 말하는데 연차만 많은 것은 아님
!=. 1년의 경험을 반복한 개발자도 아님
. 10년동안 다양한 경험을 통해 성장한 개발자

1만 시간의 법칙 => 단 의도적인 수련(deliberate pratice) 필요.

의도적 수련은
1. 학습을 하기위한 목적
2. 적절한 피드백

업무 처리는 학습을 위한 수행을 하는 것이 아니라 빨리 업무를 해결하기 위한 방법일 수 있음

루틴한일을 그냥 해내는 것 보다
뭔가 개선을 위한 일들을 찾아서 하는 거나
자신에게 패널티를 줘서 단련을 하는 것도 방법

Senior 실력이 뛰어난 개발자 = 실력이란 일을 되게끔 하는 사람

Junior. Senior
일 단위. Task. Projects
결과물. 코드.문서. 실질적 성과
관리. 일정. 일정 risk

우아한 형제들 기술 조직
> 코드 덩어리가 아닌 가치를 만들고
스스로의 가치를 높이며 일한다.

긍정적인 사람은 한계가 없고
부정적인 사람은 한 게 없다.

Senior
일 잘하는 사람 > 시니어의 일 = 팀의 일과 성과

시니어의 성장은
테크니컬 성장으로만 국한되는 것이 아니다.

시니어는 누구를 이끌어주는 역할이다.

Senior
. 자신의 경험을 나눠줄 수 있고
. 그를 통해 동료들을 변화시킬 수 있으며
. 변화가 회사의 성과로 이어지게끔 하는 사람


덕목
. 의도적 수련을 통한 발전에 익숙하고
. 코드가 아닌 가치를 만드어 낼 수 있으며
. 동료를 변화시키고 성과로 이어지게하는 것이 필요.

ㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡ
《스타트업에서의 HR과 스타트업 조직문화》안민호

직급호칭 > 수평 문화 > 빠른 의사 결과의 문제
: 영어 호칭이 의사 소통 측면에서는 편하다.

스타트업 팀원들의 오너쉽
: 실제로 오너가 되어야 한다. 지분? 돈
: 스타트업에서는 안식 휴가 제도? 스톡옵션? 도 방법이 되겠지만 실제 회사의 가치. 환경. 복지를 잘 갖추는게 방법임.

채용은 신중히 해야한다.
뽑고 나면 퇴직이 어려울 수 있음.
해외는 이미 다단계 면접을 흐고 있고 국내 몇몇 업체도 진행 중이다.

빠르게 망하는 조직이 성공한다.
다양한 일을 해보고 변화에 유연해지는 것이 필요.

ㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡ
《왜 우리는 개발자에 집중하지 않는가?》이민석

https://www.slideshare.net/mobile/MinsukLee/ss-78137490?from_m_app=ios

소프트웨어 = 업을위한 도구가 아닌 가치로 바뀜

미국의 경우에서
1. 개발자에게 중요한 것은
. 새로운 기술 습득, 새로운 것 만들기, 제품의 결정권, 회사의 방향성 등등

2. 이직 시 고려할 때 중요한 것은
. 연봉, 일과 균형, 기업문화, 회사 동료, 유연근무

3. 미국에서의 주당 업무외 토딩 시간
70%가 1ㅡ10시간임.
0시간은 15% 밖에 안됨. 뭐라도 다들 하고 있음

4. 구직 활동을 원하는 사람은 75%

현재 HR은 기존 대기업 출신의 HR인 경우가 많고 기존 방식의 인력관리를 하고 있는게 문제다.

줄세우기 보다는 상호평가가 적절하다.
HR은 개발자들이 힘들고 어련운 상황에서 일을 할 때 도와줄 수 있어야 한다.

HR의 필요 인력.기준은 계속 변화하고 있음.
기존 94년에는 65명 기준에서 15년 10-15명 기준까지로 변화하였음

사장은 일을 선택하기 보다 누군가를 실망시키는 일을 하는 것임.
CTO는 개발자들이 어느 영역에 집중할지를 결정해야한다.
개발자는 개발에 집증해야 한다
집중은 개빌자에게 해야한다.

ㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡ
15:30《개발자 공부론》김창준

http://mindscale.kr/course/how-to-learn-prg?utm_source=bl&utm_medium=post&utm_campaign=htlp&utm_content=1

1. 실력을 키우고 싶으면 작정하고 해야한다.

근무 연차만 공개된 두 의사에게서 수술을 받아야 한다면
5년차 15년차 중 누구를 선택할 것인가?
> 통계상 년차가 높을 수록 사망율이 높아진다.

> 개인의 발전이 업계의 발전을 앞서지 못한다.
예전에 받은 교육을 가진 의사는 그때의 지식을 가지고 수술하게 되고 학습을 하더라도 업계의 발전을 이기지 못한다.


2. 공부하면 실력이 느는가? 어떤 방법이 효과적인가.

누구나 공부에 대한 강박감이 있고 의무감으로 공부하곤 한다.
공부하면 실력이 느는가? 아니다.

주된 공부방법
1. 키워드 수집 > 책, 온라인과정, 자격증 취득
2. 스터디 모임

과연 효과적인가?
교육 방법들 마다 차이가 크다.
원격 교육이나 숙제 같은 경우 안하는 것 보다 못하다.

학교 교육은 순차적이다.
개발자들의 교육은?

학교 교육은 학습교재나 범위가 정해져 있다.
개발자들은 주로 책을 정한다.

학교 학습은 수료나 자격증 취득 같은 목표가 있다.
개발자 들은 주로 책을 떼는게 목표다.

학교 학습은 시험이란 구체적인 평가 방법이 있다.
개발자도 나름의 규칙이 있다.

학교 학습은 개별적이다.
게빌지 스터디들도 개별적이다.

즉 학교를 떠나 회사에서도 학교에서의 방법을 그대로 사용하고 있다.

이런 학교적 공부는 불확실하지 않은 영역에서 효과적이다.

책을 학습하는 것과 뭔가 학습하는 것은 다르다
즉, 파이선 책을 학습하는 것과 파이선 학습은 다른 것이다.

또한 책읽기가 공부를 위한 한가지 방법 일뿐 유일하고 주된 방법이 아니다.

야생학습
. 비순서적이다.
. 자료의 한정이 없다.
. 목표가 불분명하고 바뀌기도 한다.
. 명확한 평가 방법이 없다.
. 협력적이다.

새로운 기기를 샀을 때를 생각해보자. 처음부터 매뉴얼을 1장부터 읽고 시작하지 않을 것이다. 먼저 동작 시켜보고 필요한 부분을 매뉴얼에서 찾거나 검색하여 알아갈 것이다. 이게 야생학습이다.

학교 학습은 분절화가 문제가 된다.
파편화하여 공부릉 하지만 실생활에서는 엮어서 사용해야 한다. 파편화적으로 공부하면 파편화된 것을 다루는데는 능하지만 실생활에서는 적절하지 않다.


3. 야생학습을 하기 위해서는 어떻게 해야하나?

책에 얽매이지 말라. 책응 잘 설계되지 않았다.
이미 만들어진 프로그램을 수정하는 것도 방법임.
실무와 비슷한 환경을 구축하는 것도 방법임.

실수를 많이 하는 아이들이 실무에 적응을 잘하더라.
실수를 통해 많이 배워라.

QnA
본인이 주체가 되어
배울 topic 관련되어 향후 무엇을 할 것인가를 고민하고 그것에 맞춰 커리큘럼을 작성하라.

Accelerate C++
대부분 책들이 c를 설명하고 C++를 설명한다.
학교학습과 유사하게 순차적으로 배우도록 되어 있다.
그에 반해 이 책은 첫 챕터부터 멀쩡이 동작되는 괜찮은 프로그램이 나오게 되고 이후 챕터들을 통해서 발전되는 순서로 되어 있음.

피드백이 증요하다
하지만 무슨 피드백을 받을 지를 고민해야 한다

긍정적인 피드백을 준 사람들이 오히려 강의 내용응 사용하지 않는다. 오히려 부정적인 피드백을 준 사람들이 오히려 많이 사용한다.
컨텐트가 만족도를 결정하지 않고 강사의 태도나 호감이 만족도에 영향을 미친다.

2017년 7월 2일 일요일

Google I/O 2017 Extended in Seoul

Google I/O 2017 Extended in Seoul에 다녀옴.



거의 자발적으로 행사를 진행하는 것 같아 이런 행사가 매년 있음에 감사하다.
비록 외부 시스템으로 인한 등록 이슈, 애매한 시간 공지가 있긴했지만
전반적인 진행과 내용도 다 괜찮았던 것 같다. 발표자에 따라서 좀 차이는 있지만..

행사 주소
https://io-extended-seoul-17.firebaseapp.com/

발표 세션들
https://io-extended-seoul-17.firebaseapp.com/schedule/


Google I/O 주요 내용이야 기사를 통해서 알 수 있겠지만
이런 행사를 통해서 한번에 직접 들으면서 정리를 하는게
게으른 나에게는 큰 도움이 되고 있다.

대충 적어두고 아 그렇구나 하고 말겠지만
아무것도 몰라서 사용하지 못하는 것보다
대충은 알고 있다가 필요할 때 바로 가져다 쓸 수 있는것도 유익하다.


주로 관심이 많았던 Track A를 듣다가 내게 필요한 부분만 대충 정리함.
아래 사이트에 동영상이 올라와 있어 이를 보는게 좋겠음.
https://www.youtube.com/playlist?list=PLF_OUznA3RTRSTDdjnlzyC-rKVq6nq4S7


[Architecture Components, 김상일]


Google IO 2017에서 첨 소개됨.
함께 아키텍처 가이드가 제공되고 있음
https://developer.android.com/topic/libraries/architecture/index.html

4가지로 구분
. Handling life cycle
. Live data
. ViewModel
. Room

추후 support library로 나올 예정

=Handling life cycle
. Lifecycle, Lifecycle owner, Lifecycle observer로 구성
. Observer 구현하고 등록 삭제하여 사용하면 됨.
. Custom Activity를 사용하려면 owner를 직접 구현하면 된다.

=Live data
Live Data = Observeable data holder
Live data 상속 시 onActive(active onserver가 있을 때). OnInactive(active onserver가 없어질 때)를 구현해야 함.
: https://developer.android.com/topic/libraries/architecture/livedata.html 설명이 명확하지 않았는데 구글 문서를 봐도 명확하지 않음.

=Viewmodel
. View가 변경되어도 configuration을 유지할 수 있음.
. Androidviewmodel은 Viewmodel과 달리 application instance를 인자로 받으므로 필요하면 선택해서 사용하면 된다.
. ViewModel은 뷰와 생명주기가 다르므로 메모리릭 등을 유의해야 함.
 : View, Activity context, Resources를 참조하면 안 됨

=Room

Sqlite ORM이며 아래 클래스로 구성
. Entity
. DAO
. Database

Entity 선언 시 어노테이션 필요
: class내 pojo class들을 의해 embedded 어노테이션 제공
: typeconverter 제공

. DAO interface는 쿼리 작성을 할 수있음.
 : Insert, delete, update는 기본 쿼리로 제공
. Database =sqlite open helper


Data insert는 main thread에서 불가. 런타임 에러 발생

.RXjava vs lifecycle
 : Lifecycle은 rxjava를 잘 사용하고 있다면 굳이 변경할 필요 없고 간단하게 적용해보고자 할 경우


.Room vs greenDAO vs realm
 : Realm이 가장 성능도 좋고 지원하는 feature가 많음(relation지원 강력).
 : Room은 아직 초반이고 feature도 부실한 상황임.

[Kotlin: Make Android Great Again, 김태호]


2011년부터 시작하여 2016년 1.0 공개 2017년에 공식 안드로이드 언어로 추가됨.

Java 1.8은 jack toolchain을 사용하면 가능
https://developer.android.com/guide/platform/j8-jack.html?hl=ko
Retro lamda를 사용하는 것도 방법

안드로이드 기기도 바뀌고
IDE도 바뀐 상태에서
언어는 java 그대로임.

Kotlin에서는
. 람다 지원, it으로 single argument생락 가능
. No getter.setter > property 지원
. Builtin  nullable check > ?
. ?. 지원
. 타입 선언 필요 없음.
. Kotlin android extension응 사용하면 findviewby... 사용할 필요없음.
. Intent도 Anko을 사용하면 간편함
  : https://blog.jetbrains.com/kotlin/2015/05/advanced-features-of-anko/
. Pair > to 사용
. Data class에는 getter setter equal 등을 자동 생성
. 자바코드를 코틀린 코드로 변환해주는 플러그인 있음.

[주의]
. 새로운 코틀링 문법이 최적이 아님
. 자바에서 넘기는 객체는 주의해서 보자.
. 메서드 카운트가 늘어나 multi dex 사용 시 주의

[장점]
. 코드 안정성
. LOC 감소
. Swift. scala 같은 새로운 언어에 적응 가능


[Application 용량줄이기 플레이윙즈 실적용을 중심으로, 신호석]


. Download size < Installed size
. 평균적잉 앱 사이즈큰 23M (Android 12M iOS 34M)
. 플레이윙즈 광고.. 성공적

어플 용량 분석 툴은 Android Studio의 Analyze APK를 사용하면 됨.
 : 용량 분석. Manifest 분석. Apk 비교 분석
 . Android Studio 3.0에서는 프로가드 난독화 확인 가능

줄이는 방법
1. Proguard
 . 코드 난독화
 . 코드 최적화
  : dead code elimination
  : resource shrinking

2. Vector drawables
 . 해상도별 이미지 말고 하나의 벡터 이미지로 모든 해상도 대응
 . support library 사용 필요. App:srcCompat 사용 필요.
 . sketch를 사용하여 벡터 이미지 제작하는 것을 추천
 . 안되면 png 용량을 줄여라.
 . Android Studio 3.0에서는 WebP변환 기능을 제공한다. (단 API 16.18제약)

3. Exclude space translation
 . 번역 중 비어있는 문자열들을 찾아서 주언어를 기준으로 압축함.

4. Set specific circumstance
 . 지원하는 해상도로만 추릴 수 있음.

5. Use downloadable fonts
 . font family에서 downloable google font들을 사용.
 . 구글 downloadble fonts sample앱이 있음.
 . 단 아직은 잘 안되더라...

시간 대비 효과적인 방법을 찾아보는 것이 필요함.

. 시간 대비 Proguard 적용 효과 있음.
. Exclude space translation도 해볼 만 함.
. Vector drawable 효과 좋음


. 벡터 이미지로 변환 시 해상도 제약이 있으니 확인 필요.
. 일러 사용으로 svg 추출 시 문제가 생겨 스케치를 사용함.
. 5.0에서 벡터 이미지 사용 시 메모리 릭이 있었으나 현재 테스트 중에서는 아직 발견되지는 않았음.
. Downloadable fonts 테스트 시 Play service v11 이상이어함.


[아주 주관적인 안드로이드 O 살펴보기, 양찬석]


주요기능은 좀 찾아보면 나올 거고..

. 현재 DP3. API 종료.
. Q3에 정식 릴리즈

http://d.android.com/preview

. 안드로이드 업데이트가 좀 자주 있긴 하지만
 더 좋은 안드로이드를 만들기 위해
 안드로이드 플랫폼 및 하위 layer들도 함께 업데이트하기 위함임

플랫폼에서 향상된 기능들

.런타임 업데이트
 : dex파일 layer 최적화
 : Forground 앱에대한 concurrent compaction, read barrier based GC
   > 적은 메모리. 빠른 메모리 할당. 부드러운 앱
 : project treble
   . 안드로이드.업데이트가 느린 것을 위한 프로젝트
   . 안드로이드 3단 분리(앱.프레임워크>앱.벤더인터페이스.프레임워크)
   . VTS (vender Test Suite)응 통과하면 안정성 보장됨
   . 안드로이드 O부터 시작

사용자에게 더 좋은 경험
.구글 플래이 프로텍트
 : Android O, 최신 플레이스토어 설치 시 사용 가능
.PIP지원
 : resizable activity를 지원했었어야 했지만...이젠 상관 없는듯?
. Autofill framework 지원
. Alert window
 : 다른 앱위에 경고창을 띄울 수 있음
 : type_application_overlay 윈도우 타입 추가
  . 시스템 layout 아래에서만 표시됨
  . 상단 notification창에 어떤 앱이 띄우는지 확인 가능함.

알림
. 알림 종류에 따른 배치 (중요한 알림 순으로)
. 알림 채널 (개별 알림별 설정>채널별 설정)
. 알림 표시 점(dot)
 : 채널별. 롤프래스로 알림 확인


개발자를  위해
.Android Studio 3.0
.Emulator
 : google play 탑재 바이너리 추가, 단 루팅 불가
.Kotlin
.Instant app
.architecitre component
.android support library 26
.폰트 리소스
.폰트 다운로드 by font provider

우리 모두를 위해
. Android vitals (d.android.com/vitals)
 : 플레이스토어에 메뉴가 추가 되어 있음.
 : anr, crash rate
 : 느린 렌더링, 프레임 멈춤
 : stuck wake lock
 : wakeup


[파이어베이스 무엇 달라지나, 남상균]


듣기는 했으나...




2016년 1월 2일 토요일

W3C HTML5 Conference 2015 (오후) -개인 메모 정리

개인 메모 저장

모든 기술 문서는 여기에
http://www.html5forum.or.kr/front/knowhow/tech.jsp

--------------------------------------------

[브라우저엔진 오픈소스 현황]


발표자료 : http://www.html5forum.or.kr/api/filedown.jsp?filename=%ED%8A%B8%EB%9E%991_11_%EC%82%BC%EC%84%B1%EC%A0%84%EC%9E%90_%EC%9E%84%EB%8F%99%EC%9A%B0_%EC%B1%85%EC%9E%84_Trend_of_The_Open_Source_Web_Engines.pdf&folder=upload/board


크로미엄 (블링크) . 크롬 vs 웹킷 . 사파리 vs 모질라 . 파이어폭스

Web as a platform
. Convertor > Cordova. PhoneGap
. Os > Chrome os. Firefox os
 => 위 방법으로는 뭔가 부족하다.

[Progressive Web Apps의 특징들]


. Installable
 : 하이브리드와 다르게 검색사이트에서 클릭 시 바로 앱이 실행 되고 실행 중 설치를 유도 함.
. Connectivity independent
 : 인터넷 연결에 상관없이 동작
. Re-engageable
 : Push notification이 가능함 > 이를 사용 하여 수익. 재방문율을 높일 수 있음.
. Interoperability


[앱을 위한 표준 들]
. Web app manifest 표준
 : http://www.w3.org/TR/appmanifest/
 : 웹앱의 아이콘 설치하게 해 줌.


. Splash screen
. Service workers 표준
 : http://www.w3.org/TR/service-workers/
 : 오프라인. 백그라운드에서 task 수행 가능하게 함.

. Web Bluetooth 표준
 : 브라우저에서 접근
. Web USB 표준 . Chrome experimental
. Push api. Web notifications 표준들
 : http://www.w3.org/TR/push-api/
. Media capture and streams. WebRTC 표준
. Pointer Events 표준
 : 터치 압력. 각도 정보

-------------------------------------------

[모바일 웹 성능 최적화 동향 및 사례]


발표자료 : http://www.html5forum.or.kr/api/filedown.jsp?filename=%ED%8A%B8%EB%9E%991_12_SK%ED%94%8C%EB%9E%98%EB%8B%9B%EC%9E%84%EC%83%81%EC%84%9D_%EB%AA%A8%EB%B0%94%EC%9D%BC%EC%9B%B9%EC%84%B1%EB%8A%A5%EC%B5%9C%EC%A0%81%ED%99%94%EC%82%AC%EB%A1%80-W3C-2015.pdf&folder=upload/board

HTML5로 시럽 스토어 만드는 삽질기

고려사항
.타협불가 최소품질
. Native 수준 look motion

안드로이드 4.2 이상에서 가능한 수준
uI framework > Ionic - angularJS 기반 HTML5 Framework. Android/ios native style

Ionic 기능. 장점
. SPA dom cycle 관리
. Native style ui component
. Grade에 따른 성능 제어
. UI routing

GPU cPU acclation

Declarative animation vs JS animation
: Declarative animation
  . css 기반
  . Web kit엔진 에서 기본 최적화
  . Keyframe
  . Transition

: JS animation
  . Settimeout인 경우 frame drop
   : 화면은 60Hz. JS는 ms 단위
  . Vsync는 단말 성능에 좌우

Native 사용
. Push
. BLE
. Splash screen
. Cipherstorage
. Camera
. Image cropper
웹으로 80%정도 코딩

Scroll View
. 버전별 문제 있음
. Ionic Scroll View는 다양한 옵션(native scroll도 선택 가능)

Page navigation animation
. 페이지 깜박 안되도록 처리 필요

DOM element load timing
. 이벤트 (beforend. Afterenter. Load. Unload)에 따라서 분배해야 지 시간 잘약

Gradient. Box-shadow. Border radious 는 속도가 안나와서 제거

URL 기반 3rd party
Iframe vs 별도 Webview
. Iframe는 안드 4.2 이후에서 가능. 이전 버전은 안정성 이슈

* 최소 Android 4.2 이상. iOS 7.0 이상 앱 상용개발 가능
* UI layer 복잡도 고려 필요
* Ionic 성능 고려 필요

-------------------------------------------

[JerryScript와 IOT.js]

발표자료 : http://www.html5forum.or.kr/api/filedown.jsp?filename=%ED%8A%B8%EB%9E%991_13_%EC%82%BC%EC%84%B1%EC%A0%84%EC%9E%90_%EC%9D%B4%EC%84%B1%EC%9E%AC%EC%88%98%EC%84%9D_JerryScript_and_IoT.js-v1.0-20151207.pdf&folder=upload/board

JS 선택이유. 대중성. 쉬움.

JS 대신 JerryScript를 만든 이유는
V8를 IoT 기기에 올리기에는 거대한 footprint가 문제임. (ROM 10MB. RAM 8MB)

JerryScript 2014년 기준
.96kb bi ary size
.16kb runtime memory foot print
. Compact profile

IoT.js
. Node.js를 jerryscript로 가능하도록 함
(사진참고)

-------------------------------------------

[CSS round display 표준]

발표자료 : http://www.html5forum.or.kr/api/filedown.jsp?filename=%ED%8A%B8%EB%9E%991_21_Lg%EC%A0%84%EC%9E%90_%EC%86%A1%ED%9A%A8%EC%A7%84151209_HTML5_Conference_2015_CSS_Round_Display.pptx&folder=upload/board

2014.10 원형 디스플레이 css 확장안 제안

Media query media feature : device-radius
0이면 사각. 숫자면 외곽 curve radius

Shape-inside
모양에 맞춰서 내용을 안에 표시

Border-boundary
Display를 하면 border이 화면 내에서 표시

Polar-angle. Distance. Anchor. Origin
화면에 각도와 반지름으로 배치

박스모델 조정

Crosswalk. Blink 관련 Intel과 협업 중

-------------------------------------------

[최신 Web API Lighting Talk]

발표 시간이 부족해서 제대로 못 적었는데... 발표자료가 없다..

Web App Manifest

 : Splash screen은 manifest의 name, background_color, Icon 값을 기반하여 보여줌
별도의 프로세스. 아이콘 설치가능 (롤리팝 기준)


Service Worker
 : 페이지를 닫아도 web push notification을 받을 수 있음.


Push notification
 : 72%방문 증가 26%지출 증가 효과 - chrome dev summit

 : 필요사항들
   . Background service
   . Push register event
   . Notification UI
 > Web Push 표준 = 구독 + 받기
 : Gcm을 통해 sender id를 받은 Push server와 service worker 상에서 연결되어야 함.
 : 메세지를 service worker에서 받으면 UI로 알리고 UI 클릭 시 서비스 워커에서 notification 창으로 데이터를 전달한다.

 : FB에서 지원 중, 브라우저로 FB에 접속하면 push 수신 여부 팝업 표시 됨.

 : Native에서는 payload를 받을 수 있지만 web push는 payload 없이 event만 받고 있음.


Web Components
 : <template>내에 컴포넌트를 작성.
   . 브라우저에서 표시돠지 않음
 : <decorator> 컴포넌트를 꾸밀 때 사용. CSS 사용
 : <element> template를 Custom elements로 지정
   . 단 스크립트 방식을 사용하라.


Pointer Events
 : 입력을 추상화 하여 처리.
 : 특징
  . 기존 마우스. 터치. 타블렛. 펜. 인식 등 및 추후 모든 입력을 대상
  . 입력장치의 유형. 발생 이벤트 유형 확인 가능
  . 기울기. 압력 등의 추가 메소드 지원
 : 지원 > IE 10. FF. Webkit에 MS가 추가하였으나 실제 사용 불능
 : MS가 PC, mobile, tablet 등에서 사용하려고 만든 것이라고 보면됨...

2015년 12월 17일 목요일

W3C HTML5 Conference 2015 (오전) - 개인 메모 정리

개인 메모 저장

모든 기술 문서는 여기에
http://www.html5forum.or.kr/front/knowhow/tech.jsp

--------------------------------------------

Keynote 1 : 네이버가 바라보는 웹기술 및 환경 전망. 박종목 이사


요약 기사 :  http://www.zdnet.co.kr/news/news_view.asp?artice_id=20151209130727
Slide : http://www.slideshare.net/NaverEngineering/w3c-html5-conference-2015-naver


웹 파편화는 진행 중.

. adaptation cost 발생
. 사용자의 71%가 문제로 인식
. Browser. Web engine. Os. 제조사 등의 다양한 부분에서의 파편화

Native app을 HTML로 구현 시 기능 구현 가능율

 - Mobile browser, 37%
 - Web to native converter (ex 코도바), 63%
 - Native javascript api (ex 파폭), 97%

W3C Advancing web platform application testing cg 파편화 대응 그룹 생성됨.

Blink는 구글에서 주도하지만 opera에서도 함께 사용.

Chrome이 HTML5 feature를 잘 지원. 그에 반해 safari는 좀 떨어짐.

HTML5 지원은 600점 만점에 500대 이하. ECMA6 지원은 아직 요원함.


--------------------------------------------

Keynote 2 : 웹개발의 현재와 미래. 윤석찬


요약 기사 : http://www.zdnet.co.kr/news/news_view.asp?artice_id=20151210164611
Slide : http://slides.com/channy/keynote-html5-korea#/


웹의 수명은? Hakon Wium Lie 500년 이라고 함 (at 한국웹 20주년)

하지만 현실은 암울..

웹에서는 스펙을 기다리지는 말고 먼저 앞서 나가는 자세를 가지자.

웹기술에서 파편화는 당연한거다. 파편화가 사라지는 시점에서 웹기술 발전이 지지부진해 진다. (ex. 한국에서의 Internet Explorer 사용)

웹은 living standard이고 항상 진화한다.

웹 5년 주기설
 : 1995 웹의 탄생. 2000년 포털기반. 2005년 1인 미디어. 2010년 소셜웹 모바일

Front-end 변천
 : 1999 document
 : 2000 apps
 : 2010 frameworks

앱 종류 변천
 : Miltipage app >Singlepage app >Isomorphic application (Meteor, React)

새로운 스펙들의 범람으로 브라우저 업체들의 대응에 한계
> 개발자들은 라이브러리를 통해 대응(폴백 방식) => polyfill library 증가


[웹 기술의 미래 키워드들]

#ExtensibleWeb

. Wb는 기본수준 api집중
. 개발자는 높은 수준 기능 구현
. 새로운 기능들을 표준화 하는 선순환 구조 마련

#API as a Service

. 여러 js library dependency
. Api call의 증가
. Api의 business model 있음.
. Internal API 사용 증가. 예 netflix
=> #MicroServices


#MicroServices

. Bounded context
. Death star architecture desin
. 작은 서비스를 담당하는 팀이 구성되어 진행. Devops형태

Clould <- Devops -> 바른개발 <- Microservice -> SOA


--------------------------------------------

Keynote 3 : Future-proof Responsive Design (Florian Rivoal)

Slide : http://florian.rivoal.net/talks/responsive-design/


어떤 기기에 상관없이 device의 특성에 따라서 최상의 경험을 제공해 주는 것


Viewport
. 표준이 아님
. Vss에서 처리 되어야 함.

@viewport를 사용하라.

CSS Device Adaptation을 참고!!!
. 데스크탑에사도 사용 가능
. Ms edge는 다름. @-ms-viewport


Media query
. 컨텐트에 따라서 적용해야자 특정 디바이스에 따라서 미디어쿼리를 적용해서는 안된다.
. SVG에도 적용 가능하다.


Css tools
. Css multi column layout
 : 컬럼 수. 컬럼의 픽셀로 설정 가능.

. Flexbox
 : 버튼 배치할 때 도움이 될 수 있음.

. CSS frid layout
 : 아직 활성화 되지 않음.
 : 페이지 레이아웃 정할 때 손쉬움.
Longlive media features

사진 참고

Media query시 화면의 특징을 잘 잡아서 적용하라.
. 화면 hover. Update frequency
. 인쇄. Minresolution
. 예제: 사진 참고


--------------------------------------------

Session 1.1 : HTML5 이후 웹의 진화 (ETRI 전종홍 책임)


발표자료 : http://www.html5forum.or.kr/api/filedown.jsp?filename=%EC%98%A4%EC%A0%84%EC%84%B8%EC%85%981_1_ETRI_%EC%A0%84%EC%A2%85%ED%99%8D%EC%B1%85%EC%9E%84_20151209-AF-HTML5-r4.pdf&folder=upload/board

... 발표자료를 다시 봐야 할 듯

예상하는 2020년까지 발전 방향

. Web as a platform
. Native 대비 80% 성능
. Multi device multi screen
. 100억대의 bt 디바이그 연동 재어
. JS는 IoT의 기본 언어
. Web은 universial client


TOWARD WEB PLATFORM

. Open web platform
. HTML groups와 WebApps group간 차이 없음.
 => Web Platform Working Group 시작 2015 10. 9

HTML5 사용 시 문제점 순위
. 성능 > API > Tool

Application foundation
. 웹앱 관련 표준을 foundation 단위로 모아서 준비
. App life cycle foundation

WoT 관련 표준 들
. PresentationAPI
 : https://w3c.github.io/presentation-api/
. WebBluetoothAPI
 : https://webbluetoothcg.github.io/web-bluetooth/
. WebNFCAPI
 : https://w3c.github.io/web-nfc/
. SensorsAPI
 : https://w3c.github.io/sensors/


--------------------------------------------

Session 1.2 : Web Payment 동향 및 전망 (이동산 이사)


웹 결재 표준화

. 2011년 Web payments CG 시작
. US FRB에서 적극 참여 중.
. Manu Spony leading.
. 알리바바 표준 참여.
. 페이팔은 특허로 참여 안함.

Payment를 Automotive쪽으로 응용 시나리오를 고려 중
: Streamimg Payments. 운행비. 톨비


Inter Ledger protocol
. 다양한 Ledger간 상호교류를 위한 방법론
. Ledger 은행 계정. 페이팔 계정. 알리페이 계정 등의 서비스를 제공하는 업체들
. Escrow를 사용한 transaction 사용

2015년 7월 12일 일요일

Google I/O Extended 2015 서울, Android track

Google I/O Extended 2015 서울 참가 후
세션 내용 중 생각 나는 것 대충 정리

Google I/O Extended 2015 서울
: http://festi.kr/festi/2015-io-extended-seoul/

시간 : 2015년 7월 12일 13시~18시
장소 : 세종대학교 광개토관 컨벤션홀


안드로이드 track을 들었음.

- 구글 I/O 에서 전해진 새로운 안드로이드 소식들, 양찬석
 : http://www.slideshare.net/chansukyang/m-50490336?from_m_app=android

- Veni, Vidi, Built, 김용욱
 . 발표자료 : https://github.com/dalinaum/veni-vidi-built

- 안드로이드 측정 도구, 차영호

- Android Design Support Library, 김태호
 . 발표자료 : http://www.slideshare.net/jyte/20150712-support-designlibrary

* 아직 동영상은 안올라온듯 GDG Korea 쪽 참고하시길.


[듣다가 대충 기록한 것들]

* 자세한 것은 동영상이나 발표자료를 참고.
* 발로 메모한거라 오타 작렬.


[구글 I/O 에서 전해진 새로운 안드로이드 소식들, 양찬석]

참고로 상세한 내용은 아래 링크에서 확인 가능함.
: http://developer.android.com/intl/ko/preview/behavior-changes.html

[런타임 앱 권한]

- 기존에 설치 시 권한을 요청하고 일괄 승인 했던 것을
M target app에서는 이전처럼 manifest에 권한을 명시하더라도
권한을 사용할 때 사용자에게 다시 물어보도록 함.
또한 환경설정에서 앱별 권한을 설정할 수 도 있음.

- Runtime 시 개별적으로 권한을 요청 할 때 시스템 프로세스 상에서 권한 요청이 실행 됨.
- 액티비티 뿐만 아니라 서비스에서 Runtime시 permission 요청을 해야 할 수 있음.

- 콜백으로 사용자 응답 받게 되므로 기존 권한을 사용하던 부분을 callback trigger를 전후로 나눠 처리 해야 함.

- M 이전 Android 버전들 타겟 앱은 이전 방식 처럼 권한을 수락하게 됨.

- M 버전 기반 앱의 권한이 거부되면 안드로이드에서는 가짜 데이터를 제공할 예정이고 앱의 동작은 가늠할 수 없으므로 앱이 권한 거부 상황을 잘 처리하도록 만들어야 함.

- 권한이 변경되더라도 자동으로 업데이트 가능함. (설치 시 권한 수락이 필요 없으니)


[Doze, 엡 대기 모드]

Active -> In-active -> IDLE-Pending -> Sensing(유휴상태확인)
IDLE <-> IDLE maintenance

-대기모드에서는
. 네트워크 작업 불가
. 백그라운드 작업 불가
. Wake lock 무시
. Wi-Fi scan 멈춤

- 추후 GCM 을 통해 앱을 깨울 수 있게 하려 함.


[오토 백업]

25MB가 넘지 않으면 M 타겟 앱의 데이터가 사용자 구글 드라이브로 백업 됨.
추후 앱이 다시 설치 되면 기존 데이터가 업데이트 됨.

-백업 조건
. 백업은 24시간 내, 충전 중, 유후, Wi-Fi 연결
- M타겟일 때는 자동으로 백업
- XML 파일을 사용해 선택적 백업 가능

. 개인적인 생각으로 M은 사용자에게 도움이되는 방향으로 가는 것 같다.



[Veni, Vidi, Built, 김용욱]

* 발표 자료내 동영상이 좀 제대로 안나와서 초고수님이 좀 긴장을 하시며 발표를 하신듯.

- Gradle은 그루비를 사용 중
- Task 간 dependency 를 지정 할 수 있음.

안드로이드 gradle 에서

Build.gradle => 전체 빌드 설정
App/build.gradle => app 모듈 빌드 설정
Settings.gradle => Import app module

- JCenter vs Maven Central
. Maven central 은 최초 접곡시 다소 시간이 소요 되고 HTTPS 지원 안함. 모듈 올리기 어렵다.

- Type: exec를 상속 받고 PreBuild.dependsOn으로 지정하면 외부 스크립트 사용 가능

[New android plugin experimental]

- Gradle wrapper 앱 빌드 환경에서 버전 2.5로 변경하고 Build.gradle 변경

- App/build.gradle 에서
. Com.android.model.application 로 변경 됨 -> Component model mechanism의 영향
. 변수처럼 설정입력
. 설정명 들이 좀 변경 됨

[NDK support]
- Local.property에서 ndk.dir 추가

- Build.Gradle 에서
Android.ndk 명시, Android.productFlavors에 cpu 타입 명시 필요

- App/src/main/jni에 c 파일 추가


[Jack and Jill]

- Jack : java android compiler kit
- Jill : jack intermediate library linker

- Build.gradle에서 useJack = true 설정 하여 사용
- 다만 개발 중이라 빌드 안되는 앱이 있을 수 있음.
- 동영상에서 후반 질의 내용 중 마지막 질문을 빙자한 해명을 꼭 들어봐야 함.




[안드로이드 측정 도구, 차영호]

[New in Android studio 1.3]
중에서 측정 도구 관련 눈 여겨 볼것이
New Allocation Tracker, New Heap Dump Viewer, NDK 지원

Battery historian, Systrace

[Systrace]
Ftrace로 데이터 가져옴.
크로미엄 trace를 parse 및 ....

Pros
. Low overhead
. 여러 process의 데이터를 수집하므로 dependency 확인 가능

Cons
. 찗은 시간만 확인 가능 5초
. Specific category나 function만 track 가능

- Cmd 상에서는 Platform-tools/sustrace/systrace.py 로 실행, 단 Mac linux 에서만

- DDMS 에서는 아이콘 클릭

- tracing 가능한 Caregory
. Component life cycle
. View inflate, layout, draw
. OpenGL
. Audio camera
. Input event delivery
. Cpu scheduling
. Disk. Kernel. Workqueue 등, 단 Android를 직접 빌드했다면 가능함.

Platform tool r23에서 많이 개선 됨
.프로세스별 그룹핑
. Interaction lane추가로 context 확인 편하게
.성능 alert 표시 및 설명 및 동영상 안내
. 60hz mode 표시 (사용자가 끊김을 인지할 수 있는 너비 표시)
. Script console 지원 (javascript로 수행 가능... 뭘?)


- trace의 로그는
Curils/trace.h 에서 trace marker 추가함 (traceing_mark_write)
시작 시 b, pid, process name 기록
종료 시 e 기록
* 만약 process가 시작되고 종료되는게 순서대로 짝이 맞아야 함. 안맞으면 tracing 불가



[Android Design Support Library, 김태호]

* Design support library가 정말 반가움..

- package : com.android.support:design:22.2.0

[CoordinatorLayout]

- 다양한 방법으로 자식 뷰들의 위치를 지정 할 수 있음.
- 자식의 뷰에서 Behavior(뷰와 상호작용). Anchor(특정위치에 붙는 행위 지정) 지정

- 스크롤에 특화된 레이아웃
- 아래 뷰만 전체 기능 지원
. RecyclerView
. NestedScrollView

- 스크롤이 가능한 부를 자식으로 추가 가능하나 nested scroll 지원 불가

[AppBarLayout]

- Toolbar + TabLayout 구성
- 형제뷰에 scrollFlags 지정

[CollapsingToolbarLayout]

- 일정 높이까지 늘어날 수 있는 Toolbar를 만들 때 사용
- 항상 AppBarLayout의 자식으로 사용

[TabLayout]

- ViewPager indicator
- 액션바에서 제공하던 탭 기능을 분리한 레이아웃

[NavigationMenu]

- App Drawer를 편리하게 구현
- 메뉴를 XML로 구성 가능
- DrawerView?를 Navigation으로 교체

- FitSystemWindows=true 설정으로 제대로 보이도록

- Memu list는 xml로
- Android checkableBehavior는 하나만 선택 되도록
- NavigationItemSelectedListener 구현


[TextInpitLayout]
- EditText의 기능을 확장.
- Hint text, error text 표시 및 애니메이션 지원
- Edittext와 1:1 매칭
- 색상이 틀어지는 문제로 인해 EditText 대신 AppCompatEditText 사용 권장
- 색상 미지원 시 colorAccent 노란색 색상
- ColorContolNormal, ColorControlActive


[FloatingActionButton, FAB]

사용자가 자주 사용하는 동작을 지원
- Inbox app의 compose 버튼
- 기본 배경색은 colorAccent

[Snackbar]

- 토스트와 다이얼로그의 중간
- 메시지 + 액션 버튼
- Dismiss listener는 아직 지원 안함. 이슈 제기되어 accept 된 상태
- Snakebar 생성 시 표시할 view를 인자로 넘김


생각대로 잘 안되면...
다음버전을 기다려 봐라.

버그 리포팅 b.android.com
AOSP 소스 s.android.com

http://androidhuman.com/m/post/561 참고