📝 학습 목표 서버의 정의와 역할을 이해한다. 서버가 어떻게 구축되는지 이해한다. 🤔 서버란 무엇일까? 우리는 아주 흔히 "SERVER" 라는 단어를 쓴다. 그러나 우리는 아주 익숙하게 사용하는 단어에 대해 정의를 물어보면 갑자기 머리가 하얗게 되어버린다.. 너무 당연해서 깊게 생각한 적이 없는 것이다. "서버가 정확히 무엇이고, 어떤 형태로 존재해?" 이러한 물음에 대답할 수 있는가? 그렇다면 서버가 무엇일까??? 결론부터 말하자면, - OS에 의해 동작하는 프로세스 이며, - 클라이언트의 역할을 하는 프로세스와 소켓을 통해 IPC를 수행하는 것 정도로 정리할 수 있겠다. ✒️ 0. 들어가기 전 이번 포스팅의 목표는 서버와 클라이언트가 각각 하나의 프로세스로써 어떻게 DATA를 주고받는지 이해하는 것!..
JWT 토큰 서버 구축하기 (인가/인증) (2) - 로그인 과정 처리 해당 POST 보고 오시길 바랍니다. Spring Boot에서 JWT 프로젝트 세팅하기 / JWT 테스트 gradle 기준 1. build.gradle에 Dependecy 추가 implementation 'io.jsonwebtoken:jjwt-api:0.11.1' implementation 'io.jsonwebtoken:jjwt-impl:0.11.1' jinhos-devlog.tistory.com 이어서... attemptAuthentication 인증이 완료되면 -> successfulAuthentication (인증 후 후처리) attemptAuthentication 인증이 실패하면 -> unsuccessfulAuthenticati..
0. 들어가기 전 https://jinhos-devlog.tistory.com/entry/Database-Redis%EB%9E%80 [Database] Redis란? 1. "Redis"란? REmote DIctionary Server의 약자 Redis는 빠른 오픈 소스 in-Memory "키(key)-값(value)"를 가지는 NoSQL의 데이터 베이스이다. 🔗https://db-engines.com/en/ranking/key-value+store 해당 url에서 보면 key-value Store jinhos-devlog.tistory.com 1. Redis 설치하기 Homebrew를 통해서 간단히 설치할 수 있다. brew install redis 2. Redis 실행하기 Homebrew를 통해서 Re..
1. "Redis"란? REmote DIctionary Server의 약자 Redis는 빠른 오픈 소스 in-Memory "키(key)-값(value)"를 가지는 NoSQL의 데이터 베이스이다. 🔗https://db-engines.com/en/ranking/key-value+store 해당 url에서 보면 key-value Store 부문에서 압도적인 사용률을 차지하는 것을 알 수 있다. 2. "Redis"의 특징 인메모리 데이터 저장: 데이터를 주 메모리에 저장하여 빠른 읽기 및 쓰기 속도를 제공!!! 다양한 데이터 구조 지원: 문자열, 리스트, 해시맵, 셋 등 다양한 데이터 구조를 지원 -> 유연한 데이터 처리가 가능하다!! 높은 가용성: 데이터를 디스크에도 저장하고 클러스터링을 통해 고가용성을 제..
해당 POST 보고 오시길 바랍니다. Spring Boot에서 JWT 프로젝트 세팅하기 / JWT 테스트 gradle 기준 1. build.gradle에 Dependecy 추가 implementation 'io.jsonwebtoken:jjwt-api:0.11.1' implementation 'io.jsonwebtoken:jjwt-impl:0.11.1' implementation 'io.jsonwebtoken:jjwt-jackson:0.11.1' 현재는 0.12.x 버전까지 나온 걸로 안다. 2. jinhos-devlog.tistory.com 0. 초기 SecurityConfig 세팅 1) SecurityConfig @Configuration // IoC 빈(bean)을 등록 @EnableWebSecuri..
VERSION springboot : '3.2.3' java : '17' 1. build.gradle에 Dependecy 추가 plugins { id 'java' id 'org.springframework.boot' version '3.2.3' id 'io.spring.dependency-management' version '1.1.4' } group = 'com.example' version = '0.0.1-SNAPSHOT' java { sourceCompatibility = '17' } configurations{ compileOnly { extendsFrom annotationProcessor } } repositories { mavenCentral() } dependencies { impleme..
0. 들어가기 전 https://jinhos-devlog.tistory.com/entry/Spring-Security-%EC%9B%B9-%EB%B3%B4%EC%95%88-%EC%9D%B4%ED%95%B4-JWT%EB%A5%BC-%EC%9D%B4%ED%95%B4%ED%95%98%EA%B8%B0-%EC%A0%84 Spring Security 웹 보안 이해 : JWT를 이해하기 전 0. JWT란? JWT(JSON Web Token)는 정보를 안전하게 전송하기 위한 간단한 토큰 기반의 오픈 표준이다. Header(헤더), Payload(페이로드), Signature(서명) 세 부분으로 구성되어 있으며........... 는 잠시 제쳐두고 jinhos-devlog.tistory.com 해당 포스트를 보고 오길 바..
0. JWT란? JWT(JSON Web Token)는 정보를 안전하게 전송하기 위한 간단한 토큰 기반의 오픈 표준이다. Header(헤더), Payload(페이로드), Signature(서명) 세 부분으로 구성되어 있으며........... 는 잠시 제쳐두고!! JWT가 어떻게 쓰고, 어떻게 생겼는지. 보다는 "왜 사용되고, 어디에 사용하는지"가 더욱 중요하다!!! 항상 공부를 할 때, 블로그에서 긁어와서 코드를 돌아가게 만드는 것은 의미가 없다고 생각하는 편이다. 근본적으로 왜 사용되고, 어디에 사용되고, 그 이후에 어떻게 사용하는지를 배우는 서순이 맞다고 생각한다. 1. Session에 대해서 세션(Session)은 웹 애플리케이션에서 클라이언트와 서버 간의 지속적인 상태를 유지하기 위한 메커니즘이..