name 강희
hobby 그림 그리기, 웹툰 보기, 산책
Blog | https://velog.io/@heelieben |
---|---|
Github | https://github.com/kheeyaa |
[email protected] |
Git
JavaScript
React | Redux | RTK | Node
CSS
Sass | styled-component
HTML
tool
Web pack | babel | figma
Another
C | Python
네카라쿠배 프론트엔드 개발 스쿨 2기
2021.07 ~ 2022.01 수료 완료
한국외국어대학교 전자공학과
2018.03 ~ 4학년 2학기 휴학
문서화
Git Commit
디자인
진행했던 프로젝트들의 전체적인 디자인을 직접 설계했습니다.
저는 웹 페이지의 성능을 개선하여 소비자들에게 빠르고 편안한 사용자 경험을 제공하고자 합니다.
WPO(Web Performance Optimization) stats의 조사[링크] 에 따르면 Walmart는 페이지 로드가 100ms 개선될 때마다 수익이 1% 증가했습니다. 웹 로딩 속도 1초에 아마존 매출 68억달러가 달렸다[링크] 라는 분석도 존재합니다. KissMetrics 연구에 의하면 47%의 소비자는 웹페이지가 2초 이내에 로드되길 기대하고, 40%의 소비자가 3초가 되면 웹페이지를 이탈한다고 합니다. 프론트엔드 개발자는 사이트의 로딩 시간을 줄여 소비자 이탈율을 줄이고 이익을 창출해 낼 수 있습니다.
Web Pack은 여러 파일들을 하나의 파일로 묶어주는 번들링을 수행합니다. 번들링을 통해서 서버에게 여러 요청을 보내는 대신, 한 번의 요청으로 필요한 소스를 받을 수 있으므로 서버의 부하를 줄입니다. 하지만 번들링 결과가 너무 크다면 페이지 접속시 한 파일을 불러오는 데 오랜 시간이 걸리게 됩니다. 따라서 한 페이지에서 필요한 단위로 코드를 분할하고 번들링하여 웹 성능을 개선할 수 있습니다.
웹 페이지에서 대부분의 용량을 차지하는 것은 이미지입니다. 이미지 최적화를 통해 웹 페이지 바이트를 절약하고, 렌더링 속도를 절감시켜 웹 성능을 개선할 수 있습니다.
서버로부터 지금 필요하지 않은 데이터들을 한 번에 받아두지 않고, 필요할 때마다 데이터를 요청하는 Lazy Loading을 통해 웹 성능을 개선할 수 있습니다.
React.memo, useCallback, useMemo를 사용하여 컴포넌트 최적화를 통해 불필요한 컴포넌트 렌더링을 방지하고 웹 성능을 개선합니다.
기존의 코드를 유지보수 하는 데 들어가는 시간이 줄어든다면, 더욱 좋은 서비스를 제공할 수 있을 것이며 결국 이익 창출로 이어집니다.
구현에 급급해 빠르게 작성한 코드는 시간이 지난 후 새로운 서비스를 제공하기 위해 코드를 추가하는 순간, 버그가 발생하고 손을 댈수록 더욱더 그 문제를 해결하기 어려워집니다. 가독성이 좋고 논리적인 코드는 다른 사람이 보더라도 이해할 수 있으며, 디버깅하기 용이하며 유지보수가 간편합니다.
저는 함수형/선언형 프로그래밍을 지향합니다. 부수효과를 일으키지 않는 순수함수를 작성하여 상태를 안전하게 보호하고자 합니다. 특정 함수만이 상태를 변경할 수 있도록 하여 디버깅을 용이하게 합니다.
함수와 변수의 이름을 통해서 이 함수와 변수가 어떤 의미를 가지는지 한 번에 파악할 수 있도록 작성하고자 노력합니다.
클로저와 getter, setter를 사용하여 상태를 안전하게 은닉하면 디버깅이 편해집니다.