본문 바로가기

TIL27

[React] React 19 내용 정리 React 컴파일러- React 코드를 최적화된 JavaScript로 변환하여 성능을 크게 향상- 컴포넌트 렌더링을 자동으로 관리하여 수동 상태 및 UI 업데이트가 필요 없어짐- useMemo, useCallback, memo 등의 수동 최적화 필요성을 줄임 서버 컴포넌트- 컴포넌트를 서버에서 미리 렌더링하여 초기 페이지 로드 시간을 개선하고 SEO를 향상시킴- 클라이언트로 전송되는 JavaScript 양을 줄여 성능을 개선 액션(Actions)- 폼 제출 등의 데이터 변경 작업을 더 쉽게 처리할 수 있게 해줌- 비동기 작업의 상태 관리를 자동화하여 개발자 경험을 개선 새로운 Hooks- useOptimistic: 서버 응답 전 UI를 낙관적으로 업데이트함- useFormStatus: 폼 제출 상태를 .. 2024. 12. 2.
[TanStackQuery] ReactQuery 개념 정리 React Query란? • 리액트에서 복잡한 데이터 상태 및 비동기 작업 관리를 간편하게 처리할 수 있는 기능을 제공하는 라이브러리• 데이터 캐싱, 리패칭, 뮤테이션 등과 같은 복잡한 작업들을 편하게 수행할 수 있게 해줌• 자동으로 데이터를 캐싱하여 네트워크 요청을 최소화함• 실시간 동기화를 지원하여 데이터가 변경될 때 자동으로 새로운 데이터를 업데이트함• 쿼리를 통해 서버 요청을 효과적으로 관리할 수 있음(중복 요청 방지, 요청 취소, 재시도)• 성숙한 생태계를 가지고 있고, 타입스크립트를 지원하고, Next.js와의 통합이 잘 되어 있으며, 비동기 작업 관리에 매우 편리함 React Query 주요 기능• 데이터 가져오기와 캐싱: useQuery 함수를 사용 하여 데이터 불러오기, 자동 캐싱, 중복.. 2024. 10. 20.
[Firebase] Auth, Store 사용하기 Firebase 설치yarn add firebase React 앱에서 Firebase 초기화import firebase from 'firebase/app'const firebaseConfig = { apiKey: process.env.REACT_APP_API_KEY, authDomain: process.env.REACT_APP_AUTH_DOMAIN, projectId: process.env.REACT_APP_PROJECT_ID, storageBucket: process.env.REACT_APP_STORAGE_BUCKET, messagingSenderId: process.env.REACT_APP_MESSAGING_SENTER_ID, appId: process.env.REACT_APP_ID,};f.. 2024. 9. 25.
[AWS TechCamp] AWS 서버리스로 서버 고민 없이 웹 애플리케이션 구축하기 Intro개인 프로젝트를 하면서 AWS를 사용해보고 싶다는 생각에 공부해보려고 알아보던 중 테크캠프를 한다는 소식을 접하게 되었다. 서버리스로 웹 서비스 구현하는 2개의 과정이 있었고 전부 신청해서 들어보기로 마음먹었다. 첫날 들었던 건 4가지의 aws 서비스를 연계해서 서버리스로 웹서비스를 구현하는 것이었다. 알아야 하는 것은 s3, API Gateway, Lambda함수, DynamoDB 서비스이고 각각 웹, api, 서버 동작 기능, DB와 관련된 서비스들이었다.  1. DB 만들기구현하는 순서가 평소의 프론트엔드 구현 과정과 사뭇 달라서 흥미로웠다. 먼저 DB를 생성하고 테이블을 만들어 둔 뒤에 기능에서 호출해서 사용하려고 한다는 설명을 들었다. 여기에서 주의사항은 앞으로 설정하는 서비스들과 지역.. 2024. 9. 4.
[CSS] BEM(Block, Element, Modifier) 모델 BEM(Block, Element, Modifier) 모델은 CSS 클래스 네이밍을 체계적으로 관리하기 위한 방법론입니다. 이 모델은 CSS 코드를 구조화하고, 일관성 있게 유지하기 위해 고안된 것으로, 대규모 프로젝트에서 특히 유용합니다.BEM 모델의 핵심 개념1. Block (블록).menu { /* Block */ }블록은 독립적이고 재사용 가능한 UI 구성 요소입니다. 블록은 의미적으로 자율적이며, 다른 블록에 의존하지 않는 개별적인 기능을 수행합니다.예를 들어, 페이지의 헤더, 버튼, 메뉴, 폼 등의 UI 구성 요소가 블록에 해당됩니다.블록은 프로젝트 내에서 여러 번 재사용될 수 있으며, 다른 블록과 결합하여 복잡한 UI를 구성할 수 있습니다.2. Element (엘리먼트).menu__item .. 2024. 8. 29.
[독서] 선물받은 「나는 네이버 프런트엔드 개발자입니다」 책 읽기 이 책을 읽게 된 이유 솔직히 이야기 하면 나는 기술서적 말고 에세이같은 책은 잘 읽지 않는다. 그래서 이런 종류의 책을 살 생각은 한번도 안했던 것 같다. 이 책을 읽게 된 이유는 인턴을 하던 회사에서 CTO님이 인턴 끝날 때 선물해주셨기 때문이다. 원래는 클린코드를 주려고 하셨던 것 같지만 그 책은 이미 있어서 있다고 말씀드렸더니 고민끝에 주셨던 책이라서 흥미가 생겼다. 인턴이 끝날 때 많은 생각이 들었는데 그 중 가장 많이 든 생각은 프론트엔드 개발자로 일할 수 있을까? 사실은 적성에 안맞는데 오기로 버티는건가 하는 생각이었다. 시장이 안좋고 신입을 안뽑는 상황은 사실 예전부터 계속 있었는데 그 핑계로 내가 내 상태를 객관적으로 못보고 있나 하는 생각이 들었다. 이 책을 주실 때 하셨던 이야기가 지.. 2024. 8. 23.
[cs] Observer Pattern 왜 알아야 할까? 정보처리기사 준비하기 전 나는 옵저버를 사용한 적이 있지만 무엇인지 제대로 모른채 사용했었다. 사용하면 왜 좋은지, 사용하지 않으면 무슨 문제가 생길 수 있는지에 대해 큰 고민 없이 사용하라는 말에 무지성으로 코딩했었다. 그러다가 정보처리기사 시험 준비를 하면서 GoF의 무수히 많은 디자인 패턴을 보며 기가 질림과 동시에 익숙한 단어들을 발견하게 됐는데 그 중하나가 옵저버 패턴이었다. 프론트 개발자가 Observer Pattern을 알아야 하는 이유는 뭘까?  프론트엔드 개발에서는 유저와의 직접적인 상호작용이 많다. 유저의 액션 하나하나에 민감하게 반응하고 그 데이터를 효율적으로 관리하는 것은 필수이다. 예를 들어, 사용자가 버튼을 클릭하면 UI가 즉시 업데이트 되어야 하고, 입력 폼의 데이터가 실시간으.. 2024. 7. 11.
[React] 로컬 스토리지를 사용한 데이터 캐싱 문제개요상품 리스트 페이지에서 상품을 클릭해 상세 페이지로 이동 후, 뒤로가기 버튼을 눌렀을 때 페이지가 새로고침되면서 리스트의 상단으로 이동하기 때문에 UX가 떨어진다는 피드백을 받음.페이지에 카테고리와 필터가 중복으로 적용되고 있고 상품 데이터의 양이 많아 서버로부터 많은 리소스를 받아와야 함.위치값 사용의 문제화면의 높이값을 저장했다가 불러와서 로드해주는 방법을 사용했지만 새로고침이 되고 그 위치까지 자동으로 스크롤 되는 액션이 발생함위치까지 빠르게 이동하면서 그 사이의 데이터를 빠르게 받아와 보여주는 과정에서 많은 리소스가 낭비됨기획자의 요구사항새로고침 없이 이전 리스트 화면을 보여주기를 원함.현재는 페이지 위치값을 넘겨서 스크롤하는 방식으로 구현됨.런칭이 임박했고, 런칭 후 이벤트 때문에 유저.. 2024. 7. 1.