728x90

전체 글 288

github 원격저장소 연결하기

새로운 프로젝트를 만들어서 github 에 올리고 싶을때 매번 구글링 하는게 짜증나서 정리해둔다.. ​ 생성하는 프로젝트는 springBoot 프로젝트 기준이다. 로컬 pc 에 git 설치 및 ssh 연결설정은 되어 있다고 가정한다. ​ https://github.com/ 접속해서 회원가입+로그인하고 아래와 같이 원격저장소 생성을 시작한다. ​ 1. github 원격저장소 생성 이 때 .gitignore 파일과 READMO 파일은 절대 만들지 말자. 필요하면 나중에 로컬저장소에서 만들어서 push 하면 되고 괜히 이 과정에서 생성하면 원격저장소와 상태가 맞지않아 연결할때 불필요한 에러만 마주하게 된다. ​ 2. 로컬pc 에서 IDEA(intelliJ) 를 통해 springboot 프로젝트 생성 - 이건 ..

ETC 2021.03.08

리액트 초기 설정

1. 디버깅을 위한 크롬 브라우저 확장 프로그램 설치 크롬 웹 스토어 로 접속해서 React Developer Tools, Redux DevTools 를 브라우저에 설치한다. 설치를 완료하고 크롬 개발자모드(F12)를 확인하면 Redux, Components, Profiler 탭이 추가된 것을 볼 수 있다. Redux 탭에서는 어플리케이션에 적용된 Redux의 상태정보를 실시간으로 확인할 수 있다. Components 탭에서는 컴포넌트의 트리구조를 확인할 수 있다. Profiler 탭을 통해 프로파일링을 해볼 수 있다. 추가로 이벤트에 따라 리렌더링 되는 컴포넌트 영역을 실시간으로 확인하려면 아래 설정을 추가해 진행해야 한다. 위 설정을 하면 아래와 같이 리렌더링 되는 컴포넌트를 화면상에서 실시간으로 확..

Frontend/ReactJS 2021.03.08

React 라우팅 처리

관련 코드는 아래를 참고 하도록 한다. github.com/mypiece/react-example mypiece/react-example CRA 리액트+리덕스+리덕스사가 예제. Contribute to mypiece/react-example development by creating an account on GitHub. github.com src/index.js 파일에서 최상위 컴포넌트인 src/App.js 를 라우터 태그로 감싼다. src/App.js 에서는 실제 라우팅 설정을 한다. 태그로 url별 호출한 컴포넌트를 지정한다. path 는 위와 같이 배열형태로 여러개를 지정할 수도 있다. /, /page1 과 같이 경로가 겹치는 부분을 처리하기 위해 exact={true} 설정이 필요하다. 태그를 ..

Frontend/ReactJS 2021.03.08

State를 통한 컴포넌트 상태 관리

전체 코드는 아래를 참고 하도록 한다. github.com/mypiece/react-example mypiece/react-example CRA 리액트+리덕스+리덕스사가 예제. Contribute to mypiece/react-example development by creating an account on GitHub. github.com 리액트에서 상태를 관리하는 방법은 두가지가 있다. 전역적으로 관리가 필요하거나 상태를 관리하는 과정에서 api호출을 통해 외부데이터와 동기화 되어야 하는 경우에는 리덕스를 사용하고 컴포넌트 내부에서만 관리하면 되거나 외부데이터와 동기화가 필요없다면 State를 사용한다. 아래 Counter가 State를 이용해 상태관리를 한다. Counter.js 파일이 최종 렌더링..

Frontend/ReactJS 2021.03.08

리액트에서 상태관리가 필요한 이유

jQuery 라면 selector로 Element를 찾아서 직접 DOM을 조작해야 한다. 하지만 리액트는 실제 DOM 변경 전에 내부적으로 가상 DOM이라는 개념이 사용되기 때문에 직접적으로 DOM을 조작하지 않고 HTML과 비슷한 JSX 문법을 통해 View를 정의하되 특정 상태값에 따라 컴포넌트를 어떤식으로 렌더링할지 선언하는 방식이다. 이러한 상태와 컴포넌트는 옵저버 패턴처럼 연결되어 있어서 컴포넌트는 참조하는 상태값의 변화할때마다 자동으로 리렌더링 된다. 렌더링 과정에서 내부적으로 가상DOM 에 페이지 자체를 새로 만들고 실제 DOM 과 비교하여 변경된 부분만 적용한다. 리액트에서는 이를 위한 상태관리가 필요하다. 이러한 상태는 기본적으로 State 가 있는데 이는 컴포넌트 내부에서만 사용되는 상..

Frontend/ReactJS 2021.03.08

Hooks?

Hook의 복수형인 듯하고 Hook는 소프트웨어 공학에서 의미하는 Hooking 과 동일한 의미로 보면 될 거 같다. 참고로 Hooking은 구성 요소 간에 발생하는 함수 호출, 메시지, 이벤트 등을 중간에서 바꾸거나 가로채는 명령, 방법, 기술이나 행위를 말한다. 간단하게 말해 특정동작을 보강하거나 변경하는 방법이다. Hooks는 리액트 v16.8에 새로 도입된 기능으로 함수형 컴포넌트에서도 상태를 관리할 수 있도록 도와준다. 리액트에서 기본적으로 제공하는 몇가지 Hooks 이 존재하고 우리는 이를 확장해서 커스텀훅으로 만들어서 활용할 수도 있다. 참고로 Hooks는 함수 내에서만 call 할 수 있다.

Frontend/ReactJS 2021.03.05

import 절대경로로 지정하기

리액트에서 다른 js 파일을 import 할때 기본적으로 아래와 같이 상대경로로 지정해야 한다. import { startLoading, finishLoading } from '../../modules/loading'; 이것도 좀 지져분한데 Depth 가 더 깊어질 경우 ../../../ 이 굉장히 길어진다. 하지만 몇가지 설정으로 절대경로로 import 할 수 있는 방법을 제공한다. 프로젝트 root에 jsconfig.json파일을 생성하고 아래와 같이 입력한다. { "compilerOptions": { "baseUrl": "src" }, "include": [ "src" ] } 이제 src 디렉토리를 기준점으로 해서 아래와 같이 import 할 수 있다. import { startLoading, fi..

Frontend/ReactJS 2021.03.05

외부 js, css 파일 사용하기

프론트개발을 할 경우 대부분 css, js 파일들은 퍼블리싱 팀에서 전달받는다. 이런 파일들은 일반적으로 cdn을 통해 전달 받는데 대략 아래와 같은 것들이다. 리액트에서 이를 적용하는 가장 간단한 방법은 Index.html 에 직접 추가하는 것이다. 하지만 페이지별로 필요한 js, css 파일이 다를 것이기 때문에 각 화면의 최상위 컴포넌트에 아래와 useEffect 를 선언해서 index.html에 동적으로 element 를 추가할 수 있다. useEffect(() => { const script = document.createElement('script'); script.src = 'https://cdnjs.cloudflare.com/ajax/libs/jquery/3.0.0/jquery.min.js..

Frontend/ReactJS 2021.03.04
728x90