profile
프론트엔드개발자
post-thumbnail

sort! 테이블 정렬 기능 만들기

미리보기 결과부터 빠르게 봅시다 구현전략 🙄 서로 다른 컬럼을 가진 데이터들은 어떻게 thead를 구성해야 할까 페이지에서 column 배열을 만들어 테이블 컴포넌트에게 전달하고 내부에서 테이블 헤더를 생성한다 🤨 서로 다른 타입을 가진 데이터를 하나의 테이블에서 어떻게 분기처리 해야 할까 각각의 페이지에서 data를 테이블 컴포넌트에게 전달한다 제네릭을 이용하여 테이블 컴포넌트의 props로 받는 data를 map함수를 이용해 로우를 생성한다 😎 <span style="color: rgba(16,185

2023년 4월 10일
·
0개의 댓글
·
post-thumbnail

Redux 실제 서비스에서는 이렇게 쓴다

1. 프롤로그 리액트는 기본적으로 데이터 흐름이 하향식(top-down)이다 즉, 부모에서 자식으로 객체(props)를 내려주는 방식인데 간혹 부모 컴포넌트의 상태변화가 자식으로 인하여 영향을 받아야 할때도 있다 버튼 클릭 시 리스트의 아이템 생성이 대표적이다. 이때, State 끌어올리기를 사용할 수 있지만 문제는 Props drilling이 발생될 수 있다는 것. 그렇기에 공통으로 사용할 수 있는 Store를 만들어 상태를 저장하고 상태의 변화에 따라 액션을 주고 관리하는 것이 Redux이며, 이것이 Redux의 존재이유라 할 수 있다. 👏👏👏 다

2022년 2월 27일
·
0개의 댓글
·
post-thumbnail

React에서 SEO 처리하기

1. 프롤로그 대다수의 개발자들에게 SPA의 단점이 무엇인가 물어보면 SEO를 많이 얘기한다 SEO가 왜? 🤔🤔🤔 2. SEO 검색 엔진 최적화(Search Engine Optimization)는 사이트를 검색 결과에 잘 노출될 수 있도록 하는 것인데 구글, 네이버와 같은 검색 엔진은 자체적으로 만든 검색봇을 이용해서 수 많은 웹페이지에서 검색 결과에 근접한 페이지를 최상위에 매칭해준다 3. Rendering 이때, 검색봇이 수집할 때 활용하는 것으로 웹 브라우저 기반 해석(렌더링)이 있다. > 대표적인 웹 브라우저 렌더링 방식 > > 1. Client-side rendering(CSR) > 1. Server side rendering(SSR) 핵심은 검색 엔진이 렌더링된 웹페이지를 해석할 때 자바스크립트를 사용하여

2022년 2월 18일
·
0개의 댓글
·
post-thumbnail

Google Analytics 적용기

1. 프롤로그 &nbsp; &nbsp; &nbsp; 🤔리액트에서는 트래픽 추적을 어떻게 해야 할까? 고민을 하게된건 다음과 같은 상황이었다. > (전체회의 중) > CEO : 이번에 ΔΔ기업에서 우리 서비스를 인수하고 싶다네요? > CTO : 그쪽에서 트래픽도 요구할 수 있겠네요 > CEO : 예 어려운 작업인가요? > CTO : 간단합니다😙 구글, 알렉사, 시밀러웹 등 트래픽 추적 기능을 제공하는 플랫폼 덕분에 실제로 개발자가 처리해야 할 내용은 비교적 단순하다 2. 트래픽 추적 우리 서비스는 구글에서 제공하는 Google Analytics를 이용해서 트래픽을 추적하기로 결정했다 &nbsp; 싱글페이지 환경의 리액트에서 Google Analytics를 도입하기 앞서 일반적인 멀티페이지 환경에서는 기존에 어떻게 적용했고 어떠한 방식으로 동작했었나를 확인

2022년 1월 21일
·
0개의 댓글
·
post-thumbnail

함수 컴포넌트에 ref 전달하기

1. 프롤로그 input, select, button 등 폼 데이터를 다루기 위해 자주 사용되는 요소들이 있다 이러한 엘리먼트에 styled-components로 스타일 구성을 하거나 혹은 커스텀 훅을 사용하여 상태를 관리할 수 있도록 직접 함수 컴포넌트를 만들어 사용한다 🤔🤔🤔 그렇다면 ref를 함수 컴포넌트에서 어떻게 사용하는지 알아보자 2. ref 이해하기 ref가 왜 필요한지 잠시 살펴보자면 (알고 있다면 pass 하도록 하자👏) 기존 자바스크립트에서는 id, class, name, data 등 속성을 지정하여 getElementById와 같은 메서드를 사용하여 선택자로 선언할 수 있었다 ref란 리액트에서 DOM 엘리먼트에 <span style="background-color: rgba(32, 201, 151,

2022년 1월 12일
·
0개의 댓글
·
post-thumbnail

[React]최적화 1편 - 코드 분할

1. 프롤로그 어떻게 하면 빠르게 되는건데?🤔 내가 만든 서비스의 성능을 개선해 보고 싶다면 성능을 끌어올릴 수 있는 것에는 어떠한 방법들이 있는지 알아야 한다 > 대표적인 성능 최적화 방법 > > 1. 코드 분할 > 1. 코드 리팩토링 > 1. 코드 압축&난독화 > 1. 리소스 줄이기 > 1. 리렌더링 방지 > 1. 트리쉐이킹 > 1. 레이아웃 스래싱 회피 너무도 많다!! 그러나 해야만 한다😭 오늘은 저 중에서 코드 분할만 다뤄보겠다 2. 코드 분할 코드 분할(Code-Splitting)이란 브라우저가 페이지를 렌더링하기 위해 리소스를 다운받아야 하나 한 번에 전부 받는 것이 아니라 화면 구성에 필요한 부분만 잘라내어 다운로드 하는 작업을 말한다 그렇다면 리액트에서는 어떤 방법으로 코드 분할을 할 수 있을까?🍕 2-1. React.lazy React 자체에 내장되어 있는 <span style="bac

2021년 12월 21일
·
0개의 댓글
·
post-thumbnail

[React/Context] 실무에서 사용할 수 있을까

1. 프롤로그 React는 Redux, MobX, Context를 이용해서 전역에서 props를 공유할 수 있다 그렇다면 한 번 적용해보면서 현업에서 사용할 수 있을지 따져보자 오늘 다뤄볼 예제는 다음과 같은 미션이 있다. > 1. Context로 데이터를 공유했으면 좋겠어요 > 2. Hook도 사용해 주세요 > 3. 인증 여부에 따라 로그인/비로그인 화면을 나눠주세요 2. Context React 서버가 정상적으로 구동되었다는 전제하에 Context를 만들어 하위 컴포넌트에서 데이터를 조작할 수 있도록 파일을 하나씩 만들면서 알아보도록 하자😙 루트 경로에 ‘src’ 폴더를 하나 생성하고 ‘context’ 폴더를 하나 더 만들어 AuthContext.js 파일을 생성하고 context를 만들기 위해 ‘createContext’를 import 하면 된다 > ‘useState’ Hook으로 사용자의 인증여부에 따라 ‘auth’의 값을

2021년 11월 16일
·
0개의 댓글
·
post-thumbnail

[React/Emotion] 함수형으로도 사용 가능한 스타일링

1. 프롤로그 Styled-Component나 meterial-UI, Ant-deign 등 React 애플리케이션 개발을 더 빠르고 쉽게 만들어주는 컴포넌트 라이브러리가 존재한다 이번 시간엔 Emotion으로 스타일링을 적용해보자 기본적인 환경 설정을 위해 프로젝트를 하나 만들고 터미널을 열어 아래의 명령어를 입력해준다 > @emotion/css 공식 문서에서 자세한 내용을 참고할 수 있다 2. @emotion/css 기본적인 사용 예시를 한번 보자면 className이 중복없이 자동으로 부여 되는 특징을 가지고 있고 객체 안에서 템플릿 리터럴을 이용할 수 도 있다 > ‘base’와 같이 컴포지션 타입으로 만들어 두면 위와 같이 재사용이 가능하다 3. @emotion/react React에서 사용하기 편하도록 만들어진 라이브러리이다 css prop을 지원하는 것이

2021년 11월 13일
·
0개의 댓글
·
post-thumbnail

[React/Multi-Entry] 엔트리 포인트를 나눠보자

1. 프롤로그 &nbsp; &nbsp; &nbsp; 🤔SPA인데 엔트리 포인트를 나눠? 왜!!? 라고 생각될 테지만... 실제로 규모가 큰 프로젝트를 SPA로 구축하다 보면 처음 계획과 달리 달갑지 않은 선택의 순간이 찾아오기 마련이다. 예를 들면 다음과 같은 상황이다. > (프로젝트 종료 후) > 클라이언트 : 아 참 문의하기 기능도 필요한데.. > 기획자 : 문의 글을 볼 수 있는 관리자 화면도 필요하겠군요! > 클라이언트 : 센스쟁이! 이메일 연동도 되는 거죠? > 기획자 : 당연히 되죠 🤣🤣🤣 > . > .. > ... > 개발자 : tlqkf 실제로 이런 경험을 겪은 개발자들이 적지 않을 것이다 자 그럼 본론으로 돌아와서 관리자 화면도 일반화면과 동일하게 하나의 .html에서 라우팅 처리만 적용하면 되는 거 아닌가 하고 의문이 들 수 있다. 1-1. 해결과제 > ✋ 해결해야 할 과제 > 1. 늘어난 정적리소스를

2021년 11월 12일
·
0개의 댓글
·