분류 전체보기60 싱글톤(Singleton) 패턴 싱글톤이란?단 하나의 유일한 객체를 만들기 위한 코드 패턴메모리 절약을 위해, 인스턴스가 필요할 때 똑같은 인스턴스를 새로 만들지 않고 기존의 인스턴스를 가져와 활용하는 기법. → 전역변수를 만들어 이용하는 이유는 똑같은 데이터를 메서드마다 지역변수로 선언해서 사용하면 무의미하고 낭비이기 때문에 전역에서 한번만 데이터를 선언하고 가져와 사용하면 효율적보통 해당 객체가 리소스를 많이 차지하는 역할을 하는 무거운 클래스일 때 사용ex) 데이터베이스 연결 모듈에서 데이터베이스에 접속하는 작업(I/O 바운드)은 그 자체로 무거운 작업에 속하며, 한번만 객체를 생성하고 돌려쓰면 되지 굳이 여러번 생성하여 메모리를 낭비할 이유가 없음, 디스크 연결, 네트워크 통신, DBCP 커넥션풀, 스레드 풀, 캐시, 로그기록 .. 2024. 5. 31. 정규화(Normalization) 정규화의 목적(최적화) → 변화에 유연한 대처를 위해 불필요한 데이터를 제거, 데이터의 중복을 최소화 하기 위해 데이터베이스 구조 확장 시 재디자인을 최소화 다양한 관점에서의 query를 지원하기 위해서 무결성 제약조건의 시행을 간단하게 하기 위해서 각종 이상 현상(Anomaly) 을 방지하기 위해서, 테이블의 구성을 논리적이고 직관적으로 한다. 데이터의 중복을 줄이고, 무결성을 향상 → 관계형 데이터베이스를 정규화된 형태로 재디자인하는 것 제 1정규화(First Normal Form, 1NF) 테이블(Relation)이 제 1정규형을 만족했다는 것은 아래 세 가지 조건를 만족했다는 것을 의미한다. 어떤 Relation에 속한 모든 Domain이 원자값(atomic value)만으로 되어 있다. 모든 a.. 2024. 3. 31. Redis로 RT 마이그레이션 적용기 및 유닛테스트 우선 리프레시 토큰이롼?Access Token의 유효기간을 짧게하여 보안도 높이고, 편의성도 챙기는 방법이다.로그인을 완료하면, 유효기간이 짧은 Access Token과 유효기간이 긴 Refresh Token을 발급해준다.Access Token은 기존에 사용하던 JWT 토큰이라고 생각하면 되고, Refresh Token은 Access Token이 만료되었을 때, 새로 발급해주는 토큰이라고 생각하면 된다. 기존 방식기존의 점주사이드와 유저사이드의 refreshtoken은 유저쪽에 한개의 컬럼을 만들어 조회되는 방식이였다.문제는 리프레시 토큰 개념을 활용하려면, 불가피하게 서버측에서 토큰 정보를 저장할 수 있는 곳이 필요했다…당시에는 RT의 보관을 MVP 개발 기간이 짧아 그냥 Mysql에 저장했었다.하지.. 2024. 3. 14. [React] 검색 디바운싱(Debouncing) 적용 디바운싱(debouncing)을 적용하여 불필요한 상태 변경과 렌더링을 줄이고, 필요한 경우 커스텀 훅(custom hook)을 사용하는 방법이 포함됩니다. 기존 방식 // SearchBar.js function SearchBar({ onChange }) { return ( onChange(e.target.value)} /> ); } 디바운싱(Debouncing) 적용 사용자가 입력할 때마다 즉시 상태를 업데이트하는 대신, 디바운싱을 적용하여 연속적인 입력에 대한 상태 업데이트를 지연시킬 수 있습니다. 이 방법은 연속적인 입력에서 발생하는 불필요한 렌더링을 줄여 성능을 향상시킵니다. import { useState, useEffect } from "react"; function useDebounce(va.. 2024. 1. 13. 이전 1 ··· 6 7 8 9 10 11 12 ··· 15 다음