More Related Content
Similar to presentation after intern (8)
presentation after intern
- 2. 2
Copyright © RSUPPORT Co., Ltd. ALL RIGHTS RESERVED. www.rsupport.com 2
I. 무엇을 했는가
II. 무슨 생각을 했는가
III. 앞으로 무엇을 할 것인가
Index
!!! RSUPPORT Confidential !!!
- 3. 3
Copyright © RSUPPORT Co., Ltd. ALL RIGHTS RESERVED. www.rsupport.com 3!!! RSUPPORT Confidential !!!
1. 채팅앱 (수습 과제)
1. Lazy Loader Component (수습 과제)
1. 그밖의 작업들
무엇을 했는가
- 4. Copyright © RSUPPORT Co., Ltd. ALL RIGHTS RESERVED. www.rsupport.com 4
다른 유저의
타이핑 메시지
현재 어떤 유저들이 참여중인지 표시
입장, 퇴장시 이벤트 메시지
로그인
1. 채팅앱(수습과제) - 기능
- 7. Copyright © RSUPPORT Co., Ltd. ALL RIGHTS RESERVED. www.rsupport.com 7
1. Lazy Load Component(수습 과제) - 작업 대상
Remote Meeting - Lounge Page
https://st.remotemeeting.com/lounge/room-list
- 8. Copyright © RSUPPORT Co., Ltd. ALL RIGHTS RESERVED. www.rsupport.com 8
3. Lazy Load Component(수습 과제) - 기능
화
면
기존 방식
: Room 배경 이미지 99개를 한번에 로드
화면
달라진 방식
: 화면에 보이는 룸의 이미지들만 로드
화면
화면
- 9. Copyright © RSUPPORT Co., Ltd. ALL RIGHTS RESERVED. www.rsupport.com 9
3. Lazy Load Component(수습 과제) - 응용한 API
Intersection Observer API
교차 관찰자 API(Intersection Observer API)는 상위요소 또는 최상위 문서의 뷰포트
(viewport)와 대상 요소의 교차점에서 변화를 비동기적으로 관찰할 수 있는 방법을 제공
한다.
- 10. Copyright © RSUPPORT Co., Ltd. ALL RIGHTS RESERVED. www.rsupport.com 10
3. Lazy Load Component(수습 과제) - 시연
- 11. Copyright © RSUPPORT Co., Ltd. ALL RIGHTS RESERVED. www.rsupport.com 11
3. Lazy Load Component(수습 과제) - 설계
- 12. Copyright © RSUPPORT Co., Ltd. ALL RIGHTS RESERVED. www.rsupport.com 12
3. Lazy Load Component(수습 과제) - 목표
화
면 화
면
화
면
현재 목표
- 13. Copyright © RSUPPORT Co., Ltd. ALL RIGHTS RESERVED. www.rsupport.com 13
3. Lazy Load Component(수습 과제) - 목표
- 15. 15
Copyright © RSUPPORT Co., Ltd. ALL RIGHTS RESERVED. www.rsupport.com 15!!! RSUPPORT Confidential !!!
퀄리티를 어떻게 높일까? … Lighthouse Reports
- Lazy Load
- JS 경량화
무엇을 생각했는가
- 16. Copyright © RSUPPORT Co., Ltd. ALL RIGHTS RESERVED. www.rsupport.com 16
1. 퀄리티를 어떻게 높일까? - Lighthouse란?
Lighthouse란?
Lighthouse는 웹 앱의 품질을 개선하는 오픈 소스 자동화 도구입니다.
Lighthouse는 Chrome 확장프로그램, 커맨드 라인에서, 노드 모듈에서
프로그램으로도 사용할 수 있습니다. Lighthouse에 확인할 URL을 지정
하고, 페이지에 대한 테스트를 실행한 다음, 페이지에 대한 보고서를 생
성합니다. 여기에서 실패한 테스트는 앱을 개선하기 위해 할 수 있는 것
에 대한 지표로 사용할 수 있습니다.
시연 샘플 : 링크
- 17. Copyright © RSUPPORT Co., Ltd. ALL RIGHTS RESERVED. www.rsupport.com 17
1. 퀄리티를 어떻게 높일까? - 활용 방식
시연 : https://github.com/Seunghyum/lighthouse-report-script
- 18. Copyright © RSUPPORT Co., Ltd. ALL RIGHTS RESERVED. www.rsupport.com 18
1. 퀄리티를 어떻게 높일까? - 활용 방식
알림 방법
슬랙 채널 메시지 메일로 보고서 파일전송
- 19. Copyright © RSUPPORT Co., Ltd. ALL RIGHTS RESERVED. www.rsupport.com 19
1. 퀄리티를 어떻게 높일까? - 활용 방식
주기적인 실행
- 배포 시기
- 2주마다(서비스에 문제없는지 체크
)
알림 방식
- 슬랙 메시지
- 담당자 메일로 보고서 전송
- 20. Copyright © RSUPPORT Co., Ltd. ALL RIGHTS RESERVED. www.rsupport.com 20
1. 퀄리티를 어떻게 높일까? - 실제 적용
RM 홈페이지 : https://www.remotemeeting.com/ko/home
- 21. Copyright © RSUPPORT Co., Ltd. ALL RIGHTS RESERVED. www.rsupport.com 21
1. 퀄리티를 어떻게 높일까? - 보고서 수정사항 반영해보기 (1)
Google Page Speed Insight 링크
- 22. Copyright © RSUPPORT Co., Ltd. ALL RIGHTS RESERVED. www.rsupport.com 22
1. 퀄리티를 어떻게 높일까? - 보고서 수정사항 반영해보기 (1)
RM 홈페이지 : https://www.remotemeeting.com/ko/home
Lazy Loading
- 23. Copyright © RSUPPORT Co., Ltd. ALL RIGHTS RESERVED. www.rsupport.com 23
1. 퀄리티를 어떻게 높일까? - 보고서 수정사항 반영해보기 (1)
Google Page Speed Insight 링크
- 24. Copyright © RSUPPORT Co., Ltd. ALL RIGHTS RESERVED. www.rsupport.com 24
1. 퀄리티를 어떻게 높일까? - 보고서 수정사항 반영해보기 (1)
Room 페이지
CSS, JS 파일 크기 : 2.3MB
- 25. Copyright © RSUPPORT Co., Ltd. ALL RIGHTS RESERVED. www.rsupport.com 25
1. 퀄리티를 어떻게 높일까?
렌더링 속도 높이기
: 에셋 용량 줄이기 by Webpack Bundle Analyzer
Moment.js
235.4KB(gzipped: 66.3KB)
Day.js
7.1KB(gzipped: 2.9KB)
- 26. Copyright © RSUPPORT Co., Ltd. ALL RIGHTS RESERVED. www.rsupport.com 26
1. 퀄리티를 어떻게 높일까?
Webpack Bundle Analyzer 시연
구글드라이브 링크
- 27. Copyright © RSUPPORT Co., Ltd. ALL RIGHTS RESERVED. www.rsupport.com 27
1. 퀄리티를 어떻게 높일까?
기대 효과 : 제품 퀄리티를 정량화
각 페이지마다 Lighthouse 보고서를 출력하는 스크립트를 만들고
업데이트 주기마다 돌리면 제품 퀄리티가 유지되고 있는지 확인할 수 있지 않을까.
- 28. 28
Copyright © RSUPPORT Co., Ltd. ALL RIGHTS RESERVED. www.rsupport.com 28!!! RSUPPORT Confidential !!!
앞으로 무엇을 할 것인가
- 29. Copyright © RSUPPORT Co., Ltd. ALL RIGHTS RESERVED. www.rsupport.com 29
3. 앞으로 무엇을 할 것인가
- jQuery → React 전환 (프론트 / 백엔드 분리작업)
- 주기적인 Lighthouse - AWS Lambda + CloudWatch
Editor's Notes
- LazyLoadObserver : IntersectionObserver 객체를 다루기 위한 클래스
LazyLoadWrapper : DOM을 감싸기만 하면 해당 DOM을 IntersectionObserver로 추적 하기위한 React 컴포넌트
- 지금은 한줄씩 로드하는게 아닌 이미지 하나마다 로드.
기존 코드에서 한줄씩 로드하게 하려면 꽤 많은 것을 수정해야해서 일단은 이미지 하나씩 로드 함.
- 다국어 처리, 간단한 UI 수정 작업, jQuery 작업들을 진행.
- ₩
- ₩
- 특정 슬랙 채널에 알람메시지
메일로 보고서 파일전송
- AWS CloudWatch로 Lamda를 업데이트 주기적으로 실행.
- ₩
- ₩
- 다음 업데이트 때 적용할 예정.
- ₩
- 그래서 번들링한 파일들 용량을 체크해봄.
SPA 하나를 로드하는데 2.3MB가 아니라 이 페이지를 로드하는데 이 정도 걸림.
- day.js도 날짜 계산은, I18n 다국어 기능 지원함.
- file:///Users/shmoon/Code/WebServer/public/src/main/webapp/service/dist-react/report.html
- 룸 페이지 Lighthouse 분석을 위해서는 로그인이 필요한데 이를 위해 pupeteer라는 크로미움 기반 헤드리스 브라우저로 로그인 후 돌리려고 했으나 위와 같은 에러가 나서 멈춘 상태.