일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- node.js 교과서 따라하기
- 블록체인
- 이더리움
- 시퀄라이즈
- 우분투
- 자바스크립트
- 쉘스크립트
- 일반유저
- 변수
- 라우터
- 환경변수
- 리액트
- npm
- Docker
- wsl
- 설치
- 리눅스
- 노드
- centos
- 전역설치
- immer
- 리액트를 다루는 기술
- 머클루트
- wget
- 깃허브
- MariaDB
- 벨로포터
- 머클트리
- Sequelize
- 솔리디티
- Today
- Total
목록분류 전체보기 (154)
코드코코
트리 명령어 설치하기 1. sudo apt update 2. sudo apt install tree 3. tree -L 1 트리 명령어를 사용하여 디렉토리 구조 확인하기 디렉토리 구조 설명
package main import "fmt" func add() *int { //garbage collector : 불필요한 메모리를 정리해 줌. //메모리가 정리되는 기준점 : 메모리(변수)가 필요 없어지는 순간 //즉, 'reference count = 0' 이 되는 순간 GC가 지움. //reference count var a int //1 var p *int a = 3 p = &a //2 fmt.Println(*p) //1.리턴되는 순간 메모리가 사라지는 것이아니라, return p } func main() { //2. 실행이 끝나는 순간 메모리가 정리됨. v := add() fmt.Println(v) } Garbage Collector : 불필요한 메모리를 자동으로 정리해 줌. GC의 유무에 ..
정적 컴파일 언어 타입에러를 컴파일 시점에서 발견 - 안정성이 높다 동적 컴파일 언어 런타임에 기계어로 변환하는 방식의 언어 고언어 : 정적 컴파일 언어, 강타입 언어, 프로그래밍 언어 : 타입 검사 빡시게 하는 것과 아닌 것(강타입,약타입) 고는 타입검사를 빡시게, 씨뿔뿔(가비지컬렉터 없음)보다도 강함. 고언어 : 가비지컬렉터를 가지고 있음. 메모리 회수를 알아서 함. 씨뿔뿔 new 키워드로 동적인 할당을 함. 메모리 공간을 자유롭게 할당할 수 있음...? 스택메모리?(지역변수 매개변수) 힙메모리? (동적할당) 메모리 힙(메모리 누수)를 보완하기 위해 나온 것이 가비지 콜렉터.
1. history 객체 - history 객체는 라우터로 사용된 컴포넌트에 match, location과 함께 전달되는 props 중 하나. - 이 객체를 통해 컴포넌트 내에 구현하는 메서드에서 라우터 API를 호출 할 수 있음. - 다른 페이지로 이탈하는 것을 방지해야 할 때 활용 2. withRouter 함수 -Higher-order Component -라우트로 사용된 컴포넌트가 아니어도, match,location,history 객체를 접근할 수 있게 해 줌. - 현재 자신을 보여주고 있는 라우트 컴포넌트를 기준으로 match가 전달됨. 3. Switch 컴포넌트 - 여러 Route를 감싸서 그 중 일치하는 단 하나의 라우터만을 렌더링. - 모든 규칙과 일치하지 않을 때 보여 줄 Not Found..
immer 라이브러리 - 불변성에 신경 쓰지 않는 것처럼 코드를 작성하되 불변성 관리는 제대로 해주는 것 - 단순히 깊은 곳에 위치하는 값을 바꾸는 것 외에 배열을 처리할 때에도 쉽고 편함. - 객테 안에 있는 값을 직접 수정하거나, 배열에 직접적인 변화를 일으키는 push, splice 등의 함수를 사용해도 무방. import produce from 'immer'; //produce(수정하고 싶은 상태, 상태를 어떻게 업데이트 할지 정의 하는 함수) const nextState = produce(originalState, draft => { //바꾸고 싶은 값 바꾸기 //produce 함수가 불변성을 유지를 대신해 주면서 새로운 상태를 생성 draft.somewhere.deep.inside = 5; })
리렌더링이 발생하는 상황 1. 자신이 전달받은 props가 변경될 때 2. 자신의 state가 바뀔때 3. 부모 컴포넌트가 리렌더링될 때 4. forceUpdate 함수가 실행될 때 React.memo 를 사용한 리렌더링 방지 - 컴포넌트의 props가 바뀌지 않았다면, 리렌더링을 방지하여 컴포넌트의 리렌더링 성능 최적화를 함. - 컴포넌트를 만들고 나서 감싸주기만 하면 됨. 함수가 계속 만들어지는 상황을 방지하는 방법 1. useState의 함수형 업데이트 기능을 사용 - 파라미터로 새로운 상태 대신에, 상태 업데이트를 어떻게 할지 정의해 주는 업데이트 함수를 넣는다. //useState 함수형 업데이트 const [number, setNumber] = useState(0); //prevNumbers는..
라이프사이클 메서드 - 모든 리액트 컴포넌트에는 라이프사이클이 존재 - 페이지에 레더링되기 전인 준비 과정에서 시작하여 페이지에서 사라질 때 끝남. - 클래스형 컴포넌트에서만 사용가능 - 함수형 컴포넌트에서는 Hooks기능을 사용하여 비슷한 작업을 처리. 라이프 사이클 흐름 마운트(mount) : DOM이 생성되고 웹 브라우저상에 나타나는 것. 1. constructor : 컴포넌트를 새로 만들 때마다 호출되는 클래스 생성자 메서드 2. getDerivedStateFromProps : props에 있는 값을 state에 넣을 때 사용하는 메서드 3. render : UI를 렌더링하는 메서드 4. componentDidMount: 컴포넌트가 웹 브라우저상에 나타나 후 호출하는 메서드 업데이트(update)..