목차
![스크린샷 2024-10-11 오전 12 47 12](https://private-user-images.githubusercontent.com/163278410/375452058-21049fc3-6f96-42bb-98d0-2bff5fbc25a7.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3MzkyNjExOTgsIm5iZiI6MTczOTI2MDg5OCwicGF0aCI6Ii8xNjMyNzg0MTAvMzc1NDUyMDU4LTIxMDQ5ZmMzLTZmOTYtNDJiYi05OGQwLTJiZmY1ZmJjMjVhNy5wbmc_WC1BbXotQWxnb3JpdGhtPUFXUzQtSE1BQy1TSEEyNTYmWC1BbXotQ3JlZGVudGlhbD1BS0lBVkNPRFlMU0E1M1BRSzRaQSUyRjIwMjUwMjExJTJGdXMtZWFzdC0xJTJGczMlMkZhd3M0X3JlcXVlc3QmWC1BbXotRGF0ZT0yMDI1MDIxMVQwODAxMzhaJlgtQW16LUV4cGlyZXM9MzAwJlgtQW16LVNpZ25hdHVyZT0yNzA2NzZlZGQ3MTY2MzQ3NGIyODI3NGFiZTdiNmQxODcyNjQ1NTc2Y2ZmODlmNzg5NzQ2NzUyMjdjZmQ3YjcxJlgtQW16LVNpZ25lZEhlYWRlcnM9aG9zdCJ9.2S5n1t1V252IOeo81_OG90OfiG0TIHgORE5qp_-12bI)
- 배포 파이프라인
![스크린샷 2024-10-11 오전 12 45 06](https://private-user-images.githubusercontent.com/163278410/375451330-fd6c3e8a-a341-4cb1-a5ae-185822f7009e.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3MzkyNjExOTgsIm5iZiI6MTczOTI2MDg5OCwicGF0aCI6Ii8xNjMyNzg0MTAvMzc1NDUxMzMwLWZkNmMzZThhLWEzNDEtNGNiMS1hNWFlLTE4NTgyMmY3MDA5ZS5wbmc_WC1BbXotQWxnb3JpdGhtPUFXUzQtSE1BQy1TSEEyNTYmWC1BbXotQ3JlZGVudGlhbD1BS0lBVkNPRFlMU0E1M1BRSzRaQSUyRjIwMjUwMjExJTJGdXMtZWFzdC0xJTJGczMlMkZhd3M0X3JlcXVlc3QmWC1BbXotRGF0ZT0yMDI1MDIxMVQwODAxMzhaJlgtQW16LUV4cGlyZXM9MzAwJlgtQW16LVNpZ25hdHVyZT04OTYzMWFlM2JiZWE2MTgzMjlmMmM2ZTU4OTU2NTU5ODYzODkxZTI3ZGY1ODg0MWVmZDE0MTA2YmRkMGJjMjA1JlgtQW16LVNpZ25lZEhlYWRlcnM9aG9zdCJ9.CV3axjtoFUpFkAIIE5ZKdflhlE1x8xN5VGX8t496v-M)
분류 | 기술 |
---|---|
Language | |
Framework | |
Remote Data | |
Data Management | |
Library | |
DevOps |
![스크린샷 2024-10-11 오전 12 48 15](https://private-user-images.githubusercontent.com/163278410/375452429-33998fbc-3033-41b6-90fe-100f3ac8b8e2.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3MzkyNjExOTgsIm5iZiI6MTczOTI2MDg5OCwicGF0aCI6Ii8xNjMyNzg0MTAvMzc1NDUyNDI5LTMzOTk4ZmJjLTMwMzMtNDFiNi05MGZlLTEwMGYzYWM4YjhlMi5wbmc_WC1BbXotQWxnb3JpdGhtPUFXUzQtSE1BQy1TSEEyNTYmWC1BbXotQ3JlZGVudGlhbD1BS0lBVkNPRFlMU0E1M1BRSzRaQSUyRjIwMjUwMjExJTJGdXMtZWFzdC0xJTJGczMlMkZhd3M0X3JlcXVlc3QmWC1BbXotRGF0ZT0yMDI1MDIxMVQwODAxMzhaJlgtQW16LUV4cGlyZXM9MzAwJlgtQW16LVNpZ25hdHVyZT04NDM5OTBkMmJjNTg1ZWNkNmI4MTM4OTJiNjRiMGI3OGZmZjBjMWNiZDM1YmNlOTI4YzA3MjcwNDQ4NGExMWY3JlgtQW16LVNpZ25lZEhlYWRlcnM9aG9zdCJ9.UBr1vaUADmuygYr-3KGpplxjvqeWQzFuYDpUF8-2biI)
- 개발 환경 : 유지 보수를 용이하게 하기 위해 역할 명확히 구분
- 커스텀 훅 : 데이터 fetching과 상태 관리에 집중하여 UI와의 결합도 낮춤
- 비즈니스 로직 : 서비스 레이어로 분리해 모듈화
- 이를 통해 코드의 가독성을 높임, 변경 시 영향 범위를 최소화
![]() |
![]() |
--문제--
- 한 페이지에 컴포넌트와 모달 수가 증가하면서 여러 컴포넌트를 거쳐야 하는 프롭스드릴링 이슈가 발생
- 자식 컴포넌트에서 부모컴포넌트로 state를 올려줘야 하기 때문에 코드가 복잡해짐
- 가독성 하락 및 유지보수 불편
--해결--
- 상태관리 라이브러리 zustand 도입
- state를 전역에서 관리
- drilling 없이 state를 사용하고 싶은 곳에서 꺼내씀
![스크린샷 2024-10-11 오전 1 13 51](https://private-user-images.githubusercontent.com/163278410/375461025-382d020d-654b-4354-bce2-052039b9a166.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3MzkyNjExOTgsIm5iZiI6MTczOTI2MDg5OCwicGF0aCI6Ii8xNjMyNzg0MTAvMzc1NDYxMDI1LTM4MmQwMjBkLTY1NGItNDM1NC1iY2UyLTA1MjAzOWI5YTE2Ni5wbmc_WC1BbXotQWxnb3JpdGhtPUFXUzQtSE1BQy1TSEEyNTYmWC1BbXotQ3JlZGVudGlhbD1BS0lBVkNPRFlMU0E1M1BRSzRaQSUyRjIwMjUwMjExJTJGdXMtZWFzdC0xJTJGczMlMkZhd3M0X3JlcXVlc3QmWC1BbXotRGF0ZT0yMDI1MDIxMVQwODAxMzhaJlgtQW16LUV4cGlyZXM9MzAwJlgtQW16LVNpZ25hdHVyZT03N2E1NjJkN2ZmNDEwNzkyMzU3OGZhYjE5YTYzY2ZhOGFjOGZjMWZmOTQ4ZWY2YTMxZmE2YjRlNWE4ZmUxODFkJlgtQW16LVNpZ25lZEhlYWRlcnM9aG9zdCJ9.BYEi-oFnI1MHmWgusIFS5HbSWo7u5ieOWp5JGrVmlZI)
--문제--
- 비즈니스 로직이 컴포넌트 코드에서 많은 부분을 차지
--해결--
- 비즈니스 로직을 커스텀 훅으로 분리
- 컴포넌트 코드를 화면 렌더링에 집중
![스크린샷 2024-10-11 오전 1 19 09](https://private-user-images.githubusercontent.com/163278410/375462774-c3675353-abcf-445d-a249-537507bb7445.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3MzkyNjExOTgsIm5iZiI6MTczOTI2MDg5OCwicGF0aCI6Ii8xNjMyNzg0MTAvMzc1NDYyNzc0LWMzNjc1MzUzLWFiY2YtNDQ1ZC1hMjQ5LTUzNzUwN2JiNzQ0NS5wbmc_WC1BbXotQWxnb3JpdGhtPUFXUzQtSE1BQy1TSEEyNTYmWC1BbXotQ3JlZGVudGlhbD1BS0lBVkNPRFlMU0E1M1BRSzRaQSUyRjIwMjUwMjExJTJGdXMtZWFzdC0xJTJGczMlMkZhd3M0X3JlcXVlc3QmWC1BbXotRGF0ZT0yMDI1MDIxMVQwODAxMzhaJlgtQW16LUV4cGlyZXM9MzAwJlgtQW16LVNpZ25hdHVyZT04OTJlNjc4M2RkNzc5N2YyMGUxZjgwNWFiYmRjN2VmMjNmZTI1OTBlNDJjNWVjYTA2ZTYwNWVmMDc2MGVjODFjJlgtQW16LVNpZ25lZEhlYWRlcnM9aG9zdCJ9.6uJYmBJSX1Jo5qVj6q3-BZZaI0NrA-rcGPXCRl8JGrU)
--문제--
- 불필요한 리소스의 일괄 로드로 인한 페이지 성능 문제
--해결--
- code spliting
- lazy loading
--개선--
- 초기 로딩 시간 단축
- 번들 크기 단축
- 성능 64 -> 94
![스크린샷 2024-10-11 오전 1 23 34](https://private-user-images.githubusercontent.com/163278410/375464013-5875e393-6325-4c85-95d1-64a0a670d0f0.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3MzkyNjExOTgsIm5iZiI6MTczOTI2MDg5OCwicGF0aCI6Ii8xNjMyNzg0MTAvMzc1NDY0MDEzLTU4NzVlMzkzLTYzMjUtNGM4NS05NWQxLTY0YTBhNjcwZDBmMC5wbmc_WC1BbXotQWxnb3JpdGhtPUFXUzQtSE1BQy1TSEEyNTYmWC1BbXotQ3JlZGVudGlhbD1BS0lBVkNPRFlMU0E1M1BRSzRaQSUyRjIwMjUwMjExJTJGdXMtZWFzdC0xJTJGczMlMkZhd3M0X3JlcXVlc3QmWC1BbXotRGF0ZT0yMDI1MDIxMVQwODAxMzhaJlgtQW16LUV4cGlyZXM9MzAwJlgtQW16LVNpZ25hdHVyZT05OTFmZDNiYTA2NGQ1MTY4ZGNjNTVlNTVhOWU2MzI4YjhhMzQ5YjYwYzA4YTY3NjczZmQ2Y2ZlNjg5NmQwYmVkJlgtQW16LVNpZ25lZEhlYWRlcnM9aG9zdCJ9.pXUcQzX5Ol2hPI6-wx75uIFPK0T_OKEtym1GqVyBRK8)
--문제--
- (루시 여기좀 적어주세요)
--해결--
- debounce함수 적용
--개선--
-
- github repository에 코드가 병합
- github action을 통해 자동으로 배포가 진행
- 이때 깃헙액션에서 리액트 정적 파일을 빌드
- 빌드된 파일을 S3에 업로드
- CloudFront로 배포
- 브랜치에 따라 각각
개발용 버킷
과운영용 버킷
에 업로드