React에서 Back end API 요청 시 CORS 관련 오류를 접하게 된다. 이런 경우에는 React에 Proxy 설정을 적용하면 해결이 된다. Proxy 설정에는 2가지 방법이 있다. 기본 Proxy 설정(package.json) ... "browserslist": { "production": [ ">0.2%", "not dead", "not op_mini all", "ie >= 11" ], "development": [ "last 1 chrome version", "last 1 firefox version", "last 1 safari version", "ie >= 11" ] }, "proxy": "https://reference-m1.tistory.com" ... 수동 Proxy 설정(setu..
Node를 사용하면 패키지 관리를 위해서 npm 또는 yarn을 사용한다. 설치가 필요한 패키지들이 package.json 파일에는 프로젝트가 의존하고 있는 모든 패키지의 이름과 버전이 나열되어있으며 npm, yarn 명령어로 패키지를 설치할 수 있다. 그런데, 여러 명의 개발자들이 서로 다른 Node의 버전과 설치하는 시점에 따라 패키지 버전이 달라질 수 있다. 서로 다른 패키지를 설치해서 개발자 간의 혼선을 막을 수 있는 파일이 lock 파일이다. npm - package-lock.json yarn - yarn-lock.json lock 파일이 지원이 안될 때는 개발자 간의 버전이 맞지 않아 패키지 충돌과 버전 차이로 정상 동작하지 않는 경우가 빈번하였다. 이러한 이유로 만들어진 lock 파일이 만들..
React를 접한 지 벌써 오랜 시간이 지났다. 오랜만에 다시 React 프로젝트를 하게 되어 node를 최신 버전으로 올려 세팅을 하던 중 절대 경로 설정이 변경이 되었다는 사실을 알았다. Compoent나 Container를 import를 할 때 상대 경로를 사용하면 불편한이 있어 파일 구조에 맞게 절대 경로를 사용한다. 기존에는 package.json NODE_PATH에 src를 지정하여 절대 경로를 사용하였다. window이면 cross-env 모듈 필요 mac이면 cross-env 모듈 불필요 package.json "scripts": { "start": "cross-env NODE_ENV=production NODE_PATH=src react-scripts start", "build": "cr..
HTML 파싱&렌더링 1. DOM 트리 구성 HTML 파서로 파싱 해서 HTML 데이터를 메모리에 1:1로 로딩하는데, 이때 모든 데이터는 트리 구조로 처리된다. 이 자료구조의 최상위를 document라고 하고, 이렇게 구성된 메모리의 데이터를 DOM(document Object Model)이라고 한다. 2. Render 트리 구성 화면에 보이는 시각적인 구성 요소들을 분류해 두고 화면에 보일 수 있도록 데이터를 담는 과정이라고 할 수 있다. 3. Render 트리 배치 이전 과정에서 분류한 데이터를 화면의 어디에 두어야 할지 배치하는 작업이다. 이 작업을 Layout을 구성한다고 한다. 4. Render 트리 페인팅 Layout을 모두 구성하고 그 결과를 UI 백엔드를 통해서 화면에 출력하는 과정이다...
// 공통 Ajax call // auth: Authorization // type: Method(GET, POST, PUT, DELETE) // data: 객체 리터럴 형식 data={page: 1, recordsPerPage: 10} // dataType: 데이터 타입 // async: 비동기 여부 (Deafult true 비동기) // successFn: 성공시 // failFn: 실패시 // completeFn: 성공이후 function ajaxCall(auth, type, url, data, dataType, async, successFn, failFn, completeFn) { type = type.toUpperCase(); const options = { type: type, url: url..
#slider { pointer-events: none; } #slider::-moz-range-thumb { pointer-events: auto !important; } #slider::-webkit-slider-thumb { pointer-events: auto !important; } #slider::-ms-thumb { pointer-events: auto !important; } #slider::-ms-track { pointer-events: none !important; }
let previousLineNum = 0; $(document).on('blur keyup paste input click', '[contenteditable]', function(e) { const selection = window.getSelection(); if (null != selection.anchorNode) { const range = selection.getRangeAt(0); const lineNum = range.startOffset; if (13 === e.keyCode && previousLineNum < lineNum) { const scrollHeight = $(this).get(0).scrollHeight; $(this).scrollTop(scrollHeight); prev..
- 성능분석
- 이직
- Java
- 제주도 3박4일 일정
- effective java
- Maven
- 경력관리
- 리액트
- SQL
- Eclipse
- 제주도 여행
- 정렬 알고리즘
- 자바
- 소프트웨어공학
- spring
- Linux 명령어
- 리눅스 명령어
- sort algorithm
- 프로그래머
- Tomcat
- 리액트 16
- javascript
- 개발환경
- 자바스크립트
- Collection
- 오라클 내장 함수
- React
- 회고
- 오라클
- 프로그래머스
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |