728x90
반응형

전체 글 95

React Lifecycle - class & hook 2부

이전글 : 2021.12.16 - [프론트엔드/React] - React Lifecycle - class & hook 1부 React Lifecycle - class & hook 1부 리액트의 생명주기에 대해서 정리하려고합니다. 자주 사용하는것만 당연하게 사용하고있다보니 자세히 설명하려고 하면 항상 공식문서나 다른 자료들을 참고하게되어서 이참에 그냥 블로그에 code-reading.tistory.com class - update 리액트의 클래스 컴포넌트의 업데이트를 처리하는 호출 순서는 아래와 같습니다. static getDerivedStateFromProps() shouldComponentUpdate() render() getSnapshotBeforeUpdate() componentDidUpdate()..

React Lifecycle - class & hook 1부

리액트의 생명주기에 대해서 정리하려고합니다. 자주 사용하는것만 당연하게 사용하고있다보니 자세히 설명하려고 하면 항상 공식문서나 다른 자료들을 참고하게되어서 이참에 그냥 블로그에 정리를 한번 해두고 필요할때마다 해당 글만 볼 수 있도록 하려는 목적입니다. 리액트의 컴포넌트는 두가지 방식으로 작성할 수 있습니다. class 컴포넌트와 function 컴포넌트 입니다. function 컴포넌트는 hook 이 공식적으로 리액트에서 사용됨에 따라서 class => function 컴포넌트로 많이 넘어오고 있습니다. class 와 function 을 함께 사용하고 있거나 마이그레이션을 하려면 두 방식에 대한 생명주기를 모두 이해하고 있어야 합니다. 그래서 두가지 방식을 비교하면서 작성합니다. React lifecy..

Observer Pettern vs Pub-Sub Pettern

옵저버패턴과 발행-구독 패턴의 가장 큰 차이점은 중간에 Message Broker 나 Event Bus가 존재하는지 여부입니다. 옵저버패턴은 옵저버와 Subject 가 서로를 인지하지만 발행-구독 패턴은 서로를 전혀 몰라도 상관 없습니다. 때문에 발행-구독 패턴이 결합도가 더 낮습니다. 옵저버 패턴은 동기방식으로 주로 동작하고 발행-구독 패턴은 비동기 방식으로 동작합니다.

프론트엔드/CS 2021.12.14

자바스크립트 배열 다루기

자바스크립트에서 배열을 다룰때 주의해야할 몇가지 내용들이 있습니다. 그 중에 가장 중요하다 생각하는건 Immutability (불변성) 입니다. 즉 원본 배열을 수정하느냐 아니면 새로운 배열을 만들어 내느냐에 대한 기본적인 이해를 바탕으로 사용해야 사이드 이펙트를 피할 수 있습니다. 원본 배열을 수정 Array.prototype.push Array.prototype.pop 대표적인 배열 원본을 수정하는 메소드입니다. push 는 배열의 가장 마지막에 값을 추가하고 pop 은 가장 마지막의 값을 추출합니다. const arr = [1, 2, 3, 4, 5] arr.push(10) // [1, 2, 3, 4, 5, 10] arr.pop() // [1, 2, 3, 4, 5] Array.prototype.shi..

Utility Tyes - Typescript

타입스크립트의 Utility Types 사용법을 알아두면 유용하게 사용할 수 있습니다. interface User { name: string; age: number; } 여기 간단하게 생성된 User Interface 가 있습니다. 해당 인터페이스를 사용했을때 해당 객체는 name, age 두 데이터를 모두 갖고 있어야 에러가 발생하지 않습니다. 만약 둘중에 하나의 값만 필요한 경우와 두 값이 모두 필요한 경우가 생긴다면 여러개의 interface 가 필요합니다. inerface UserOptionalName { name?: string; age: number; } inerface UserOptionalAge { name: string; age?: number; } interface UserOptiona..

넥스트스텝 블랙커피JS level 1 (1)

소문으로만 들었던 넥스트스텝의 블랙커피JS 레벨1 과정을 드디어 신청하게 되었습니다. 꽤 오래전부터 레벨1부터 3까지 다 해보고싶었는데 항상 때를 놓쳤었는데 올해가 가기전에 드디어 레벨 1 스터디에 참여하게 되었네요. 참여계기 커뮤니티 스터디를 통한 피드백 필요 프로젝트 구조와 코드 작성에 대한 깊은 고민 자바스크립트 라는 언어에 대한 더 깊은 이해 이런 이유로 참여하게 되었습니다. 총 4주간에 걸쳐 프로젝트를 진행하게되고 3개의 step 이 존재합니다. 4주인데 스텝은 3개인 이유는 1주는 일부러 여유분 시간을 둔다고 하네요. 이 기간에 리팩토링이나 버그수정 혹은 미처 구현하지못한 부분을 추가로 진행하면 된다고 합니다. 첫주 첫 모임 OT 때 임의로 여러 사람들과 팀으로 묶어주고 팀명을 정하게됩니다. ..

리액트 라우터 이해하기

11월 3일 react-router v6 가 릴리즈 되었습니다. 그동안 당연하게 사용하고있던 라우터에 대해서 어떤방식으로 동작하는지 기존에 어떤 문제들을 해결하고자 하였는지 알아보려고합니다. 용어정의 라우터란? 라우터(라우팅 기능을 갖는 공유기)는 컴퓨터 네트워크간에 데이터 패킷을 전송하는 네트워크장치이다. 패킷의 위치를 추출하여 그 위피에 대한 최적의 경로를 지정하며, 이 경로를 따라 데이터 패킷을 다음 장치로 전달한다. - 위키백과 - 라우터라고 하면 일반적으로 네트워크 장치를 말합니다. 중계기라고도 볼 수 있으며 서로 다른 네트워크간에 경로를 전달하는 역할을 담당하고 있습니다. 리액트에서 사용하고 있는 라우터또한 물리적인 중계기는 아니지만 각각의 컴포넌트 페이지 간에 경로전달을 담당하고 있습니다. ..

단방향 연결리스트 - 선형구조

연결리스트는 배열과 많이 비교되고는 합니다. 배열은 연속된 데이터의 나열입니다. 메모리상에 0 번부터 n 번까지 순차적으로 값이 할당되어 있으며 접근시 O(1) 의 시간복잡도를 가집니다. 단점으로는 값을 추가하거나 제거할때 추가한만큼 추가한 값 이후 또는 이전의 값이 순회하면서 순차적으로 밀려나야 하기때문에 O(n) 의 시간 복잡도를 갖습니다. 이와 반대로 단방향 연결리스트는 연속될수도 아닐수도 있습니다. 각 데이터들은 노드라고 부르며 이 노드들은 각자 다음 노드를 가르키고 있습니다. 때문에 연결리스트에서는 다음값을 알기위해서는 처음부터 순차적으로 접근해야합니다. 이때 단방향이라고 부르는 이유는 이전노드가 다음 노드의 메모리정보만 갖고있기때문입니다. 단방향이 있으니 양방향 연결리스트도 있습니다. 이때 노..

프론트엔드/CS 2021.11.12
728x90
반응형