dev + it dev java vscode vscode에서 Java 클래스 경로 추가하는 방법Eclipse로 설계된 Java를 Pycharm이나 vscode로 실행하다 보면 기존의 Class 경로 설정이 맞지 않아 분명 같은 패키지 안에 있는 파일이 인식되지 않는 문제를 최근 경험하곤 합니다. vscode에서 path를 설정하는 방법이 있는지 열심히 찾아보니 그냥 프로젝트 내에 있는 파일인 '.classpath'를 수정하면 된다는군요. 일단 .classpath가 목록에 보이지 않는 분께서는 아래 주소를 통해 .classpath를 찾아보도록 합니다. https://hyunchang88.tistory.com/320 [ vscode ] .classpath가 안보일때 보이게 하는 방법 vscode를 사용한지 얼마 안되어서 검색을 해봤는데 .classpath 에서 뭔가를 수정하라고 해서 수정하려고 보니 .. wono | discuss | tweet + it dev java [VScode]JDK 버전변경 & error해결Configure Runtime for Language Server 이런 문구나1. 시스템 환경 변수 확인※ 버전을 여러개로 사용하실 예정이면 이전 버전 삭제 안해도 됩니다! 이제 세가지를 확인해야 하는데요.참고로 사용자 변수는 아닙니다. 건들지 마세요.JAVA_HOME없다면 '새로만들기(N)'를 클릭하시고, 있다면 편집을 클릭해주세요.변수 이름 : JAVA_HOME변수 값 : jdk경로를 아래처럼 적어주면 되는데,C:\Program Files\Java까지는 동일하게 들어가 있을 겁니다.이 폴더에 jdk버전들이 모아져 있습니다. 사용할 버전의 폴더를 클릭해 경로를 복사해 가져오면 됩니다.CLASSPATH이렇게 그대로 만드시면 됩니다.변수 이름 : CLASSPATH변수 값 : %JAVA_HOME%\libP.. wono | discuss | tweet + it dev typescript Typescript tutorialBlack-belt your web development skills. Over 2000 free programming tutorial videos about:- Modern JavaScript (beginner to advanced)- Node.js- React- Vue.js- ... wono | discuss | tweet + it dev react typescript React typescript tutorial for beginnerYouTube에서 마음에 드는 동영상과 음악을 감상하고, 직접 만든 콘텐츠를 업로드하여 친구, 가족뿐 아니라 전 세계 사람들과 콘텐츠를 공유할 수 있습니다. wono | discuss | tweet + it dev react [React] 제어 컴포넌트(Controlled Component)와 비제어 컴포넌트(Uncontrolled Component)React에서는 Form을 다루는 2가지 방법이 있는데, 바로 제어 컴포넌트(Controlled Component)와 비제어 컴포넌트(Uncontrolled Component)이다. 과연 제어 컴포넌트(Controlled Component)와 비제어 컴포넌트(Uncontrolled Component)는 무엇인지 지금부터 알아보도록 하자. 1. 제어 컴포넌트(Controlled Component) 💡 React 공식 문서에서 제어 컴포넌트(Controlled Component)에 대한 설명은 다음과 같다. 제어 컴포넌트는 사용자의 입력을 기반으로 자신의 state를 관리하고 업데이트합니다. React에서는 변경할 수 있는 state가 일반적으로 컴포넌트의 state 속성에 유지되며 setState()에 의.. wono | discuss | tweet + it dev react form hook resolvers [React] react-hook-form으로 폼 관리하기React Hook Form은 사용자 입력을 받고 검증하는 것을 도와 주는 라이브러리로, React에서 폼을 관리하는 가장 유명한 라이브러리 중 하나입니다. React Hook Form을 사용하면 사용자에게 입력을 받고 검증하는데 드는 시간을 줄일 뿐만 아니라 더불어 성능까지 두 마리 토끼를 모두 잡을 수 있습니다. wono | discuss | tweet + it dev shadcnui dialog [shadcn/ui] Dialog, Alert Dialog Component 구현기🍀 목차Shadcn/ui Dialog(+Alert Dialog) 뜯어보기 & 속성 설명UI 커스텀과 작성한 스토리회고 개요 Modal Component는 현재 제품에서 가장 많이 쓰이는 컴포넌트 중 하나다. Avatar Component처럼 처음부터 인터페이스 제작 -> UI 구현까지 하기에는 시간이 부족하여 shadcn/ui의 Dialog, Alert Dialog를 제품에 맞게 커스텀하기로 결정하였다.시작하기에 앞서 Modal, Confirm, Alert의 차이를 알아봤다.Modal : 주의가 필요하거나 추가 정보를 제공하는 팝업 콘텐츠. 텍스트, 양식 입력 같은 다른 대화형 요소를 포함할 수 있고 사용자가 Modal 외부를 클릭하거나 특정 버튼(닫기, 취소, 저장)을 클릭할 때까지 다른 인터페이.. wono | discuss | tweet + it dev tailwindcss prettier Automatic Class Sorting with Prettier - Tailwind CSSPeople have been talking about the best way to sort your utility classes in Tailwind projects for at least four years. Today we’re excited to announce that you can finally stop worrying about it with the release of our official Prettier plugin for Tailwind CSS. wono | discuss | tweet + it dev zustand typescript TypeScript Guide - Zustand wono | discuss | tweet + it dev typescript useRef, useImperativeHandle, forwardRefuseRef와 useImperativeHandle은 ref라는 속성에 적용하는 값을 만들어 주는 훅이다. 리액트와 리액트 네이티브가 제공하는 컴포넌트는 모두 ref라는 이름의 속성을 가지고 있다.ref 속성이란?Ref는 참조를 의미한다.ref 속성값은 사용자 코드에서 설정하는 것이 아니라, 특정 시점에 React 프레임워크 내부에서 설정해 준다. ref 속성은 초기에는 null이지만, 컴포넌트가 마운트 되는 시점에서 실제 DOM 객체의 값이 된다.HTML 요소들은 자바스크립트에서 DOM 타입 객체이다. 모든 요소는 HTMLElement 타입이며, click(), blur(), focus() 메서드를 제공한다. 이 메서드들은 가상 DOM 상태에서는 호출할 수 없고, 실제 DOM 상태에서만 호출할 수 있다... wono | discuss | tweet + it dev react forwardref Using forwardRef in other component got type error wono | discuss | tweet + it dev typescript htmlinputelement Property 'value' does not exist on type 'never'. when use useRef hook in mui wono | discuss | tweet + it dev react strict useEffect 잘못 쓰고 계신겁니다.https://nextjs.org/docs/14/app/api-reference/next-config-js/reactStrictMode wono | discuss | tweet + it dev typescript unknown [101] 타입스크립트의 unknown 타입TypeScript에서 unknown 타입은 any와 혼동될 수 있지만, 코드 안전성에 있어 결정적인 차이를 만듭니다. unknown을 효과적으로 사용하면 React 애플리케이션의 안정성과 오류 방지를 크게 향상시킬 수 있습니다. 이 글에서는 unknown 타입을 활용한 안전한 타입 검사 기법을 React 애플리케이션을 중심으로 자세히 살펴봅니다.1. unknown 타입의 기본 개념unknown 타입은 말 그대로 "알 수 없는" 타입을 나타냅니다. 어떤 값이 올지 확실하지 않을 때 unknown을 사용할 수 있으며, 이는 값을 사용하기 전에 반드시 그 타입을 확인해야 한다는 특징이 있습니다.let unknownValue: unknown;unknownValue = 100; // 숫자 할당 가능unknow.. wono | discuss | tweet + it dev nextjs redis [REDIS] 📚 Node.js 에서 redis 모듈 사용법 (캐싱 & 세션 스토어)Node 프로젝트에서 pm2로 다중 클러스터 인프라를 구축했다면 세션 불일치 문제가 생기게 마련이다. 만일 서버가 종료되어 메모리가 날라가면 접속자들의 로그인이 모두 풀려버리게 된다. 따라서 이를 방지하기 위해 세션 아이디와 실제 사용자 정보를 외부 데이터베이스에 저장하는 편이다. 이때 개발자들이 많이 사용하는 것이 Redis db이다. 다른 데이터베이스를 사용해도 되지만, 세션은 빠릿빠릿하게 응답을 해야되기 떄문에 메모리 기반의 데이터베이스인 레디스를 사용한다. 지금부터 Node 프로젝트에서 Redis와 연결하고 사용하는 법을 알아보자. Redis Database 설치 레디스를 로컬에 설치해도 되고, 클라우드로도 사용할 수가 있다. 마음에 드는 것을 골라 설치하자. 개인적으로 로컬 보다는 클라우드로 하.. wono | discuss | tweet + it dev nextjs React에서 중복호출(aka. 따닥)을 막는 완벽한 방법서언 안녕하세요. 최근에 퀄리티 높은 프론트엔드 제품을 만드는 것에 관심이 많은데요. 사소해보이는 디테일을 얼마나 능숙히 처리하느냐가 프론트엔드 개발자의 실력 척도 중 하나라고 생각했어요. 저는 여러 원칙들을 세우고 있지만, 오늘은 중복호출 (aka 따닥)을 방지하는 완벽한 방법을 탐구해볼 것입니다. 문제인식 서비스를 개발하다가, 중복호출이 발생해서 여러 문제가 발생하는 경우가 있습니다. 결제 요청이 2번 들어갈 수도 있고, 게시물 작성이 2번 될 수도 있고, 댓글이 2번 써질 수도 있습니다. 이로 인해 비즈니스적으로도 영향을 미칠 수도 있습니다. 작게는 서버 에러 수가 많아져서, noisy 해질 수 있죠. 이만큼 중요도가 높고, 프론트엔드 퀄리티에 큰 역할을 한다고 생각했는데요. 실제로 저도 명확한 해.. wono | discuss | tweet + it dev nextjs [react 리액트] 초간단 중복 클릭 못하게 하기 (feat. 로딩화면)1. 어떻게?state를 통해 버튼을 누르면 완료될때까지 버튼의 클릭 기능을 없애서 중복 클릭을 못하게 함. 2. 적용1) 불리언 타입의 State 를 만들어 준다. const [isBtnDisable, setIsBtnDisable] = useState(false); 2) 버튼의 state (true, false) 두가지 상태를 정의해준다.*여기선 버튼 대신 이미지를 사용하였다. *클릭 후 처리 중엔 아예 클릭이 불가능하게 하였다. - 클릭 전 (onClick 프로퍼티가 있음)isBtnDisable === false 일 때 버튼은 이렇고 // isBtnDisable === false && - 클릭 후 (onClick 프로퍼티가 없음)isBtnDisable === true 일 때 (클릭 후) 버튼은 이렇다.. wono | discuss | tweet + it dev nextjs (React) 커머스 프로젝트 : 결제 버튼 중복 클릭 방지하기버그를 유발하는 유저의 "이상행동"을 예측하면서 코드를 작성하기란 여간 쉬운 일이 아니다. wono | discuss | tweet + it dev nextjs NextJS 13 <button onClick={}> Event handlers cannot be passed to Client Component props wono | discuss | tweet + it dev nextjs script Next.js에서 Script Component 효과적으로 사용하기Next.js로 스크립트 태그를 추가하다 점차 추가하다 보면 \_document.tsx 안에 많은 script 태그들이 생겨나게 된 적이 있었어요. 처음에는 \_document 파일이 뭔지도 모르고 모든 스크립트 태그 들을 다 집어 넣었던 적도 있었어요. 이래서 꼭 공 wono | discuss | tweetNext
+ it dev java vscode vscode에서 Java 클래스 경로 추가하는 방법Eclipse로 설계된 Java를 Pycharm이나 vscode로 실행하다 보면 기존의 Class 경로 설정이 맞지 않아 분명 같은 패키지 안에 있는 파일이 인식되지 않는 문제를 최근 경험하곤 합니다. vscode에서 path를 설정하는 방법이 있는지 열심히 찾아보니 그냥 프로젝트 내에 있는 파일인 '.classpath'를 수정하면 된다는군요. 일단 .classpath가 목록에 보이지 않는 분께서는 아래 주소를 통해 .classpath를 찾아보도록 합니다. https://hyunchang88.tistory.com/320 [ vscode ] .classpath가 안보일때 보이게 하는 방법 vscode를 사용한지 얼마 안되어서 검색을 해봤는데 .classpath 에서 뭔가를 수정하라고 해서 수정하려고 보니 .. wono | discuss | tweet
+ it dev java [VScode]JDK 버전변경 & error해결Configure Runtime for Language Server 이런 문구나1. 시스템 환경 변수 확인※ 버전을 여러개로 사용하실 예정이면 이전 버전 삭제 안해도 됩니다! 이제 세가지를 확인해야 하는데요.참고로 사용자 변수는 아닙니다. 건들지 마세요.JAVA_HOME없다면 '새로만들기(N)'를 클릭하시고, 있다면 편집을 클릭해주세요.변수 이름 : JAVA_HOME변수 값 : jdk경로를 아래처럼 적어주면 되는데,C:\Program Files\Java까지는 동일하게 들어가 있을 겁니다.이 폴더에 jdk버전들이 모아져 있습니다. 사용할 버전의 폴더를 클릭해 경로를 복사해 가져오면 됩니다.CLASSPATH이렇게 그대로 만드시면 됩니다.변수 이름 : CLASSPATH변수 값 : %JAVA_HOME%\libP.. wono | discuss | tweet
+ it dev typescript Typescript tutorialBlack-belt your web development skills. Over 2000 free programming tutorial videos about:- Modern JavaScript (beginner to advanced)- Node.js- React- Vue.js- ... wono | discuss | tweet
+ it dev react typescript React typescript tutorial for beginnerYouTube에서 마음에 드는 동영상과 음악을 감상하고, 직접 만든 콘텐츠를 업로드하여 친구, 가족뿐 아니라 전 세계 사람들과 콘텐츠를 공유할 수 있습니다. wono | discuss | tweet
+ it dev react [React] 제어 컴포넌트(Controlled Component)와 비제어 컴포넌트(Uncontrolled Component)React에서는 Form을 다루는 2가지 방법이 있는데, 바로 제어 컴포넌트(Controlled Component)와 비제어 컴포넌트(Uncontrolled Component)이다. 과연 제어 컴포넌트(Controlled Component)와 비제어 컴포넌트(Uncontrolled Component)는 무엇인지 지금부터 알아보도록 하자. 1. 제어 컴포넌트(Controlled Component) 💡 React 공식 문서에서 제어 컴포넌트(Controlled Component)에 대한 설명은 다음과 같다. 제어 컴포넌트는 사용자의 입력을 기반으로 자신의 state를 관리하고 업데이트합니다. React에서는 변경할 수 있는 state가 일반적으로 컴포넌트의 state 속성에 유지되며 setState()에 의.. wono | discuss | tweet
+ it dev react form hook resolvers [React] react-hook-form으로 폼 관리하기React Hook Form은 사용자 입력을 받고 검증하는 것을 도와 주는 라이브러리로, React에서 폼을 관리하는 가장 유명한 라이브러리 중 하나입니다. React Hook Form을 사용하면 사용자에게 입력을 받고 검증하는데 드는 시간을 줄일 뿐만 아니라 더불어 성능까지 두 마리 토끼를 모두 잡을 수 있습니다. wono | discuss | tweet
+ it dev shadcnui dialog [shadcn/ui] Dialog, Alert Dialog Component 구현기🍀 목차Shadcn/ui Dialog(+Alert Dialog) 뜯어보기 & 속성 설명UI 커스텀과 작성한 스토리회고 개요 Modal Component는 현재 제품에서 가장 많이 쓰이는 컴포넌트 중 하나다. Avatar Component처럼 처음부터 인터페이스 제작 -> UI 구현까지 하기에는 시간이 부족하여 shadcn/ui의 Dialog, Alert Dialog를 제품에 맞게 커스텀하기로 결정하였다.시작하기에 앞서 Modal, Confirm, Alert의 차이를 알아봤다.Modal : 주의가 필요하거나 추가 정보를 제공하는 팝업 콘텐츠. 텍스트, 양식 입력 같은 다른 대화형 요소를 포함할 수 있고 사용자가 Modal 외부를 클릭하거나 특정 버튼(닫기, 취소, 저장)을 클릭할 때까지 다른 인터페이.. wono | discuss | tweet
+ it dev tailwindcss prettier Automatic Class Sorting with Prettier - Tailwind CSSPeople have been talking about the best way to sort your utility classes in Tailwind projects for at least four years. Today we’re excited to announce that you can finally stop worrying about it with the release of our official Prettier plugin for Tailwind CSS. wono | discuss | tweet
+ it dev typescript useRef, useImperativeHandle, forwardRefuseRef와 useImperativeHandle은 ref라는 속성에 적용하는 값을 만들어 주는 훅이다. 리액트와 리액트 네이티브가 제공하는 컴포넌트는 모두 ref라는 이름의 속성을 가지고 있다.ref 속성이란?Ref는 참조를 의미한다.ref 속성값은 사용자 코드에서 설정하는 것이 아니라, 특정 시점에 React 프레임워크 내부에서 설정해 준다. ref 속성은 초기에는 null이지만, 컴포넌트가 마운트 되는 시점에서 실제 DOM 객체의 값이 된다.HTML 요소들은 자바스크립트에서 DOM 타입 객체이다. 모든 요소는 HTMLElement 타입이며, click(), blur(), focus() 메서드를 제공한다. 이 메서드들은 가상 DOM 상태에서는 호출할 수 없고, 실제 DOM 상태에서만 호출할 수 있다... wono | discuss | tweet
+ it dev typescript htmlinputelement Property 'value' does not exist on type 'never'. when use useRef hook in mui wono | discuss | tweet
+ it dev react strict useEffect 잘못 쓰고 계신겁니다.https://nextjs.org/docs/14/app/api-reference/next-config-js/reactStrictMode wono | discuss | tweet
+ it dev typescript unknown [101] 타입스크립트의 unknown 타입TypeScript에서 unknown 타입은 any와 혼동될 수 있지만, 코드 안전성에 있어 결정적인 차이를 만듭니다. unknown을 효과적으로 사용하면 React 애플리케이션의 안정성과 오류 방지를 크게 향상시킬 수 있습니다. 이 글에서는 unknown 타입을 활용한 안전한 타입 검사 기법을 React 애플리케이션을 중심으로 자세히 살펴봅니다.1. unknown 타입의 기본 개념unknown 타입은 말 그대로 "알 수 없는" 타입을 나타냅니다. 어떤 값이 올지 확실하지 않을 때 unknown을 사용할 수 있으며, 이는 값을 사용하기 전에 반드시 그 타입을 확인해야 한다는 특징이 있습니다.let unknownValue: unknown;unknownValue = 100; // 숫자 할당 가능unknow.. wono | discuss | tweet
+ it dev nextjs redis [REDIS] 📚 Node.js 에서 redis 모듈 사용법 (캐싱 & 세션 스토어)Node 프로젝트에서 pm2로 다중 클러스터 인프라를 구축했다면 세션 불일치 문제가 생기게 마련이다. 만일 서버가 종료되어 메모리가 날라가면 접속자들의 로그인이 모두 풀려버리게 된다. 따라서 이를 방지하기 위해 세션 아이디와 실제 사용자 정보를 외부 데이터베이스에 저장하는 편이다. 이때 개발자들이 많이 사용하는 것이 Redis db이다. 다른 데이터베이스를 사용해도 되지만, 세션은 빠릿빠릿하게 응답을 해야되기 떄문에 메모리 기반의 데이터베이스인 레디스를 사용한다. 지금부터 Node 프로젝트에서 Redis와 연결하고 사용하는 법을 알아보자. Redis Database 설치 레디스를 로컬에 설치해도 되고, 클라우드로도 사용할 수가 있다. 마음에 드는 것을 골라 설치하자. 개인적으로 로컬 보다는 클라우드로 하.. wono | discuss | tweet
+ it dev nextjs React에서 중복호출(aka. 따닥)을 막는 완벽한 방법서언 안녕하세요. 최근에 퀄리티 높은 프론트엔드 제품을 만드는 것에 관심이 많은데요. 사소해보이는 디테일을 얼마나 능숙히 처리하느냐가 프론트엔드 개발자의 실력 척도 중 하나라고 생각했어요. 저는 여러 원칙들을 세우고 있지만, 오늘은 중복호출 (aka 따닥)을 방지하는 완벽한 방법을 탐구해볼 것입니다. 문제인식 서비스를 개발하다가, 중복호출이 발생해서 여러 문제가 발생하는 경우가 있습니다. 결제 요청이 2번 들어갈 수도 있고, 게시물 작성이 2번 될 수도 있고, 댓글이 2번 써질 수도 있습니다. 이로 인해 비즈니스적으로도 영향을 미칠 수도 있습니다. 작게는 서버 에러 수가 많아져서, noisy 해질 수 있죠. 이만큼 중요도가 높고, 프론트엔드 퀄리티에 큰 역할을 한다고 생각했는데요. 실제로 저도 명확한 해.. wono | discuss | tweet
+ it dev nextjs [react 리액트] 초간단 중복 클릭 못하게 하기 (feat. 로딩화면)1. 어떻게?state를 통해 버튼을 누르면 완료될때까지 버튼의 클릭 기능을 없애서 중복 클릭을 못하게 함. 2. 적용1) 불리언 타입의 State 를 만들어 준다. const [isBtnDisable, setIsBtnDisable] = useState(false); 2) 버튼의 state (true, false) 두가지 상태를 정의해준다.*여기선 버튼 대신 이미지를 사용하였다. *클릭 후 처리 중엔 아예 클릭이 불가능하게 하였다. - 클릭 전 (onClick 프로퍼티가 있음)isBtnDisable === false 일 때 버튼은 이렇고 // isBtnDisable === false && - 클릭 후 (onClick 프로퍼티가 없음)isBtnDisable === true 일 때 (클릭 후) 버튼은 이렇다.. wono | discuss | tweet
+ it dev nextjs (React) 커머스 프로젝트 : 결제 버튼 중복 클릭 방지하기버그를 유발하는 유저의 "이상행동"을 예측하면서 코드를 작성하기란 여간 쉬운 일이 아니다. wono | discuss | tweet
+ it dev nextjs NextJS 13 <button onClick={}> Event handlers cannot be passed to Client Component props wono | discuss | tweet
+ it dev nextjs script Next.js에서 Script Component 효과적으로 사용하기Next.js로 스크립트 태그를 추가하다 점차 추가하다 보면 \_document.tsx 안에 많은 script 태그들이 생겨나게 된 적이 있었어요. 처음에는 \_document 파일이 뭔지도 모르고 모든 스크립트 태그 들을 다 집어 넣었던 적도 있었어요. 이래서 꼭 공 wono | discuss | tweet