{"payload":{"feedbackUrl":"https://github.com/orgs/community/discussions/53140","repo":{"id":396772396,"defaultBranch":"main","name":"perf-basecamp","ownerLogin":"woowacourse","currentUserCanPush":false,"isFork":false,"isEmpty":false,"createdAt":"2021-08-16T11:54:27.000Z","ownerAvatar":"https://avatars.githubusercontent.com/u/45747236?v=4","public":true,"private":false,"isOrgOwned":true},"refInfo":{"name":"","listCacheKey":"v0:1693548649.0","currentOid":""},"activityList":{"items":[{"before":"cf16a0cb67fc898d1ade97ec87649e84c6103f3e","after":"ea8dd9b724e67ce62b276febf8e1c45774c3cce0","ref":"refs/heads/ukkodeveloper","pushedAt":"2023-09-11T09:01:06.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"solo5star","name":null,"path":"/solo5star","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/20203944?s=80&v=4"},"commit":{"message":"[개인 미션 - 성능 오답노트] 우코(김유권) 미션 제출합니다. (#105)\n\n* feat: edit homepage url & broken image url\n\n* chore: node 버전에 따른 package 의존성 변경\n\n* fix: classnames type 변경\n\n* chore: 파일로더 경로 변경\n\n* feat: bundle analyzerPlugin 설치 및 적용\n\n* feat: css 최적화 적용\n\n* feat: webpack dev, prod 환경 모듈로 분리\n\n* feat: webpack 이미지 파일 생성\n\n* feat: responsive loader 패키지 설치 및 적용\n\n* feat: gif를 mp4, webm 형식으로 파일 변경\n\n* feat: FeatureItem 컴포넌트에 gif를 webm, mp4로 변경\n\n* remove: gif 이미지 최적화 로더, 더 이상 사용하지 않아 삭제\n\n* feat: page별 lazy로딩 적용\n\n* feat: 캐싱을 위한 gifStorage 생성\n\n* feat: keyword 검색 시에도 캐싱 적용\n\n* feat: gif item hover시에 transform으로 layout shift 제어\n\n* feat: gif Item lazy loading 속성 추가\n\n* feat: cursor 재렌더 일어나지 않도록 위치 데이터를 비제어로 관리\n\n* feat: Home 페이지 내 커스텀 커서 최적화\n\n* refactor: Suspense를 전체 레이어를 감싸도록 수정\n\n* refactor: Home 페이지 loading lazy 삭제\n\n* feat: 키워드 검색 시 gif에서 webp를 받도록 수정\n\n* feat: gifItem에 memo 적용\n\n* feat: font display block으로 두어 레이아웃 변경 없도록 수정\n\n* feat: Home 페이지 접속시에 Search 페이지 prefetch\n\n* feat: keyword 입력 비제어로 변경하여 렌더링 최소화\n\n* feat: HelpPanel transform 속성 적용하여 layout shift 최소화\n\n* feat: HelpPanel 내 이미지 요소 너비 고정\n\n* refactor: router basename 제거\n\n* fix: 사용하지 않는 module type 제거\n\n* feat: hero image preload 적용\n\n* fix: gif 클릭 시 giphy 홈페이지로 가지지 않는 현상\n\n* fix: trending 요청 결과 session storage 키 수정\n\n* refactor: tsconfig, webpack 기타 설정 변경\n\n---------\n\nCo-authored-by: woowapark ","shortMessageHtmlLink":"[개인 미션 - 성능 오답노트] 우코(김유권) 미션 제출합니다. (#105)"}},{"before":"cf16a0cb67fc898d1ade97ec87649e84c6103f3e","after":"eedb90204c05a53b29a45c2d3f93277e8a760512","ref":"refs/heads/geuntaek1013","pushedAt":"2023-09-11T09:00:37.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"geuntaek1013","name":"Geun Taek Ahn","path":"/geuntaek1013","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/95906910?s=80&v=4"},"commit":{"message":"[개인 미션 - 성능 오답노트] 아인(안근택) 미션 제출합니다. (#114)\n\n* refactor: this bind 문제 해결\r\n\r\n* chore: webpack, eslint 버전 업데이트, 배포 경로 수정\r\n\r\n* chore: webpack에 css minify 설정\r\n\r\n* chore: webpack에 bundle analyzer 설치\r\n\r\n* chore: webpack Bundle Analyzer 설정\r\n\r\n* chore: webpack chunk 분리 및 네이밍 추가\r\n\r\n* refactor: Home, Search 페이지 Code Splitting\r\n\r\n* refactor: 이미지 포맷 변경 및 압축\r\n\r\n* refactor: Search 페이지에 react memo -> 메모이제이션 적용\r\n\r\n* refactor: CustomCursor LayoutShift 수정\r\n\r\n* refactor: GiftItem, HelpPanel -> Layout Shift 제거\r\n\r\n* refafctor: 검색 결과 중에 새롭게 추가된 결과만을 렌더링하도록 최적화 적용\r\n\r\n* refactor: Footer 컴포넌트 Layout Shift 제거\r\n\r\n* refactor: webp 미지원 브라우저 사용자를 위한 picture 태그 추가\r\n\r\n* refactor: hero Image 반응형 구현\r\n\r\n* refactor: trending API 설정\r\n\r\n* refactor: trending API memo cache time 설정\r\n\r\n* chore: App에 basename 삭제\r\n\r\n* refactor: 번들 된 파일명에 hash 값 추가\r\n\r\n* refactor: Home page에 feature Image의 너비, 높이 고정\r\n\r\n* refactor: Home Page에 lazy 제거\r\n\r\n* refactor: Image preload 설정","shortMessageHtmlLink":"[개인 미션 - 성능 오답노트] 아인(안근택) 미션 제출합니다. (#114)"}},{"before":"cf16a0cb67fc898d1ade97ec87649e84c6103f3e","after":"e8a10acc22b393a8c4b2d02a2da8f3de94e90f90","ref":"refs/heads/shackstack","pushedAt":"2023-09-11T08:57:22.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"n0eyes","name":"Seyeon Jeong","path":"/n0eyes","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/79056677?s=80&v=4"},"commit":{"message":"[개인 미션 - 성능 오답노트] 제레미(김민석) 미션 제출합니다. (#100)\n\n* chore: devDependencies node 버전 동기화\r\n\r\n* style: basename 제거\r\n\r\n* refactor: 이미지 120kb 이하 경량화\r\n\r\nheic, webp, jpg 이미지 파일로 변환\r\n\r\n* chore: TerserPlugin 설치 및 적용\r\n\r\n* refactor: 페이지 별 code splitting 적용\r\n\r\n* feat: BundleAnalyzerPlugin 설치 및 적용\r\n\r\n* refactor: 이미지 파일 확장자 미지원 브라우저 대응\r\n\r\n* refactor: CssMinimizerPlugin 설치 및 적용\r\n\r\n* feat: 로컬스토리지에 trending gifs 캐싱 기능 구현\r\n\r\n* refactor: GifItem 렌더링 최적화\r\n\r\n* refactor: custom cursor layout shift 개선\r\n\r\n* refactor: GifItem hover시 layout shift 개선\r\n\r\n* refactor: HelpPanel layout shift 개선\r\n\r\n* fix: 캐쉬 저장 로직 수정\r\n\r\n로컬 스토리지 -> 세션 스토리지\r\n\r\n* refactor: trending gifs 렌더링 최적화\r\n\r\ngifList가 없는 경우에 set하도록 수정\r\n\r\n* fix: Suspense 범위 수정\r\n\r\n* fix: Suspense 범위 수정","shortMessageHtmlLink":"[개인 미션 - 성능 오답노트] 제레미(김민석) 미션 제출합니다. (#100)"}},{"before":"cf16a0cb67fc898d1ade97ec87649e84c6103f3e","after":"1d6ef143f50affbe184b674d4289c155d067aac6","ref":"refs/heads/nangkyeonglim","pushedAt":"2023-09-11T08:47:54.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"geuntaek1013","name":"Geun Taek Ahn","path":"/geuntaek1013","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/95906910?s=80&v=4"},"commit":{"message":"[개인 미션 - 성능 오답노트] 파인(임낭경) 미션 제출합니다. (#89)\n\n* chore: 초기 환경설정\r\n\r\n* chore: 최적화에 필요한 package 설치\r\n\r\n* refactor: gif 이미지 최적화\r\n\r\n* chore: 소스 코드 압축 및 난독화 설정\r\n\r\n* chore: 이미지 파일 webp 형식으로 최적화\r\n\r\n* chore: css 파일 분리 및 압축 설정\r\n\r\n* chore: code splitting 설정\r\n\r\n* refactor: React.lazy를 이용한 code splitting\r\n\r\n* refactor: trending API 결과 캐싱하여 새로 요청하지 않도록 수정\r\n\r\n* refactor: 추가되는 결과에 대해서만 렌더되도록 memoization\r\n\r\n* refactor: Layout shift 없이 애니메이션이 일어나도록 설정\r\n\r\n* refactor: 패키지 버전 업데이트에 따른 문법 수정\r\n\r\n* refactor: font를 preload로 가져올 수 있도록 수정\r\n\r\n* refactor: classNames bind 제거","shortMessageHtmlLink":"[개인 미션 - 성능 오답노트] 파인(임낭경) 미션 제출합니다. (#89)"}},{"before":"cf16a0cb67fc898d1ade97ec87649e84c6103f3e","after":"2738c82fa5e355ba56b7711bea607012cac7cd4c","ref":"refs/heads/ksone02","pushedAt":"2023-09-11T08:33:06.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"Gilpop8663","name":"김영길/KIM YOUNG GIL","path":"/Gilpop8663","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/80146176?s=80&v=4"},"commit":{"message":"[개인 미션 - 성능 오답노트] 에디(강상원) 미션 제출합니다. (#111)\n\n* chore: webpack-dev-server 버전 변경 및 index.html 위치 변경\r\n\r\n* chore: 필요한 의존성 설치\r\n\r\n* chore: 정적 이미지 압축, 확장자 변경\r\n\r\n* refactor: App단에 lazy import 통해 코드 분리\r\n\r\n* chore: artistData 확장자 gif -> webp\r\n\r\n* refactor: FeatureItem imageSrc -> videoSrc\r\n\r\n* feat: API Response Caching 유틸 구현\r\n\r\n* refactor: position css property translate화\r\n\r\n* refactor: react-icons 경량화\r\n\r\n* refactor: CustomCursor 이동 로직 수정\r\n\r\n* refactor: ArtistInfo, GiftItem memoization\r\n\r\n* refactor: webpack 번들링 최적화\r\n\r\n* refactor: CustomCursor 리렌더링 개선\r\n\r\n* refactor: font preload\r\n\r\n* fix: HelpPanel 이동 css 수정\r\n\r\n* fix: 중복되는 mode property 제거\r\n\r\n* fix: 사용되지 않는 reactIcons cacheGroups 제거\r\n\r\n* fix: 필요없는 gifsicle 삭제","shortMessageHtmlLink":"[개인 미션 - 성능 오답노트] 에디(강상원) 미션 제출합니다. (#111)"}},{"before":"cf16a0cb67fc898d1ade97ec87649e84c6103f3e","after":"e3e6c57d5d9f4e4274f2781eca11f5c364a60c76","ref":"refs/heads/semnil5202","pushedAt":"2023-09-11T08:21:28.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"woo-jk","name":"Jungkyun Woo","path":"/woo-jk","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/73513965?s=80&v=4"},"commit":{"message":"[개인 미션 - 성능 오답노트] 세인(이세민) 미션 제출합니다. (#101)\n\n* chore: homepage 적용\r\n\r\n* refactor: 메인 배경 페이지 (hero) 이미지 압축\r\n\r\n* chore: image-webpack-loader 적용 및 노드 버전 18로 변경\r\n\r\n* refactor: 메인페이지 이미지 크기 줄이기\r\n\r\n* refactor: App basename 제거\r\n\r\n* refactor: 일부 image 태그에 lazy loading 적용\r\n\r\n* refactor: html 파일 공백 및 빈칸 제거, 캐싱 방지 옵션 추가\r\n\r\n* refactor: css 분할 로딩 적용\r\n\r\n* chore: webpack analyzer 적용\r\n\r\n* refactor: gif 파일 대신 webm 적용하여 크기 단축\r\n\r\n* refactor: 요구사항에 맞게 hero 이미지 리사이징\r\n\r\n* chore: tree shaking 적용\r\n\r\n* chore: minimizer 옵션및 minimize 옵션 적용\r\n\r\n* docs: 누락된 기능 구현목록 수정\r\n\r\n* refactor: lazy 및 Suspense 활용하여 페이지별 컴포넌트 분리\r\n\r\n* refactor: 웹 폰트 link 태그 대신 css style 코드로 작성\r\n\r\n* chore: 텍스트 압축 적용\r\n\r\n* refactor: trending API 요청 캐시 적용\r\n\r\n* docs: CloudFront 캐시 설정 완료\r\n\r\nmap-befine-response-headers-policy\r\n\r\n* refactor: top, left 옵션 대신 transform translate 적용\r\n\r\n* refactor: gifItem 메모제이션으로 리렌더링 방지\r\n\r\n* docs: 전체 플로우 성능 측정 결과 프레임 드랍 없음을 확인\r\n\r\n* refactor: 사용하지 않는 font link 제거\r\n\r\n* refactor: Home 컴포넌트에 lazy 로딩 적용\r\n\r\n* refactor: help 패널 transform 값 조정\r\n\r\n* refactor(GifItem): memo 적용 위치 변경\r\n\r\n* refactor(ArtistInfo): memo 적용\r\n\r\n* chore: development 모드에서는 style-loader 사용토록 변경\r\n\r\n수정사항이 발생하여 핫 로딩 시 깜빡이는 문제를 해결한다.","shortMessageHtmlLink":"[개인 미션 - 성능 오답노트] 세인(이세민) 미션 제출합니다. (#101)"}},{"before":"cf16a0cb67fc898d1ade97ec87649e84c6103f3e","after":"bf1af6df077dbff7363ed9af3d68af72a02ddf9d","ref":"refs/heads/gilpop8663","pushedAt":"2023-09-11T08:21:01.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"nlom0218","name":"김홍동","path":"/nlom0218","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/57981252?s=80&v=4"},"commit":{"message":"[개인 미션 - 성능 오답노트] 우스(김영길) 미션 제출합니다. (#107)\n\n* chore: 미션 시작을 위한 세팅\r\n\r\n* docs: 프로젝트 요구사항 문서 및 개선 전 성능을 기록\r\n\r\n* feat: 트리 쉐이킹 적용\r\n\r\n* feat: png를 최적화한 png 파일과 avif, webp 2개의 파일로 변환하는 설정 구현\r\n\r\n* feat: 코드 스플리팅을 위해 splitChunk 적용\r\n\r\n* feat: hero 이미지 avif, webp , png로 확장자 파일로 최적화\r\n\r\n* feat: useContext를 이용한 api 요청 최소화\r\n\r\n* feat: trending api를 매번 불러오지 않도록 cache storage 적용\r\n\r\n* feat: gif 파일들 mp4로 용량 최적화\r\n\r\n* feat: 더 불러오기를 눌렀을 때 기존 데이터는 리렌더 되지 않도록 구현\r\n\r\n* feat: 패널 애니메이션 성능 개선\r\n\r\n* feat: 검색 결과 hover 애니메이션 성능 개선\r\n\r\n* feat: 커서 애니메이션 개선\r\n\r\n* feat: 홈페이지 lazy 로딩 제거\r\n\r\n* chore: 웹팩 에셋을 file-loader을 통해 빌드되도룩 수정\r\n\r\n* docs: 성능 개선 후 문서 작성\r\n\r\n* chore: webpack 설정 및 app suspense 위치 변경\r\n\r\n* docs: 요구사항 문서 업데이트\r\n\r\n* feat: 사이트가 시작될 때 캐시 값을 초기화하는 로직 추가\r\n\r\n* docs: 성능 개선 후 문서 업데이트\r\n\r\n* chore: 필요없는 코드 삭제(sideEffects)\r\n\r\n* fix: Home 컴포넌트도 lazy import를 하도록 수정\r\n\r\n* feat: api에서 이미지 확장자를 gif에서 webp로 변경\r\n\r\n* refactor: 커서 애니메이션 성능 개선\r\n\r\n* refactor: 폰트 미리 불러오기 순서 설정","shortMessageHtmlLink":"[개인 미션 - 성능 오답노트] 우스(김영길) 미션 제출합니다. (#107)"}},{"before":"cf16a0cb67fc898d1ade97ec87649e84c6103f3e","after":"9ead72c152be88f080ad137c9ecc2bda5d6c8e88","ref":"refs/heads/wzrabbit","pushedAt":"2023-09-11T08:20:16.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"gyeongza","name":"박경현","path":"/gyeongza","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/62369936?s=80&v=4"},"commit":{"message":"[개인 미션 - 성능 오답노트] 요술토끼(김의천) 미션 제출합니다. (#110)\n\n* 📦 chore: 웹팩 설정 파일에 mp4, webp 확장자 추가\r\n\r\n* 📦 chore: mp4, webp 글로벌 타입 정의\r\n\r\n* ♻️ refactor: 메인 페이지의 gif 파일들을 mp4 파일로 변경\r\n\r\n* ♻️ refactor: 메인 배경 파일 크기 세분화, 원본 배경 크기 축소\r\n\r\n- srcset 속성을 이용해 크기별로 적합한 이미지를 보여 주어 성능 개선을 하기 위해 세분화\r\n\r\n* ♻️ refactor: 메인 페이지의 이미지, 영상에 대한 성능 개선\r\n\r\n- 항상 적합한 크기의 이미지를 보여주도록 개선\r\n- 용량이 큰 gif 이미지 대신 mp4 동영상을 보여주도록 변경\r\n\r\n* ♻️ refactor: React.memo 적용\r\n\r\n* ♻️ refactor: 웹 폰트에 preload를 적용\r\n\r\n* ♻️ refactor: top/bottom/left/right를 이용한 애니메이션을 translate로 변경\r\n\r\n- 불필요한 Layout Shift를 줄이기 위함\r\n\r\n* 📦 chore: 불필요한 file-loader 제거\r\n\r\n* 📦 chore: 라우터의 basename 제거, 홈페이지 주소 변경\r\n\r\n* ♻️ refactor: react-icons를 all-files로 변경하여 재설치 및 적용\r\n\r\n- 적은 개수의 아이콘을 사용함에도 해당 카테고리의 모든 아이콘이 번들에 포함되어 번들 사이즈가 불필요하게 큰 문제를 해결\r\n\r\n* ♻️ refactor: ArtistInfo에 적용되었던 React.memo 해제\r\n\r\n* ♻️ refactor: 코드 스플리팅을 위해 React.lazy를 메인 페이지 / 검색 페이지에 적용\r\n\r\n* ✨ feat: trending gif 캐싱을 위해 session storage 사용\r\n\r\n* 📦 chore: webpack-bundle-analyzer 라이브러리 추가 및 설정\r\n\r\n* 📦 chore: lock 파일 반영\r\n\r\n* ♻️ refactor: 이미지 용량 경량화 및 webm/mp4 파일을 브라우저 지원 여부에 따라 랜더링하도록 개선\r\n\r\n- png hero파일을 jpg 파일로 변경 (webp 미지원시)\r\n- webm 동영상 파일을 추가\r\n- source 태그를 이용하여, 브라우저 지원 여부에 따라 webm/mp4 영상 랜더링 여부를 결정하도록 개선\r\n\r\n* 📦 chore: css 파일을 제외한 모든 파일에 대해 tree shaking 적용\r\n\r\n* 📦 chore: 이미지에 fetchPriority 태그를 사용할 수 있도록 타입 정의\r\n\r\n* ♻️ refactor: 동영상 형식의 파일에 playsInline 속성 추가\r\n\r\n- iOS 모바일 디바이스에서 자동으로 전체화면으로 전환되는 현상을 막고, 인라인으로 자동 재생될 수 있도록 변경\r\n\r\n* ♻️ refactor: 당장 사용자에게 보여주지 않는 이미지들은 lazy loading을 하도록 변경\r\n\r\n* 📦 chore: 불필요한 console.log 제거","shortMessageHtmlLink":"[개인 미션 - 성능 오답노트] 요술토끼(김의천) 미션 제출합니다. (#110)"}},{"before":"cf16a0cb67fc898d1ade97ec87649e84c6103f3e","after":"71ffd5e4b0b7af8f880af3e138e6e3f45bb08648","ref":"refs/heads/wainaat","pushedAt":"2023-09-11T08:17:39.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"wzrabbit","name":"요술토끼","path":"/wzrabbit","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/87642422?s=80&v=4"},"commit":{"message":"[개인 미션 - 성능 오답노트] 참새(김규) 미션 제출합니다. (#104)\n\n* chore: 프로젝트 초기 설정\r\n\r\n* chore: lighthouse 측정 결과 업로드\r\n\r\n* chore: node 18에서 돌아가게끔 버전 설정\r\n\r\n* chore: 빌드 시 png를 webp로 변환\r\n\r\n* refactor: FeatureItem gif를 mp4로 변환\r\n\r\n* chore: bundle analyzer plugin 설정\r\n\r\n* refactor: 검색 기능에 lazy 적용\r\n\r\n* feat: react icons single file로 분리\r\n\r\n* refactor: router basename 제거\r\n\r\n* feat: trending api 캐싱 적용\r\n\r\n* refactor: help panel에 memo 적용\r\n\r\n* feat: 받아오는 이미지 저용량 webp로 변경\r\n\r\n* refactor: GifItem에 memo 적용\r\n\r\n* refactor: img lazy loading\r\n\r\n* refactor: 받아오는 이미지 저화질로 변경\r\n\r\n* refactor: helpPanel 선로딩 방지\r\n\r\n* refactor: layout shift 개선\r\n\r\n* refactor: font 관련 파일 preload 적용\r\n\r\n* feat: 로딩 스켈레톤 적용\r\n\r\n* refactor: footer까지 suspense 적용\r\n\r\nCLS 문제 해결을 위함\r\n\r\n* fix: eslint 작동하지 않는 오류 해결\r\n\r\n* style: eslint에 맞춰서 코드 수정\r\n\r\n* fix: 검색이 되지 않는 오류 수정\r\n\r\n* refactor: video playsinline 추가\r\n\r\n* refactor: 스크롤에 RAF 적용\r\n\r\n- request animation frame이란뜻\r\n\r\n* design: 커서로 인한 overflow-x 방지\r\n\r\n* fix: font preload 안되는 문제 해결","shortMessageHtmlLink":"[개인 미션 - 성능 오답노트] 참새(김규) 미션 제출합니다. (#104)"}},{"before":"cf16a0cb67fc898d1ade97ec87649e84c6103f3e","after":"a0117077f585feb07da148e47cc9f13e51a95caa","ref":"refs/heads/2yunseong","pushedAt":"2023-09-11T07:51:10.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"shackstack","name":"Jeremy","path":"/shackstack","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/102432453?s=80&v=4"},"commit":{"message":"[개인 미션 - 성능 오답노트] 윤생(이윤성) 미션 제출합니다. (#79)\n\n* build: minimizer 설정\r\n\r\n- 코드의 공백등을 제거 함.\r\n- 빌드 시 bundle.js의 크기를 1097293B 에서 274670B로 개선\r\n\r\n* build: 명시적으로 sideEffects를 포함하지 않는 설정 - 명시적으로 sideEffects 가 false임을 표현\r\n- 소스코드 크기 bundle.js 274670B -> 271203B 로 감소\r\n\r\n* chore: webpack bundle analyzer 설치\r\n\r\n* build: contenthash 부착\r\n\r\n* chore: side effect 수정\r\n\r\n* chore: node버전에 맞게 패키지 버전 수정\r\n\r\n* chore: compression-webpack-plugin 설치\r\n\r\n* build: gzip 압축 코드 설치\r\n\r\n* refactor: 코드 스플리팅 적용\r\n\r\n* refactor: 이미지 리사이징 및 확장자 변경\r\n\r\n* build: minicssExtractPlugin 설치\r\n\r\n* refactor: sessionStorage를 활용한 api값 캐싱\r\n\r\n* build: 빌드 시 주석을 제거해주는 설정 추가\r\n\r\n* refactor: 불필요한 렌더링이 되는 요소에 메모이제이션 추가\r\n\r\n* refactor: Layout Shift 개선\r\n\r\n* fix: basename 제거\r\n\r\n* fix: CLS 개선\r\n\r\n* chore: css minimizer plugin 설치 및 적용\r\n\r\n* refactor: git -> mp4로 변경\r\n\r\n* refactor: react icons 필요한 모듈만 import\r\n\r\n* chore: 주석 제거\r\n\r\n* build: optimize 옵션 명시로 코드 축약\r\n\r\n* chore: 필요없는 패키지 명시 제거","shortMessageHtmlLink":"[개인 미션 - 성능 오답노트] 윤생(이윤성) 미션 제출합니다. (#79)"}},{"before":"cf16a0cb67fc898d1ade97ec87649e84c6103f3e","after":"901164803f16a5bb1647aed451db9704d1f2470f","ref":"refs/heads/solo5star","pushedAt":"2023-09-11T06:35:22.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"ukkodeveloper","name":"ukkodeveloper","path":"/ukkodeveloper","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/109048739?s=80&v=4"},"commit":{"message":"[개인 미션 - 성능 오답노트] 솔로스타(추용혁) 미션 제출합니다. (#67)\n\n* chore: EOL을 auto로 설정\r\n\r\n* feat: 이미지 크기 최적화\r\n\r\n* chore: basepath 제거\r\n\r\n* build: aws terraform 추가\r\n\r\n* chore: 번들링 시 CSS가 별도 파일로 분리되도록 설정\r\n\r\n* chore: TerserPlugin 적용하여 js 파일 minify\r\n\r\n* chore: gzip compression 적용\r\n\r\n* chore: Code Splitting 적용\r\n\r\n* chore: CSS Minimization 적용\r\n\r\n* chore: react-router-dom 버전 업데이트\r\n\r\n* chore: webpack-bundle-analyzer 적용\r\n\r\n* chore: gzip compression 제거\r\n\r\n* chore: webp 퀄리티 80으로 조정 및 gif width를 300으로 설정\r\n\r\n* chore: 불필요한 TerserPlugin 삭제 (webpack에서 기본적으로 사용)\r\n\r\n* feat: 이미지 반응형 최적화 적용\r\n\r\n* feat: 커스텀 커서에서 리플로우가 발생하지 않도록 수정\r\n\r\n* feat: @react-icons/all-files 패키지를 사용하여 트리 쉐이킹 적용\r\n\r\n* feat: getTrending API 호출이 session 단에서 캐싱될 수 있도록 구현\r\n\r\n* fix: responsive 이미지에 잘못된 loader가 적용되는 오류 수정\r\n\r\n* fix: trending gifs가 올바르게 캐싱되지 않는 문제 해결\r\n\r\n* feat: GifItem에 React.memo 적용\r\n\r\n* feat: 코드 스플리팅을 위한 route 단위의 React.lazy 적용\r\n\r\n* build: CloudFront 추가\r\n\r\n* chore: webpack serve 시 진행상황을 표시하도록 변경\r\n\r\n* chore: npm run build 시 npm run build:prod로 포워딩되도록 설정\r\n\r\n* feat: CustomCursor 비제어 방식으로 제어\r\n\r\n* build: lighthouse ci 추가\r\n\r\n* feat: 도움말 패널에서 레이아웃 시프트가 일어나지 않도록 수정\r\n\r\n* feat: Gif 아이템 hover 시 레이아웃 시프트가 일어나지 않도록 수정\r\n\r\n* feat: 캐시 버스팅 지원\r\n\r\n* build: 인프라 캐시 정책 추가 및 http3 지원\r\n\r\n* feat: 커스텀 커서 디바운싱\r\n\r\n* feat: 구글 폰트 임베딩\r\n\r\n* fix: 빠트린 캐시 버스팅\r\n\r\n* feat: 중요 자원을 먼저 로드할 수 있도록 resource hint 추가\r\n\r\n* feat: 인덱스 페이지는 분할되지 않도록 설정\r\n\r\n* chore: responsive-loader의 outputPath를 static으로 설정\r\n\r\n* build: cloudfront의 캐시 정책 min, default ttl을 1h로 설정\r\n\r\n* refactor: responsive 이미지가 표시되는 방식 변경\r\n\r\n* feat: 고화질 이미지 제거\r\n\r\n* feat: 이미지 fetchpriority 설정 (hero를 높게, gif는 낮게)\r\n\r\n* chore: css와 폰트 설정 분리\r\n\r\n* feat: responsive-loader 에서 로드된 이미지가 캐시 버스팅될 수 있도록 설정\r\n\r\n* chore: 파일명에서 불필요한 `..` 제거하도록 설정\r\n\r\n* feat: 이미지 로딩 매커니즘 수정\r\n\r\n* Revert \"feat: 이미지 로딩 매커니즘 수정\"\r\n\r\nThis reverts commit 96cb369285c9aa372f7c3224f8c77d761f1a08a0.\r\n\r\n* fix: fetchpriority 위치 수정\r\n\r\n* build: webpack analyzer, sourcemap 제거\r\n\r\n* feat: 히어로 이미지 preload 하도록 설정\r\n\r\n* build: SPA를 위해 route fail 시 /index.html 서빙","shortMessageHtmlLink":"[개인 미션 - 성능 오답노트] 솔로스타(추용혁) 미션 제출합니다. (#67)"}},{"before":"cf16a0cb67fc898d1ade97ec87649e84c6103f3e","after":"c9f0eb9a815baf1f2005470361f311f61383c1be","ref":"refs/heads/yeopto","pushedAt":"2023-09-11T06:34:03.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"chsua","name":null,"path":"/chsua","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/113416448?s=80&v=4"},"commit":{"message":"[개인 미션 - 성능 오답노트] 엽토(김건엽) 미션 제출합니다. (#78)\n\n* chore: 기본 설정\r\n\r\n* build: 번들 크기 줄이기 위한 terser plugin 적용\r\n\r\n* refactor: webp, mp4로 이미지 포매팅 변경 및 변경에 따른 설정\r\n\r\n* refactor: Search 컴포넌트 lazy load\r\n\r\n* refactor: Home 컴포넌트 lazy load 설정\r\n\r\n* build: bundle-analyzer 플러그인 추가\r\n\r\n* feat: trendingAPI를 매번 요청하지 않도록 cache를 설정\r\n\r\n* refactor: 추가 로드시 추가된 목록만 새로 렌더되도록 변경\r\n\r\n* refactor: 필요한 react-icons 만 빌드되도록 변경\r\n\r\n* build: dev 모드일때만 source map 제공하도록 변경\r\n\r\n* refactor: Layout Shift, Frame Drop이 일어나지 않도록 변경하다.\r\n\r\n* refactor: Suspense 위치 변경\r\n\r\n* refactor: hero 이미지 avif 설정","shortMessageHtmlLink":"[개인 미션 - 성능 오답노트] 엽토(김건엽) 미션 제출합니다. (#78)"}},{"before":"cf16a0cb67fc898d1ade97ec87649e84c6103f3e","after":"082d5deaf092544b2b545c97afd7c44cf2229207","ref":"refs/heads/inyeong-kang","pushedAt":"2023-09-11T06:32:49.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"ksone02","name":"Sangwon Kang","path":"/ksone02","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/72087183?s=80&v=4"},"commit":{"message":"[개인 미션 - 성능 오답노트] 제로(강인영) 미션 제출합니다. (#94)\n\n* chore: author, homepage 변경 및 index.html 추가\r\n\r\n* chore: basename 제거\r\n\r\n* feat: 소스코드 크기 줄이기\r\n\r\n* feat: react-lazy 로 초기 로딩 속도 개선하기\r\n\r\n* feat: img 태그에 loading 속성 추가\r\n\r\n* Add files via upload\r\n\r\n* refactor: 이미지 확장자를 png에서 webp 로 변경, 디바이스별로 다른 해상도의 이미지 보여주기\r\n\r\n* feat: 구형 브라우저에서 webp 사용 가능하도록 picture 태그 추가, image-webpack-loader 설치\r\n\r\n* refactor: img 태그에서 누락된 alt 속성 추가\r\n\r\n* chore: source 태그의 src 같은 deprecated 속성 제거\r\n\r\n* chore: hero png 파일 추가\r\n\r\n* chore: gif 확장자를 mp4로 변경\r\n\r\n* chore: 데스크탑 기준 hero.webp 해상도 줄이기\r\n\r\n* fix: lazy로 로딩되는 컴포넌트를 Suspense로 감싸 react-router 오류 해결\r\n\r\n* feat: cache API로 새로운 요청 방지\r\n\r\n* feat: css 등에서 최소한의 변경만 일어나도록 하기\r\n\r\n* chore: react-icons 패키지를 react-icons/all-files 로 대체\r\n\r\n* chore: heaeding 정렬, meta 태그 추가\r\n\r\n* refactor: top, left 속성을 translate로 변경\r\n\r\n* chore: css 압축을 위한 플러그인 설치, filename 형식 변경\r\n\r\n* chore: 오타 제거\r\n\r\n* chore: 불필요한 loading 속성 제거\r\n\r\n* chore: 불필요한 loading 속성 제거\r\n\r\n* chore: 캐시 타임 1일에서 1시간으로 수정\r\n\r\n* feat: react bundle size 최적화\r\n\r\n* chore: 코드 원상 복구\r\n\r\n* chore: 불필요한 플러그인 제거\r\n\r\n* refactor: 캐시타임 1시간 -> 24시간으로 수정\r\n\r\n* chore: 불필요한 기호 삭제\r\n\r\n* chore: 불필요한 loading 속성 제거\r\n\r\n* chore: 이미지 링크 변경\r\n\r\n* chore: 불필요한 파일 삭제","shortMessageHtmlLink":"[개인 미션 - 성능 오답노트] 제로(강인영) 미션 제출합니다. (#94)"}},{"before":"cf16a0cb67fc898d1ade97ec87649e84c6103f3e","after":"17cd1fb41cfdfd995a768dbeeb0ca99682358fbc","ref":"refs/heads/turtle601","pushedAt":"2023-09-11T06:13:37.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"xodms0309","name":"Taeeun Kim","path":"/xodms0309","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/55427367?s=80&v=4"},"commit":{"message":"[개인 미션 - 성능 오답노트] 푸만능(황준승) 미션 제출합니다. (#90)\n\n* chore: gh-pages 설치\r\n\r\n* chore: 소스코드 js파일 최적화\r\n\r\n* feat: 이미지, gif 파일 최적화\r\n\r\n* fix: Router에 Suspense 적용\r\n\r\n* feat: tree shaking 적용\r\n\r\n* fix: node 18버전으로 변경으로 인한 node 버전 수정\r\n\r\n* fix: process.env 파일 설정 에러로 인한 문제 해결\r\n\r\n* fix: ts bind 에러 해결\r\n\r\n* feat: GiftItem memo 적용\r\n\r\n* feat: react-icons -> @react-icons/all-files 라이브러리 변경으로 인한 tree-shaking 구현\r\n\r\n* feat: trending api 관련 cache 기능 구현\r\n\r\n* refactor: 불필요한 콘솔 제거\r\n\r\n* feat: Layout shift 없이 애니메이션 구현\r\n\r\n* refactor: 불필요한 설정 제거\r\n\r\n* refactor: 불필요한 이미지 코드 제거","shortMessageHtmlLink":"[개인 미션 - 성능 오답노트] 푸만능(황준승) 미션 제출합니다. (#90)"}},{"before":"cf16a0cb67fc898d1ade97ec87649e84c6103f3e","after":"eff4184a451cde5348203d397049c982c2fa1adf","ref":"refs/heads/afds4567","pushedAt":"2023-09-11T06:07:14.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"kangyeongmin","name":"강영민","path":"/kangyeongmin","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/62367797?s=80&v=4"},"commit":{"message":"[개인 미션 - 성능 오답노트] 아이크(하지원) 미션 제출합니다. (#112)\n\n* chore: 의존성 변경\r\n\r\n* feat: HTML 파일 축소\r\n\r\n* feat: webpack bundle analyzer 설정\r\n\r\n* feat: CSS 파일 분리 및 축소\r\n\r\n* feat: 이미지 최적화\r\n\r\n* feat: code splitting 적용\r\n\r\n* feat: GIPHY의 trending API캐시 적용\r\n\r\n* feat: 추가된 목록만 새로 렌더 되게 구현\r\n\r\n* feat: 트렌딩 API 캐싱 구현\r\n\r\n* feat: 마우스 움지임 속성 transform으로 변경\r\n\r\n* feat: 이미지 포맷 변경","shortMessageHtmlLink":"[개인 미션 - 성능 오답노트] 아이크(하지원) 미션 제출합니다. (#112)"}},{"before":"cf16a0cb67fc898d1ade97ec87649e84c6103f3e","after":"7996bf7ba827893821d64d10cce26c1ad637c931","ref":"refs/heads/kangyeongmin","pushedAt":"2023-09-11T06:03:18.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"Creative-Lee","name":"이도현","path":"/Creative-Lee","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/77152650?s=80&v=4"},"commit":{"message":"[개인 미션 - 성능 오답노트] 라잇(강영민) 미션 제출합니다. (#95)\n\n* chore: 미션 시작 전 배포를 위한 url 삭제\r\n\r\n* chore: package-lock.json\r\n\r\n* feat: css 파일 분리 및 압축 plugin 설치 후 적용\r\n\r\n* feat: qzip 관련 plugin 설치 후 적용\r\n\r\n* feat: Home 페이지 hero 이미지 srcset으로 webp 형식의 파일을 지원\r\n\r\n* refactor: cloudfront gzip 설정으로 압축하기 위한 코드 삭제\r\n\r\n* feat: gif -> mp4로 변경\r\n\r\n* chore: 120kb가 넘지 않는 hero 이미지로 변경\r\n\r\n* feat: 사용하는 icon만 불러오도록 react-icons 수정\r\n\r\n* feat: 페이지에 따라 code splitting\r\n\r\n* chore: 빌드 전 dist 폴더 삭제하는 스크립트 추가\r\n\r\n* feat: 제목 요소 내림차순 정렬\r\n\r\n* refactor: React import 일관성 부여\r\n\r\n* feat: CustomCursor transfrom 사용으로 변경\r\n\r\n* feat: GiftItem hover transform 사용으로 변경\r\n\r\n* feat: HelpPanel transform 사용으로 변경\r\n\r\n* feat: trending Api를 필요할때만 요청하도록 수정\r\n\r\n* feat: react 번들 요소 추가\r\n\r\n* feat: 번들파일명에 contenthash값 부여","shortMessageHtmlLink":"[개인 미션 - 성능 오답노트] 라잇(강영민) 미션 제출합니다. (#95)"}},{"before":"cf16a0cb67fc898d1ade97ec87649e84c6103f3e","after":"47ed80be5d116b497dd72fc006571c7b39cc7d34","ref":"refs/heads/suyoungj","pushedAt":"2023-09-11T06:02:45.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"2yunseong","name":"2yunseong","path":"/2yunseong","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/56749516?s=80&v=4"},"commit":{"message":"[개인 미션 - 성능 오답노트] 유스(정수영) 미션 제출합니다. (#82)\n\n* chore: 패키지 버전 업데이트\r\n\r\n* chore: CSS minify를 위한 플러그인 설치\r\n\r\n* feat: 지원하는 이미지, 비디오 포맷 추가\r\n\r\n* refactor: hero 이미지 형식 변경 및 크기 축소\r\n\r\n* refactor: gif 파일들을 webm, mp4 형식으로 변경\r\n\r\n* refactor: Layout shift를 발생시키는 애니메이션을 transform으로 수정\r\n\r\n* refactor: Layout shift를 발생시키는 gif 목록 레이아웃을 grid로 수정\r\n\r\n* chore: 불필요한 옵션 제거\r\n\r\n* feat: webm, mp4 지원 여부에 따라 각 형식의 비디오를 보여주도록 구현\r\n\r\n* refactor: 추가되는 결과에 대해서만 화면 업데이트가 일어나도록 React.memo 적용\r\n\r\n* refactor: Home, Search 컴포넌트에 code splitting 적용\r\n\r\n* feat: Cache API를 사용하여 trending API 응답 캐싱 기능 구현\r\n\r\n* docs: README 업데이트\r\n\r\n* chore: js, css 파일 output에 contenthash 적용\r\n\r\n* fix: 캐시 만료 로직을 setTimeout으로 수정","shortMessageHtmlLink":"[개인 미션 - 성능 오답노트] 유스(정수영) 미션 제출합니다. (#82)"}},{"before":"cf16a0cb67fc898d1ade97ec87649e84c6103f3e","after":"5cfdeef3083c82014d9384825524d1248131d93d","ref":"refs/heads/cruelladevil","pushedAt":"2023-09-11T05:58:12.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"nangkyeonglim","name":"Nangkyeong Lim","path":"/nangkyeonglim","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/57815133?s=80&v=4"},"commit":{"message":"[개인 미션 - 성능 오답노트] 코난(윤정민) 미션 제출합니다. (#103)\n\n* chore: set homepage to github pages\r\n\r\n* docs: 요구사항 작성\r\n\r\n* refactor: hero 이미지 webp 적용\r\n\r\n- 대체 이미지로 jpeg 적용\r\n- 사이즈는 fhd 1920px 기준 2배\r\n\r\n* refactor: Home의 gif를 webm으로 적용\r\n\r\n- 대체 영상으로 mp4 적용\r\n\r\n* feat: GifItem이 downsized_small 사이즈로 mp4를 보여주도록 변경 및 Giphy로 연결\r\n\r\n- video는 downsized_small 사이즈(< 200KB)\r\n- poster로 preview_gif 이미지(< 50KB)\r\n\r\n* refactor: profileImageUrl을 fixed_width로 변경(200px)\r\n\r\n* chore: install webpack-bundle-analyzer\r\n\r\n* refactor: 페이지 별 코드 스플리팅\r\n\r\n* refactor: HelpPanel 컴포넌트 코드 스플리팅\r\n\r\n* chore: react-icons를 @react-icons/all-files로 대체\r\n\r\n- 각 아이콘 별로 js 파일 분리\r\n- 패키지 충돌로 인한 eslint 버전 업(^8.48.0)\r\n\r\n* refactor: @reat-icons/all-files로 필요한 아이콘만 불러오기\r\n\r\n* fix: 텍스트 부분으로 가려지는 링크를 상위로 끌어올림\r\n\r\n* refactor: React.memo를 적용하여 더보기로 추가되는 아이템만 렌더링\r\n\r\n* fix: HelpPanel에서 버튼을 제외하고 Panel 부분만 코드 스플리팅 적용\r\n\r\n- 버튼에 커서를 올려둘때 패널 부분을 요청\r\n\r\n* refactor: transform을 활용하여 Layout Shift 개선\r\n\r\n* fix: gh-pages 배포를 위한 basename 추가\r\n\r\n* fix: gh-pages 배포 버그로 인한 파일명 수정\r\n\r\n* chore: bundle과 asset의 파일 이름에 hash 적용\r\n\r\n- Cache-Control에 max-age를 적용 후 파일이 변경됨을 감지하도록 하기 위함\r\n\r\n* refactor: GiphyFetch를 활용하여 trending에도 캐시 적용\r\n\r\n* refactor: hero 이미지 추가 최적화\r\n\r\n- 메인 페이지에서 큰 부분을 차지하고 있으므로 사이즈를 1배수로 낮춤\r\n\r\n* docs: 완료된 요구사항 최신화\r\n\r\n* feat: useModal 커스텀 훅 구현\r\n\r\n- isOpen과 isVisible을 나누어 모달이 닫힐 때 애니메이션 적용 가능\r\n\r\n* feat: Panel이 닫힐 때 애니메이션 적용\r\n\r\n* chore: 번들 filename 수정 및 asset의 폴더 분리\r\n\r\n- 번들은 contenthash로 chunk 단위 hash 값 적용\r\n\r\n* style: 기본 width와 height를 통한 Layout Shift개선\r\n\r\n- 동적 import를 위한 Suspense의 fallback에 width 100%와 height 100vh 적용\r\n- Search 페이지의 SearchResult에 width 100% 적용\r\n\r\n* feat: poster 삭제 및 imgaeUrl 삭제\r\n\r\n- poster의 크기와 video의 크기가 비슷해서 효과가 미미하다고 판단\r\n\r\n* refactor: trending api 갯수 옵션 추가\r\n\r\n* fix: scale 변화가 없으므로 will-change: transform 삭제\r\n\r\n- https://googlechrome.github.io/samples/css-will-change-transform-rasterization/\r\n\r\n* fix: GIPHY로부터 받아오는 mp4가 제대로 로드되지 않는 현상 수정\r\n\r\n- poster 다시 추가\r\n- Related to d082c2bba1158a2b5182e3f19c35ce9a23316275","shortMessageHtmlLink":"[개인 미션 - 성능 오답노트] 코난(윤정민) 미션 제출합니다. (#103)"}},{"before":"cf16a0cb67fc898d1ade97ec87649e84c6103f3e","after":"7fe7105e8e25cd1f27b950a48bc01ec9083e8320","ref":"refs/heads/d0dam","pushedAt":"2023-09-11T05:52:21.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"Leejin-Yang","name":"Leejin Yang","path":"/Leejin-Yang","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/78616893?s=80&v=4"},"commit":{"message":"[개인 미션 - 성능 오답노트] 도담(김민재) 미션 제출합니다. (#99)\n\n* chore: 홈페이지 url 설정 및 필요 패키지 추가\r\n\r\n* refactor: css 관련 minimize 작업 및 코드 스플리팅\r\n\r\n* refactor: react lazy 추가 및 suspense 적용\r\n\r\n* refactor: 내장 미디어 파일 최적화 작업\r\n\r\n* refactor: 최적화한 asset 파일의 확장자에 맞추어 태그 변경 및 최적화 코드 추가\r\n\r\n* refactor: layout shift 최소화를 위한 reflow 작업 제거\r\n\r\n* refactor: 검색 초기 페이지 데이터 캐싱\r\n\r\n* refactor: 폰트 최적화\r\n\r\n* refactor: 이미지 최적화\r\n\r\n* refactor: webpackChunkName 지정\r\n\r\n* refactor: 불필요한 태그 삭제\r\n\r\n* refactor: 주석 삭제","shortMessageHtmlLink":"[개인 미션 - 성능 오답노트] 도담(김민재) 미션 제출합니다. (#99)"}},{"before":"cf16a0cb67fc898d1ade97ec87649e84c6103f3e","after":"c739ccb2ab4986f103f24e7bfdbfa3eafb83281d","ref":"refs/heads/tkdrb12","pushedAt":"2023-09-11T05:47:39.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"NaveOWO","name":null,"path":"/NaveOWO","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/87578512?s=80&v=4"},"commit":{"message":"[개인 미션 - 성능 오답노트] 도리(남상규) 미션 제출합니다. (#98)\n\n* terser 플러그인 사용\r\n\r\n* feat: basename 삭제\r\n\r\n* feat: 이미지 포맷 변환 및 압축 최적화\r\n\r\n* feat: bundle.js gzip 압축설정 추가\r\n\r\n* feat: 페이지별 코드 분할\r\n\r\n* feat: tree shaking 적용\r\n\r\n* feat: gifItem 메모이제이션 적용 및 lazy loading 적용\r\n\r\n* 커서 gifItem 애니메이션 transform 으로 변경\r\n\r\n* feat: trending api를 한번만 호출하도록 변경\r\n\r\n* feat: font preload 추가:\r\n\r\n---------\r\n\r\nCo-authored-by: 상규 ","shortMessageHtmlLink":"[개인 미션 - 성능 오답노트] 도리(남상규) 미션 제출합니다. (#98)"}},{"before":"cf16a0cb67fc898d1ade97ec87649e84c6103f3e","after":"bece6091ebe9d9e9bc2e927d5df855539cdd8dc8","ref":"refs/heads/feb-dain","pushedAt":"2023-09-11T05:46:56.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"hozzijeong","name":"정호진","path":"/hozzijeong","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/50974359?s=80&v=4"},"commit":{"message":"[개인 미션 - 성능 오답노트] 야미(이다인) 미션 제출합니다. (#109)\n\n* chore: homepage 설정\r\n\r\n* refactor: font `import` 방식으로 변경\r\n\r\n* chore: analyzer 설치 및 minimize true로 변경\r\n\r\n* chore: Analyzer 분리\r\n\r\n* chore: `TerserPlugin` 설치 및 설정\r\n\r\n* chore: `MiniCssExtractPlugin`, `CssMinimizerPlugin` 설치 및 설정\r\n\r\n* refactor: 파일 확장자 변경/압축하며 이미지 크기 감소 시킴\r\n\r\n- png → webp\r\n- gif → mp4\r\n\r\n* refactor: 이미지 lazy loading 설정\r\n\r\n* refactor: 웹 접근성, SEO 개선\r\n\r\n* refactor: react lazy 사용\r\n\r\n* refactor: code split 적용\r\n\r\n* chore: react icons 대신 `@react-icons/all-files` 설치\r\n\r\n* fix: React lazy 사용을 위해 Suspense 추가\r\n\r\n* refactor: 실제로 사용하는 아이콘 리소스만 빌드 결과에 포함 시킴\r\n\r\n* refactor: 이미지 사이즈 줄임\r\n\r\n* refactor: 오타 수정 및 엔터 계속 누르고 있을 때 렌더링, api 요청 방지\r\n\r\n* refactor: react lazy 적용한 곳에만 suspense로 감싸줌\r\n\r\n* chore: 트리 쉐이킹 환경 설정\r\n\r\n- Common JS 모듈은 트리 쉐이킹 적용 불가\r\n => 바벨이 모듈을 CommonJS 모듈로 바꾸지 않고 그대로(ES6) 유지하도록 설정\r\n\r\n* refactor: html minify 및 css 파일 분리\r\n\r\n* refactor: hero 이미지 preload\r\n\r\n* refactor: React memo 사용해 빈번한 재렌더링 방지\r\n\r\n* fix: 엑박 이미지 url 수정\r\n\r\n* docs: 진행한 부분 체크 표시\r\n\r\n* refactor: Search 컴포넌트에만 Suspense 감싸는 걸로 변경\r\n\r\n* refactor: css 제외하고 tree shaking 및 다른 minimizer 덮어쓰기 방지\r\n\r\n* refactor: Layout Shift 없이 애니메이션 일어나도록 개선\r\n\r\n* chore: bundle 파일 이름에 name 추가\r\n\r\n* docs: 진행한 부분 체크 표시\r\n\r\n* refactor: Route path 상수화\r\n\r\n* design: 불필요한 css 제거\r\n\r\n* refactor: 클로저 사용해 trending api 중복 요청 방지\r\n\r\n* refactor: NavBar, Footer React memo 적용\r\n\r\n* refactor: 이동할 페이지가 현재 페이지와 같을 경우, 재렌더링하지 않도록 개선\r\n\r\n* refactor: 캐시 시간 지정\r\n\r\n- UTC 기준으로 날짜가 변경되면 api 요청하도록함\r\n\r\n* design: hero image height 변경 및 이미지 변경\r\n\r\n* refactor: js 파일명 contenthash 대신 chunkhash로 변경\r\n\r\n* refactor: Layout Shift 방지\r\n\r\n* docs: 진행한 것 체크 표시\r\n\r\n* refactor: 필요없는 memo 제거\r\n\r\n* refactor: 필요없는 플러그인 제거\r\n\r\n* refactor: 번들 분리를 위해 Home에도 lazy 적용\r\n\r\n* refactor: font `@import` 방식 대신 ``로 가져옴\r\n\r\n* revert: Search만 React lazy 적용","shortMessageHtmlLink":"[개인 미션 - 성능 오답노트] 야미(이다인) 미션 제출합니다. (#109)"}},{"before":"cf16a0cb67fc898d1ade97ec87649e84c6103f3e","after":"069e0d2e20794d08053207cf628a773337a91d4d","ref":"refs/heads/gc-park","pushedAt":"2023-09-11T05:45:29.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"suyoungj","name":"Suyoung","path":"/suyoungj","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/19235163?s=80&v=4"},"commit":{"message":"[개인 미션 - 성능 오답노트] 패트릭(박근철) 미션 제출합니다. (#93)\n\n* chore: 배포를 위한 homepage명 변경\r\n\r\n* refactor: hero이미지 확장자 변경 및 압축\r\n\r\n* chore: file-loader를 webpack5 버전에 맞게 수정\r\n\r\n* refactor: gif 형식 webm으로 변경 및 적용\r\n\r\n* chore: html 및 css 파일 최적화 적용\r\n\r\n* refactor: react lazy로 코드 스플리팅 적용\r\n\r\n* feat: webpack-bundle-analyzer 및 tree shaking 적용\r\n\r\n* chore: JavaScript 파일 최소화 되도록 옵션 설정\r\n\r\n* refactor: trending API를 들어올 때마다 새로 요청하지 않도록 수정\r\n\r\n* feat: 검색 결과 추가 로드되는 것만 렌더되도록 최적화(memo) 적용\r\n\r\n* refactor: layout shift 방지를 위해 css translate3d 적용\r\n\r\n* refactor: 불필요한 console.log 코드 삭제\r\n\r\n* refactor: translate3d를 translate로 변경\r\n\r\n* refactor: 일부 브라우저 호환 안되는 것 대비 jpg, mp4 확장자 추가 및 적용","shortMessageHtmlLink":"[개인 미션 - 성능 오답노트] 패트릭(박근철) 미션 제출합니다. (#93)"}},{"before":"cf16a0cb67fc898d1ade97ec87649e84c6103f3e","after":"47bea73254d4c4e1ee30cdf1e404f49e6ab4914a","ref":"refs/heads/xodms0309","pushedAt":"2023-09-11T05:36:24.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"turtle601","name":"황준승","path":"/turtle601","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/78203399?s=80&v=4"},"commit":{"message":"[개인 미션 - 성능 오답노트] 타미(김태은) 미션 제출합니다. (#71)\n\n* chore: 프로젝트 초기설정\r\n\r\n* chore: webpack-bundle-analyzer 설정\r\n\r\n* chore: css minimizer 추가\r\n\r\n* feat: 이미지, gif 최적화\r\n\r\n* feat: 히어로 이미지 압축\r\n\r\n* feat: lazy loading 적용\r\n\r\n* feat: 로딩 UI 추가\r\n\r\n* feat: 커서 애니메이션 최적화\r\n\r\n* feat: 트렌딩 API에 캐시스토리지 설정\r\n\r\n* feat: 파일 이름에 해시값 적용\r\n\r\n* fix: fetchResponse 리턴값 수정\r\n\r\n* feat: 호버 애니메이션 변경\r\n\r\n* feat: GifItem memoization 추가\r\n\r\n* feat: 도움말 패널 애니메이션 변경\r\n\r\n* feat: 폰트 preload 추가\r\n\r\n* chore: hash 설정 삭제","shortMessageHtmlLink":"[개인 미션 - 성능 오답노트] 타미(김태은) 미션 제출합니다. (#71)"}},{"before":"cf16a0cb67fc898d1ade97ec87649e84c6103f3e","after":"7c615bf55a09b300bbaafa5467e2d82831546b10","ref":"refs/heads/n0eyes","pushedAt":"2023-09-11T05:25:03.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"semnil5202","name":"이세민","path":"/semnil5202","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/89172499?s=80&v=4"},"commit":{"message":"[개인 미션 - 성능 오답노트] 노아이즈(정세연) 미션 제출합니다. (#113)\n\n* chore: package.json homepage 변경 및 배포\r\n\r\n* chore: css 분리 및 압축\r\n\r\n- CssMinimizerWebpackPlugin\r\n- MiniCssExtractPlugin\r\n\r\n* chore: css 분리 및 압축\r\n\r\n- CssMinimizerWebpackPlugin\r\n- MiniCssExtractPlugin\r\n\r\n* chore: optimization.minimizer 기본값 추가\r\n\r\n* refactor: AnimatedPath 불필요한 리렌더링 방지\r\n\r\n- strokeDasharray를 상태 변경이 아닌 css 속성 직접 변경 방식으로 수정\r\n\r\n* chore: hero image 압축 및 최적화\r\n\r\n- 사이즈 압축\r\n- webp 확장자 파일 추가\r\n- 디바이스별 사이즈 추가\r\n\r\n* chore: webp 번들링 가능하도록 webpack config 수정\r\n\r\n* refactor: hero image 컴포넌트로 분리 및 확장자, 사이즈별 대응\r\n\r\n* [ImgBot] Optimize images\r\n\r\n*Total -- 14,014.22kb -> 11,024.14kb (21.34%)\r\n\r\n/src/assets/images/hero.png -- 10,421.79kb -> 7,522.70kb (27.82%)\r\n/src/assets/images/free.gif -- 1,653.47kb -> 1,582.65kb (4.28%)\r\n/src/assets/images/find.gif -- 1,938.96kb -> 1,918.80kb (1.04%)\r\n\r\nSigned-off-by: ImgBotApp \r\n\r\n* refactor: page 단위 컴포넌트 code spliting\r\n\r\n* refactor: Router basename 제거\r\n\r\n* feat: getCacheOf 유틸 함수 추가\r\n\r\n* refactor: trending gif api 응답 캐싱\r\n\r\n* refactor: GifItem memoization\r\n\r\n* refactor: Router basename 추가\r\n\r\n* chore: gif > mp4로 변경\r\n\r\n* refactor: FeatureItem src를 gif > mp4로 변경\r\n\r\n* refactor: font preload\r\n\r\n* fix: source type 오타 수정\r\n\r\n* refactor: basename 제거\r\n\r\n* refactor: font 최적화\r\n\r\n- 실제 사용하는 폰트 preload\r\n- font-display를 optional로 설정하여 cls 최적화\r\n\r\n* refactor: Suspense 범위 수정\r\n\r\n- NavBar와 Footer를 포함하여 cls 최적화\r\n\r\n* feat: hero image alt 속성 추가\r\n\r\n* fix: HelpPanel 노출 방향 수정\r\n\r\n* fix: AnimatedPath strokeDashoffset 미설정 오류 수정\r\n\r\n---------\r\n\r\nSigned-off-by: ImgBotApp \r\nCo-authored-by: ImgBotApp ","shortMessageHtmlLink":"[개인 미션 - 성능 오답노트] 노아이즈(정세연) 미션 제출합니다. (#113)"}},{"before":"cf16a0cb67fc898d1ade97ec87649e84c6103f3e","after":"249ff22dfcdac8442fe0185d695be174f1b4de83","ref":"refs/heads/naveowo","pushedAt":"2023-09-11T05:23:35.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"HyeryongChoi","name":"Hyeryong Choi","path":"/HyeryongChoi","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/24777828?s=80&v=4"},"commit":{"message":"[개인 미션 - 성능 오답노트] 네이브(윤지영) 미션 제출합니다. (#87)\n\n* chore: MiniCssExtractPlugin,TerserPlugin,CssMinimizerPlugin적용\r\n\r\n* chore: 이미지 최적화 플러그인 설치\r\n\r\n* chore: image-webpack-loader적용\r\n\r\n* chore: 정적이미지 resizing & format변경\r\n\r\n* refactor: 최적화된 이미지 & 짤 적용\r\n\r\n* chore: 확장자 타입선언\r\n\r\n* chore: 폰트 preload적용\r\n\r\n* chore: webpack-bundle-analyzer 플러그인 적용\r\n\r\n* chore: webpack-bundle-analyzer 플러그인 적용\r\n\r\n* refactor: Home & Search 페이지에 lazy 적용\r\n\r\n* feat: 데이터 캐시 유틸함수 생성\r\n\r\n* refactor: trending api 캐싱로직 적용\r\n\r\n* design: layout shift 해결\r\n\r\n* refactor: 컴포넌트에 memo적용\r\n\r\n* fix: 수정사항 반영\r\n\r\n* fix: TerserPlugin 배열 제거\r\n\r\n* refactor: 불필요한 플러그인 제거","shortMessageHtmlLink":"[개인 미션 - 성능 오답노트] 네이브(윤지영) 미션 제출합니다. (#87)"}},{"before":"cf16a0cb67fc898d1ade97ec87649e84c6103f3e","after":"bcc6d9aea6a6094039cb160d2a38e18c211f0563","ref":"refs/heads/hyeryongchoi","pushedAt":"2023-09-11T05:21:47.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"D0Dam","name":"Minjae Kim","path":"/D0Dam","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/51052049?s=80&v=4"},"commit":{"message":"[개인 미션 - 성능 오답노트] 첵스(최혜령) 미션 제출합니다. (#97)\n\n* chore: 패키지 업데이트\r\n\r\n- @typescript-eslint/eslint-plugin: \"^5.0.0\"\r\n- eslint: \"^8.0.1\"\r\n- eslint-config-standard-with-typescript\": \"22.0.0\"\r\n- webpack: \"^5.88.2\"\r\n- webpack-cli: \"^5.1.4\"\r\n\r\n* chore: Router의 basename 삭제\r\n\r\n* chore: webpack-dev-server 업데이트\r\n\r\n- webpack-dev-server: \"^4.15.1\"\r\n\r\n* chore: js 압축 및 난독화를 위한 terser-webpack-plugin 적용\r\n\r\n* chore: mini-css-extract-plugin 설치 및 적용\r\n\r\n* chore: compression-webpack-plugin 설치 및 적용\r\n\r\n* chore: asset/resource 모듈을 사용하여 file-loader 대체\r\n\r\n* chore: 이미지 최적화 플러그인 설치 및 적용\r\n\r\n- image-minimizer-webpack-plugin: \"^3.8.3\"\r\n- imagemin: \"^8.0.1\"\r\n- imagemin-gifsicle: \"^7.0.0\"\r\n- imagemin-webp: \"^8.0.0\"\r\n\r\n* chore: css 코드 최적화 관련 플러그인 설치 및 적용\r\n\r\n- css-minimizer-webpack-plugin: \"^5.0.1\"\r\n\r\n* refactor: React.lazy를 사용하여 코드 분할 적용\r\n\r\n- '/': Home 컴포넌트 호출\r\n- '/search': Search 컴포넌트 호출\r\n\r\n* chore: 트리쉐이킹 관련 설정 적용\r\n\r\n- 트리쉐이킹은 CommonJS 모듈에서 하기 어려우므로 babel로 es6 모듈이 CommonJS모듈로 변환되는 것을 막음\r\n- 사이드 이팩트가 있는 코드를 명시해줌으로써 이를 제외하고 트리 쉐이킹을 할 수 있도록 함\r\n\r\n* feat:Search 페이지에 들어올 때마다 새로 요청하지 않도록 trending API 캐싱 적용\r\n\r\n- localStorage에 캐시 만료 시간과 trending 데이터 저장\r\n- cacheTime: 10분\r\n\r\n* refactor: GifItem에 React.memo를 적용\r\n\r\n- key와 React.memo를 적용하여 추가된 목록만 새로 렌더링하도록 함\r\n\r\n* chore: webpack-bundle-analyzer 설치 및 적용\r\n\r\n- react, giphy, react-icons 번들 분리\r\n\r\n* chore: 이미지 파일명 contenthash 추가\r\n\r\n* refactor: LayoutShift 없이 hover 애니메이션이 일어나도록 수정\r\n\r\n- top, left 등을 transform으로 변경\r\n\r\n* refactor: LayoutShift없이 hover애니메이션이 일어나도록 수정\r\n\r\n* refactor: Layout Shift 없이 패널 열고 닫기 애니메이션이 일어나도록 수정\r\n\r\n* refactor: LocalStorage를 CacheStorage로 변경\r\n\r\n* chore: css파일명에 contenthash 추가\r\n\r\n- css 파일 내용 변경 시 해시값 변경을 통해 cloudfront 캐시 무효화 없이 브라우저에서 캐시가 갱신될 수 있도록 함\r\n\r\n* chore: react 패키지 main번들에 다시 포함하도록 수정\r\n\r\n* chore: CompressionPlugin 삭제\r\n\r\n- CloudFront에서 Gzip 또는 Brotli 압축 형식으로 압축된 데이터를 보내주도록 설정하여 js, css, html 파일 압축을 위해 설치한 CompressionPlugin 삭제\r\n\r\n* docs: README 업데이트\r\n\r\n* refactor: 폰트 preload 적용\r\n\r\n* refactor: SEO성능 향상을 위한 meta 태그 추가\r\n\r\n* refactor: img alt 속성 추가\r\n\r\n* refactor: sharp 설치 및 적용\r\n\r\n- png, gif > webp 변환을 위한 타입 추가 및 적용\r\n\r\n* chore: imagemin 패키지 삭제\r\n\r\n* refactor: 캐시 관련 로직 분리\r\n\r\n* refactor: heading 태그 순서에 맞게 숫자 수정","shortMessageHtmlLink":"[개인 미션 - 성능 오답노트] 첵스(최혜령) 미션 제출합니다. (#97)"}},{"before":"cf16a0cb67fc898d1ade97ec87649e84c6103f3e","after":"a6b273c21431e856b1efff226583da79e367a082","ref":"refs/heads/dahyeeee","pushedAt":"2023-09-11T04:14:43.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"jiwonh423","name":"JIWON","path":"/jiwonh423","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/33995840?s=80&v=4"},"commit":{"message":"[개인 미션 - 성능 오답노트] 헤다(윤다혜) 미션 제출합니다. (#96)\n\n* init project\r\n\r\n* chore:번들 사이즈 줄이기\r\n\r\n* chore: assets 이미지,gif 최적화 업로드\r\n\r\n* refactor: 리플로우 일어나지 않도록 css 수정\r\n\r\n* refactor: asset 파일확장자 변환 최적화\r\n\r\n* refactor:사용하는 아이콘만 불러오도록 수정\r\n\r\n* refactor: 랜더링 최적화\r\n\r\n* trending gif 캐싱\r\n\r\n* suspense범위 확장\r\n\r\n* chore:ttl 값 수정, 리드미 수정","shortMessageHtmlLink":"[개인 미션 - 성능 오답노트] 헤다(윤다혜) 미션 제출합니다. (#96)"}},{"before":"cf16a0cb67fc898d1ade97ec87649e84c6103f3e","after":"50aa5118639cf3e3a10ce24ba3e7854eb786b847","ref":"refs/heads/chsua","pushedAt":"2023-09-11T03:54:51.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"tkdrb12","name":"남상규","path":"/tkdrb12","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/103256030?s=80&v=4"},"commit":{"message":"[개인 미션 - 성능 오답노트] 수아(최수현) 미션 제출합니다. (#108)\n\n* chore: 초기 환경 설정\r\n\r\n- 패키지 버전 설정\r\n\r\n* chore: minify, uglify를 위한 webpack.config.js 수정\r\n\r\n* chore: 이미지 최적화를 위한 로더 설치 및 설정\r\n\r\n* docs: 최적화 방법 기록\r\n\r\n* chore: 페이지 path설정 수정\r\n\r\n* chore: 로컬에서 실행할 때 배포환경으로 되도록 수정\r\n\r\n* chore: 코드 스플리팅/ES6 모듈 유지 적용\r\n\r\n* refactor: 필요한 react-icon만 불러와서 사용하기\r\n\r\n* chore: build할 때 LICENSE.txt 생성되지 않게 하기\r\n\r\n* refactor: 이미지 아이템 컴포넌트 메모이제이션 구현\r\n\r\n* refactor: trending 최초 데이터 저장, 사용하도록 수정\r\n\r\n* refactor: 마우스 애니메이션 최적화\r\n\r\n* refactor: gif 아이템 hover 애니메이션 최적화\r\n\r\n* refactor: 도움말 배너 애니메이션 최적화\r\n\r\n* feat: 기본 이미지, gif 확장자 수정\r\n\r\n* feat: 기본 이미지, gif 확장자 적용","shortMessageHtmlLink":"[개인 미션 - 성능 오답노트] 수아(최수현) 미션 제출합니다. (#108)"}},{"before":"cf16a0cb67fc898d1ade97ec87649e84c6103f3e","after":"3f85e255a4a98dee795e42372bda606d0fdb20de","ref":"refs/heads/hafnium1923","pushedAt":"2023-09-11T03:47:13.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"kyw0716","name":"YoungWoo Kim","path":"/kyw0716","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/77326660?s=80&v=4"},"commit":{"message":"[개인 미션 - 성능 오답노트] 루루(송지은) 미션 제출합니다. (#77)\n\n* chore: 초기 환경 세팅\r\n\r\n* docs: 요구사항 작성\r\n\r\n* feat: js minify\r\n\r\n* feat: css minimizer webpack plugin install\r\n\r\n* feat: css minify\r\n\r\n* feat: css/js minify & uglify\r\n\r\n* chore: compressionWebpackPlugin install\r\n\r\n* fix: style-loader 삭제\r\n\r\n* docs: 체크리스트 업데이트\r\n\r\n* feat: hero 이미지 최적화\r\n\r\n* feat: gif 이미지 최적화\r\n\r\n* docs: 체크 업데이트\r\n\r\n* chore: webpackBundleAnalyzer install\r\n\r\n* feat: code splitting\r\n\r\n* feat: tree shaking\r\n\r\n* docs: 체크 업데이트\r\n\r\n* feat: trending API 재요청 하지 않게 막기\r\n\r\n* docs: 체크 업데이트\r\n\r\n* feat: gifItem memo적용\r\n\r\n* docs: 체크 업데이트\r\n\r\n* feat: layout shift를 transform사용해 해결\r\n\r\n* docs: 체크 업데이트\r\n\r\n* refactor: 사진 해상도 조절\r\n\r\n* feat: font preload 적용\r\n\r\n* 체크리스트 업데이트\r\n\r\n* refactor: 사진 해상도 조절\r\n\r\n* feat: hero 이미지 preload\r\n\r\n* feat: 페이지 meta 태그 설정","shortMessageHtmlLink":"[개인 미션 - 성능 오답노트] 루루(송지은) 미션 제출합니다. (#77)"}},{"before":"cf16a0cb67fc898d1ade97ec87649e84c6103f3e","after":"09d2a1aceeccaeab2228f4d0c95f3ab9ae4b9fdc","ref":"refs/heads/hozzijeong","pushedAt":"2023-09-11T03:24:07.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"ashleysyheo","name":"Ashley Heo","path":"/ashleysyheo","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/51967731?s=80&v=4"},"commit":{"message":"[개인 미션 - 성능 오답노트] 클린(정호진) 미션 제출합니다. (#83)\n\n* chore: first init and change homepage name\r\n\r\n* chore: package 버전 업그레이드\r\n\r\n* chore: 성능 측정 전 html\r\n\r\n* refactor: gif -> mp4로 파일 형식 변경\r\n\r\n* chore: webpack analyzer 설치\r\n\r\n* refactor: react lazy loading 구현\r\n\r\n* chore: 배포시 nosources 사용\r\n\r\n* refactor: 고정 이미지 webp로 변경\r\n\r\n* refactor: image에 lazy 적용\r\n\r\n* chore: picture source 설정\r\n\r\n* chore: css 및 js 최적화\r\n\r\n* refactor: 웹 폰트 preload로 설정\r\n\r\n* chore: asset/resource로 변경\r\n\r\n* chore: giphy및 reacticons chunk name 분리\r\n\r\n* refactor: gif 형식 webp로 변경\r\n\r\n* refactor: img에 width height 설정\r\n\r\n* chore: CommonJs 모듈 사용 배제\r\n\r\n* chore: basename 옵션에 따라 설정\r\n\r\n* refactor: video 재생 설정 초기화\r\n\r\n* refactor: memo사용\r\n\r\n* refactor: layoutshift 제거\r\n\r\n* feat: 새로들어올 때마다 API 요청 방지\r\n\r\n* chore: 이미지 최적화 적용\r\n\r\n* refactor: layoutshift 최소화를 위해 home에서 lazyloading 제거\r\n\r\n* refactor: loading 컴포넌트 분리\r\n\r\n* refactor: requestAnimationFrame 수정\r\n\r\n* chore: local에서 Prod 설정\r\n\r\n* refactor: loading 추가\r\n\r\n* docs: 목록 추가\r\n\r\n* refactor: font-swap 적용\r\n\r\n* refactor: 이미지에 alt 추가\r\n\r\n* chore: basename 제거\r\n\r\n* refactor: 수동 변환한 mp4에서 빌드시 자동으로 webp로 변환되도록 수정\r\n\r\n* chore: ds_store 추가\r\n\r\n* chore: 패키지 제거 및 hash 추가\r\n\r\n* chore: teaserplugin 제거\r\n\r\n* refactor: basename 제거\r\n\r\n* refactor: cache 문제 해결\r\n\r\n* refactor: press를 땠을 때 로딩하도록 설정\r\n\r\n* feat: helppane에 무한 스크롤 구현\r\n\r\n* refactor: translate로 변경\r\n\r\n* chore: css파일에 has 설정\r\n\r\n* refactor: height 오타 수정\r\n\r\n* refactor: 모든 router에 대해 suspense 적용\r\n\r\n* refactor: 검색 결과에 대해 cache 적용x\r\n\r\n* refactor: 불필요한 주석 및 코드 제거\r\n\r\n* refactor: 캐시 변수명 변경\r\n\r\n* chore: 이전 측정 성능치 삭제\r\n\r\n* chore: 유틸 패키지 분리 제거","shortMessageHtmlLink":"[개인 미션 - 성능 오답노트] 클린(정호진) 미션 제출합니다. (#83)"}}],"hasNextPage":true,"hasPreviousPage":false,"activityType":"all","actor":null,"timePeriod":"all","sort":"DESC","perPage":30,"cursor":"djE6ks8AAAADfav9YgA","startCursor":null,"endCursor":null}},"title":"Activity · woowacourse/perf-basecamp"}