Front
-
[ React ] ForwardRef + useImperativeHandler 자식 컴포넌트 함수 사용하기Front/React 2025. 12. 10. 14:19
현재 react-data-grid를 활용하여 그리드를 만들어 보고 있어서이때 그리드의 행,열 추가 및 삭제 기능을 자식컴포넌트에서 다루는게 편하것같아서 부모쪽에서는 그냥 자식컴포넌트의 함수만 호출 하도록 처리하기 위해forwardRef와 useImperativeHandle을 사용ForwardRef더보기ref 연결한 대상의 인스턴스나 객체를 ref.current에 연결시켜주는 역할을 한다. DOM이면 DOM 객체 연결클래스 컴포넌트면 컴포넌트 인스턴스 연결export default forwardRef(function MetaGrid(props: Props, ref: React.Ref) { return ( )} props는 함수형 컴포넌트에서 전달할 파라미터 타입이고, forwardRef를 사용했기때문..
-
[ Next ] Alert, Confirm 커스텀 HookFront/Next 2025. 12. 5. 13:47
alert이나 confirm을 직접 커스텀하여 만들려고 하기에직접 커스텀 hook을 만들어서 사용했다. context는 전역 데이터를 전달하기 위한 것이며 provider를 통해 값을 넣어준다.provider는 context에 값을 넣어주는 역할을 하며, provider로 감싼 범위 안에 있는 컴포넌트들이 context에 있는 값에 접근 할 수 있도록 해준다.hook은 provider가 context에 넣은 값을 가져오는 함수 역할을 해준다. Context 데이터를 저장할 context생성alert과 confrim만 사용하기에 alert과 confirm 함수를 받을 수 있도록 타입을 정의import { createContext } from "react";export interface DialogCont..
-
[ Next ] KaKao 지도 API 사용하기Front/Next 2025. 9. 28. 16:22
검색한 장소를 카카오 지도에 표시하기 위해서 카카오지도 api를 활용했다. 카카오 개발자 센터에서 api를 발급받고 난후 카카오 지도는 Javascript Key를 사용한다.Initializedkakao sdk를 사용하기위해 해당 라이브러리를 설치해준다.react-kakao-maps-sdk는 kakao map을 react에서 편하게 쓸 수 있게 되어있는 라이브러리이어서좀 더 편하게 사용할 수 있다. 예전에는 ref로 직접 참조해서 사용했었는데 해당 라이브러리를 사용하면 단순히 컴포넌트만 불러와서 사용할 수 있어서 편하다.npm install react-kakao-maps-sdk 이후 .env.local파일에 환경변수를 등록해준다.앞에 NEXT_PUBLIC을 안붙히면 route에서만 해당 환경변수를 불러올..
-
[ Next ] Redis 사용하여 캐시 관리Front/Next 2025. 9. 28. 02:09
네이버랑 카카오 api를 활용하여 데이터를 가져오는 프로젝트를 하고 있는데이 경우에 계속 api를 호출하면 횟수가 금방 줄어들기때문에 이를redis를 활용하여 캐시 관리하여 횟수를 줄이고자 했다. upstash를 활용하여 redis를 사용하기로 했다.Upstash는 Redis나 Kafka를 서버리스 방식으로 사용할 수 있는 서비스이다.https://upstash.com/ Upstash: Serverless Data PlatformUpstash is a serverless data platform providing low latency and high scalability for real-time applications. Optimize your data infrastructure with Upstash'..
-
[ Next ] MongoDB 연결Front/Next 2025. 9. 27. 23:57
db를 사용하기 위해 간단한 정보를 저장할 것이기에 무료 클라우드 DB인 mongoDB를 사용하기로 했다. Installment우선 mongoDB를 사용하기 위해 mongoDB라이브러리를 설치npm install mongodbInitalizedmongoDB 페이지를 에서 connect 버튼을 누르면 connect정보를 준다. 이를 .env.local에 환경변수를 등록 이때 env.local에 환경변수를 저장할때는 따옴표 안에 넣어서 사용 이상하게 따옴표안에 안넣으면 계속 DB연결에서 오류가 발생했다. 이후 mongoDB util파일을 만든다.이는 매번 DB를 호출할때 DB를 연결을 하지 않기 위해서처음 실행했을때 해당 유틸이 실행되면서 client instatnce에 연결정보를..
-
[ Next ] Ably Realtime 무료 소켓 활용하여 채팅 만들기Front/Next 2025. 9. 27. 23:18
채팅 기능을 구현하기 위해 무료로 사용할 수 있는 소켓을 찾아서 이걸 활용하고자 했다. https://ably.com Login to your Ably dashboardAbly provides a suite of APIs to build, extend, and deliver powerful digital experiences in realtime. Organizations like Toyota, Bloomberg, HubSpot, and Hopin depend on Ably’s platform to offload the growing complexity of business-critical realtime dataably.com 우선 ably에서 회원 가입을 한 후 새로운 프로젝트를 생성ably에서 발급..
-
[ Next ] webpack 활용 svg iconFront/Next 2025. 9. 10. 23:46
next js 에서 svg icon사용할때는 SVG 아이콘을 컴포넌트로 직접 만들어서 사용하는 방법과 webpack을 이용해서그냥 사용하는 방법이 있는데svg를 추가할때마다 계속 컴포넌트로 만들어주는게 귀찮을 것같고,vue처럼 svg icon컴포넌트를 만들까 하다가 지금 진행하는 프로젝트에서는 svg icon을 많이 쓰지는 않을 것같아서 그냥 진행하기로 했다. Installment우선 webpack을 설치npm install --save-dev @svgr/webpack 이후 next.config.ts 파일에서 turbopack에 아래 규칙을 넣어준다.turbopack을 사용하면 turbopack에 규칙을 넣어줘야하고, turbopack을 사용하지 않으면 webpack에 규칙을 넣어주면 된다.import ..
-
[ Vue ] Spinner Delay 적용해서 사용하기Front/Vue 2025. 9. 2. 22:13
로딩하는 과정을 표현하기 위해서 spinner를 이용spinner component는 이렇게 만들어서 사용 그럼 이런 식의 모양의 spinner 가 나오며 border는 스피너의 크기이며, border-top-color는 spinner의 로딩바 색상을 나타낸다.그럼 spinner는 기본적으로 로딩 시작 전후로 나뉘어서 나타났다가 사라져야하므로 이 기능을 구현 하기 위해 true false변수를 사용store를 사용하여 spinner의 렌더링 여부를 결정const loadingSpinner = ref(false); 사용시에는 이 loadingSpinner의 값만 타이밍에 맞춰서 바꿔주기만 하면 된다.하지만 단순히 이렇게 설정한 경우에는 바로 요청시 spinner가 돌면 결과가 엄청 빨리 return되는 ..