Improve CSS IR & Sprites Image Techniques for Accessibilityyamoo9
[12.09] 제10회 2014 정보접근성 동향 세미나 발표 자료
Windows High Contrast Mode 감지 및 CSS 활성화 Images 비활성화 상태 체크 감지 스크립트, ImproveIR.js를 활용한 IR 테크닉 접근성 향상
코드 소스 다운로드
https://github.com/yamoo9/Improve-IR-Accessible-Tech
Craft box game item coupon zone entry proposal수철 안
전국 70%이상 PC방, 하루 100만 이상 유저에게 노출되는 회원기반 게임 전용 플랫폼 '크래프트박스(Craft Box)'
▶ 전국 5,000개 PC방에 게임이 배포되어, 유저는 별도의 게임설치 없이 바로게임 실행이 가능합니다.
▶ 출시 전 게임을 알리기 위한 사전예약부터, 실제 게임 론칭 후 게임 플레이 유도를 위한 게임아이템 제공이 가능한, 게임 라이프 사이클에 맞춘 게임에 특화된 게임전용 플랫폼입니다.
Improve CSS IR & Sprites Image Techniques for Accessibilityyamoo9
[12.09] 제10회 2014 정보접근성 동향 세미나 발표 자료
Windows High Contrast Mode 감지 및 CSS 활성화 Images 비활성화 상태 체크 감지 스크립트, ImproveIR.js를 활용한 IR 테크닉 접근성 향상
코드 소스 다운로드
https://github.com/yamoo9/Improve-IR-Accessible-Tech
Craft box game item coupon zone entry proposal수철 안
전국 70%이상 PC방, 하루 100만 이상 유저에게 노출되는 회원기반 게임 전용 플랫폼 '크래프트박스(Craft Box)'
▶ 전국 5,000개 PC방에 게임이 배포되어, 유저는 별도의 게임설치 없이 바로게임 실행이 가능합니다.
▶ 출시 전 게임을 알리기 위한 사전예약부터, 실제 게임 론칭 후 게임 플레이 유도를 위한 게임아이템 제공이 가능한, 게임 라이프 사이클에 맞춘 게임에 특화된 게임전용 플랫폼입니다.
TensorFlow.js & Applied AI at the Coca-Cola CompanyModulabs
TF Dev Summit × Modulabs : Learn by Run !
TensorFlow.js & Applied AI at the Coca-Cola Company (발표자 : 민규식)
※ 모두의연구소 페이지 : https://www.facebook.com/lab4all/
※ 모두의연구소 커뮤니티 그룹 : https://www.facebook.com/groups/modulabs
어느 해커쏜에 참여한 백엔드 개발자들을 위한 교육자료
쉽게 만든다고 했는데도, 많이 어려웠나봅니다.
제 욕심이 과했던 것 같아요. 담번엔 좀 더 쉽게 !
- 독자 : 백엔드 개발자를 희망하는 사람 (취준생, 이직 희망자), 5년차 이하
- 주요 내용 : 백엔드 개발을 할 때 일어나는 일들(개발팀의 일)
- 비상업적 목적으로 인용은 가능합니다. (출처 명기 필수)
TensorFlow.js & Applied AI at the Coca-Cola CompanyModulabs
TF Dev Summit × Modulabs : Learn by Run !
TensorFlow.js & Applied AI at the Coca-Cola Company (발표자 : 민규식)
※ 모두의연구소 페이지 : https://www.facebook.com/lab4all/
※ 모두의연구소 커뮤니티 그룹 : https://www.facebook.com/groups/modulabs
어느 해커쏜에 참여한 백엔드 개발자들을 위한 교육자료
쉽게 만든다고 했는데도, 많이 어려웠나봅니다.
제 욕심이 과했던 것 같아요. 담번엔 좀 더 쉽게 !
- 독자 : 백엔드 개발자를 희망하는 사람 (취준생, 이직 희망자), 5년차 이하
- 주요 내용 : 백엔드 개발을 할 때 일어나는 일들(개발팀의 일)
- 비상업적 목적으로 인용은 가능합니다. (출처 명기 필수)
22. 1. Button이 CPU에 의해 폴리곤-메시와 텍스처로 변환
2. 변환된 데이터는 OpenGL에 의해 CPU에서 GPU로 전달
3. 래스터화를 거쳐 화면에 나타남
Button이 화면에 나타나는 과정
즉, 렌더링 성능의 핵심은 GPU의 메모리 적재된 데이터 관리!
24. 오버드로우?
오버드로우란 같은 픽셀에 여러번 덧 칠하는 것을 의미한다.
오버드로우를 줄이면 불필요한 GPU리소스를 줄이고
퍼포먼스를 끌어올릴 수 있다.
1. Overdraw란?
25. 불필요한 배경 제거 또는 중첩되는 색상의 배경 제거하면 오버드로우를 방지하여 성능을 개선할 수 있다.
1.1 오버드로우 줄이기 - 중첩된 배경 제거
<LinearLayout
android:id="@+id/parent"
android:width="match_parent"
android:height="match_parent"
android:background=“@android:color/black”>
<LinearLayout
android:id="@+id/child"
android:width="match_parent"
android:height="wrap_content"
android:background=“@android:color/black”>
...
</LinearLayout>
</LinearLayout>
27. 1.2 오버드로우 줄이기 - 투명도 사용 삼가하기
Grey Black Alpha 0.5f+
부가적인 연산 필요
Vs
28. - onDraw() 등 생명주기 메서드에서 메모리를 할당하거나 초기화하는 작업
은 삼가한다.
- onDraw(), onMeasure(), onLayout() 메서드가 자주 호출 되지 않도록
한다.
- 무분별한 invalidate(), requestLayout() 호출 삼가하기
2. View의 간소화 및 갱신 빈도 낮추기
32. ViewStub 특징
- 초기화 지연
- 경량화된 View로 보이지 않고, 아무것도 그리지 않음
- 복잡한 레이아웃에서 사용
4. ViewStub 사용으로 느리게 초기화하기
ViewStub
View
ViewStub
33. Adapter.notifyDataSetChanged() : 호출하여 전체를 갱신하는 대신 특정 아이템만 갱신하도록 한다.
5.1 RecyclerView 퍼포먼스 향상시키기 - 아이템 갱신 최소화하기
부분적으로 아이템들을 갱신하는 메서드
- notifyItemChanged
- notifyItemInserted
- notifyItemRemoved
- notifyItemMoved
- notifyItemRangeChanged
- notifyItemRangeInserted
- notifyItemRangeRemoved
34. DiffUtil이란?
두 리스트를 차이를 계산하고 변경된 부분만 갱신하도록 도와주는 유틸클래스
5.2 RecyclerView 퍼포먼스 향상시키기 - DiffUtil 사용하기
반드시 구현해야하는 DiffUtil.Callback 메소드
getOldListSize : 이전 리스트의 사이즈를 반환
getNewListSize : 새로운 리스트의 사이즈를 반환
areItemsTheSame : 두 아이템이 같은 아이템인지 검사한다.
areContentsTheSame : 두 아이템의 내용이 같은지 검사한다.
35. RecyclerView.setHasFixedSize(true) :
Adpater 내용이 변경 될 때 RecyclerView가 전체 레이아웃을 갱신하지 않도록 할 수 있다.
5.3 RecyclerView 퍼포먼스 향상시키기 - setHasFixedSize(true) 호출하기
//RecyclerView 내부 코드
@Override
protected void onMeasure(int widthSpec, int heightSpec) {
...
if (mHasFixedSize) {
mLayout.onMeasure(mRecycler, mState, widthSpec, heightSpec);
return;
}
...
}
38. Adapter.setHasStableIds(true):
아이템에 대해 고유 식별자를 부여하여 동일한 아이템에 대해 onBindViewHolder 호출을 방지하여 성능을 개선한다.
5.6 RecyclerView 퍼포먼스 향상시키기 - setHasStableIds(true) 호출하기
public class MyAdapter extends RecyclerView.Adapter<...> {
...
@Override
public long getItemId(int position) {
return viewModels.get(position).getId();
}
}