INDEX 기존에는 테이블의 모든 데이터를 순회(Table Full Scan)하며 검색을 하기 때문에 오래 걸렸다. INDEX는 이를 해결하고자 책 뒷편에 존재하는 ‘색인’과 동일한 역할을 하도록 만들어진 자료구조이다. Index를 생성하게 되면 해당 컬럼의 데이터들을 정렬하여 별도의 메모리 공간에 데이터의 물리적 주소와 함께 저장된다. 이렇게 인...
Isolation Level
Isolation Level DIRTY READ NON-REPEATABLE READ PHANTOM READ Default Level READ UNCOMMITTED O O O ...
Redis
Redis 란? Redis는 REmote DIctionary Server 의 약자로 주로 애플리케이션 캐시나 빠른 응답 속도를 가진 데이터베이스로 사용되는 오픈 소스 인메모리 NoSQL 키/값 저장소입니다. Q. 기존 서버에서 사용하고 있는 RDBMS가 있지만 별도로 Redis를 사용하는 이유는? A. Redis는 디스크나 SSD가 아닌...
Message Queue VS Pub-Sub
Message Queue Message Queue는 프로세스 또는 프로그램 간에 데이터를 교환 할 때 사용하는 통신 방법 중에 하나로, 메시지 지향 미들웨어를 구현한 시스템을 의미한다. 생산자(Producer)로 취급되는 컴포넌트가 메시지를 메시지 큐에 추가한다. 해당 메시지는 소비자(Consumer)로 취급되는 또 다른 컴포넌트가 메...
중요하지만 헷갈리는 리엑트 개념 이해하기
상태값과 속성값으로 관리하는 UI 데이터 UI 라이브러리인 리엑트는 UI 데이터를 관리하는 방법을 제공한다. UI 데이터는 컴포넌트 내부에서 관리되는 상탯값, 부모 컴포넌트에서 내려 주는 속성값으로 구성된다. UI 데이터가 변동되면 돔 요소를 직접 수정해야한다. 그렇게 되면 비지니스 로직과 UI 수정 코드가 뒤섞여 복잡해 지기 때문에 리엑트에서는 ...
인증 구현
인증 논리를 담당하는 것은 AuthenticationProvider 계층이며 여기에서 요청을 허용할지 결정하는 조건과 명령을 발견할 수 있다. AuthenticationProvider의 이해 엔터프라이즈 애플리케이션에서는 사용자 이름과 암호 기반의 기본 인증 구현이 적합하지 않을 수 있다. 일반적으로 프레임워크는 가장 많이 이용되는 구현을...
암호 처리
PasswordEncoder 계약의 이해 일반적으로 시스템은 암호를 일반 텍스트로 관리하지 않고 공격자가 암호를 읽고 훔치기 어렵게 하기 위한 일종의 변환 과정을 거친다. 시큐리티에서는 이 책임을 위해 정의된 별도의 계약이 PasswordEncoder이다. PasswordEncoder PasswordEncoder는 인증 프로세스에서 암호가 ...
사용자 관리
스프링 시큐리티의 인증 구현 사용자 관리를 위해서는 UserDetailsService 및 UserDetailsManager 인터페이스를 이용한다. UserDetailsService : 사용자 이름으로 사용자를 검색하는 역할만 한다. 이 작업은 프레임워크가 인증을 완료하는 데 반드시 필요한 유일한 작업이다. UserDetailsManager...
안녕! 스프링 시큐리티
첫 번쨰 프로젝트 시작 REST 엔드포인트 하나를 노출하는 작은 웹 어플리케이션으로 스프링 시큐리티로 HTTP Basic 인증을 이용해 엔드포인트를 보호하는 방법을 볼 수 있다. /* HelloController 클래스와 REST 엔드포인트 선언 */ @RestController public class HelloController { @G...
오늘날의 보안
스프링 시큐리티: 개념과 장점 스프링 시큐리티는 스프링 애플리케이션에서 애플리케이션 수준의 보안을 구현할 때 가장 우선적인 선택이며, 인증, 권한 부여 및 일반적인 공격에 대한 방어를 구현하는 세부적인 맞춤 구성 방법을 제공한다. 소프트웨어 보안 현재의 소프트웨어 시스템은 툭히 현재 GDPR(General Data Protection Requ...