전체 글
-
Redis 4 - Redis의 자료구조 및 명령어 [ Set ]Redis 2021. 4. 6. 20:07
본 포스팅은 Redis에 대해 알아보고, Spring Boot 프로젝트에 적용해 활용해보는 목적으로 작성되었습니다. Redis 기본 자료 구조 및 명령어 Set 편 명령어 [Key] [Value] 는 Key 값이 [Key], Value 값이 [Value]임을 나타냅니다. 기본 명령어 1. sadd [Key] [Value] ⇒ set에 value 추가 시간복잡도 ⇒ O(1) 2. srem [key] [Value] ⇒ set의 value가 키인 값 삭제 시간복잡도 ⇒ O(1) 3. smembers [Key] ⇒ set의 모든 원소 조회 시간복잡도 ⇒ O(1) 4. scard [Key] ⇒ set의 원소 갯수 조회 시간복잡도 ⇒ O(1) 5. spop [Key] ⇒ set의 원소 중 아무거나 삭제 후 조회 시..
-
Redis 3 - Redis의 자료구조 및 명령어 [ Key ]Redis 2021. 4. 6. 19:56
본 포스팅은 Redis에 대해 알아보고, Spring Boot 프로젝트에 적용해 활용해보는 목적으로 작성되었습니다. Redis 기본 자료구조 및 명령어 Key 편 명령어 [Key] [Value] 는 Key 값이 [Key], Value 값이 [Value]임을 나타냅니다. 기본 명령어 1. keys * ⇒ 패턴에 일치하는 모든 키를 반환 [ 패턴 ] * ⇒ 모든 키 값 *o* ⇒ o가 들어간 키 값 g?od ⇒ good, gaod, gbod g*ood ⇒ good, gabcdeood, gggggood 등 시간복잡도 ⇒ O(N) 대용량 데이터를 가지고있을 때 사용하면 성능 저하의 원인이 될 수 있기에 위험함. 2. del [Key] ⇒ key 제거 시간복잡도 ⇒ O(N) 제거할 데이터 만큼 3. exists ..
-
Redis 2 - Redis의 자료구조 및 명령어 [ List편 ]Redis 2021. 4. 6. 19:39
Redis 기본 자료구조 및 명령어 List 편 명령어 [Key] [Value] 는 Key 값이 [Key], Value 값이 [Value]임을 나타냅니다. String 1 : 1 방식의 Key - Value 형식 기본 명령어 ⇒ get, set, del set [Key] [Value] → key에 value 저장 get [Key] → key 값의 데이터 조회 del [Key] → Key 삭제 List Last, First에 삽입과 삭제가 가능한 자료구조로 Quick List를 사용 기본 명령어 ⇒ lpush, rpush, lpop, rpop, lrange lpush [Key] [Value] → key의 List 처음에 [Value] 삽입 시간 복잡도 ⇒ O(1) rpush [Key] [Value] → k..
-
Redis 1 - Redis란? Redis VS MemcachedRedis 2021. 4. 6. 17:56
본 포스팅은 Redis에 대해 알아보고, Spring Boot 프로젝트에 적용해 활용해보는 목적으로 작성되었습니다. 레디스 소개 Redis는 데이터베이스, 캐시 및 메시지 브로커로 사용되는 오픈소스인 In Memory NoSQL입니다. 레디스의 특징 오픈소스 소프트웨어 싱글 스레드 기반으로 동작 NoSQL & Cache 솔루션, 메모리 기반의 데이터 저장소 분산 서버 구성 가능 고 가용성, 고 기능성 Key - Value 방식으로 동작 Value 값으로 자료구조를 지원한다 ( String, List, Set, Hash 등 ) 레디스의 장점 다양한 데이터 형식 지원 고 가용성과 빠른 속도 유연한 데이터 저장 레디스의 단점 Sigle Thread로 동작 하나의 명령어만 실행할 수 있지만 속도가 빨라 크게 문..
-
JsonWebToken - Access Token과 Refresh TokenJsonWebToken 2021. 2. 16. 16:10
이전의 글인 Jwt에 대한 설명에 부가적인 내용을 다룰 포스팅입니다. 매우 주관적인 생각도 들어가 있으니 피드백은 얼마든 환영합니다 ㅜ Access Token에 대해서 이전 글에서 설명했지만, 다시 간략하게 설명하자면 서버에서 사용자의 인증을 위한 정보를 포함한 토큰으로, 사용자는 API 요청할 때마다 HTTP 헤더에 Access Token을 담아 전송하게되고 서버는 이 토큰을 검증해 사용자 인증을 해 API요청에 대한 응답을 사용자에게 전송하게 됩니다. 하지만 이 Access Token은 탈취될 우려가 존재하며, 한번 발급된 토큰에 대해 서버는 강제력을 행사할 수 없다는 단점이 존재하는데요, 이를 보완하기 위해 Access Token의 만료기간을 짧게 설정하고, Refresh Token이란 별도의 토큰..
-
JsonWebToken -Jwt란?JsonWebToken 2021. 2. 16. 15:34
현재 개인적으로 만드는 토이프로젝트에 로그인 기능을 제작할 때, 평소에는 스프링 시큐리티의 폼 로그인으로만 사용했지만 프론트엔드를 Vue를 사용하다보니 개인적으로 연결도 어렵고,, 안되는게 참 많았는데 그렇기에 이렇게된거 아예 토큰기반 인증으로 만들어보기로 했고, Jwt를 알아보는 계기가 되었습니다. 먼저 Jwt의 설명과 동작 방식을 설명하기 전에, 먼저 알아두면 좋을 것들을 작성하겠습니다. 웹/앱 어플리케이션에서 인증의 필요성 사용자 기준에서의 인증은 로그인과 같이 사용자의 도입부분을 가리킬텐데요, 이를 서버 기준에서 본다면 인증이란 모든 API 요청에 대해 접근한 사용자가 올바른 사용자인지를 확인하는 작업 그리고 클라이언트 기준으로 본다면 서버가 사용자를 판단할 근거를 넘겨주어야 한다고 저는 생각합니..
-
게시판 만들기(5) - 데이터 Update,Delete (게시글 수정, 삭제)SpringBoot/게시판 (SpringBoot, H2,Mybatis,Thymeleaf) 2021. 1. 20. 15:12
게시판 카테고리의 포스팅들은 IntelliJ, Gradle, SpringBoot, Mybatis, H2-Database, Thymeleaf를 사용해 간단한 게시판을 만들어가는 포스팅입니다. boardMapper.xml (쿼리 작성) 수정문은 update태그로 열어주신 후 id를 설정한 뒤 parameterType으로 Board.class를 받도록 작성합니다. 내부 쿼리문은 UPDATE 테이블명 (tbl_board) SET 바꿀 컬럼 (title,content) = 매개변수 (#title, #content) WHERE 조건 (tbl_board의 pk인 boardId가 매개변수로 넘어온 #boardId와 같다면) 위와 같이 동작할 수 있도록 작성해주시고, 삭제문은 delete태그로 열어주신 후 id를 설정한..
-
게시판 만들기(4)- Create(게시글 만들기)SpringBoot/게시판 (SpringBoot, H2,Mybatis,Thymeleaf) 2021. 1. 5. 23:59
게시판 카테고리의 포스팅들은 IntelliJ, Gradle, SpringBoot, Mybatis, H2-Database, Thymeleaf를 사용해 간단한 게시판을 만들어가는 포스팅입니다. 지난 포스팅인 게시글 조회에 이어 생성을 진행해보겠습니다. BoardMapper.xml 쿼리문 작성 먼저 id를 입력해주신 후, 파라미터로 도메인을 넘길 수 있도록 domain의 클래스 경로까지 parameterType에 입력합니다. 그 후 INSERT INTO 테이블명 (입력할 컬럼명) VALUES(#{컬럼명})을 위 코드와 같이 작성하면 xml파일 작성이 완료됩니다. BoardMapper Interface 작성 위에서 작성한 BoardMapper.xml의 id와 BoardMppaer interface의 메소드 명을..