분류 전체보기 65

리액트 심화 주차 필수 개념 정리(2)

[1-2] 비동기1 - 비동기, promise[1-5] json-server[1-6 ~ 1-7] axios의 GET, POST, DELETE, PATCH, fetch와의 비교[1-10] tanstack query 기본 사용법 (매우중요)[1-15] zustand 기본 사용법[1-20] 인증인가 개념 실습[1-21] tailwind   [1-6 ~ 1-7] axio의 GET, POST, DELETE, PATCH, fetch와 비교 axios란?node.js 브라우저를 위한 Promise 기반 http 클라이언트라고 소개하고 있다. 즉, http를 이용해서 서버와 통신하기 위해 사용하는 패키지이다.    설치yarn add axios json-server 설정{ "todos": [ { "id..

강의 2024.09.06

리액트 심화 주차 필수 개념 정리(1)

필수 개념은 다음과 같다.[1-2] 비동기1 - 비동기, promise[1-5] json-server[1-6 ~ 1-7] axios의 GET, POST, DELETE, PATCH, fetch와의 비교[1-10] tanstack query 기본 사용법 (매우중요)[1-15] zustand 기본 사용법[1-20] 인증인가 개념 실습[1-21] tailwind  [1-2] 비동기, promise동기: 순차적으로 진행, 요청을 보내고 응답을 기다린다.(ex 주문 후, 커피가 나올 때까지 기다려주세요!  다음사람들은 아직 주문 못한 상태로 기다리는중...) 비동기: 비순차적으로 진행, 요청을 보내고 응답을 기다리지 않고 바로 다음 작업을 진행한다.(ex 주문 후, 진동벨이 울리면 커피를 가지러 오세요! 모든 사람..

강의 2024.09.06

맛집 뉴스피드 프로젝트 마무리 및 KPT회고

오늘은 뉴스피드 팀프로젝트의 발표날이다!따라서 어제는 트러블 슈팅을 진행하였다. 3가지 오류를 발견하였는데 그 부분에 대해서 블로그에 담아보겠다! 1. 배포 시, SVG 이미지 파일이 깨지는 문제2. 수정 완료 후 마이페이지 네비게이션 문제3. 로그인 페이지에서 뒤로가기 버튼의 위치 문제  ...  1. 배포 시, SVG 이미지 파일이 깨지는 문제 문제 설명: React 프로젝트를 Vercel로 배포할 때, SVG 이미지 파일이 제대로 렌더링되지 않고 깨지는 현상이 발생했다. 이는 주로 상대경로로 설정해서 문제이거나 스타일드 컴포넌트 사용시 동적 이미지 스타일링을 해서 문제점이 발생할 수 있다. 해결 방법: Lucide 아이콘 라이브러리 사용  이 문제를 해결하기 위해 Lucide 아이콘 라이브러리를 사..

팀프로젝트 2024.09.04

맛집 뉴스피드 프로젝트 중간점검

작성 폼 페이지 기능 구현을 거의 다 완성하였지만 문제점이 생겼다.... 오늘은 그것에 대해서 어떻게 해결했는지 블로그에 담아보겠다!!     React에서 게시글 수정 시 이미지 파일 처리 문제와 해결 방안  1. 문제 상황게시글 작성과 수정시 모든 필드(이미지 포함)에 대한 빈칸 유효성 검사를 구현했다.수정 시 기존 이미지 파일을 Supabase에서 불러오는데 어려움이 있었다.이로 인해 사용자가 이미지를 변경하지 않더라도 새 이미지를 업로드 해야만 유효성 검사를 통과할 수 있는 문제가 발생했다. 2. 원인 분석Supabase에서 이미지 파일 자체를 불러오는 것이 기술적으로 복잡했다.파일 시스템이나 스토리지 서비스에서 직접 파일을 가져오는 것은 보안 및 성능 이슈를 이야기 할 수 있다. 3. 임시 해결..

팀프로젝트 2024.09.02

뉴스피드 프로젝트 작성폼 페이지 구현하기

내가 맡은 부분은 작성폼 페이지이다! 오늘은 작성폼 페이지 기능구현에 대해서 블로그를 써보겠다.          1. 상태 관리일단 상태관리는 useState 훅을 사용하여 폼데이터를 관리한다. 각 입력 필드에 대한 상태를 하나의 객체로 관리하고 있다.const [formData, setFormData] = useState({ storeName: '', image: null, address: '', region: '', rating: '', review: ''});     2. Context 사용PostContext를 통해 전역 상태를 관리하고 있다. 이를 통해 게시물 목록을 업데이트할 수 있다.const { posts, setPosts } = useContext(PostContext);   ..

팀프로젝트 2024.08.30

알고리즘 코드카타 (약수의 개수와 덧셈)

오늘은 알고리즘 코드카타 문제를 풀어보겠다~~!!요즘 팀프로젝트 때문에 바빠서 알고리즘 문제를 풀었어도 블로그에 올리지 못했다ㅜㅜ     Q. 약수의 개수와 덧셈두 정수 left 와 right 가 매개변수로 주어집니다. left 부터 right 까지의 모든 수들 중에서, 약수의 개수가 짝수인 수는 더하고, 약수의 개수가 홀수인 수는 뺀 수를 return하도록 solution 함수를 완성해주세요. 1 ≤ left ≤ right ≤ 1,000 leftrightresult131743242752  다음 표는 13부터 17까지의 수들의 약수를 모두 나타낸 것입니다.수약수약수의 개수131, 132141, 2, 7, 144151, 3, 5, 154161, 2, 4, 8, 165171, 172 따라서, 13 + 14 ..

알고리즘 2024.08.30

리액트 뉴스피드 프로젝트 초기

뉴스피드란?뉴스피드(Newsfeed)는 소셜 미디어나 콘텐츠 폴렛폼에서 사용자에게 최신 정보나 업데이트를 실시간으로 보여주는 기능을 말한다. 페이스북이나 인스타그램의 홈 화면을 떠올리면 된다.     오늘은 리액트 첫 팀프로젝트이다. 바로 뉴스피드를 만드는 것이다. 내가 팀장이라서 떨린다.......>_  뉴스피드 기능을 사용해 우리 8조는 맛있는 경험을 다른 사람들과 공유하고, 새로운 맛집을 발견할 수 있는 플랫폼을 만들 것이다. 사용자들이 올린 최신 맛집 리뷰, 추천, 사진 등이 실시간으로 업데이트되어 피드 형태로 보여지게 된다. 이를 통해 사용자들은 다른 사람들의 맛집 경험을 쉽게 확인하고, 새로운 맛집 정보를 빠르게 얻을 수 있게 된다!     기획안1. 와이어 프레임피그마를 사용하여 대략적인 와..

팀프로젝트 2024.08.28

로그인 기능 구현하기

오늘은 React를 사용하여 구현한 로그인 컴포넌트에 대해 살펴보겠다. 이 컴포넌트는 회원가입, 로그인, 로그아웃 기능을 모두 포함하고 있어 실제 애플리케이션에서 활용도가 높을 것이다! 다만 supabase 연결하기 전 단계라 데이터 저장은 안된다는 제약이 있다.      시연 영상     1. 현재 구현 상태  현재 이 로그인 컴포넌트는 프론트엔드 로직만을 구현한 상태이다. 실제 데이터베이스나 인증 서비스와의 연동은 아직 이루어지지 않았다. 대신 setTimout을 사용하여 비동기 작업을 시뮬레이션하고 있다.const handleSubmit = (e, action) => { e.preventDefault(); setLoading(true); setTimeout(() => { setLoad..

개인과제 2024.08.27

리액트로 만든 나만의 포켓몬 도감: 일주일간의 도전과 성장

오늘은 특별한 이야기를 하려고 한다. 바로 일주일 동안 몰두했던 리액트 숙련 과제, '나만의 포켓몬 도감' 프로젝트에 대한 이야기이다.포켓몬 도감 마스터를 향한 7일간의 여정이다. 이번 과제는 단순한 코딩 연습이 아닌, 기능 구현에 심혈을 기울이는 것은 물론이고, CSS 디자인에도 내 창의력을 쏟아부었다. 그 결과, 나름 그럴싸한 포켓몬 도감이 탄생했다!  7일간의 여정이 순탄했던 것만은 아니다. 수많은 오류와 난관에 부딪혔고 좌절도 느꼈다. 하지만 그 모든 과정에 내게는 값진 경험이 되었다. 어떤 문제들을 만났고, 그것을 어떻게 해결해 나갔는지 이야기를 이 블로그에 담아보려고 한다🌟  포켓몬의 세계로의 여행 지금 시작합니다!🚀🌈   # 사진  # 시연 영상시연 영상      🚀 포켓몬 도감 개발..

개인과제 2024.08.26

제일 작은 수 제거하기

Q.  정수를 저장한 배열, arr에서 가장 작은 수를 제거한 배열을 리턴하는 함수, solution을 완성해주세요. 단, 리턴하려는 배열이 빈 배열인 경우엔 배열에 -1을 채워 리턴하세요. 예를 들어 arr이 [4, 3, 2, 1]인 경우 [4, 3, 2]를 리턴하고 [10]이면 [-1]를 리턴합니다.  제한 조건arr은 길이 1이상인 배열입니다.인덱스 i, j에 대해 i ≠ j 이면, arr[i] ≠  arr[j] 입니다. 입출력 예arrreturn[4, 3, 2, 1][4, 3, 2][10][-1]   function solution(arr) { if(arr.length num !== min ); return newArr;} 함수의 동작 방식:먼저 배열의 길이가 1 이하인지 확인하..

알고리즘 2024.08.26