전체 글

프론트엔드 개발자가 되고픈 개미의 일대기 🐜
회고, 면접준비/Next.js Doc 번역

Next.js 번역 (notFound)

원본내용 : https://beta.nextjs.org/docs/api-reference/notfound Server Component Functions: notFound | Next.js API reference for the notFound function. beta.nextjs.org Not Found notFound 함수는 라우트 세그먼트 내에서 찾을 수 없는 파일을 렌더링하고, 태그를 삽입하는 것을 가능하게 합니다. [notFound()]() notFound() 함수를 호출하면 NEXT_NOT_FOUND 오류가 발생하며 해당 오류는 호출된 라우트 세그먼트의 렌더링을 중단시킵니다. 찾을 수 없는 파일을 지정하면 해당 오류를 우아하게 처리할 수 있으며, 해당 세그먼트 내에서 Not Found UI를..

CS/네트워크

1. JWT 토큰 인증과 (쿠키, 세션, 토큰)

서버가 클라이언트 인증을 확인하는 방식은 대표적으로 3가지가 있다. (쿠키, 세션, 토큰) 그럼 JWT를 보기전에 쿠키, 세션, 토큰에 대해 먼저 간단하게 알아보자! 쿠키(Cookie)인증 웹브라우저에서 쿠키(Cookie)는 서버가 사용자의 웹 브라우저에 전송하는 작은 데이터 조각으로, key=value 형식의 문자열 데이터 묶음이다. 브라우저는 이 문자열 데이터 조각들을 저장해놓았다가 동일한 서버에 재요청시 쿠키 데이터를 전송할 수 있다. 즉, HTTP 프로토콜은 기본적으로 무상태성을 가지고 있기 때문에 서버와 클라이언트 간의 연결 유지를 구현하기 위해 서로를 인식할 수 있는 식별데이터가 필요했다. 그것이 쿠키 데이터 조각이라고 생각하면 된다. 쿠키의 활용 크게 세션관리, 개인화, 트래킹에 사용된다. ..

프론트엔드/React

13. Context?? Redux??

이번 포스팅에서는 리액트에서 전역상태를 관리할 때 많이 사용하는 Context API 와 Redux의 사용법과 장단점을 써보려고한다. 먼저, Redux는 먼저 찍먹을 해보았었다. '프론트엔드/Redux' 카테고리의 글 목록 프론트엔드 개발자가 되고픈 개미의 일대기 🐜 jhbljs92.tistory.com 일단, 전역 상태 관리는 언제할까?? 지겹도록 사용했던 useState는 지역 상태를 관리했었다. 이는 사용하는 컴포넌트 안 또는 props로 전달할때는 하위 컴포넌트에서 사용했었다. 하지만 이렇게 props로 하나씩 계속 내려주고 하기에는 한계가 있었다. 즉, 다른컴포넌트에게 props를 사용하지않고 데이터를 넘겨주고싶었던 것이다. 이때 사용했던 전역상태 관리도구가 Redux, ContextAPI 등이..

프론트엔드/React

12. useReducer 문제 실습

총 3번에 걸쳐 리액트 Hook에 대해 알아보고 문제를 풀어보았다. 이번에 풀어본 useReducer는 리덕스를 먼저 한번 봐보고 풀어서 그런지 마지막 3번문제를 제외하고는 풀만 하였다. 하지만 아직까지 dispatch, reducer, useReducer에 각각 어떤 인자를 주어야하는지 헷갈린다. 이 개념은 리덕스에서까지도 계속 쓰이니 헷갈리지않게 계속 반복해서 완벽히 알아보도록하자. 문제 1. useReducer()를 이용하여 다음과 같은 결과를 출력하는 코드를 작성하세요. 1번 코드 풀이 useReducer 함수에 넣을 reducer인 priceReducer를 선언해준다. useReducer를 이용한 state를 0으로 초기화해준다. 클릭했을 때 dispatch 함수를 실행할 함수를 선언해준다. (..

프론트엔드/React

11. useState & useEffect & useRef 문제 실습

저번 state와 event 문제 실습에 이어서 리액트의 주요 hook인 useState, useEffect, useRef 훅을 실습해보는 문제를 풀어보았다. useEffect를 잘못 사용하여 무한렌더링이 되는 문제점을 찾아서 따로 useEffect를 사용할 때, 이러한 실수를 하지 않도록 알아보았다. 또한, useRef를 통해 리렌더링이 되지 않아도 되는 부분이 리렌더링이 되는것을 막을 수 있다. 문제 1. useState()를 사용하여 다음과 같은 결과가 출력되도록 해보시오. 1번 코드 풀이 먼저, 변수를 저장할 상태 eating을 초기화. input에서 onChange 이벤트가 발생할 때 value값을 담을 상태 value를 초기화. inputHandler 함수를 정의. input에서 onChang..

CS/자료구조

1. Stack & Queue (스택과 큐)

리액트와 리덕스에 치이다 보니 내일 있을 알고리즘 스터디공부를 이제야... 이번 알고리즘 공부는 스택과 큐를 공부하기로했다. 이번 공부를 하다가 자료구조와 알고리즘에 차이를 알게 되었다. 자료구조 : 데이터의 표현과 저장 방법을 의미 알고리즘 : 저장된 데이터를 처리하는 과정 자주쓰는 배열이 자료구조에 포함되어 있다고 생각하면 된다. 스택 (Stack) 스택은 push와 pop만 할 수 있으며, 실행이 되는 특정한 순서를 따르는 선형적 데이터 구조 즉, 책을 쌓는 것처럼 차곡차곡 쌓아 올린 형태의 자료구조. 스택(Stack)의 특징 스택 내부의 데이터는 top을 통해서만 접근할 수 있다. 스택에 데이터를 삽입할 때는, top위에 쌓게 된다. (push) 스택에서 데이터를 삭제할 때는, top에 위치한 데..

백엔드/Node

4. 브라우저의 렌더링 과정

스터디에서 이번주제로 정해진 브라우저의 렌더링 과정을 블로그를 작성하며 공부를 해보려고한다. 평소에 아무생각없이 들락거렸던 웹사이트들이 어떻게 작동되고 얼마나 복잡한일을 거친뒤 나오는건지 알아보도록하자. 그럼 브라우저에서의 렌더링과 파싱 단어부터 간단하게 무엇인지 알아보자 렌더링 (rendering) HTML, CSS, Javascript 파일을 파싱해, 브라우저에 시각적으로 출력하는 과정 파싱 (parsing) 프로그래밍 언어로 작성된 파일을 실행시키기 위해 구문 분석(syntax analysis)을 하는 단계 브라우저의 렌더링엔 과정이 있으므로 그 과정을 순차적으로 알아보도록하자 브라우저 렌더링의 과정 1. 브라우저는 HTML, CSS, JS, 이미지, 폰트 등 리소스를 서버에 요청하고, 응답으로 받..

프론트엔드/React

10. state & event 문제 실습

오늘은 state와 event를 실습해볼 수 있는 문제를 풀어보았다. 이번 문제들을 풀어봄으로써 useState의 사용법, 부모 컴포넌트에서 자식 컴포넌트로 props를 넘겨주기, onClick, onChange 등과 같은 이벤트주는방법 등을 더 확실히 알 수 있던 계기가 되었다. 1번 1번 문제는 비교적 간단하였다. state와 이벤트를 이용하여 아래와 같이 출력이 되게 하면되었다. 1번 코드 풀이 먼저, 클릭횟수를 저장하기 위해 counter 상태값을 만들어준다. 클릭이라는 버튼을 클릭하면 counter가 1이 증가하도록 하는 increase라는 함수를 만들어준다. increase함수에는 상태변경함수인 setCounter를 통해 상태 counter에 변화(counter+1)를 주었다. 버튼 밖으로 커..

프론트엔드/Redux

2. 구독 페이지 (리액트 리덕스)

오늘은 툴킷을 사용하지 않은 리덕스와 리액트 리덕스로 간단하게 컴포넌트 2개의 페이지를 만들어서 리덕스 활용법을 연습해보았다. 먼저, 리액트 리덕스를 사용하기 위해서는 npx create-react-app . 을 통하여 리액트앱을 생성해주고, npm i redux react-redux 위의 명령어를 통해 리덕스와 리액트 리덕스를 설치해줍니다. 설치가 완료되었다면, 리덕스와 리액트 리덕스를 사용할 준비가 끝났다 이전의 리덕스 포스팅에서 봤다시피 리덕스에서는 store, action, reducer가 매우 중요하다. 1. Redux 리덕스란? 리덕스 공홈에선 리덕스를 이렇게 설명하고 있다. Redux는 자바스크립트 앱을 위한 예측 가능한 상태 컨테이너 Redux는 여러분이 일관적으로 동작하고, 서로 다른 환..

프론트엔드/Redux

1. Redux

리덕스란? 리덕스 공홈에선 리덕스를 이렇게 설명하고 있다. Redux는 자바스크립트 앱을 위한 예측 가능한 상태 컨테이너 Redux는 여러분이 일관적으로 동작하고, 서로 다른 환경에서 작동하고, 테스트하기 쉬운 앱을 작성하도록 도와준다. 이게 무슨소리...?? 그냥 쉽게 데이터를 중앙집권화를 시켜서 데이터 사용 및 관리를 편하게 만들어주는 라이브러리 라고 생각하면된다. Redux에는 3가지의 원칙이 있다. 1. Single source of truth 동일한 데이터는 항상 같은곳에서 가지고 온다. 즉, 스토어라는 하나뿐인 데이터 공간이 있다는 의미 2. State is read-only 리액트에서는 setState 메서드를 활용해야만 상태변경이 가능 리덕스에서도 액션이라는 객체를 통해서만 상태변경이 가능..

plla2
코린이 "개미"의 개발블로그