분류 전체보기

    [Redis] Redis Insights 사용하기

    [Redis] Redis Insights 사용하기

    | Redis insight란? - Redis GUI이다. 사용자 편의를 위한 인터페이스임. - 다운로드 링크 : https://redis.com/redis-enterprise/redis-insight/ RedisInsight | The Best Redis GUI RedisInsight provides an intuitive and efficient graphical interface for Redis, allowing you to interact with your databases and manage your data. redis.com | 사용 사례 - Docker를 통해서 Redis를 pull, run 한 후, - Redis insight를 통해서 database를 입력하여 들어왔다. - 지금 어느..

    [이커머스 프로젝트] Docker란 무엇인가? (자료 정리)

    [이커머스 프로젝트] Docker란 무엇인가? (자료 정리)

    | Docker 정리 - 초보를 위한 도커 안내서 와 Docker 공식 사이트를 주로 참고하여 정리하였습니다. 1. Docker란 무엇인가? (1) Docker가 등장한 배경 하나의 Application에 다수의 프로그램들이 늘어났고, 이에 따라 서버를 효과적으로 관리하기 위한 무언가가 필요해졌다. 1) 동일 서버에 각기 다른 프로그램을 관리하기 어려움 > 하나의 서버에는 여러 개의 프로그램이 존재할 수 있다. > 이 프로그램들이 각자 사용하는 라이브러리의 버전이 모두 다르고 같은 포트를 사용할 경우 사용이 어려웠고, 결국 서버를 분리하게 되는 일이 발생했다. (==> 자원의 낭비) 2) 서버 환경이 변화할 때마다 유연하게 대처하기 어려움 3) DevOps 및 마이크로서비스 아키텍처의 등장과 함께 프로그..

    [스프링 시큐러티] JWT 토큰 + 스프링 시큐러티

    [스프링 시큐러티] JWT 토큰 + 스프링 시큐러티

    | 인증 방식의 종류와 한계점 1. 인증 방식의 종류 데이터 저장 위치 방식 Cookie key-value 형태의 문자열 브라우저 (or 로컬 메모리) (1) 사용자가 로그인 요청을 보낸다. (2) 서버는 Cookie 정보를 header의 Set-Cookie에 담아 응답한다. (3) 사용자가 요청할 때마다 Cookie를 header에 담아 보낸다. (4) 서버는 쿠키에 담긴 정보로 클라이언트가 누군지 식별한다. Session session id와 value가 든 세션 객체 * value는 map 형태로, 세션 생성 기간, 마지막 접근 기간, User 속성 등을 담는다. 서버 (메모리, 로컬 파일, DB) (1) 사용자가 로그인 요청을 보내면 세션이 서버에 저장된다. 이때, 세션의 식별을 위한 Sessio..

    [Redis] Redis를 Cache로 사용하기

    | Cache란? 용어 What? why? How? Cache 임시로 데이터를 저장하는 공간 성능 향상 - Look aside Cache, Write Back - Memcahced, Redis API 1. Cache의 배경과 목적 - 파레토의 법칙에 따르면, 80%의 결과는 20%의 원인에 의해 발생한다. - 다시말해, 사람들이 자주 쓰는 데이터는 정해져 있고 이를 캐싱해서 저장하면 DB에 접근할 필요가 없어진다. - 서비스를 런칭하고 사용자가 늘어나면 그만큼 DB 작업량도 늘어나기 마련이라 한다. - 이럴 때 캐시를 사용한다면, 성능을 개선할 수 있다. 2. Cache의 사용 방식 - 캐시는 조회 또는 쓰기를 할 때에 사용될 수 있다. Look Aside Cache (Lazy Loading) 캐시를 한..

    [JPA] Lazy Loading 개념

    | 관련 용어 용어 What? How? Lazy Loading 사용자가 보지 않는 리소스는 차후에 로딩하는 기술 - 프론트 : 무한 스크롤, placeholder 등 - 백엔드 : JPA의 지연 로딩 | JPA의 Lazy Loading - 개발자는 JPA를 통해 프록시를 만들 수 있다. - 프록시란, 가짜 객체를 말하는 것으로, 실제 엔터티에 대한 참조값을 가진다. - 하나의 엔터티가 다른 엔터티와 연관관계를 맺고 있을 때 (oneToMany) , 연관된 객체들을 처음부터 DB에서 조회하지 않고, 실제 사용하는 시점에 DB에서 조회하면 속도를 향상시킬 수 있다. - JPA에서는 프록시가 참조하는 객체들의 데이터 조회 시점을 정하는 타입을 Fetch Type이라 하는데, 즉시로딩 - 한 객체를 조회할 때,..

    [Scheduler] 스케줄러 사용하기 (feat. 쓰레드, 쓰레드풀)

    | Scheduler - 스프링에서 일정 주기마다 특정 작업을 수행할 수 있도록 하는 기능 - 주기 설정 fixedDelay 작업 완료시점을 기준으로 일정시간 지연 후 반복 fixedRate 작업 시작지점을 기준으로 일정시간 지연 후 방복 cron 정규식 표현 - Cron 표현식 (1) 사용법 // 초/분/시/일/월/요일/연도(생략가능) 0 0 0 * * * 테스트2 2022-11-11 13:28:05.641 DEBUG 23980 --- [ main] ySourcesPropertyResolver$DefaultResolver : Found key 'spring.liveBeansView.mbeanDomain' in PropertySource 'systemProperties' with value of type..

    [Entity] 중복데이터 저장 방지 (Unique Key, Index)

    | 관련 SQL 개념 (1) Unique Key : 중복 데이터 저장을 방지하기 위한 제약조건 - 단일 칼럼 뿐 아니라, 복합 칼럼을 지정할 수도 있다. - 아래와 같이 복합 키를 생성할 경우, DB 조회 속도를 향상시킬 수 있다. -- MySQL 기준 create table member( email varchar(50), name varchar(255), unique key member_uk_email (email, name) ) - 중복 데이터 저장을 막기 위한 방법으로 아래 두가지를 사용할 수 있다. * 단순 insert into 문의 경우 에러를 발생하지만, 아래 두 가지는 에러를 발생시키지 않는다. INSERT IGNORE unique key가 걸린 칼럼에 중복 데이터가 이미 있는 경우 삽입 X..

    [스프링 시큐러티] 스프링 시큐러티 자료 모음 (수정중)

    1. 개념 https://flyburi.com/584 [SpringSecurity] Authentication(인증) 관련 클래스와 처리 Spring Security에 대해 큰 흐름은 알지만, 처음부터 적용하는게 아니면 어떤 권한을 주고 권한 체크하는 로직만 추가하거나 수정하며 생각없이 쓰게 되는데, 어떤 흐름으로 되는지 전보다 좀 더 살 flyburi.com 2. 다수의 회원 타입(ex. 판매자, 구매자)에 대하여 시큐러티 분기 필요할 때 https://github.com/HomoEfficio/dev-tips/blob/master/Spring-Security-Multiple-UserDetailsService-Authentication.md GitHub - HomoEfficio/dev-tips: 개발하다..

    [MySQL] Memo

    W3School에서 제공하는 MySQL 자료를 보고 있다. 기초적인 내용들을 깔끔하게 설명해주고 있어서 메모해두었다. - 현재 Data Type에 대해서 보고 있는 중.. https://www.w3schools.com/mysql/mysql_datatypes.asp MySQL Data Types W3Schools offers free online tutorials, references and exercises in all the major languages of the web. Covering popular subjects like HTML, CSS, JavaScript, Python, SQL, Java, and many, many more. www.w3schools.com